/* v2.css — 账号/积分/双面板/报告类型 新增组件（在既有 css 之后加载，复用 tokens.css 令牌） */

/* 品牌 logo 用图片（用户原图）：填满容器、保持比例 */
.logo img { width: 100%; height: 100%; object-fit: contain; display: block; }

:root {
  --tp: #C9772A;          /* 买卖点（trade_point）琥珀文字 */
  --tp-soft: #FFF6E9;     /* 买卖点浅底 */
  --fib: #2E62E0;         /* 斐波那契（fibonacci）蓝 */
  --fib-soft: #EEF1FE;
  --vp: #7B49D6;          /* 成交量分布（volume_profile）紫 */
  --vp-soft: #F2ECFB;
  --pattern: #0E9AA8;     /* 趋势形态（chart_pattern）青 */
  --pattern-soft: #E6F7F5;
  --mk-us: #2E62E0;       /* 市场彩标：美股蓝（与 fib 同值，不同上下文，分两令牌） */
  --mk-hk: #E07A36;       /* 港股橙；A股红复用 --red(#E0322F) */
  --glass: rgba(255,255,255,.62);
  --seg-bg: #F0F2F4;
}

/* 市场彩标（04 ⑤）：回复卡头 / 浮窗头 = 名称前；下拉候选用 --sm 略小 */
.mk-badge { display: inline-flex; align-items: center; flex: none; height: 23px; padding: 0 9px; border-radius: 6px; font-size: 11px; font-weight: 800; line-height: 1; color: #fff; white-space: nowrap; }
.mk-badge.mk-us { background: var(--mk-us); }
.mk-badge.mk-hk { background: var(--mk-hk); }
.mk-badge.mk-cn { background: var(--red); }
.mk-badge--sm { height: 20px; padding: 0 7px; font-size: 10px; border-radius: 6px; }

/* ---------- 分段控件（登录|注册 / 广场|我的） ---------- */
.seg { position: relative; display: grid; grid-template-columns: 1fr 1fr; background: var(--seg-bg); border-radius: 13px; padding: 4px; }
.seg-thumb { position: absolute; top: 4px; bottom: 4px; left: 4px; width: calc(50% - 4px); background: #fff; border-radius: 9px; box-shadow: 0 1px 3px rgba(20,23,27,.10); transition: transform var(--t-base) var(--ease); }
.seg.is-second .seg-thumb { transform: translateX(100%); }
.seg-tab { position: relative; z-index: 1; height: 34px; border: 0; background: transparent; font-weight: var(--fw-bold); font-size: 13.5px; color: var(--ink-2); cursor: pointer; border-radius: 9px; }
.seg-tab.is-active { color: var(--green); }

/* ---------- 登录/注册表单 ---------- */
.auth-seg { margin: var(--sp-7) 0 var(--sp-8); }
.auth-form.u-hidden { display: none; }
.invite { letter-spacing: .04em; }
/* 登录品牌（对齐原型实测）：flex 整体居中、gap 14、logo 62、名称 28/800 #ink */
.login-brand { display: flex; justify-content: center; align-items: center; gap: 14px; margin-bottom: var(--sp-9); }
.login-brand .logo { width: 62px; height: 62px; }
.login-brand .name { font-size: 28px; line-height: 1; letter-spacing: -.01em; color: var(--ink); }

/* ---------- 左栏 ---------- */
.sidebar-brand .brand { display: inline-flex; align-items: center; gap: var(--sp-3); }
.sidebar-brand .name { font-size: var(--fs-xl); font-weight: var(--fw-extrabold); }

/* 市场筛选（广场）下划线 Tab */
.market-tabs { display: flex; gap: var(--sp-6); padding: 0 var(--sp-7) var(--sp-3); border-bottom: 1px solid var(--line); }
.market-tabs button { position: relative; height: 38px; border: 0; background: transparent; font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--ink-3); cursor: pointer; }
.market-tabs button.is-active { color: var(--ink); }
.market-tabs button.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--green); border-radius: 2px; }

/* （05 的 .plaza-card、.pc-x、.plaza-group、.pg-x 广场时间线样式已随 06 扁平研究流下线，死代码已删） */

