@charset "utf-8";
/* ============================================================
 * 全站功能页统一风格（2026-08-13）
 * 以 member/index.html 新风格为基准：浅灰底 + 白色圆角卡片 + 蓝主色
 * 适用：invest 下功能页（aprice/funds/taoli/eprice/caibao/peizhai/aprice_more/info 等）
 * 首页（index.html 新闻区）与 stock 新闻页不受影响
 * ============================================================ */
html{
  font-size:10px;
}
body{
  background:#f5f7fa;
  margin:0;
  padding:0;
  font-size:1.4rem;
  color:#333;
}
a{
  text-decoration:none;
}
a:hover{
  color:#174f74;
}

/* ===== 页面容器（给顶部导航让位） ===== */
.pg-wrap{
  max-width:1000px;
  margin:0 auto;
  padding:0rem 1rem 2rem;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  gap:1.2rem;
}
.pg-wrap .pg-title{
  font-size:1.8rem;
  color:#206798;
  border-left:4px solid #86c5e3;
  padding-left:1rem;
  margin:0;
}

/* ===== 卡片 ===== */
.card{
  background:#fff;
  border-radius:10px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  padding:1.4rem 1.6rem;
}
.card h2{
  font-size:1.6rem;
  color:#206798;
  margin:0 0 1rem;
  border-left:4px solid #86c5e3;
  padding-left:1rem;
}

/* ===== 查询表单（替代旧的 ul.in 黑块样式） ===== */
.form-row{
  display:flex;
  align-items:center;
  gap:.8rem;
  flex-wrap:wrap;
}
.form-row .label{
  color:#555;
  font-size:1.4rem;
  flex:0 0 auto;
}
.form-row input[type=text]{
  flex:1 1 16rem;
  min-width:0;
  box-sizing:border-box;
  border:1px solid #ddd;
  border-radius:6px;
  padding:.7rem .9rem;
  font-size:1.4rem;
  outline:none;
  background:#fff;
}
.form-row input[type=text]:focus{
  border-color:#206798;
}
.form-row input[type=number],
.form-row input[type=text]{
  height:auto;
}
.form-row select{
  border:1px solid #ddd;
  border-radius:6px;
  padding:.6rem .8rem;
  font-size:1.35rem;
  outline:none;
  background:#fff;
}
/* 多字段表单：行间间距用 gap */
.form-stack{
  display:flex;
  flex-direction:column;
  gap:.8rem;
}
.form-actions{
  display:flex;
  gap:.8rem;
  align-items:center;
  flex-wrap:wrap;
  margin-top:1rem;
}
.form-actions .tips{
  color:#c0392b;
  font-size:1.3rem;
  font-style:normal;
}

/* ===== 按钮（统一） ===== */
.btn{
  border:none;
  border-radius:6px;
  cursor:pointer;
  font-size:1.3rem;
  padding:.6rem 1.3rem;
  text-decoration:none;
  display:inline-block;
  background:#206798;
  color:#fff;
}
.btn:hover{
  background:#174f74;
  color:#fff;
}
.btn.ghost{
  background:#fff;
  color:#206798;
  border:1px solid #86c5e3;
}
.btn.ghost:hover{
  background:#206798;
  color:#fff;
}
.btn.gray{
  background:#fff;
  color:#555;
  border:1px solid #ddd;
}
.btn.gray:hover{
  background:#f0f6fa;
  color:#333;
}

/* ===== 表格（替代旧黑边框样式） ===== */
table{
  width:100%;
  border-collapse:collapse;
  background:#fff;
  border-radius:10px;
  overflow:hidden;
  font-size:1.4rem;
}
table td{
  text-align:center;
  height:auto;
  line-height:2.2rem;
  padding:.55rem .8rem;
  border-bottom:1px solid #f0f0f0;
  color:#444;
}
table tr.tr1 td{
  background:#e8f1f8;
  color:#206798;
  font-weight:bold;
  border-right:1px solid #fff;
  border-bottom:1px solid #fff;
  padding:.7rem .8rem;
}
table tr.tr2 td{
  border-right:1px solid #f5f5f5;
}
table tr.tr2:nth-child(even){
  background:#fafcfe;
}
table tr.tr2:hover{
  background:#f0f6fa;
}
table.main.result{
  margin:0;
}
table.main{
  margin:0;
}

