/* ========== Applepool·AI 交互页 v5 ========== */
/* 保留原界面风格：浅色科技感 + 深蓝头部 + 积分 + 研究/验证Tab */
/* 报告中心：日期分组折叠式 */
.zr-app { max-width: 860px; margin: 0 auto; font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; color: #333; }
.zr-app * { box-sizing: border-box; margin: 0; padding: 0; }

/* ===== 头部（原风格：深蓝渐变） ===== */
.zr-header { background: linear-gradient(135deg, #1a2a4a, #2d4a7a); color: #fff; border-radius: 12px 12px 0 0; padding: 20px; }
.zr-header-top { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
.zr-header h2 { margin: 0; font-size: 20px; }
.zr-userinfo { display: flex; gap: 12px; align-items: center; font-size: 14px; }
.zr-vip-badge { background: rgba(255,255,255,.15); padding: 3px 10px; border-radius: 20px; }
.zr-points b { color: #ffd700; }

/* ===== 研究/验证 Tab（原风格） ===== */
.zr-tabs { display: flex; gap: 8px; margin-top: 16px; }
.zr-tab { flex: 1; padding: 10px; border: none; border-radius: 8px; background: rgba(255,255,255,.12); color: #fff; font-size: 15px; cursor: pointer; }
.zr-tab.active { background: #ffd700; color: #1a2a4a; font-weight: 700; }
.zr-tab:disabled { opacity: .5; cursor: not-allowed; }

/* ===== 模式容器（原风格：白底内容区） ===== */
.zr-mode { display: none; padding: 20px; background: #fff; border: 1px solid #e5e5e5; border-top: none; border-radius: 0 0 12px 12px; }
.zr-mode.active { display: block; }
.zr-page { display: none; }
.zr-page.active { display: block; }

/* ===== 首页按钮区（立体按钮样式） ===== */
.zr-page-home { padding: 10px 0 20px; }
.zr-home-sub { text-align: center; color: #666; font-size: 15px; margin: 8px 0 16px; }

/* 股票输入框（基础报告按钮上方） */
.zr-stock-input-row { max-width: 480px; margin: 0 auto 10px; display: flex; gap: 8px; }
.zr-stock-input { flex: 1; padding: 12px 14px; border: 2px solid #d1d5db; border-radius: 10px; font-size: 15px; outline: none; transition: border-color .2s; box-shadow: inset 0 1px 3px rgba(0,0,0,.05); }
.zr-stock-input:focus { border-color: #2d4a7a; box-shadow: 0 0 0 3px rgba(45,74,122,.15); }
.zr-btn-input { background: linear-gradient(180deg, #4a7cc4, #2d4a7a); color: #fff; padding: 0 20px; border-radius: 10px; font-size: 14px; font-weight: 600; box-shadow: 0 3px 8px rgba(45,74,122,.3); white-space: nowrap; }

/* 已添加股票标签（带×删除） */
.zr-stock-tags { max-width: 480px; margin: 0 auto 6px; display: flex; flex-wrap: wrap; gap: 8px; min-height: 0; }
.zr-stock-tag { display: inline-flex; align-items: center; gap: 6px; background: #eff6ff; border: 1px solid #bfdbfe; color: #1e40af; border-radius: 20px; padding: 5px 10px 5px 14px; font-size: 14px; font-weight: 500; }
.zr-stock-tag .zr-tag-x { background: none; border: none; color: #1e40af; font-size: 16px; line-height: 1; cursor: pointer; padding: 0 2px; opacity: .6; }
.zr-stock-tag .zr-tag-x:hover { opacity: 1; color: #dc2626; }
.zr-stock-limit-tip { max-width: 480px; margin: 0 auto 4px; font-size: 12px; color: #9ca3af; }
.zr-close-tip { max-width: 480px; margin: 0 auto 16px; font-size: 13px; color: #6b7280; background: #f0fdf4; border: 1px dashed #86efac; border-radius: 8px; padding: 8px 12px; text-align: center; }

.zr-btn-group { max-width: 480px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.zr-btn { border: none; cursor: pointer; text-align: center; transition: all .15s; touch-action: manipulation; position: relative; }
.zr-btn:active { transform: translateY(2px); box-shadow: 0 1px 3px rgba(0,0,0,.2) !important; }

/* 基础报告复合按钮（立体：渐变+高光+底部阴影） */
.zr-btn-base { background: linear-gradient(180deg, #3a6bb8 0%, #2d4a7a 60%, #1a2a4a 100%); color: #fff; padding: 18px 20px 16px; border-radius: 14px; box-shadow: 0 6px 16px rgba(26,42,74,.4), inset 0 1px 0 rgba(255,255,255,.25); display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; }
.zr-btn-base:hover { box-shadow: 0 8px 20px rgba(26,42,74,.5), inset 0 1px 0 rgba(255,255,255,.3); transform: translateY(-1px); }
.zr-btn-base .zr-base-title { font-size: 17px; font-weight: 700; text-shadow: 0 1px 2px rgba(0,0,0,.3); display: flex; align-items: center; gap: 8px; justify-content: center; }
/* 开启/追踪 状态小标识 */
.zr-base-state { display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 10px; vertical-align: middle; }
.zr-base-state.zr-st-open { background: #22c55e; color: #fff; box-shadow: 0 1px 4px rgba(34,197,94,.4); }
.zr-base-state.zr-st-track { background: #f59e0b; color: #fff; box-shadow: 0 1px 4px rgba(245,158,11,.4); }
.zr-base-tip { font-size: 12px; color: #9ca3af; text-align: center; margin: -6px 0 2px; }
.zr-btn-base .zr-base-tags { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.zr-btn-base .zr-base-tag { display: inline-block; border-radius: 8px; padding: 2px 12px; font-size: 12px; font-weight: 600; box-shadow: 0 1px 3px rgba(0,0,0,.15); }
.zr-tag-val { background: #dbeafe; color: #1e40af; }
.zr-tag-kline { background: #d1fae5; color: #065f46; }
.zr-tag-risk { background: #fee2e2; color: #991b1b; }

/* 其他按钮（立体：渐变+底部深色阴影） */
.zr-btn-secondary { background: linear-gradient(180deg, #4a7cc4 0%, #2d4a7a 100%); color: #fff; padding: 14px 0; font-size: 15px; font-weight: 600; border-radius: 12px; width: 100%; box-shadow: 0 4px 10px rgba(45,74,122,.35), inset 0 1px 0 rgba(255,255,255,.2); text-shadow: 0 1px 2px rgba(0,0,0,.2); }
.zr-btn-secondary:hover { box-shadow: 0 6px 14px rgba(45,74,122,.45), inset 0 1px 0 rgba(255,255,255,.25); transform: translateY(-1px); }
.zr-btn-center { margin-top: 8px; background: linear-gradient(180deg, #f8b45a 0%, #f6ad55 45%, #e08a2e 100%); color: #4a2c00; padding: 14px 0; font-size: 15px; font-weight: 700; border-radius: 12px; width: 100%; max-width: 480px; display: block; margin-left: auto; margin-right: auto; box-shadow: 0 5px 12px rgba(224,138,46,.4), inset 0 1px 0 rgba(255,255,255,.4); text-shadow: 0 1px 0 rgba(255,255,255,.3); }
.zr-btn-center:hover { box-shadow: 0 7px 16px rgba(224,138,46,.5), inset 0 1px 0 rgba(255,255,255,.45); transform: translateY(-1px); }
.zr-btn-solid { display: inline-block; background: linear-gradient(180deg, #4a7cc4 0%, #2d4a7a 100%); color: #fff; padding: 10px 24px; border-radius: 8px; text-decoration: none; margin-top: 12px; box-shadow: 0 3px 8px rgba(45,74,122,.3); }

/* ===== 报告中心（侧边栏布局 v6） ===== */
.zr-page-list { padding-top: 4px; }
.zr-list-header { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid #e5e5e7; }
.zr-back-btn { background: transparent; border: 1px solid #d1d5db; border-radius: 8px; font-size: 14px; line-height: 1; color: #374151; cursor: pointer; padding: 6px 12px; display: flex; align-items: center; gap: 4px; white-space: nowrap; }
.zr-back-btn:hover { background: #f3f4f6; }
.zr-back-arrow { font-size: 1.4rem; line-height: 0.8; }
.zr-list-header h2 { font-size: 18px; color: #1f2937; flex: 1; }
.zr-badge { background: #2d4a7a; color: #fff; border-radius: 20px; padding: 2px 12px; font-size: 12px; font-weight: 500; white-space: nowrap; }

/* 双栏布局 */
.zr-center-layout { display: flex; gap: 12px; min-height: 320px; }

/* 左侧：日期卡片侧边栏 */
.zr-sidebar { width: 42%; max-width: 240px; min-width: 160px; border-right: 1px solid #e5e5e7; padding-right: 10px; max-height: 520px; overflow-y: auto; }
.zr-sidebar-empty, .zr-detail-empty { color: #9ca3af; font-size: 13px; text-align: center; padding: 30px 10px; }

/* 日期卡片（含股票名列表） */
.zr-date-card { margin-bottom: 8px; border: 1px solid #e5e5e5; border-radius: 8px; background: #fff; overflow: hidden; }
.zr-date-card-head { padding: 8px 10px; background: #f8f9fa; font-size: 12px; font-weight: 600; color: #374151; display: flex; align-items: center; gap: 6px; }
.zr-date-card-head .zr-date-cnt { font-size: 10px; color: #999; font-weight: 400; }
.zr-date-card.active { border-color: #2d4a7a; box-shadow: 0 2px 8px rgba(45,74,122,.15); }

/* 股票名列表（点股票展开该日报告） */
.zr-stock-list { padding: 4px 6px; }
.zr-stock-link { display: block; padding: 6px 8px; border-radius: 6px; font-size: 13px; color: #1f2937; cursor: pointer; transition: background .15s; }
.zr-stock-link:hover { background: #f0f4fa; }
.zr-stock-link.active { background: #2d4a7a; color: #fff; }

/* 右侧：报告详情 */
.zr-detail { flex: 1; padding-left: 4px; overflow-y: auto; max-height: 520px; }

/* 右侧报告列表 */
.zr-detail-head { font-size: 14px; font-weight: 600; color: #374151; padding: 4px 0 10px; border-bottom: 1px solid #e5e5e7; margin-bottom: 10px; }
.zr-detail-head .flat { color: #6b7280; }

/* 日期级全局警告条 */
.zr-date-warning { background: #fef3c7; border-left: 4px solid #f59e0b; color: #92400e; font-size: 12px; padding: 8px 12px; border-radius: 6px; margin-bottom: 8px; }

/* 报告条目 */
.zr-report-item { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; background: #fff; border-radius: 8px; padding: 10px 12px; margin-bottom: 6px; box-shadow: 0 1px 3px rgba(0,0,0,.05); cursor: pointer; transition: background .15s; }
.zr-report-item:hover { background: #f8fafc; }
.zr-report-item:active { background: #f3f4f6; }
.zr-report-item .zr-stock-name { font-size: 14px; font-weight: 500; color: #1f2937; }
.zr-report-item .zr-type-label { display: inline-block; border-radius: 6px; padding: 1px 8px; font-size: 11px; font-weight: 500; }
.zr-report-item .zr-gen-time { font-size: 12px; color: #9ca3af; margin-left: auto; }
.zr-warn-tag { color: #dc2626; font-size: 11px; font-weight: 500; white-space: nowrap; }

/* 类型标签颜色 */
.zr-t-valuation .zr-type-label { background: #dbeafe; color: #1e40af; }
.zr-t-kline .zr-type-label { background: #d1fae5; color: #065f46; }
.zr-t-risk .zr-type-label { background: #fee2e2; color: #991b1b; }
.zr-t-indicator .zr-type-label { background: #fef3c7; color: #92400e; }
.zr-t-summary .zr-type-label { background: #e5e7eb; color: #4b5563; }

.zr-empty-state { text-align: center; color: #9ca3af; padding: 50px 0; font-size: 14px; }

/* ===== 声明区（每个页面底部：警告+AI声明+免责） ===== */
.zr-declaration { margin-top: 20px; border-top: 1px dashed #d1d5db; padding-top: 12px; }
.zr-decl-warn { background: #fef3c7; border-left: 3px solid #f59e0b; color: #92400e; font-size: 12px; padding: 8px 12px; border-radius: 6px; margin-bottom: 8px; }
.zr-decl-ai { background: #eff6ff; border-left: 3px solid #3b82f6; color: #1e40af; font-size: 12px; padding: 8px 12px; border-radius: 6px; margin-bottom: 8px; }
.zr-decl-risk { background: #fef2f2; border-left: 3px solid #ef4444; color: #991b1b; font-size: 12px; padding: 8px 12px; border-radius: 6px; }

/* ===== 自定义弹窗 ===== */
.zr-modal-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.55); z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 20px; }
.zr-modal { background: #fff; border-radius: 14px; max-width: 400px; width: 100%; box-shadow: 0 10px 40px rgba(0,0,0,.3); overflow: hidden; }
.zr-modal-title { background: linear-gradient(135deg, #2d4a7a, #3a6bb8); color: #fff; padding: 14px 18px; font-size: 15px; font-weight: 700; }
.zr-modal-body { padding: 18px; font-size: 14px; color: #374151; line-height: 1.9; white-space: pre-line; }
.zr-modal-body .zr-modal-cost { color: #e08a2e; font-weight: 700; }
.zr-modal-btns { display: flex; gap: 10px; padding: 0 18px 18px; }
.zr-modal-btn { flex: 1; padding: 11px 0; border: none; border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; box-shadow: 0 3px 8px rgba(0,0,0,.15); }
.zr-modal-btn-primary { background: linear-gradient(180deg, #4a7cc4, #2d4a7a); color: #fff; }
.zr-modal-btn-warn { background: linear-gradient(180deg, #f8b45a, #e08a2e); color: #4a2c00; }
.zr-modal-btn-cancel { background: #e5e7eb; color: #4b5563; box-shadow: none; }
.zr-modal-btn:hover { filter: brightness(1.08); }

/* ===== 追踪记录区 ===== */
.zr-btn-mini { background: linear-gradient(180deg, #4a7cc4, #2d4a7a); color: #fff; border: none; border-radius: 6px; padding: 5px 14px; font-size: 12px; cursor: pointer; box-shadow: 0 2px 5px rgba(45,74,122,.3); }
.zr-btn-mini:hover { box-shadow: 0 3px 8px rgba(45,74,122,.4); }

/* 追踪记录合并进日期报告：左侧股票名小标签 */
.zr-track-tag { display: inline-block; font-size: 11px; line-height: 1; padding: 3px 6px; border-radius: 8px; background: #e8f1fb; color: #2d4a7a; border: 1px solid #b8d0ec; vertical-align: middle; margin-left: 2px; }
.zr-track-tag.off { background: #f3f4f6; color: #9ca3af; border-color: #e5e5e7; }

/* 追踪记录合并进日期报告：右侧报告列表顶部状态条 */
.zr-track-bar { display: flex; align-items: center; gap: 10px; margin: 10px 0 6px; padding: 8px 12px; background: #eef5ff; border: 1px solid #c6dcf5; border-radius: 8px; font-size: 13px; color: #2d4a7a; }
.zr-track-bar .zr-track-bar-info { flex: 1; }
.zr-track-bar.off { background: #f9fafb; border-color: #e5e5e7; color: #6b7280; }

/* 验证模式占位 */
.zr-verify-placeholder { text-align: center; padding: 40px 0; color: #666; }

/* 底部免责 */
.zr-disclaimer { text-align: center; font-size: 12px; color: #999; padding: 12px; }

/* ===== 移动端适配 ===== */
@media (max-width: 640px) {
	.zr-app { margin: 0 -8px; }
	.zr-header { padding: 16px; }
	.zr-mode { padding: 14px; }
	.zr-date-header { padding: 10px 12px; }
	.zr-report-item { padding: 8px 10px; }
}

/* ===== 移动端适配增强 v6.1（仅追加，不改动原有规则） =====
   手机端：双栏改为上下堆叠，日期栏变顶部窄条，报告区占满全宽 */
@media (max-width: 640px) {
	/* 消除负边距导致的横向溢出 */
	.zr-app { margin: 0; }
	/* 双栏 → 上下堆叠 */
	.zr-center-layout { flex-direction: column; gap: 10px; }
	/* 左侧日期栏：全宽 + 限高内部滚动，不再挤压右侧 */
	.zr-sidebar {
		width: 100%;
		max-width: none;
		min-width: 0;
		border-right: none;
		border-bottom: 1px solid #e5e5e7;
		padding-right: 0;
		padding-bottom: 8px;
		max-height: 220px;
		-webkit-overflow-scrolling: touch;
	}
	/* 日期卡片：加大触控目标 */
	.zr-date-card-head { padding: 9px 10px; font-size: 13px; }
	.zr-stock-link { padding: 10px 8px; font-size: 14px; }
	/* 右侧报告区：全宽、不限制高度 */
	.zr-detail { max-height: none; padding-left: 0; overflow-y: visible; }
	/* 刷新/续费状态条：信息独占一行换行显示，按钮全宽好点按 */
	.zr-track-bar { flex-wrap: wrap; gap: 8px; padding: 10px 12px; }
	.zr-track-bar .zr-track-bar-info { flex: 1 1 100%; line-height: 1.7; }
	.zr-track-bar .zr-btn-mini { flex: 1 1 100%; padding: 10px 14px; font-size: 13px; border-radius: 8px; }
	/* 报告条目：时间/警告标签不缩不换行 */
	.zr-report-item .zr-gen-time { flex-shrink: 0; white-space: nowrap; }
	.zr-report-item .zr-warn-tag { flex-shrink: 0; }
	/* 首页股票输入行：输入框与添加按钮上下各占一行 */
	.zr-stock-input-row { flex-wrap: wrap; }
	.zr-stock-input-row .zr-btn-input { flex: 1 1 100%; padding: 13px 0; }
}

/* ===== 报告总计徽章标注(2026-08-14 恢复徽章 + 追加标注,仅追加) ===== */
.zr-list-header .zr-badge-label { font-size: 12px; color: #6b7280; white-space: nowrap; margin-left: -4px; }
@media (max-width: 640px) {
	.zr-list-header .zr-badge-label { font-size: 11px; }
}

/* ===== 弹窗积分选项卡片(2026-08-14 需求2:单次/追踪 不同圆角底色+拉宽间隔) ===== */
.zr-cost-options { display: flex; gap: 24px; margin-top: 12px; }
.zr-cost-opt { display: inline-block; padding: 10px 18px; border-radius: 12px; font-size: 14px; font-weight: 700; line-height: 1.4; }
.zr-cost-single { background: #e8f1fb; color: #2d4a7a; border: 1px solid #b8d0ec; }
.zr-cost-pkg { background: #fff3e0; color: #9a5b00; border: 1px solid #f0c98a; }
@media (max-width: 640px) {
	.zr-cost-options { gap: 14px; flex-wrap: wrap; }
	.zr-cost-opt { flex: 1 1 100%; text-align: center; }
}

/* ===== 左侧日期卡片折叠(2026-08-14 需求1:点击日期标题收起/展开) ===== */
.zr-date-card-head { cursor: pointer; user-select: none; }
.zr-date-arrow { margin-left: auto; font-size: 10px; color: #9ca3af; transition: transform .2s; }
.zr-date-card.collapsed .zr-date-arrow { transform: rotate(-90deg); }
.zr-date-card.collapsed .zr-stock-list { display: none; }

/* ===== 验证模块：观摩/深度 子Tab+双栏 (2026-08-14 需求4) ===== */
.zr-verify-tabs { display: flex; gap: 10px; margin-bottom: 14px; }
.zr-vtab { flex: 1; padding: 12px 0; border: 1px solid #e5e5e7; border-radius: 10px; background: #fff; font-size: 15px; font-weight: 600; color: #6b7280; cursor: pointer; transition: all .15s; }
.zr-vtab.active { background: linear-gradient(135deg, #2d4a7a, #3a6bb8); color: #fff; border-color: #2d4a7a; box-shadow: 0 3px 10px rgba(45,74,122,.2); }
.zr-vtab-panel { display: none; }
.zr-vtab-panel.active { display: block; }
/* 观摩表单 */
.zr-obs-form { background: #fff; border: 1px solid #e5e5e7; border-radius: 10px; overflow: hidden; }
.zr-obs-row { display: flex; align-items: center; padding: 12px 14px; border-bottom: 1px solid #f0f0f0; }
.zr-obs-row:last-child { border-bottom: none; }
.zr-obs-label { width: 90px; flex-shrink: 0; font-size: 13px; color: #6b7280; }
.zr-obs-value { flex: 1; font-size: 14px; font-weight: 600; color: #1f2937; }
.zr-obs-value.pos { color: #dc2626; }
.zr-obs-value.neg { color: #16a34a; }
.zr-obs-remark { font-weight: 400; color: #4b5563; line-height: 1.7; }
/* 深度文章 */
.zr-depth-content { background: #fff; border: 1px solid #e5e5e7; border-radius: 10px; padding: 18px; font-size: 14px; line-height: 2; color: #374151; word-break: break-word; }
.zr-depth-content p { margin: 0 0 12px; }
.zr-depth-content img { max-width: 100%; height: auto; border-radius: 8px; }
@media (max-width: 640px) {
	.zr-obs-label { width: 70px; }
}

/* ===== 报告中心：日期·股票名条目 立体凸显 (2026-08-14 需求2) ===== */
.zr-detail-head {
	background: linear-gradient(135deg, #2d4a7a, #3a6bb8 60%, #4a7cc4);
	color: #fff;
	padding: 12px 14px;
	border-radius: 10px;
	border-bottom: none;
	margin-bottom: 12px;
	font-size: 14px;
	font-weight: 700;
	text-shadow: 0 1px 2px rgba(0,0,0,.25);
	box-shadow: 0 4px 12px rgba(45,74,122,.35), inset 0 1px 0 rgba(255,255,255,.2);
	display: flex;
	align-items: center;
	gap: 8px;
}
@media (max-width: 640px) {
	.zr-detail-head { padding: 10px 12px; font-size: 13px; }
}

/* ===== 收益日历 (2026-08-14 需求3) ===== */
.zr-obs-toolbar { display: flex; gap: 10px; margin-bottom: 12px; }
.zr-btn-calendar { background: linear-gradient(180deg, #4a7cc4, #2d4a7a); color: #fff; border: none; padding: 10px 18px; border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; box-shadow: 0 3px 8px rgba(45,74,122,.25); }
.zr-btn-backlist { background: #f3f4f6; color: #374151; border: 1px solid #e5e5e7; padding: 10px 18px; border-radius: 10px; font-size: 13px; font-weight: 600; cursor: pointer; }
.zr-cal-rank-title { font-size: 14px; font-weight: 700; color: #1f2937; padding: 8px 10px; background: #f8f9fa; border-radius: 8px 8px 0 0; border-bottom: 1px solid #e5e5e7; display: flex; align-items: center; gap: 6px; }
.zr-cal-rank-item { padding: 10px 12px; border-bottom: 1px solid #f0f0f0; cursor: pointer; transition: background .15s; }
.zr-cal-rank-item:hover { background: #f8fafc; }
.zr-cal-rank-item.active { background: #eef5ff; border-left: 3px solid #2d4a7a; }
.zr-cal-rank-head { display: flex; align-items: center; gap: 8px; }
.zr-cal-rank-medal { font-size: 15px; }
.zr-cal-rank-name { flex: 1; font-size: 14px; font-weight: 600; color: #1f2937; }
.zr-cal-rank-cnt { font-size: 11px; color: #9ca3af; }
.zr-cal-rank-rows { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.zr-cal-rate { font-size: 11px; color: #6b7280; background: #f3f4f6; border-radius: 6px; padding: 2px 8px; }
.zr-cal-rate b { color: #2d4a7a; }
.zr-cal-month { background: #fff; border: 1px solid #e5e5e7; border-radius: 10px; margin-bottom: 12px; overflow: hidden; }
.zr-cal-month-title { padding: 8px 12px; font-size: 13px; font-weight: 700; color: #374151; background: #f8f9fa; border-bottom: 1px solid #e5e5e7; }
.zr-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; padding: 6px; }
.zr-cal-weekday { text-align: center; font-size: 11px; color: #9ca3af; padding: 3px 0; }
.zr-cal-cell { min-height: 46px; border-radius: 6px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #fafafa; font-size: 11px; }
.zr-cal-cell.empty { background: transparent; }
.zr-cal-cell .zr-cal-day { color: #6b7280; font-weight: 600; }
.zr-cal-cell.trade { cursor: default; }
.zr-cal-cell.trade.pos { background: #fef2f2; }
.zr-cal-cell.trade.pos .zr-cal-val { color: #dc2626; font-weight: 700; }
.zr-cal-cell.trade.neg { background: #f0fdf4; }
.zr-cal-cell.trade.neg .zr-cal-val { color: #16a34a; font-weight: 700; }
.zr-cal-cell.trade.flat .zr-cal-val { color: #6b7280; }
.zr-cal-detail-title { font-size: 14px; font-weight: 700; color: #1f2937; margin: 14px 0 8px; }
.zr-cal-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 10px; overflow: hidden; font-size: 13px; }
.zr-cal-table th { background: #f8f9fa; color: #374151; font-weight: 600; padding: 8px 10px; text-align: left; border-bottom: 1px solid #e5e5e7; }
.zr-cal-table td { padding: 8px 10px; border-bottom: 1px solid #f0f0f0; color: #374151; }
.zr-cal-table tr:last-child td { border-bottom: none; }
.zr-cal-table td.pos { color: #dc2626; font-weight: 700; }
.zr-cal-table td.neg { color: #16a34a; font-weight: 700; }
@media (max-width: 640px) {
	.zr-cal-cell { min-height: 38px; font-size: 10px; }
	.zr-cal-cell .zr-cal-val { font-size: 9px; }
}

/* ===== 第一页移动端压缩 (2026-08-14 需求:输入框+按钮一行/压缩间距/不滚屏见研究策略) ===== */
@media (max-width: 640px) {
	/* 输入框与添加按钮同一行（覆盖旧 wrap 规则） */
	.zr-stock-input-row { flex-wrap: nowrap; gap: 6px; margin-bottom: 6px; }
	.zr-stock-input-row .zr-btn-input { flex: 0 0 auto; padding: 0 16px; font-size: 13px; }
	.zr-stock-input { padding: 10px 12px; font-size: 14px; }
	/* 顶部标题与输入框间隔拉窄 */
	.zr-home-sub { margin: 0 0 8px; font-size: 14px; }
	/* 可关闭提示压缩 */
	.zr-close-tip { margin: 0 auto 8px; padding: 6px 10px; font-size: 12px; }
	/* 按钮组间距压缩 */
	.zr-btn-group { gap: 8px; }
	.zr-btn-base { padding: 12px 16px 10px; gap: 6px; }
	.zr-btn-base .zr-base-title { font-size: 16px; }
	.zr-base-tip { margin: 0; font-size: 11px; }
	.zr-btn-secondary { padding: 11px 0; font-size: 14px; }
	.zr-btn-center { margin-top: 4px; padding: 11px 0; font-size: 14px; }
	.zr-stock-tags { margin-bottom: 2px; }
	.zr-mode { padding: 12px 14px; }
}

/* ===== 第一页移动端：压缩输入框↔基础报告按钮 大间隔 (2026-08-14) ===== */
@media (max-width: 640px) {
	/* 「本页面可随时关闭」提示在弹窗已有，移动端隐藏避免占大空白 */
	.zr-close-tip { display: none; }
	.zr-stock-input-row { margin-bottom: 2px; }
	.zr-stock-tags { margin-bottom: 2px; min-height: 0; }
}

/* ===== 报告生成中状态 (2026-08-14 需求1) ===== */
.zr-pending-bar { background: #fffbeb; border: 1px solid #fcd34d; border-radius: 10px; padding: 10px 14px; margin-bottom: 10px; }
.zr-pending-item { font-size: 13px; color: #92400e; font-weight: 600; display: flex; align-items: center; gap: 2px; }
.zr-pending-item + .zr-pending-item { margin-top: 6px; }
.zr-pending-dots { animation: zrBlink 1.2s infinite; }
@keyframes zrBlink { 0%,100% { opacity: .3; } 50% { opacity: 1; } }
.zr-pend-tag { display: inline-block; font-size: 10px; font-weight: 600; color: #92400e; background: #fef3c7; border: 1px solid #fcd34d; border-radius: 8px; padding: 1px 6px; vertical-align: middle; margin-left: 2px; animation: zrBlink 1.2s infinite; }

/* ===== 验证模式关闭提示 (2026-08-14) ===== */
.zr-verify-sub { font-size: 13px; color: #9ca3af; margin-top: 6px; }

/* ===== 按钮?介绍图标 (2026-08-15) ===== */
.zr-btn-info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(139,148,158,.15);
  border: 1px solid #d1d5db;
  color: #6b7280;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  vertical-align: middle;
  transition: all .2s;
}
.zr-btn-info:hover { background: rgba(59,130,246,.15); border-color: #3b82f6; color: #3b82f6; }
.zr-track-info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(139,148,158,.15);
  border: 1px solid #d1d5db;
  color: #6b7280;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  transition: all .2s;
}
.zr-track-info:hover { background: rgba(59,130,246,.15); border-color: #3b82f6; color: #3b82f6; }
.zr-checkin-btn { display: inline-flex; align-items: center; }
.zr-checkin-btn .but { font-size: 12px; }
@media (max-width: 640px) {
  .zr-checkin-btn { margin-top: 4px; }
  .zr-btn-info { width: 18px; height: 18px; font-size: 11px; }
}

/* ===== 按钮行：按钮 + 侧边?号 (2026-08-15) ===== */
.zr-btn-row {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.zr-btn-row .zr-btn {
  flex: 1;
  min-width: 0;
}
.zr-btn-row .zr-btn-info {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
}
.zr-btn-row-center {
  max-width: 480px;
  margin: 0 auto;
}
.zr-btn-row-center .zr-btn-info {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
}
@media (max-width: 640px) {
  .zr-btn-row { gap: 6px; }
  .zr-btn-row .zr-btn-info,
  .zr-btn-row-center .zr-btn-info {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    font-size: 11px;
  }
}

/* ===== 报告中心 v7 重构 (2026-08-15) ===== */
/* 左侧:股票列表(去日期分组) */
.zr-stock-link {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 10px;
  cursor: pointer;
  border-radius: 8px;
  transition: background .15s;
  flex-wrap: wrap;
}
.zr-stock-link .zr-stock-name { font-weight: 600; font-size: 14px; }
.zr-stock-link .zr-stock-last { font-size: 10.5px; color: #9ca3af; margin-left: auto; }
.zr-stock-link.active { background: rgba(59,130,246,.12); }
.zr-stock-link:hover { background: rgba(59,130,246,.07); }
.zr-stock-list { padding: 4px; }

/* 右侧:股票快捷操作 + 两字段报告列表 */
.zr-stock-actions {
  display: flex;
  gap: 8px;
  padding: 10px 12px;
  flex-wrap: wrap;
}
.zr-act-simple { background: rgba(0,184,148,.12); color: #00b894; border: 1px solid rgba(0,184,148,.4); }
.zr-act-ind { background: rgba(59,130,246,.1); color: #3b82f6; border: 1px solid rgba(59,130,246,.35); }
.zr-report-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 12px;
  cursor: pointer;
  border-bottom: 1px solid #f3f4f6;
  transition: background .15s;
}
.zr-report-item:hover { background: rgba(59,130,246,.05); }
.zr-report-item .zr-gen-dt { font-size: 12px; color: #6b7280; flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.zr-report-item .zr-type-label { font-size: 13px; font-weight: 600; }
@media (max-width: 640px) {
  .zr-report-item { flex-wrap: wrap; gap: 4px; }
  .zr-gen-dt { width: 100%; font-size: 11px; }
}

/* 快捷按钮禁用态(免费次数用完) */
.zr-act-simple.disabled, .zr-act-ind.disabled {
  background: #e5e7eb !important;
  color: #9ca3af !important;
  border-color: #d1d5db !important;
  cursor: not-allowed !important;
}
.zr-track-info-inline {
  font-size: 11px;
  color: #d97706;
  background: #fef3c7;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 600;
}

/* ===== 队列加速按钮（2026-08-15 需求：报告队列加速） ===== */
.zr-modal-btn-speed {
    background: linear-gradient(135deg, #f59e0b, #f97316);
    color: #fff;
    border: none;
}
.zr-modal-btn-speed:hover {
    background: linear-gradient(135deg, #f59e0b, #ea580c);
}

/* ===== 一键多维度报告（2026-08-15 需求12：圆角长方形底色块，平铺凸显，非按钮） ===== */
.zr-home-sub {
    display: inline-block;
    text-align: center;
    color: #1e40af;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 1px;
    padding: 8px 24px;
    border-radius: 10px;
    background: #eff6ff;
    border: 1px solid #dbeafe;
    margin: 8px auto 16px;
}

/* ===== 队列加速勾选框 + 追踪状态行（2026-08-15 需求1/3） ===== */
.zr-queue-line {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    font-size: 14px; color: #374151; flex-wrap: wrap;
}
.zr-speed-check {
    display: inline-flex; align-items: center; gap: 4px;
    background: #fef3c7; border: 1px solid #fcd34d; color: #92400e;
    border-radius: 999px; padding: 3px 12px; font-size: 13px; cursor: pointer;
}
.zr-speed-check input { accent-color: #f59e0b; cursor: pointer; }
.zr-speed-check:has(input:checked) { background: #fde68a; border-color: #f59e0b; }
/* 已加速状态 */
.zr-speed-check input:disabled { accent-color: #10b981; }
/* 追踪状态行（报告中心股票详情 actions 内） */
.zr-track-refresh {
    background: #ecfdf5; border: 1px solid #6ee7b7; color: #047857;
    border-radius: 999px; padding: 3px 12px; font-size: 13px; font-weight: 600; cursor: pointer;
}
.zr-track-refresh:hover { background: #d1fae5; }
.zr-track-live { color: #047857; font-size: 13px; display: inline-flex; align-items: center; gap: 4px; }
.zr-track-expiry { width: 100%; text-align: left; color: #9ca3af; font-size: 12px; margin-top: 2px; }
.zr-track-inline.off { color: #9ca3af; font-size: 13px; }
.zr-track-inline.off button { margin-left: 6px; }
.zr-btn-info-sm { background: #e5e7eb; border: none; color: #6b7280; border-radius: 999px; padding: 2px 8px; font-size: 12px; cursor: pointer; }
.zr-btn-info-sm:hover { background: #d1d5db; }

/* ===== 问号按钮统一：小号灰色圆圈（2026-08-15 需求11-1） ===== */
.zr-btn-info, .zr-track-info, .zr-btn-info-sm {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px;
    border-radius: 50% !important;
    background: #d1d5db !important;
    border: none !important;
    color: #6b7280 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    vertical-align: middle;
}
.zr-btn-info:hover, .zr-track-info:hover, .zr-btn-info-sm:hover {
    background: #9ca3af !important;
    color: #fff !important;
}

/* ===== 股票列表选中深色条 + 收起符号（2026-08-15 需求11-2） ===== */
.zr-stock-link {
    position: relative;
    padding-right: 26px;
}
.zr-stock-link::after {
    content: '>';
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11px;
    color: #c0c8d4;
    transition: transform .2s;
}
.zr-stock-link.active::after {
    color: rgba(255,255,255,.85);
    transform: translateY(-50%) rotate(90deg);
}
.zr-stock-link.active {
    background: #2d4a7a !important;
    color: #fff !important;
    box-shadow: 0 2px 6px rgba(45,74,122,.35);
}
.zr-stock-link.active .zr-stock-name { color: #fff !important; }
.zr-stock-link.active .zr-stock-last { color: rgba(255,255,255,.7) !important; }
.zr-stock-link.active .zr-track-tag { color: #fff !important; }
.zr-stock-link.active .zr-date-cnt { color: rgba(255,255,255,.85) !important; }

/* ===== 加速红色圆形按钮 + 追踪订阅按钮（2026-08-15 需求11-4/11-3） ===== */
.zr-speed-btn {
    width: 22px; height: 22px;
    border-radius: 50%;
    border: none;
    background: radial-gradient(circle at 30% 30%, #f87171, #dc2626);
    color: #fff;
    font-size: 12px;
    line-height: 1;
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(220,38,38,.4);
    padding: 0;
    transition: transform .15s, box-shadow .15s;
    vertical-align: middle;
}
.zr-speed-btn:hover { transform: scale(1.12); box-shadow: 0 3px 8px rgba(220,38,38,.5); }
.zr-speed-btn:active { transform: scale(.95); }
.zr-speed-btn-done {
    width: 22px; height: 22px;
    border-radius: 50%;
    border: none;
    background: #10b981;
    color: #fff;
    font-size: 11px;
    display: inline-flex; align-items: center; justify-content: center;
    cursor: default;
    vertical-align: middle;
}
/* 追踪订阅按钮（无追踪次数时） */
.zr-track-sub {
    background: #fff7ed;
    border: 1px solid #fdba74;
    color: #c2410c;
    border-radius: 999px;
    padding: 3px 12px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.zr-track-sub:hover { background: #ffedd5; }

/* 移动端：一键多维度报告底色块保持居中（2026-08-15 需求12） */
@media (max-width: 768px) {
    .zr-home-sub { margin: 8px auto 14px; font-size: 14px; padding: 7px 18px; }
}

/* ===== 行动速查/研究策略 间距分开（2026-08-15 需求14-2） ===== */
.zr-stock-actions .zr-act-simple {
    margin-right: 14px;
}
.zr-stock-actions .zr-act-ind {
    margin-left: 14px;
}

/* ===== 追踪订阅按钮组水平居中对齐（2026-08-15 需求15-2） ===== */
.zr-stock-actions {
    align-items: center;
}
.zr-stock-actions .zr-btn-info-sm {
    margin-left: 2px;
}

/* ===== 苹果分析按钮缩小为文字宽度 + 报告中心下方拉开间隔 (2026-08-26) ===== */
.zr-btn-row-apple {
    margin-top: 28px;
    justify-content: center;
}
.zr-btn-row .zr-btn.zr-btn-apple-mini {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
}
.zr-btn-apple-mini {
    display: inline-block;
    background: linear-gradient(180deg, #f6a55c 0%, #f08a3e 55%, #d96a22 100%);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1px;
    padding: 9px 24px;
    border-radius: 10px;
    box-shadow: 0 3px 0 #b3531a, 0 6px 12px rgba(217,106,34,.4), inset 0 1px 0 rgba(255,255,255,.35);
    text-shadow: 0 1px 2px rgba(120,45,0,.35);
}
.zr-btn-apple-mini:hover {
    background: linear-gradient(180deg, #f8b570 0%, #f2954b 55%, #e0762c 100%);
    box-shadow: 0 4px 0 #b3531a, 0 8px 16px rgba(217,106,34,.5), inset 0 1px 0 rgba(255,255,255,.4);
    transform: translateY(-1px);
}
.zr-btn-apple-mini:active {
    transform: translateY(3px);
    box-shadow: 0 1px 0 #b3531a, 0 3px 6px rgba(217,106,34,.3), inset 0 1px 0 rgba(255,255,255,.3) !important;
}
.zr-btn-apple {
	background: linear-gradient(180deg, #f6a55c 0%, #f08a3e 55%, #d96a22 100%);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 1px;
	padding: 16px 20px;
	border-radius: 14px;
	width: 100%;
	box-shadow:
		0 6px 0 #b3531a,
		0 12px 20px rgba(217,106,34,.45),
		inset 0 1px 0 rgba(255,255,255,.35),
		inset 0 -2px 4px rgba(120,45,0,.2);
	text-shadow: 0 1px 2px rgba(120,45,0,.35);
}
.zr-btn-apple:hover {
	background: linear-gradient(180deg, #f8b570 0%, #f2954b 55%, #e0762c 100%);
	box-shadow:
		0 8px 0 #b3531a,
		0 16px 26px rgba(217,106,34,.55),
		inset 0 1px 0 rgba(255,255,255,.4),
		inset 0 -2px 4px rgba(120,45,0,.2);
	transform: translateY(-2px);
}
.zr-btn-apple:active {
	transform: translateY(4px);
	box-shadow:
		0 2px 0 #b3531a,
		0 6px 10px rgba(217,106,34,.4),
		inset 0 1px 0 rgba(255,255,255,.3),
		inset 0 -1px 2px rgba(120,45,0,.15) !important;
}
/* 与 ? 按钮对齐:按钮行内垂直居中 */
.zr-btn-row .zr-btn-apple { flex: 1; }

/* ===== 大A天气模块（2026-08-26 需求：改为纵向排列，日期在上/天气在中间/历史统计在下，不挤基础报告按钮） ===== */
.zr-da-weather-col {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	max-width: 480px;
	margin: 2px auto 0;
}
.zr-da-weather-date {
	font-size: 14px;
	font-weight: 700;
	color: #374151;
	letter-spacing: 1px;
}
.zr-da-weather-date-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
}
.zr-da-weather-inline {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
}
.zr-weather-history-link {
	font-size: 15px;
	line-height: 1;
	color: #92400e;
	cursor: pointer;
	text-decoration: none;
	padding: 1px 2px;
	border-radius: 4px;
}
.zr-weather-history-link:hover { background: #fde68a; }
.zr-da-weather {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 6px 14px;
	border-radius: 999px;
	background: linear-gradient(135deg, #fef3c7, #fde68a);
	border: 1px solid #fcd34d;
	color: #92400e;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
	cursor: pointer;
	text-decoration: none;
}
.zr-da-weather:hover { background: #fde68a; }
@media (max-width: 640px) {
	.zr-da-weather { padding: 4px 10px; font-size: 12px; }
}

/* ===== 一键多维度报告标题行 + 天气模块同排（2026-08-26 需求） ===== */
.zr-home-title-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 8px 0 16px;
	flex-wrap: wrap;
}
.zr-home-title-row .zr-home-sub { margin: 0; }
.zr-home-title-row .zr-da-weather-col { margin: 0; max-width: none; }
@media (max-width: 640px) {
	.zr-home-title-row { margin: 0 0 8px; gap: 8px; }
	.zr-home-title-row .zr-home-sub { padding: 7px 14px; font-size: 14px; }
	.zr-home-title-row .zr-da-weather-col { gap: 4px; }
}





/* ===== 观摩栏 v3：左日期→右战法列表→收益日历 (2026-08-28) ===== */
.zr-date-card-head-click { cursor: pointer; }
.zr-date-card-head-click:hover { background: #f0f5ff; }
.zr-cal-rank-items { padding: 6px 0; }
.zr-strategy-link .zr-cal-rank-head { display: flex; align-items: center; justify-content: space-between; }
.zr-strategy-link .zr-cal-rank-name { font-weight: 700; font-size: 14px; color: #2b3a55; }
.zr-strategy-stocks { display: block; font-size: 12px; color: #888; line-height: 1.6; margin-top: 4px; }
.zr-detail-head-clickable { cursor: pointer; }

/* 战法列表提示 */
.zr-detail-tip { padding: 14px 16px; color: #999; font-size: 12px; text-align: center; }

/* ===== 观摩-策略列表折叠（2026-09-14 追加：战法列表→策略列表+收起符号） ===== */
.zr-strategy-fold .zr-cal-rank-head { display: flex; align-items: center; gap: 6px; }
.zr-fold-arrow { color: #9ca3af; font-size: 12px; width: 14px; text-align: center; }
.zr-strategy-fold .zr-cal-link { margin-left: auto; font-size: 12px; color: #2d4a7a; background: #eef5ff; padding: 2px 10px; border-radius: 10px; cursor: pointer; white-space: nowrap; }
.zr-strategy-fold .zr-cal-link:hover { background: #dbe7f7; }
.zr-strategy-fold-body { padding: 8px 12px 10px 30px; background: #fafbfc; border-top: 1px dashed #e5e5e7; }
.zr-strategy-stock { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 4px 0; font-size: 13px; line-height: 1.6; }
.zr-stock-name { color: #333; font-weight: 500; }
.zr-stock-meta { color: #888; font-size: 12px; }

/* ===== 观摩-策略列表收益表折叠（2026-09-14 修订：折叠体=收益表格） ===== */
.zr-strategy-fold-body { padding: 6px 4px 8px; background: #fafbfc; border-top: 1px dashed #e5e5e7; overflow-x: auto; }
.zr-strategy-fold-body .zr-cal-table { min-width: 420px; font-size: 12px; margin: 0; }
.zr-strategy-fold-body .zr-cal-table th, .zr-strategy-fold-body .zr-cal-table td { padding: 5px 8px; white-space: nowrap; }
.zr-cal-rank-avg { font-size: 12px; font-weight: 600; }