/* 06：输入框下「美股日报 + 美股大盘监测」双按钮（gap 按 06 mockup 实测 10px） */
.composer-daily { display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.daily-btn { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 16px 0 11px; border-radius: 999px; background: #fff; border: 1px solid var(--line); box-shadow: 0 4px 14px rgba(20,23,27,.08); font-size: 12.5px; font-weight: var(--fw-bold); color: var(--ink); cursor: pointer; transition: box-shadow var(--t-fast), transform var(--t-fast), border-color var(--t-fast); }
.daily-btn:hover { box-shadow: 0 8px 20px rgba(20,23,27,.12); transform: translateY(-1px); border-color: #E2E6EA; }
.daily-btn-ico { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 6px; background: var(--green-soft); color: var(--green-d); }

/* 提示卡内容件（06 双卡前卡复用；旧 .daily-card 单卡样式已随 tipstack 下线删除） */
.dc-ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 11px; background: rgba(255,255,255,.22); }
.dc-txt { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
.dc-title { font-size: 14px; font-weight: var(--fw-extrabold); }
.dc-sub { font-size: 11.5px; color: rgba(255,255,255,.9); }
.dc-arrow { flex: none; font-size: 18px; opacity: .9; }

/* 05：报告类型 chip 行（并入输入框工具行；未选=5 枚，选中=绿胶囊 + 隐藏其余 + × 清除） */
.tp-row { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 0; padding: 2px 12px 11px 16px; }
.tp-chip { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 11px; border-radius: 9px; border: 1px solid var(--line); background: var(--soft); color: var(--ink-2); font-size: 12.5px; font-weight: var(--fw-semibold); cursor: pointer; transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast); }
.tp-chip:hover { background: #fff; border-color: #E2E6EA; color: var(--ink); }
.tp-chip .tp-dot { display: none; width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
.tp-row.has-sel .tp-chip:not(.is-active) { display: none; }        /* 选中后隐藏其余 chip */
.tp-chip.is-active { background: var(--green-soft); color: var(--green-d); border-color: rgba(11,168,74,.32); padding: 0 6px 0 12px; }
.tp-chip.is-active .tp-dot { display: inline-block; }
.tp-clear { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; border: 0; background: var(--soft); color: var(--ink-3); font-size: 15px; line-height: 1; cursor: pointer; }
.tp-clear:hover { background: #EAEDF1; color: var(--ink); }

/* 我的：搜索 + 排序 + 列表 */
.mine-tools { padding: 0 var(--sp-7) var(--sp-5); display: flex; flex-direction: column; gap: var(--sp-4); }
.search-box { position: relative; display: flex; align-items: center; height: 38px; border: 1px solid var(--line); border-radius: var(--r-md); padding: 0 var(--sp-4); background: #fff; }
.search-box:focus-within { border-color: var(--green); box-shadow: var(--focus-ring); }
.search-box .search-ico { color: var(--ink-3); display: inline-flex; }
.search-box input { flex: 1; border: 0; outline: 0; background: transparent; font-size: var(--fs-sm); padding: 0 var(--sp-3); }
.clear-btn { border: 0; background: transparent; color: var(--ink-3); font-size: var(--fs-lg); cursor: pointer; line-height: 1; }
.sort-wrap { position: relative; }
.sort-trigger { height: 30px; border: 1px solid var(--line); border-radius: 9px; background: #fff; padding: 0 var(--sp-4); font-size: var(--fs-xs); color: var(--ink-2); cursor: pointer; }
.sort-menu { position: absolute; top: 34px; left: 0; width: 160px; z-index: 5; }
.menu-item.is-checked::after { content: "✓"; float: right; color: var(--green); }

.mine-group { margin-bottom: var(--sp-3); }
.mg-head { width: 100%; display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-4) var(--sp-3); border: 0; background: transparent; cursor: pointer; text-align: left; }
.mg-name { font-weight: var(--fw-bold); font-size: var(--fs-sm); }
.mg-sym { font-size: var(--fs-2xs); color: var(--ink-3); }
.mg-count { margin-left: auto; background: var(--soft); border-radius: var(--r-pill); padding: 1px 8px; font-size: var(--fs-2xs); color: var(--ink-2); }
.mg-caret { transition: transform var(--t-fast); color: var(--ink-3); }
.mine-group.is-open .mg-caret { transform: rotate(180deg); }
.mg-items { display: none; padding-left: var(--sp-5); border-left: 1px solid var(--line); margin-left: var(--sp-4); }
.mine-group.is-open .mg-items { display: block; }
.mine-empty { padding: var(--sp-9) var(--sp-5); text-align: center; color: var(--ink-3); font-size: var(--fs-sm); }

/* 类型标签：支撑阻力=绿，买卖点=琥珀，斐波那契=蓝，成交量分布=紫 */
.type-tag { display: inline-flex; align-items: center; height: 18px; padding: 0 7px; border-radius: var(--r-xs); font-size: var(--fs-2xs); font-weight: var(--fw-bold); white-space: nowrap; }
.type-tag--sr { background: var(--green-soft); color: var(--green-d); }
.type-tag--tp { background: var(--tp-soft); color: var(--tp); }
.type-tag--fib { background: var(--fib-soft); color: var(--fib); }
.type-tag--vp { background: var(--vp-soft); color: var(--vp); }
.type-tag--pattern { background: var(--pattern-soft); color: var(--pattern); }

/* 用户区 */
.userbar { position: relative; flex: none; padding: var(--sp-5) var(--sp-7); border-top: 1px solid var(--line); }
.userbar-btn { width: 100%; display: flex; align-items: center; gap: var(--sp-4); border: 0; background: transparent; cursor: pointer; padding: var(--sp-3); border-radius: var(--r-md); }
.userbar-btn:hover { background: var(--soft); }
.userbar .avatar { width: 36px; height: 36px; border-radius: var(--r-circle); background: var(--ink); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: var(--fs-sm); font-weight: var(--fw-bold); flex: none; }
.userbar-info { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.userbar-name { font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--ink); max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.userbar-credits { font-size: var(--fs-2xs); color: var(--ink-2); display: inline-flex; align-items: center; gap: 3px; }
.userbar-credits .spark { color: var(--green); }
.userbar-credits.is-zero { color: var(--red); }
.userbar-caret { margin-left: auto; color: var(--ink-3); font-size: var(--fs-sm); }
/* 必须重置基类 .menu 的 top（否则 top+bottom 同时生效会把菜单顶到视口外、点了看不见） */
.user-menu { position: absolute; top: auto; left: var(--sp-7); right: var(--sp-7); bottom: 66px; z-index: 40; }

/* 05：头部一行 —— 品牌左、积分胶囊 + 头像右（与 logo 同行） */
.sidebar-brand { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); }
.userbar--top { flex: none; padding: 0; border-top: 0; display: inline-flex; align-items: center; gap: 8px; position: relative; }
.userbar--top .userbar-credits { background: var(--green-soft); color: var(--green-d); border-radius: 999px; padding: 4px 10px; font-size: 11.5px; font-weight: var(--fw-extrabold); }
.userbar--top .userbar-credits.is-zero { background: #FCE9E9; color: var(--red); }
.userbar--top .userbar-btn { width: auto; padding: 0; }
.userbar--top .userbar-btn:hover { background: transparent; }
.userbar--top .avatar { width: 32px; height: 32px; font-size: var(--fs-xs); }
/* 头像菜单从头像向下弹（显式重置基类的 bottom/left，避免顶出视口 —— CLAUDE.md 原则4） */
.userbar--top .user-menu { top: 42px; bottom: auto; left: auto; right: 0; min-width: 150px; }
.user-menu-name { padding: 8px 12px 6px; font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--ink); border-bottom: 1px solid var(--line); margin-bottom: 4px; }
.menu-item.danger { color: var(--red); }
.menu-item.danger:hover { background: var(--red-soft); }

/* ---------- 输入条 v2 ---------- */
/* 报告类型：技术分析（4 类，外包流光边框）/ 基本面（占位）。对齐 04 实测 */
.composer-top { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--sp-4); margin-bottom: var(--sp-5); }
.tp-panel { display: inline-flex; align-items: center; gap: var(--sp-3); background: #EAEDF1; border: 1px solid #E1E5EA; border-radius: 13px; padding: 7px 7px 7px 12px; box-shadow: 0 2px 8px rgba(20,23,27,.05); }
.tp-panel-label { font-size: var(--fs-xs); font-weight: var(--fw-bold); color: var(--ink); white-space: nowrap; }

/* 04：技术分析面板外包流光边框（padding 法：1.5px 渐变露边作流动描边） */
.tp-flow { padding: 1.5px; border-radius: 14px; background: linear-gradient(90deg,#0BA84A,#2E62E0,#7B49D6,#DB4A7C,#0BA84A); background-size: 200% 100%; animation: mg-flow 3.2s linear infinite; }
.tp-flow > .tp-panel { gap: 9px; border: 0; border-radius: 12.5px; box-shadow: none; padding: 7px 8px 7px 12px; }
@keyframes mg-flow { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } }
@media (prefers-reduced-motion: reduce) { .tp-flow { animation: none; } }
/* 类型胶囊：高 26、圆角 8、11.5/600、内距 0 11；选中绿底白字，未选白底次墨 */
.tp-pill { height: 26px; padding: 0 11px; border: 0; border-radius: var(--r-sm); background: #fff; font-size: var(--fs-xs); font-weight: var(--fw-semibold); color: var(--ink-2); cursor: pointer; display: inline-flex; align-items: center; white-space: nowrap; transition: background var(--t-fast), color var(--t-fast); }
.tp-pill:hover:not(.is-active):not(.is-disabled) { color: var(--ink); }
.tp-pill.is-active { background: var(--green); color: #fff; }
.tp-pill.is-disabled { background: transparent; color: var(--ink-3); cursor: not-allowed; }

.market-label { font-size: var(--fs-xs); font-weight: var(--fw-semibold); color: var(--ink-3); flex: none; }
.cost-hint { margin-left: auto; font-size: var(--fs-xs); color: var(--ink-3); white-space: nowrap; }
.cost-hint::before { content: "✦"; color: var(--green); margin-right: 4px; }
.cost-hint.is-zero { color: var(--red); font-weight: var(--fw-semibold); }
.cost-hint.is-zero::before { content: none; }

/* ---------- 研究流「已完成」卡：按类型差异化文案（对齐参考 02 主页面） ---------- */
/* 头部报告类型徽章（替代「已完成」）：支撑阻力=绿，买卖点=琥珀，斐波那契=蓝，成交量分布=紫 */
.badge-sr { background: var(--green-soft); color: var(--green-d); }
.badge-tp { background: var(--tp-soft); color: var(--tp); }
.badge-fib { background: var(--fib-soft); color: var(--fib); }
.badge-vp { background: var(--vp-soft); color: var(--vp); }
.badge-pattern { background: var(--pattern-soft); color: var(--pattern); }
/* 两类卡片都用标题：支撑阻力=后端 summary；买卖点=前端抓报告 h1（深墨 600，两行省略 …） */
.rcard-title { padding: var(--sp-6); font-size: var(--fs-base); line-height: var(--lh-relaxed); color: var(--ink); font-weight: var(--fw-semibold);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- 检索态：发送 → 「检索报告库…」流光 → 判定（对齐参考 03 实测） ---------- */
.search-status { width: fit-content; font-size: var(--fs-base); font-weight: var(--fw-semibold); margin-top: 2px; }
/* 检索中：无容器/图标/转圈，仅文字 + 一道深色高光从左向右流动 */
.search-status.searching {
  background: linear-gradient(100deg,#B6BCC4 0%,#B6BCC4 38%,#15171B 50%,#B6BCC4 62%,#B6BCC4 100%);
  background-size: 200% 100%; -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  animation: mg-textshine 1.5s linear infinite;
}
/* 判定（不带前缀）：命中绿 / 在途·新建琥珀；mg-pop 淡入微弹 */
.search-status.found { color: var(--green-d); font-weight: var(--fw-bold); animation: mg-pop .22s ease both; }
.search-status.regen { color: var(--tp); font-weight: var(--fw-bold); animation: mg-pop .22s ease both; }

/* ---------- 报告图片放大查看（点击大图） ---------- */
.report-chart img.zoomable { cursor: zoom-in; }
.lightbox { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 3vh 3vw; background: rgba(20,23,27,.82); backdrop-filter: blur(2px); animation: mg-fade .16s ease both; }
/* animation:none 同 .notice-scrim.out：否则 mg-fade 的 both fill 终态(opacity:1)以动画来源优先级钉死 opacity:0，淡出不播放 */
.lightbox.out { opacity: 0; transition: opacity .16s ease; animation: none; }
.lightbox img { max-width: 96vw; max-height: 94vh; object-fit: contain; border-radius: var(--r-md); box-shadow: 0 20px 60px rgba(0,0,0,.45); }
.lightbox-close { position: fixed; top: 18px; right: 22px; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.16); color: #fff; font-size: 22px; line-height: 1; display: grid; place-items: center; cursor: pointer; }
.lightbox-close:hover { background: rgba(255,255,255,.28); }

/* 加载更早 + 离线 banner */
.feed-more { text-align: center; padding: var(--sp-6) 0 0; }
.feed-more.u-hidden { display: none; }
.more-btn { border: 1px solid var(--line); background: #fff; border-radius: var(--r-pill); height: 32px; padding: 0 var(--sp-7); font-size: var(--fs-xs); color: var(--ink-2); cursor: pointer; }
.more-btn:hover { border-color: var(--green); color: var(--green-d); }
.conn-banner { flex: none; display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-4) var(--sp-7); background: var(--amber-soft); color: #9A5B1E; font-size: var(--fs-sm); }
.conn-banner.u-hidden { display: none; }
.conn-banner .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--amber); }

/* 确认弹窗：报告类型 */
.confirm-type { margin-bottom: var(--sp-3); }

/* 智能/禁用按钮：未满足条件灰底不可点（登录注册智能态、0 积分发送） */
.btn-primary:disabled, .btn-primary.is-disabled { background: #C9CDD2; box-shadow: none; cursor: not-allowed; }
.send-btn:disabled, .send-btn.is-disabled { background: #C9CDD2; cursor: not-allowed; }
.input.is-error { border-color: var(--red); box-shadow: 0 0 0 3px var(--red-soft); }

/* #2 居中轻提示（登录/注册 toast 居中、~1.4s 淡出；挂 body，避免 toast-host 的 transform 包含块） */
.toast.toast--center { position: fixed; left: 50%; top: 42%; transform: translateX(-50%); z-index: 90; animation: none; }
.toast.toast--center.out { transform: translateX(-50%) translateY(8px); }

/* 缩略图：完整展示原图（不裁切）——保留 components.css 的 .rcard-thumb 定高自适应。 */

/* 04 输入区精简：搜索 + 输入 + 消耗积分 + 发送 同一行（发送上移、垂直居中 40px 圆钮） */
.input-bar .input-row { padding: 7px 7px 7px 16px; gap: var(--sp-3); }
.input-bar .input-row .cost-hint { margin-left: auto; flex: none; }
.input-bar .input-row .send-btn { flex: none; }

/* 联想选中态：从匹配项选定后，输入文字转绿 + 搜索图标转绿，提示「已确认标的」（用户改字即还原） */
.input-bar.is-resolved .input-row input { color: var(--green-d); font-weight: var(--fw-semibold); }
.input-bar.is-resolved .input-row .search-ico { color: var(--green); }

/* ===================== 06 主页面迭代 ===================== */
/* 值按 06 mockup 实测（getComputedStyle）落定：标签 11/800 #0A9A45 on #E4F5EC r7、
   名称 15/800 -0.15px、sym 12/600 ink-3、正文 14/21、画图 4 列 grid gap8 高44、分割线 var(--line)。 */

/* ---- 广场：扁平标的研究流（无分组、分割线分隔、无卡片外框） ---- */
.pz-flow { display: flex; flex-direction: column; }
.pz-item { padding: 14px 2px 16px; border-bottom: 1px solid var(--line); }
.pz-item:last-child { border-bottom: 0; }
.pz-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.pz-name { font-size: 15px; font-weight: var(--fw-extrabold); color: var(--ink); letter-spacing: -.15px; }
.pz-sym { font-size: 12px; font-weight: var(--fw-semibold); color: var(--ink-3); }
.pz-tech, .pz-fin, .pz-draw { border: 0; background: transparent; cursor: pointer; color: var(--ink); transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast); }
/* 技术分析头条卡：边框浅绿 + 渐变底 + r15（06 mockup 内联样式逐字，2026-07-08 修复——
   此前的纯色 #F2FAF5/r14 是按截图近似值，材料里并不存在）；标签浅绿 + 日期灰置右 + ›；标题加粗 2 行 clamp */
.pz-tech { display: block; width: 100%; text-align: left; padding: 12px 13px 13px; border: 1px solid #E1F2E8; border-radius: 15px; background: linear-gradient(180deg, #F3FBF7, #FBFDFC); margin-bottom: 8px; }
/* hover/选中也写成同型双 stop 渐变：gradient↔none 不可插值（会先露底色再淡入），同型渐变间可平滑过渡 */
.pz-tech:hover { background: linear-gradient(180deg, #EAF6EF, #EAF6EF); }
.pz-tech-top { display: flex; align-items: center; gap: 9px; }
.pz-tech-tag { font-size: 11px; font-weight: var(--fw-extrabold); color: #0A9A45; background: #E4F5EC; border-radius: 7px; padding: 3px 8px; flex: none; }
.pz-tech-date { margin-left: auto; font-size: 12px; color: var(--ink-3); }
.pz-arrow { flex: none; font-size: 14px; line-height: 1; color: var(--ink-3); }
.pz-tech-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 7px; font-size: 14px; line-height: 21px; font-weight: var(--fw-bold); color: var(--ink); }
/* 财报分析容器卡（图2/样例实测）：白底 + line 边 r13 + 蓝字 rgb(46,98,224) + 日期灰置右 + › */
.pz-fin { display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; padding: 12px 14px; border: 1px solid var(--line); border-radius: 13px; background: #fff; margin-bottom: 8px; }
.pz-fin:hover { border-color: #E2E6EA; background: var(--soft-2); }
.pz-fin-t { font-size: 13px; font-weight: var(--fw-bold); color: #2E62E0; }
.pz-fin-date { margin-left: auto; font-size: 12px; color: var(--ink-3); }
.pz-fin--soon { opacity: .55; cursor: default; }
.pz-fin--soon:hover { border-color: var(--line); background: #fff; }
.pz-fin-soon { margin-left: auto; font-size: 11px; color: var(--ink-3); }
/* 4 画图（图2/样例实测）：icon 上文字下、小字一行、soft-2 底 + line 边盒 */
.pz-draws { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.pz-draw { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 62px; padding: 9px 2px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft-2); font-size: 11.5px; font-weight: var(--fw-semibold); line-height: 1; color: var(--ink-2); text-align: center; white-space: nowrap; }
.pz-draw:hover { background: #fff; border-color: #E2E6EA; color: var(--ink); }
.pz-draw svg { flex: none; }
/* 单选高亮：选中容器整体填纯绿、文字/图标/日期/箭头转白；技术分析标签本身保持浅绿 */
.pz-tech.is-sel, .pz-draw.is-sel, .pz-fin.is-sel { background: var(--green); border-color: var(--green); color: #fff; }
.pz-tech.is-sel:hover, .pz-draw.is-sel:hover, .pz-fin.is-sel:hover { background: var(--green-d); border-color: var(--green-d); }
.pz-tech.is-sel .pz-tech-date, .pz-tech.is-sel .pz-tech-title, .pz-tech.is-sel .pz-arrow,
.pz-fin.is-sel .pz-fin-t, .pz-fin.is-sel .pz-fin-date, .pz-fin.is-sel .pz-arrow { color: #fff; }
.pz-tech.is-sel .pz-tech-tag { background: #E4F5EC; color: #0A9A45; }
/* 技术分析卡选中态的绿也走同型渐变（覆盖上面共享规则的纯色简写），保证与基态渐变可插值 */
.pz-tech.is-sel { background: linear-gradient(180deg, var(--green), var(--green)); }
.pz-tech.is-sel:hover { background: linear-gradient(180deg, var(--green-d), var(--green-d)); }
/* 财报分析徽章/标签（研究流卡头 +「我的」）：蓝系 */
.badge-fin { background: #EEF1FE; color: #2E62E0; }
.type-tag--fin { background: #EEF1FE; color: #2E62E0; }

/* ---- 输入区：智能画图复合芯片 + 子选项弹窗；财报分析 P1 置灰 ---- */
.tp-row { position: relative; }
.tp-combo { display: inline-flex; align-items: stretch; height: 32px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); overflow: hidden; }
.tp-combo-main { border: 0; background: transparent; padding: 0 11px; font-size: 12.5px; font-weight: var(--fw-semibold); color: var(--ink-2); cursor: pointer; transition: background var(--t-fast), color var(--t-fast); }
.tp-combo-main:hover { background: #fff; color: var(--ink); }
.tp-combo-sub { display: inline-flex; align-items: center; gap: 4px; border: 0; border-left: 1px solid var(--line); background: transparent; padding: 0 9px; font-size: 12.5px; font-weight: var(--fw-semibold); color: var(--green-d); cursor: pointer; transition: background var(--t-fast); }
.tp-combo-sub:hover { background: #fff; }
.tp-caret { font-size: 11px; line-height: 1; margin-top: -3px; }
.tp-row.has-sel .tp-combo { display: none; }                     /* 选中任一类型 → 复合芯片隐藏 */
.tp-row .tp-chip--draw:not(.is-active) { display: none; }        /* 4 画图 chip 仅在被选中时以绿胶囊出现 */
.tp-chip--soon { opacity: .55; cursor: default; }
.tp-chip--soon:hover { background: var(--soft); border-color: var(--line); color: var(--ink-2); }
.tp-popup { position: absolute; bottom: calc(100% + 8px); left: 12px; z-index: 30; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 10px 30px rgba(20, 23, 27, .12); padding: 8px; min-width: 150px; }
.tp-popup-h { font-size: 11px; color: var(--ink-3); padding: 4px 8px 6px; }
.tp-popup-opt { display: flex; width: 100%; align-items: center; gap: 6px; border: 0; background: transparent; border-radius: 8px; padding: 7px 8px; font-size: 12.5px; font-weight: var(--fw-semibold); color: var(--ink-2); cursor: pointer; text-align: left; }
.tp-popup-opt:hover { background: var(--soft); color: var(--ink); }
.tp-popup-opt.is-cur { color: var(--green-d); }
.tp-popup-opt.is-cur::after { content: "✓"; margin-left: auto; }

/* ---- 大盘监测入口图标（复用 daily-btn 胶囊样式） ---- */
.daily-btn-ico--blue { background: #EEF1FE; color: #2E62E0; }
/* 技能市场限定拦截：复用登录页居中轻提示 toast（.toast--center），不再单独弹窗——见 app.js submitResolved */

/* ---- 提示卡：叠放双卡（前卡完整 + 后卡露上沿标题条）；mg-flow2 无缝流光 ---- */
/* 无缝原理（对齐 06 交付说明）：背景 200% 宽 + 位移 0%→100% = 平移一个容器宽；
   渐变含两个完整周期（0/50/100% 同色），任一时刻画面连续、循环无跳变。 */
.tipstack { position: relative; margin: 0 var(--sp-7) var(--sp-5); }
.tipstack.has-back { padding-top: 26px; }
.tip-card { border: 0; color: #fff; cursor: pointer; border-radius: 16px; background-size: 200% 100%; animation: mg-flow2 8s linear infinite; }
.tip--green { background-image: linear-gradient(100deg, #0BA84A 0%, #12B0C4 25%, #0BA84A 50%, #12B0C4 75%, #0BA84A 100%); }
.tip--blue { background-image: linear-gradient(100deg, #2E62E0 0%, #7B49D6 25%, #2E62E0 50%, #7B49D6 75%, #2E62E0 100%); }
.tip-front { position: relative; z-index: 1; display: flex; align-items: center; gap: 11px; width: 100%; padding: 14px 15px; text-align: left; box-shadow: 0 6px 18px rgba(20, 23, 27, .14); }
.tip-back { position: absolute; top: 0; left: 8px; right: 8px; height: calc(100% - 18px); z-index: 0; display: flex; align-items: flex-start; padding: 4px 12px 0; opacity: .96; }  /* flex-start：压住 UA button 垂直居中，标题条钉在露出的上沿 */
.tip-back-row { display: flex; align-items: center; gap: 7px; width: 100%; font-size: 11.5px; font-weight: var(--fw-bold); }
.tip-stackico { font-size: 10px; opacity: .85; }
.tip-back-next { opacity: .85; font-weight: var(--fw-semibold); flex: none; }
.tip-back-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1 1 auto; text-align: left; }
.tip-arrow { flex: none; opacity: .9; }
@keyframes mg-flow2 { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }
@media (prefers-reduced-motion: reduce) { .tip-card { animation: none; } }