/* ===== 估值色块（funds/taoli 用） ===== */
td.low{
  background:linear-gradient(90deg,#ecfff4 2%,#fff 97%);
  color:#0a8f4c;
}
td.mid{
  background:linear-gradient(90deg,#fff2da 0%,#fff 90%);
  color:#b8860b;
}
td.high{
  background:linear-gradient(90deg,#ffe7e5 0%,#fff 90%);
  color:#c0392b;
}

/* ===== 股票搜索下拉（统一） ===== */
.suggest{position:relative;flex:1 1 15rem;min-width:0}
.suggest input{width:100%;box-sizing:border-box}
.suggest-list{position:absolute;top:calc(100% + .3rem);left:0;right:0;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.12);z-index:20;max-height:20rem;overflow-y:auto;display:none}
.suggest-list.show{display:block}
.suggest-list .it{padding:.6rem .9rem;font-size:1.35rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.suggest-list .it:hover{background:#f0f6fa}
.suggest-list .it .cd{color:#206798;font-weight:bold;flex:0 0 auto}
.suggest-list .it .nm{color:#444;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.suggest-list .tip{padding:.5rem .9rem;font-size:1.2rem;color:#999}

/* ===== 说明文本（info 等） ===== */
.doc-box{
  background:#fff;
  border-radius:10px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  padding:1.8rem 2rem;
  font-size:1.5rem;
  line-height:2.6rem;
  color:#333;
}
.doc-box h2{
  font-size:1.8rem;
  color:#206798;
  border-left:5px solid #86c5e3;
  padding-left:1rem;
  margin:2rem 0 .8rem;
}
.doc-box h3{
  font-size:1.6rem;
  margin:1.6rem 0 .8rem;
  color:#333;
}
.doc-box p{
  margin:.8rem 0;
}
.doc-box ul{
  margin:.8rem 0 .8rem 2rem;
  list-style:disc;
}
.doc-box li{
  margin:.4rem 0;
}
.doc-box table{
  margin:1.5rem auto;
  width:100%;
  border-collapse:collapse;
  font-size:1.5rem;
}
.doc-box table th{
  background:#206798;
  color:#FFF;
  font-weight:bold;
  border:1px solid #FFF;
  padding:.8rem;
  line-height:2.2rem;
  text-align:center;
}
.doc-box table td{
  border-bottom:1px solid #ccc;
  padding:.8rem;
  text-align:left;
  line-height:2.4rem;
  height:auto;
}
.doc-box table td.c{
  text-align:center;
}

/* ===== 移动端自适应 ===== */
@media only screen and ( max-width: 640px ) {
  .pg-wrap{
    padding:0rem .8rem 1.5rem;
    gap:1rem;
  }
  .card{
    padding:1.2rem 1.2rem;
  }
  .doc-box{
    padding:1.3rem 1.2rem;
  }
  .form-row{
    flex-direction:column;
    align-items:stretch;
    gap:.6rem;
  }
  .form-row .label{
    flex:0 0 auto;
  }
  .form-row input[type=text]{
    width:100%;
  }
  .form-actions .btn{
    flex:1 1 auto;
    text-align:center;
  }
  /* 表格横向滚动 */
  table{
    display:block;
    overflow-x:auto;
    white-space:nowrap;
  }
  table td{
    padding:.5rem .6rem;
    font-size:1.3rem;
  }
  /* 短表格（涨停幅度等）：恢复表格布局，允许换行，自适应宽度 */
  .doc-box table.tbl-board{
    display:table;
    width:100%;
    overflow:visible;
    white-space:normal;
    table-layout:auto;
  }
  .doc-box table.tbl-board th,
  .doc-box table.tbl-board td{
    white-space:normal;
    padding:.6rem .8rem;
    font-size:1.35rem;
    line-height:2.2rem;
  }
  .doc-box table.tbl-board td.c{
    white-space:nowrap;  /* 百分比等短值不换行 */
  }
}

/* ============================================================
 * 面包屑组件（2026-08-16：白底胶囊条 + 房子图标 + CSS 箭头分隔符）
 * 用于 invest 策略页等：首页 > 量化策略 > 当前页
 * 结构：.crumb > a + .crumb-sep + .crumb-cur
 * ============================================================ */
.crumb{
  display:flex;
  align-items:center;
  gap:.9rem;
  font-size:1.3rem;
  color:#666;
  background:#fff;
  border:1px solid #e5e9ef;
  border-radius:8px;
  padding:.75rem 1.2rem;
  margin:0 0 1.2rem;
  box-shadow:0 1px 4px rgba(0,0,0,.05);
  overflow:hidden;
}
.crumb a{
  color:#206798;
  text-decoration:none;
  font-weight:bold;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  white-space:nowrap;
}
.crumb a:hover{ color:#174f74; }
/* 首页小房子图标（CSS mask 绘制，仅首页链接带） */
.crumb a.crumb-home::before{
  content:"";
  width:1.2rem;
  height:1.2rem;
  flex:0 0 auto;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 9.5 12 3l9 6.5V21a1 1 0 0 1-1 1h-5v-7h-6v7H4a1 1 0 0 1-1-1z'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 9.5 12 3l9 6.5V21a1 1 0 0 1-1 1h-5v-7h-6v7H4a1 1 0 0 1-1-1z'/></svg>") center/contain no-repeat;
}
/* 大于号分隔符：旋转边框绘制（非字符） */
.crumb .crumb-sep{
  width:.65rem;
  height:.65rem;
  flex:0 0 auto;
  border-top:2px solid #b6c4d2;
  border-right:2px solid #b6c4d2;
  transform:rotate(45deg);
}
.crumb .crumb-cur{
  color:#333;
  font-weight:bold;
  white-space:nowrap;
}
/* 移动端面包屑：可横向滚动防溢出 */
@media only screen and ( max-width: 640px ) {
  .crumb{
    gap:.6rem;
    padding:.6rem 1rem;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
}

/* ============================================================
 * 策略导航组件（2026-08-16 v2：当前策略高亮 + 切换下拉，单箭头无冗余）
 * 用于 first_limit / volume_price / kd_macd / sea_wave 等策略页
 * 结构：#strategy-nav > .st-label + .st-now + .st-divider + .st-label + .st-select-wrap > .st-select
 * ============================================================ */
.strategy-nav{
  display:flex;
  align-items:center;
  gap:.9rem;
  margin:0;
  padding:.8rem 1.2rem;
  background:linear-gradient(180deg,#f0f6fa,#e8f0f8);
  border:1px solid #d0e0ee;
  border-radius:10px;
  flex-wrap:wrap;
}
.strategy-nav-wrap{
  margin:0 0 1.2rem;
}
.strategy-nav .st-label{
  font-size:1.3rem;
  color:#7f97ab;
  flex:0 0 auto;
}
.strategy-nav .st-now{
  display:inline-block;
  background:#206798;
  color:#FFF;
  font-weight:bold;
  border-radius:6px;
  padding:.6rem 1.8rem;
  font-size:1.5rem;
  line-height:2rem;
  box-shadow:0 2px 6px rgba(32,103,152,.25);
  flex:0 0 auto;
}
.strategy-nav .st-divider{
  width:1px;
  height:2.4rem;
  background:#c6d6e4;
  margin:0 .2rem;
  flex:0 0 auto;
}
.strategy-nav .st-select-wrap{
  position:relative;
  flex:1 1 auto;
  min-width:14rem;
  max-width:22rem;
}
.strategy-nav .st-select{
  width:100%;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  border:1px solid #86c5e3;
  border-radius:6px;
  padding:.6rem 3rem .6rem 1.2rem;
  font-size:1.4rem;
  color:#206798;
  background:#FFF;
  outline:none;
  cursor:pointer;
}
/* 单个向下箭头（背景 SVG，替代原生箭头） */
.strategy-nav .st-select-wrap::after{
  content:"";
  position:absolute;
  right:1.1rem;
  top:50%;
  transform:translateY(-50%);
  width:0;
  height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:7px solid #206798;
  pointer-events:none;
}
.strategy-nav .st-select:hover,
.strategy-nav .st-select:focus{
  border-color:#206798;
  background:#f0f6fa;
}
/* 移动端：整行纵向自然换行 */
@media only screen and ( max-width: 640px ) {
  .strategy-nav{
    gap:.6rem;
    padding:.7rem 1rem;
  }
  .strategy-nav .st-now{
    padding:.5rem 1.2rem;
    font-size:1.4rem;
  }
  .strategy-nav .st-select-wrap{
    flex:1 1 100%;
    max-width:none;
  }
}

/* ============================================================
 * 状态机简图组件（2026-08-15，策略说明页统一图示：节点+分支+连线）
 * 用于 first_limit / sea_wave / kd_macd / volume_price 等策略页
 * 结构：.fsm > (.fsm-node | .fsm-arrow | .fsm-branch > .fsm-stage + .fsm-links > .fsm-link)
 * ============================================================ */
.fsm{
  background:#f0f4f8;
  border:1px solid #d8e2ec;
  border-radius:10px;
  padding:2rem 1.6rem;
  margin:1.5rem 0;
  display:flex;
  flex-direction:column;
  align-items:center;
}
/* 节点卡片：开始 / 信号 / 结束 */
.fsm .fsm-node{
  min-width:22rem;
  max-width:94%;
  text-align:center;
  background:#206798;
  color:#FFF;
  border-radius:8px;
  padding:1rem 1.8rem;
  font-size:1.5rem;
  line-height:2.2rem;
  box-shadow:0 2px 6px rgba(32,103,152,.22);
}
.fsm .fsm-node small{
  display:block;
  font-size:1.25rem;
  opacity:.85;
  font-weight:normal;
}
.fsm .fsm-node.start{ background:#2a9d8f; }   /* 开始 */
.fsm .fsm-node.hit{ background:#d9534f; }     /* 信号命中 */
.fsm .fsm-node.skip{ background:#7a8a99; }    /* 无信号/跳过 */
.fsm .fsm-node.done{ background:#5c6b7a; }    /* 结束 */
/* 向下箭头连线 */
.fsm .fsm-arrow{
  position:relative;
  width:2px;
  height:2.2rem;
  background:#9db4c8;
  flex:0 0 auto;
}
.fsm .fsm-arrow::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-1px;
  transform:translateX(-50%);
  border:5px solid transparent;
  border-top:7px solid #9db4c8;
}
/* 分支块：阶段卡片 + 条件/动作列表 */
.fsm .fsm-branch{
  width:100%;
  display:flex;
  align-items:flex-start;
  gap:1.6rem;
  margin:.4rem 0;
}
.fsm .fsm-stage{
  flex:0 0 12rem;
  text-align:center;
  background:#FFF;
  border:2px solid #206798;
  color:#206798;
  border-radius:8px;
  padding:.9rem .6rem;
  font-size:1.4rem;
  line-height:2rem;
  box-shadow:0 1px 4px rgba(32,103,152,.15);
}
.fsm .fsm-stage b{
  display:block;
  font-size:1.9rem;
  line-height:2.4rem;
}
.fsm .fsm-stage small{
  display:block;
  font-size:1.15rem;
  color:#7f97ab;
}
.fsm .fsm-links{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.8rem;
  border-left:2px solid #c6d6e4;
  padding-left:1.4rem;
}
.fsm .fsm-link{
  display:flex;
  align-items:center;
  gap:.7rem;
  flex-wrap:wrap;
}
.fsm .fsm-cond{
  background:#e8f0f8;
  border:1px solid #c9d9e8;
  color:#2c3e50;
  border-radius:5px;
  padding:.4rem .9rem;
  font-size:1.35rem;
  line-height:1.9rem;
}
.fsm .fsm-arr{
  font-style:normal;
  color:#7f97ab;
  font-size:1.4rem;
}
.fsm .fsm-arr::before{ content:"→"; }
.fsm .fsm-act{
  border-radius:5px;
  padding:.4rem .9rem;
  font-size:1.35rem;
  line-height:1.9rem;
  font-weight:bold;
  white-space:nowrap;
}
.fsm .fsm-act.ok{ background:#e6f7ee; color:#1e8e5a; border:1px solid #a8e3c4; }   /* 继续/通过 */
.fsm .fsm-act.hit{ background:#fdeaea; color:#c0392b; border:1px solid #f2b8b8; }   /* 信号 */
.fsm .fsm-act.del{ background:#eef1f4; color:#6b7a8f; border:1px solid #d5dce3; }   /* 删除/结束 */
.fsm .fsm-act.skip{ background:#fdf6e3; color:#b07b2a; border:1px solid #ecd9a8; }  /* 跳过/其他 */
.fsm .fsm-note{
  width:100%;
  margin-top:1.2rem;
  text-align:center;
  font-size:1.3rem;
  color:#7f97ab;
  background:#FFF;
  border:1px dashed #c9d9e8;
  border-radius:6px;
  padding:.7rem 1rem;
}
/* 移动端：分支纵向堆叠 */
@media only screen and ( max-width: 640px ) {
  .fsm{
    padding:1.4rem 1rem;
  }
  .fsm .fsm-branch{
    flex-direction:column;
    align-items:center;
    gap:.8rem;
  }
  .fsm .fsm-stage{
    flex:0 0 auto;
    width:55%;
  }
  .fsm .fsm-links{
    width:100%;
    border-left:none;
    border-top:2px solid #c6d6e4;
    padding-left:0;
    padding-top:.8rem;
  }
  .fsm .fsm-link{
    justify-content:center;
  }
}
