/* style.css — 私募一站通 hc.lxw 全站样式（蓝色商务风） */
:root {
  --blue-900: #0b2a5b;
  --blue-700: #14478f;
  --blue-600: #1d5cb8;
  --blue-500: #2f6fd0;
  --blue-100: #e8f0fb;
  --blue-50: #f4f8fd;
  --ink: #1f2d3d;
  --ink-2: #5a6b7f;
  --line: #dde6f2;
  --bg: #f6f9fc;
  --up: #d03050;
  --down: #1a9e6b;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  font-family: "Microsoft YaHei", "微软雅黑", "PingFang SC", sans-serif;
  background: var(--bg); color: var(--ink); font-size: 14px;
}
button { font-family: inherit; cursor: pointer; }
input, select { font-family: inherit; }

/* ---------- 登录页 ---------- */
.login-wrap { display: flex; min-height: 100vh; }
.login-left {
  flex: 1.2; position: relative; overflow: hidden;
  background: linear-gradient(160deg, #0b2a5b 0%, #14478f 55%, #2f6fd0 100%);
  display: flex; align-items: flex-end;
}
.login-left img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.login-left .title {
  position: relative; z-index: 2; color: #fff; padding: 56px;
}
.login-left .title h1 { font-size: 34px; letter-spacing: 2px; font-weight: 700; text-shadow: 0 2px 12px rgba(0,0,0,.25); }
.login-left .title p { margin-top: 12px; font-size: 14px; opacity: .85; letter-spacing: 1px; }
.login-right {
  width: 460px; min-width: 400px; background: #fff;
  display: flex; flex-direction: column; justify-content: center; padding: 0 64px;
  box-shadow: -8px 0 32px rgba(11,42,91,.08);
}
.login-right h2 { font-size: 22px; color: var(--blue-900); margin-bottom: 6px; }
.login-right .sub { color: var(--ink-2); font-size: 13px; margin-bottom: 32px; }
.login-right label { font-size: 13px; color: var(--ink-2); display: block; margin: 18px 0 6px; }
.login-right input {
  width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px;
  font-size: 14px; outline: none; transition: border-color .2s;
}
.login-right input:focus { border-color: var(--blue-500); }
.login-btn {
  width: 100%; margin-top: 30px; padding: 13px; border: none; border-radius: 8px;
  background: linear-gradient(90deg, var(--blue-700), var(--blue-500));
  color: #fff; font-size: 15px; letter-spacing: 6px; font-weight: 600;
}
.login-btn:hover { opacity: .92; }
.login-opts { display: flex; gap: 20px; margin-top: 14px; }
.login-opts .chk { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ink-2); margin: 0; cursor: pointer; }
.pwd-hint { font-size: 12px; color: var(--ink-2); margin-top: 6px; }
.fineprint { font-size: 12px; color: var(--ink-2); margin: -4px 0 14px; line-height: 1.7; }
.login-opts .chk input { width: auto; padding: 0; margin: 0; accent-color: var(--blue-600); }
.login-err { color: var(--up); font-size: 13px; margin-top: 14px; min-height: 18px; }
.login-foot { margin-top: 48px; font-size: 12px; color: #9fb0c3; line-height: 1.8; }

/* ---------- 主框架 ---------- */
.layout { display: flex; min-height: 100vh; }
.sidebar {
  width: 168px; min-width: 168px; background: linear-gradient(180deg, var(--blue-900), #103a7d 70%, #14478f);
  color: #cdd9ec; display: flex; flex-direction: column; padding: 10px 10px 16px;
}
.sidebar .logo {
  color: #fff; font-size: 15px; font-weight: 700; letter-spacing: 1px;
  padding: 0 8px 10px; border-bottom: 1px solid rgba(255,255,255,.14); line-height: 1.4;
}
.sidebar .logo small { display: block; font-size: 11px; font-weight: 400; opacity: .6; margin-top: 2px; letter-spacing: 1px; }
.menu { margin-top: 12px; flex: 1; }
.menu-item {
  display: flex; align-items: center; padding: 12px 14px; margin-bottom: 6px;
  border-radius: 10px; font-size: 13.5px; cursor: pointer; transition: all .18s; user-select: none;
}
.menu-item:hover { background: rgba(255,255,255,.10); color: #fff; }
.menu-item.active { background: #fff; color: var(--blue-700); font-weight: 600; box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.sidebar .side-foot { font-size: 11px; opacity: .6; padding: 10px 8px; line-height: 1.8; border-top: 1px solid rgba(255,255,255,.14); }
/* 每页内容最下方的合投提示（从侧栏移出，260903） */
.page-foot { padding: 6px 26px 22px; text-align: center; font-size: 12px; color: #9fb0c3; line-height: 1.8; }

.main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.topbar {
  height: 58px; background: #fff; border-bottom: 1px solid var(--line);
  display: flex; align-items: center; justify-content: space-between; padding: 0 26px;
  position: sticky; top: 0; z-index: 120;   /* 页面下滚时顶栏吸顶不动（电脑/手机同生效，260903） */
}
.topbar .page-title { font-size: 16px; font-weight: 600; color: var(--blue-900); }
.topbar .right { display: flex; align-items: center; gap: 16px; }
.brand { color: var(--blue-700); font-weight: 700; font-size: 14px; letter-spacing: 1px; }
.user-chip {
  display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 6px 12px;
  border: 1px solid var(--line); border-radius: 999px; font-size: 13px; color: var(--ink-2);
}
.user-chip:hover { border-color: var(--blue-500); color: var(--blue-700); }
.user-chip .avatar {
  width: 24px; height: 24px; border-radius: 50%; background: var(--blue-600); color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 12px;
}
.content { flex: 1; padding: 24px 26px; overflow: auto; }

/* ---------- 卡片 / 表格 ---------- */
.card { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 20px 22px; margin-bottom: 22px; }
.card h3 { font-size: 15px; color: var(--blue-900); margin-bottom: 4px; }
.card .card-sub { font-size: 12px; color: var(--ink-2); margin-bottom: 14px; }
.card-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; }
table.data { width: 100%; border-collapse: collapse; font-size: 13px; }
table.data th, table.data td { padding: 8px 10px; border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
table.data th:first-child, table.data td:first-child { text-align: left; }
table.data thead th { background: var(--blue-50); color: var(--blue-900); font-weight: 600; position: sticky; top: 0; }
table.data tbody tr:hover { background: var(--blue-50); }
.pos { color: var(--up); }
.neg { color: var(--down); }

.btn {
  border: 1px solid var(--blue-500); background: #fff; color: var(--blue-600);
  padding: 7px 16px; border-radius: 8px; font-size: 13px;
}
.btn:hover { background: var(--blue-100); }
.btn.primary { background: var(--blue-600); color: #fff; border-color: var(--blue-600); }
.btn.primary:hover { background: var(--blue-700); }
.btn.danger { border-color: var(--up); color: var(--up); }
.btn.danger:hover { background: #fdeef1; }
.btn.small { padding: 4px 10px; font-size: 12px; }

.chart { width: 100%; height: 420px; }
.chart-tall { height: 520px; }
.legend-hint { font-size: 12px; color: var(--ink-2); margin: 6px 0 10px; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.lg-btns { display: inline-flex; gap: 6px; flex: none; }
.lg-btns .btn { padding: 3px 10px; font-size: 11.5px; }

/* ---------- 弹窗 ---------- */
.modal-mask {
  position: fixed; inset: 0; background: rgba(11,42,91,.45); z-index: 100;
  display: flex; align-items: center; justify-content: center;
}
.modal {
  background: #fff; border-radius: 14px; padding: 26px 28px; width: 460px; max-width: 92vw;
  max-height: 86vh; overflow: auto; box-shadow: 0 18px 60px rgba(11,42,91,.3);
}
.modal.wide { width: 900px; }
.modal h3 { color: var(--blue-900); margin-bottom: 18px; font-size: 16px; }
.modal .row { margin-bottom: 14px; }
.modal label { font-size: 13px; color: var(--ink-2); display: block; margin-bottom: 5px; }
.modal input, .modal select {
  width: 100%; padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: 14px;
}
.modal .actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 22px; }

/* ---------- 标签页 ---------- */
.tabs { display: flex; gap: 6px; margin-bottom: 18px; flex-wrap: wrap; }
.tab {
  padding: 8px 18px; border-radius: 999px; border: 1px solid var(--line); background: #fff;
  font-size: 13px; color: var(--ink-2); cursor: pointer;
}
.tab.active { background: var(--blue-600); color: #fff; border-color: var(--blue-600); font-weight: 600; }

/* ---------- 纪要 ---------- */
.minute-item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px; border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px; background: #fff;
}
.minute-item:hover { border-color: var(--blue-500); }
.minute-item .mname { font-size: 13.5px; }
.minute-item .mmeta { font-size: 12px; color: var(--ink-2); margin-top: 3px; }
.minute-item .msnip { font-size: 12px; color: var(--ink-2); margin-top: 4px; line-height: 1.6; }
.minute-item .msnip mark { background: #fef08a; color: inherit; padding: 0 1px; border-radius: 2px; }
.min-sec { margin: 16px 0 8px; font-size: 13px; font-weight: 600; color: var(--ink-2); border-top: 1px dashed #d5e2f5; padding-top: 12px; }
.minute-item .ops { display: flex; gap: 8px; }
.pdf-viewer { width: 100%; height: 72vh; border: none; border-radius: 8px; }

/* ---------- 上传区 ---------- */
.dropzone {
  border: 2px dashed var(--blue-500); border-radius: 12px; padding: 30px;
  text-align: center; color: var(--blue-600); background: var(--blue-50);
  cursor: pointer; transition: all .2s; font-size: 13.5px; line-height: 1.9;
}
.dropzone.over { background: var(--blue-100); transform: scale(1.01); }
.upload-result { font-size: 12.5px; margin-top: 10px; line-height: 1.9; }
.upload-result .ok { color: var(--down); }
.upload-result .bad { color: var(--up); }

.note { font-size: 12.5px; color: var(--ink-2); background: var(--blue-50); border-left: 3px solid var(--blue-500); padding: 10px 14px; border-radius: 0 8px 8px 0; line-height: 1.8; }

/* CRM 姓名联想下拉（后台新增客户表单） */
.crm-sug { border: 1px solid var(--blue-200, #c3d6f0); border-radius: 10px; margin: -6px 0 14px; overflow: hidden; background: #fff; box-shadow: 0 6px 20px rgba(11,42,91,.08); }
.crm-sug-head { font-size: 12px; color: var(--ink-2); padding: 8px 12px; background: var(--blue-50); }
.crm-sug-empty { font-size: 12.5px; color: var(--ink-2); padding: 10px 12px; }
.crm-sug-item { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 12px; cursor: pointer; border-top: 1px solid #eef3fa; }
.crm-sug-item:hover { background: var(--blue-50); }
.crm-sug-phone { font-size: 13.5px; font-weight: 600; color: var(--blue-900); font-variant-numeric: tabular-nums; }
.crm-sug-who { font-size: 12.5px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.crm-sug-pager { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 8px; border-top: 1px solid #eef3fa; font-size: 12px; color: var(--ink-2); }

/* 客户账号表：筛选栏 + 可排序列头 */
.acc-filter { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.acc-filter input { width: 170px; padding: 7px 12px; border: 1px solid #d5e2f5; border-radius: 8px; font-size: 13px; background: #fff; }
.acc-filter input:focus { outline: none; border-color: var(--blue-500); box-shadow: 0 0 0 3px rgba(43,108,176,.12); }
.acc-count { font-size: 12px; color: var(--ink-2); margin-left: auto; }
th.sortable { cursor: pointer; user-select: none; white-space: nowrap; }
th.sortable:hover { color: var(--blue-700); background: var(--blue-50); }
.sort-arrow { font-size: 11px; color: var(--blue-500); margin-left: 2px; }
.empty { text-align: center; color: var(--ink-2); padding: 60px 0; font-size: 13px; }
.loading { text-align: center; color: var(--ink-2); padding: 60px 0; }
.toast {
  position: fixed; top: 20px; left: 50%; transform: translateX(-50%);
  background: var(--blue-900); color: #fff; padding: 10px 24px; border-radius: 999px;
  font-size: 13px; z-index: 999; box-shadow: 0 8px 30px rgba(11,42,91,.35);
}
.md-view { line-height: 1.65; font-size: 14px; }
.md-view p { margin: 3px 0; }
.md-view .md-gap { height: 9px; }   /* 源文件空行 → 可见间隔 */
.md-view ul { margin: 4px 0; padding-left: 22px; }
.md-view li { margin: 2px 0; }
.md-view b { color: var(--blue-900); }
.md-view code { background: var(--blue-50); padding: 1px 5px; border-radius: 4px; font-size: 12.5px; }
.md-view hr { border: none; border-top: 1px solid #e3ecf8; margin: 10px 0; }
.md-view .md-h { font-size: 15.5px; font-weight: 700; color: var(--blue-900); margin: 12px 0 5px; }
.md-view .md-h2 { font-size: 14.5px; font-weight: 600; color: var(--blue-700); margin: 9px 0 4px; }
.quota-tag { font-size: 12px; color: var(--ink-2); background: var(--blue-50); padding: 4px 12px; border-radius: 999px; }

/* ---------- 密码可见性切换 ---------- */
.pwd-wrap { position: relative; }
.pwd-wrap input { padding-right: 40px; }
.pwd-eye {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  border: none; background: none; padding: 5px; color: #9fb0c3;
  display: flex; align-items: center; justify-content: center; border-radius: 6px;
}
.pwd-eye:hover { color: var(--blue-600); background: var(--blue-50); }
.pwd-eye svg { width: 18px; height: 18px; display: block; }

/* ---------- 弹窗右上角关闭 ---------- */
.modal { position: relative; }
.modal-close {
  position: absolute; top: 12px; right: 12px; width: 30px; height: 30px; border-radius: 50%;
  border: none; background: rgba(11,42,91,.07); color: var(--ink-2); font-size: 16px; line-height: 1;
  display: flex; align-items: center; justify-content: center; transition: all .15s;
}
.modal-close:hover { background: rgba(11,42,91,.16); color: var(--blue-900); }

/* ---------- 表格排序 / 筛选 ---------- */
table.data th.sortable { cursor: pointer; user-select: none; }
table.data th.sortable:hover { background: var(--blue-100); }
.th-inner { display: inline-flex; align-items: center; gap: 4px; }
.sort-arrow { font-size: 10px; color: var(--blue-500); width: 10px; }
.th-filter {
  border: none; background: var(--blue-100); color: var(--blue-600); font-size: 13px; font-weight: 700;
  padding: 1px 7px; border-radius: 6px; margin-left: 2px;
}
.th-filter:hover { background: var(--blue-500); color: #fff; }
.th-filter.on { background: var(--blue-600); color: #fff; }
.filter-pop {
  position: fixed; z-index: 200; background: #fff; border: 1px solid var(--line); border-radius: 10px;
  box-shadow: 0 10px 34px rgba(11,42,91,.18); padding: 10px 12px; min-width: 150px; max-height: 260px;
  overflow: auto; font-size: 12.5px; text-align: left; font-weight: 400;
}
.filter-pop .fp-ops { display: flex; gap: 10px; margin-bottom: 8px; }
.filter-pop .fp-ops span { color: var(--blue-600); cursor: pointer; }
.filter-pop label { display: flex; align-items: center; gap: 7px; padding: 3px 2px; cursor: pointer; color: var(--ink); white-space: nowrap; }
.filter-pop label:hover { background: var(--blue-50); }
.filter-pop input { accent-color: var(--blue-600); }

/* ---------- 宏观观点日期选择 ---------- */
.vp-select {
  padding: 8px 14px; border: 1px solid var(--line); border-radius: 8px; font-size: 13.5px;
  color: var(--blue-900); background: #fff; margin-bottom: 14px; min-width: 180px; outline: none;
}
.vp-select:focus { border-color: var(--blue-500); }

/* ---------- 纪要类型标签 ---------- */
.tag-type {
  display: inline-block; font-size: 11px; padding: 1px 8px; border-radius: 999px; margin-right: 8px;
  background: var(--blue-100); color: var(--blue-700); font-weight: 600; vertical-align: 1px;
}
.tag-type.ppt { background: #fdf1e3; color: #b37400; }
.tag-type.rep { background: #e5f4ec; color: #1e7a4a; }
.tag-type.oth { background: #eef1f5; color: #6b7a90; }
.minute-item .mname.ppt { font-style: italic; }

/* ---------- 模块一小字备注 ---------- */
.src-notes { font-size: 12px; color: var(--ink-2); line-height: 1.9; margin: 2px 0 14px; }

/* ---------- 纪要搜索框 ---------- */
.min-search { margin-bottom: 14px; }
.min-search input {
  width: 100%; padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px;
  font-size: 13.5px; outline: none; transition: border-color .2s;
}
.min-search input:focus { border-color: var(--blue-500); }

/* ---------- 表格冻结列（锁定窗格：左右拖动时产品名称列固定不动） ---------- */
.tbl-scroll { max-height: 560px; overflow: auto; }
table.data.freeze1 th:nth-child(1), table.data.freeze1 td:nth-child(1),
table.data.freeze2 th:nth-child(1), table.data.freeze2 td:nth-child(1) {
  position: sticky; left: 0; z-index: 3; background: #fff;
  min-width: 180px; max-width: 180px; overflow: hidden; text-overflow: ellipsis;
  box-shadow: 1px 0 0 var(--line);
}
/* 另类多头：锁定前两列（产品名称 + 策略） */
table.data.freeze2 th:nth-child(2), table.data.freeze2 td:nth-child(2) {
  position: sticky; left: 180px; z-index: 3; background: #fff;
  min-width: 120px; max-width: 120px; overflow: hidden; text-overflow: ellipsis;
  box-shadow: 1px 0 0 var(--line);
}
table.data.freeze1 thead th:nth-child(1),
table.data.freeze2 thead th:nth-child(1),
table.data.freeze2 thead th:nth-child(2) { background: var(--blue-50); z-index: 5; }
table.data.freeze1 tbody tr:hover td:nth-child(1),
table.data.freeze2 tbody tr:hover td:nth-child(1),
table.data.freeze2 tbody tr:hover td:nth-child(2) { background: var(--blue-50); }

/* ---------- 手机模式 ----------
   判定方式：视口宽度 < 768px 视为手机竖屏；
   折叠屏展开后宽度超过阈值，自动按电脑版显示，无需额外判断 */
.nav-toggle {
  display: none; border: none; background: none; font-size: 19px;
  color: var(--blue-700); padding: 6px 10px 6px 0;
}
.nav-mask { display: none; }

@media (max-width: 767px) {
  .nav-toggle { display: block; }
  .sidebar {
    position: fixed; left: 0; top: 0; bottom: 0; z-index: 300;
    width: 200px; min-width: 200px;
    transform: translateX(-100%); transition: transform .22s ease;
    box-shadow: 8px 0 30px rgba(11,42,91,.35);
  }
  body.nav-open .sidebar { transform: translateX(0); }
  body.nav-open .nav-mask {
    display: block; position: fixed; inset: 0; z-index: 290;
    background: rgba(11,42,91,.4);
  }
  .topbar { padding: 0 14px; height: 52px; }
  .topbar .brand { font-size: 11px; letter-spacing: 0; }   /* 260907 起 .brand=积分余额徽标，手机端缩小显示而非隐藏 */
  .topbar .page-title { font-size: 15px; }
  .topbar .right { gap: 8px; }
  .user-chip { padding: 5px 10px; font-size: 12px; }
  .content { padding: 14px 12px; }
  .card { padding: 14px; margin-bottom: 14px; border-radius: 10px; }
  .chart { height: 300px; }
  .chart-tall { height: 330px; }
  /* 窄屏只保留图表和核心内容，说明性文字收起（图例全选按钮保留） */
  .legend-hint > span:first-child, .src-notes { display: none; }
  /* 手机表格：竖滑交给页面，横滑滑表格，避免上下滑动冲突 */
  .tbl-scroll { max-height: none; overflow-y: visible; overflow-x: auto; overscroll-behavior-x: contain; }
  table.data thead th { position: static; }
  /* 冻结列表头只保留横向冻结，去掉纵向吸顶（竖滑归页面） */
  table.data.freeze1 thead th:nth-child(1),
  table.data.freeze2 thead th:nth-child(1),
  table.data.freeze2 thead th:nth-child(2) { position: sticky; top: auto; }
  table.data { font-size: 12px; }
  table.data th, table.data td { padding: 6px 7px; }
  table.data.freeze1 th:nth-child(1), table.data.freeze1 td:nth-child(1),
  table.data.freeze2 th:nth-child(1), table.data.freeze2 td:nth-child(1) { min-width: 120px; max-width: 120px; }
  table.data.freeze2 th:nth-child(2), table.data.freeze2 td:nth-child(2) { left: 120px; min-width: 86px; max-width: 86px; }
  .minute-item { flex-direction: column; align-items: flex-start; gap: 8px; }
  .minute-item .ops { align-self: flex-end; }
  .modal { width: 94vw; padding: 20px 18px; }
  .tabs { gap: 5px; }
  .tab { padding: 7px 13px; font-size: 12.5px; }
  .pdf-viewer { height: 60vh; }
  .quota-tag { font-size: 11px; }
  /* 登录页：竖屏上下堆叠 */
  .login-wrap { flex-direction: column; }
  .login-left { flex: none; height: 200px; align-items: center; }
  .login-left .title { padding: 24px; }
  .login-left .title h1 { font-size: 24px; }
  .login-right { width: 100%; min-width: 0; padding: 36px 26px; box-shadow: none; flex: 1; }
}

/* ---------- 登录设备管理 ---------- */
.dev-item {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; margin-bottom: 8px;
}
.dev-item .dev-name { font-size: 13px; font-weight: 600; color: var(--ink); }
.dev-item .dev-meta { font-size: 11.5px; color: var(--ink-2); margin-top: 2px; }
.dev-cur {
  display: inline-block; font-size: 10.5px; font-weight: 600; margin-left: 8px;
  background: var(--blue-100); color: var(--blue-700); padding: 1px 8px; border-radius: 999px;
}

/* ---------- 纪要分页 ---------- */
.pager {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
  gap: 6px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line);
}
.pg-btn {
  min-width: 34px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px;
  background: #fff; color: var(--ink-2); font-size: 12.5px; transition: all .15s;
}
.pg-btn:hover:not(:disabled) { border-color: var(--blue-500); color: var(--blue-600); }
.pg-btn.cur { background: var(--blue-600); border-color: var(--blue-600); color: #fff; font-weight: 600; }
.pg-btn:disabled { opacity: .4; cursor: not-allowed; }
.pg-btn.pg-nav { padding: 6px 14px; }
.pg-dots { color: var(--ink-2); padding: 0 2px; }
.pg-info { font-size: 12px; color: var(--ink-2); margin-left: 10px; }
@media (max-width: 767px) {
  .pg-info { width: 100%; text-align: center; margin: 6px 0 0; }
}

/* ---------- 访客体验倒计时徽章 ---------- */
.guest-badge {
  font-size: 12px; font-weight: 600; color: #b45309;
  background: #fef3c7; border: 1px solid #fcd34d;
  padding: 4px 12px; border-radius: 999px; white-space: nowrap;
}

/* ---------- 页内全屏 PDF 阅读器（微信 / 手机端） ---------- */
.pdf-overlay {
  position: fixed; inset: 0; z-index: 600;
  background: #111c2e; display: flex; flex-direction: column;
}
.pdf-bar {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px; background: rgba(255,255,255,.06); color: #e5edf8;
}
.pdf-bar .pdf-title { flex: 1; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdf-bar .pdf-page { font-size: 12px; opacity: .75; flex: none; }
.pdf-close {
  width: 32px; height: 32px; flex: none; border: none; border-radius: 50%;
  background: rgba(255,255,255,.14); color: #fff; font-size: 17px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
}
.pdf-body {
  flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: 12px 10px 30px; display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.pdf-body canvas {
  max-width: 100%; height: auto; border-radius: 4px;
  box-shadow: 0 2px 12px rgba(0,0,0,.45); background: #fff;
}

/* ---------- 电脑端导航栏折叠 ---------- */
.sidebar .logo { position: relative; }
.side-fold {
  position: absolute; top: 0; right: 0; width: 26px; height: 26px;
  border: 1px solid rgba(255,255,255,.35); border-radius: 7px; background: rgba(255,255,255,.18);
  color: #e8eefb; font-size: 15px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.side-fold:hover { background: rgba(255,255,255,.32); color: #fff; }
/* 醒目的宽版折叠按钮：客户一眼能看到左侧栏可以收起来 */
.side-fold-wide {
  display: block; width: 100%; margin-top: 12px; padding: 8px 0;
  border: 1px dashed rgba(255,255,255,.4); border-radius: 8px;
  background: rgba(255,255,255,.10); color: #dbe6f8; font-size: 12.5px;
  cursor: pointer; text-align: center; transition: background .15s;
}
.side-fold-wide:hover { background: rgba(255,255,255,.24); color: #fff; }
body.side-collapsed .side-fold-wide { display: none; }
/* 「近一个月+」表格：排序提示箭头 + 加载更多 */
.sort-hint { opacity: .35; font-size: 10px; margin-left: 2px; }
.plus-more {
  text-align: center; padding: 10px; font-size: 12.5px; color: #2f6fd0;
  cursor: pointer; user-select: none; border-top: 1px dashed #dbe5f3;
}
.plus-more:hover { background: #f2f7ff; }
.plus-more.done { color: #9aa7ba; cursor: default; }
.plus-more.done:hover { background: none; }
/* 折叠后的极小字导航（仅电脑端折叠态显示） */
.menu-mini { display: none; }
@media (min-width: 768px) {
  body.side-collapsed .menu-mini { display: flex; flex-direction: column; gap: 2px; margin-top: 16px; }
  body.side-collapsed .menu-mini .menu-item {
    font-size: 11px; padding: 7px 0; text-align: center; letter-spacing: 1px;
    color: #cdd9ec; border-radius: 6px; cursor: pointer; user-select: none;
  }
  body.side-collapsed .menu-mini .menu-item:hover { background: rgba(255,255,255,.14); color: #fff; }
  body.side-collapsed .menu-mini .menu-item.active { background: #fff; color: #14478f; font-weight: 600; }
}
@media (min-width: 768px) {
  body.side-collapsed .sidebar { width: 42px; min-width: 42px; padding: 22px 5px; }
  body.side-collapsed .sidebar .logo { font-size: 0; padding: 6px 0 16px; border-bottom: none; }
  body.side-collapsed .sidebar .logo small,
  body.side-collapsed .sidebar .menu,
  body.side-collapsed .sidebar .side-foot { display: none; }
  body.side-collapsed .side-fold {
    position: static; margin: 0 auto; width: 28px; height: 28px; font-size: 15px;
  }
}
@media (max-width: 767px) {
  .side-fold { display: none; }   /* 手机用抽屉式导航，不需要折叠按钮 */
}

/* ---------- 衍生品：最新值/近3年分位小字 ---------- */
.deriv-stat {
  font-size: 12px; color: var(--ink-2); margin: 2px 0 8px; line-height: 1.6;
}
.deriv-stat:empty { display: none; }

/* ---------- 桥水月报小模块（一行：下拉 + 在线阅读 + 下载） ---------- */
.bw-reports {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--line);
  font-size: 12.5px; color: var(--ink-2);
}
.bw-reports .bw-label { flex: none; }
.bw-reports select {
  flex: 1; min-width: 180px; max-width: 420px; padding: 6px 10px;
  border: 1px solid var(--line); border-radius: 8px; font-size: 12.5px;
  color: var(--ink); background: #fff; outline: none;
}
.bw-reports select:focus { border-color: var(--blue-500); }

/* ---------- 图片放大查看器（复用 pdf-overlay 深色全屏） ---------- */
.img-body {
  flex: 1; overflow: auto; -webkit-overflow-scrolling: touch;
  display: flex; align-items: flex-start; justify-content: center; padding: 14px;
}
.img-body img { max-width: 100%; height: auto; border-radius: 6px; cursor: zoom-in; background: #fff; }
.img-body img.zoomed { max-width: none; cursor: zoom-out; }

/* ---------- 手机端补充 ---------- */
@media (max-width: 767px) {
  .side-fold-wide { display: none; }   /* 手机用抽屉导航，不显示折叠按钮 */
  .bw-reports select { max-width: none; width: 100%; flex: 1 1 100%; }
}

/* ---------- 另类多头拆分子模块（上：中位数 / 下：产品收益，紧贴排列） ---------- */
.sub-block { margin-top: 10px; }
.sub-block .sub-title { font-size: 13px; font-weight: 600; color: var(--blue-700); margin: 0 0 6px; }


/* ---------- 左侧导航：两级手风琴 + 桌面端吸顶固定（260903） ---------- */
/* 桌面端：页面下滚时侧栏保持不动（手机端本来就是 fixed 抽屉，不受影响） */
@media (min-width: 768px) {
  .sidebar { position: sticky; top: 0; height: 100vh; align-self: flex-start; overflow: hidden; }
}
/* 菜单区独立滚动：组展开后内容过长时，logo 与底部合投提示固定，中间菜单滚轮滚动 */
.sidebar .menu { overflow-y: auto; min-height: 0; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.35) transparent; }
.sidebar .menu::-webkit-scrollbar { width: 5px; }
.sidebar .menu::-webkit-scrollbar-thumb { background: rgba(255,255,255,.28); border-radius: 3px; }
.sidebar .menu::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.45); }
.sidebar .menu::-webkit-scrollbar-track { background: transparent; }
/* 手机抽屉：整条侧栏可滚（高度被 fixed 上下边约束） */
@media (max-width: 767px) {
  .sidebar { overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.35) transparent; }
  .sidebar::-webkit-scrollbar { width: 5px; }
  .sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.28); border-radius: 3px; }
}
.mgrp { margin-bottom: 6px; }
.mgrp .m-l1 { margin-bottom: 0; }
.m-arrow { margin-left: auto; font-size: 11px; opacity: .65; transition: transform .18s; }
.mgrp.open .m-arrow { transform: rotate(90deg); }
.mgrp.open > .m-l1 { color: #fff; font-weight: 600; }
.msub { display: none; padding: 2px 0 2px; }
.mgrp.open .msub { display: block; }
.m-l2 { font-size: 12.5px; padding: 8px 12px 8px 26px; margin-bottom: 3px; border-radius: 8px; }
/* 二级跳转锚点：滚动定位时避开吸顶顶栏（58px）留出间距 */
.card { scroll-margin-top: 70px; }
#rep-strat { scroll-margin-top: 70px; display: block; }

/* ===== 参会整理（仅管理员模块，260904） ===== */
details.att-m { border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px; overflow: hidden; }
details.att-m summary { display: flex; align-items: center; gap: 14px; padding: 11px 16px; cursor: pointer; user-select: none; list-style: none; background: #fff; }
details.att-m summary::-webkit-details-marker { display: none; }
details.att-m summary::before { content: '▸'; color: var(--blue-600); font-size: 12px; transition: transform .15s; }
details.att-m[open] summary::before { transform: rotate(90deg); }
details.att-m summary:hover { background: var(--blue-50); }
details.att-m .att-date { color: var(--ink-2); font-size: 12.5px; flex: 0 0 92px; }
details.att-m .att-name { font-weight: 600; color: var(--blue-900); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
details.att-m .att-cnt { color: var(--ink-2); font-size: 12.5px; flex: 0 0 auto; }
details.att-m .tbl-scroll { max-height: 480px; border-top: 1px solid var(--line); }
table.data.att-tbl th, table.data.att-tbl td { text-align: left; }
table.data.att-tbl tr.att-no td { color: var(--ink-2); }

/* ---------- 手机端长表格收纳（260910） ---------- */
tr.m-hide { display: none; }
.m-foldbar {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 8px; padding: 10px 12px;
  background: var(--blue-50); border: 1px dashed var(--blue-300, #93b6e9);
  border-radius: 8px; font-size: 12px; color: var(--ink-2); cursor: pointer;
  user-select: none;
}
.m-foldbar b { color: var(--blue-600); font-weight: 600; }
.m-foldbar:active { background: var(--blue-100); }
@media (min-width: 768px) { .m-foldbar { display: none; } }
