/* 投研报告目录：先建立研究坐标，再提供可扫描的完整索引。 */
.rp-wrap{
  max-width:1160px;
  margin:0 auto;
  padding:clamp(48px,7vw,86px) clamp(20px,4vw,48px) 0;
}

/* Hero · 标题与真实目录数据组成不对称双栏。 */
.rp-hero{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(270px,.6fr);
  align-items:end;
  gap:clamp(36px,6vw,76px);
  margin-bottom:clamp(52px,7vw,76px);
}
.rp-kicker{
  margin-bottom:16px;
  letter-spacing:.24em;
}
.rp-title{
  max-width:9em;
  margin:0 0 18px;
  font-size:clamp(42px,5.8vw,68px);
  line-height:1.08;
  letter-spacing:-.035em;
  text-wrap:balance;
}
.rp-lede{
  max-width:720px;
  margin:0;
  color:var(--text-secondary);
  font-size:clamp(15px,1.5vw,17px);
  line-height:1.9;
  text-wrap:pretty;
}
.rp-lede strong{color:var(--text-primary)}

.rp-hero-facts{
  margin:0;
  padding:10px clamp(20px,2.6vw,30px);
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-sm);
}
.rp-hero-facts > div{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  padding:15px 0;
  border-bottom:1px solid var(--border-light);
}
.rp-hero-facts > div:last-child{border-bottom:0}
.rp-hero-facts dt{
  color:var(--text-muted);
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
}
.rp-hero-facts dd{
  margin:0;
  color:var(--accent-2);
  font-family:var(--serif);
  font-size:clamp(25px,3vw,34px);
  font-weight:700;
  line-height:1;
}
.rp-hero-facts dd span{
  margin-left:4px;
  color:var(--text-muted);
  font-family:var(--sans);
  font-size:12px;
  font-weight:500;
}
.rp-hero-facts .rp-fact-date{
  color:var(--text-primary);
  font-family:var(--mono);
  font-size:14px;
  letter-spacing:.02em;
}

/* Section header */
.rp-section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin:0 0 20px;
  padding-bottom:16px;
  border-bottom:1px solid var(--border-light);
}
.rp-section-head h2{
  margin:0;
  color:var(--text-primary);
  font-family:var(--serif);
  font-size:clamp(27px,3.4vw,38px);
  line-height:1.2;
  letter-spacing:-.02em;
}
.rp-section-head p{
  max-width:520px;
  margin:0;
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.7;
  text-wrap:pretty;
}

/* 四个研究尺度，内容一致、视觉统一。 */
.rp-featured{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-bottom:clamp(58px,7vw,82px);
}
.rp-featured-card{
  position:relative;
  display:flex;
  min-height:220px;
  flex-direction:column;
  overflow:hidden;
  padding:clamp(22px,3vw,32px);
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  background:var(--bg-card);
  color:inherit;
  text-decoration:none;
  box-shadow:var(--shadow-sm);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.rp-featured-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:var(--grad-line);
  opacity:.42;
}
.rp-featured-card:hover{
  transform:translateY(-3px);
  border-color:var(--accent);
  box-shadow:var(--shadow-md);
}
.rp-featured-label{
  color:var(--accent);
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
}
.rp-featured-card h3{
  margin:15px 0 10px;
  color:var(--text-primary);
  font-family:var(--serif);
  font-size:clamp(21px,2.6vw,28px);
  line-height:1.35;
  text-wrap:balance;
}
.rp-featured-card p{
  max-width:42em;
  margin:0 0 24px;
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.8;
  text-wrap:pretty;
}
.rp-featured-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:auto;
  color:var(--text-muted);
  font-size:12px;
}
.rp-featured-meta strong{color:var(--accent);font-weight:700}

/* Search / filters */
.rp-all-head{margin-bottom:16px}
.rp-tools{
  position:sticky;
  top:66px;
  z-index:5;
  margin:0 0 14px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  background:color-mix(in srgb,var(--bg-primary) 94%,transparent);
  box-shadow:var(--shadow-sm);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}
.rp-search-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
}
.rp-search{
  width:100%;
  min-width:0;
  min-height:46px;
  padding:0 15px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:var(--bg-card);
  color:var(--text-primary);
  font:inherit;
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--bg-primary) 70%,transparent);
}
.rp-search::placeholder{color:var(--text-muted)}
.rp-search:focus{
  outline:2px solid color-mix(in srgb,var(--accent) 40%,transparent);
  outline-offset:1px;
  border-color:var(--accent);
}
.rp-result-count{
  min-width:116px;
  color:var(--text-muted);
  font-size:12px;
  text-align:right;
  white-space:nowrap;
}
.rp-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.rp-filter{
  flex:0 0 auto;
  min-height:36px;
  padding:7px 13px;
  border:1px solid var(--border);
  border-radius:var(--radius-full);
  background:var(--bg-card);
  color:var(--text-secondary);
  font:inherit;
  font-size:12px;
  cursor:pointer;
  transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.rp-filter:hover{border-color:var(--accent);color:var(--text-primary)}
.rp-filter:focus-visible,.rp-more:focus-visible,.rp-hub-end a:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
}
.rp-filter.is-active{
  border-color:var(--accent);
  background:var(--accent-soft);
  color:var(--accent-2);
  font-weight:700;
}

/* 全部报告使用可扫描的杂志索引行，而不是 91 张同尺寸大卡。 */
.rp-list{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.rp-item{
  display:grid;
  grid-template-columns:94px minmax(0,1fr) minmax(218px,auto);
  grid-template-areas:
    "no name foot"
    "no desc foot";
  align-items:center;
  column-gap:22px;
  min-height:128px;
  margin:0;
  padding:20px 24px;
  border-radius:var(--radius-xl);
}
.rp-item::before{width:3px}
.rp-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.rp-item[hidden]{display:none !important}
.rp-no{
  grid-area:no;
  align-self:start;
  padding-top:4px;
  line-height:1.5;
}
.rp-name{
  grid-area:name;
  min-width:0;
  margin:0 0 6px;
  font-size:clamp(18px,2vw,22px);
  text-wrap:pretty;
}
.rp-desc{
  grid-area:desc;
  align-self:start;
  max-width:700px;
  margin:0;
  font-size:13.5px;
  line-height:1.7;
  text-wrap:pretty;
}
.rp-foot{
  grid-area:foot;
  display:grid;
  grid-template-columns:repeat(2,max-content);
  align-content:center;
  align-items:center;
  justify-content:end;
  gap:9px 10px;
  min-width:218px;
  color:var(--text-muted);
  font-size:12px;
}
.rp-tag{
  justify-self:end;
  padding:5px 9px;
  border:1px solid transparent;
  border-radius:var(--radius-xs);
  font-size:10.5px;
  line-height:1;
}
.rp-tag-paid{
  border-color:color-mix(in srgb,var(--accent) 35%,var(--border));
  background:color-mix(in srgb,var(--accent) 16%,transparent);
  color:var(--accent-2);
}
.rp-tag-week{
  border-color:color-mix(in srgb,var(--accent-call) 35%,var(--border));
  background:color-mix(in srgb,var(--accent-call) 14%,transparent);
  color:var(--accent-call);
}
.rp-tag-free{
  border-color:color-mix(in srgb,var(--accent-call) 30%,var(--border));
  background:color-mix(in srgb,var(--accent-call) 9%,transparent);
  color:var(--accent-call);
}
.rp-countdown{
  grid-column:1/-1;
  justify-self:end;
  color:var(--text-muted);
  font-size:11px;
}
.rp-date{justify-self:end;font-family:var(--mono);font-size:11.5px}
.rp-go{justify-self:end;margin-left:0;color:var(--accent);font-weight:700}

.rp-empty{
  grid-column:1/-1;
  padding:56px 24px;
  border:1px dashed var(--border);
  border-radius:var(--radius-xl);
  background:color-mix(in srgb,var(--bg-card) 72%,transparent);
  color:var(--text-secondary);
  text-align:center;
}
.rp-more-row{
  margin-top:24px;
  text-align:center;
}
.rp-more{
  min-height:46px;
  padding:10px 26px;
  border:1px solid var(--accent);
  border-radius:var(--radius-full);
  background:var(--bg-card);
  color:var(--accent-2);
  font:inherit;
  font-weight:700;
  cursor:pointer;
  transition:background .16s ease,transform .16s ease;
}
.rp-more:hover{transform:translateY(-1px);background:var(--accent-soft)}

/* Page end · 一次清晰收束，不裸露在报告列表后。 */
.rp-hub-end{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:clamp(28px,5vw,72px);
  margin:clamp(64px,8vw,96px) 0 40px;
  padding:clamp(36px,5vw,58px);
  border-radius:var(--radius-4xl);
  background:#1a1610;
  color:#f0e6d2;
  box-shadow:var(--shadow-lg);
}
html[data-theme="dark"] .rp-hub-end{background:#15110c}
.rp-hub-end-kicker{
  margin:0 0 14px;
  color:#d4a857;
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.rp-hub-end h2{
  max-width:13em;
  margin:0 0 14px;
  color:#f0e6d2;
  font-family:var(--serif);
  font-size:clamp(27px,3.5vw,40px);
  line-height:1.25;
  text-wrap:balance;
}
.rp-hub-end p:not(.rp-hub-end-kicker){
  max-width:680px;
  margin:0;
  color:#c9b894;
  font-size:14px;
  line-height:1.8;
}
.rp-hub-end nav{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:10px;
}
.rp-hub-end a{
  display:inline-flex;
  min-height:42px;
  align-items:center;
  justify-content:center;
  padding:9px 17px;
  border:1px solid #3d3325;
  border-radius:var(--radius-full);
  color:#e6c896;
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
  transition:background .16s ease,border-color .16s ease;
}
.rp-hub-end a:hover{border-color:#d4a857;background:#221c14}

@media(max-width:900px){
  .rp-hero{grid-template-columns:1fr;align-items:start}
  .rp-hero-facts{display:grid;grid-template-columns:repeat(3,1fr)}
  .rp-hero-facts > div{
    display:block;
    padding:12px 16px;
    border-right:1px solid var(--border-light);
    border-bottom:0;
  }
  .rp-hero-facts > div:last-child{border-right:0}
  .rp-hero-facts dd{margin-top:10px}
  .rp-item{
    grid-template-columns:78px minmax(0,1fr);
    grid-template-areas:
      "no name"
      "no desc"
      ". foot";
    row-gap:4px;
  }
  .rp-foot{
    display:flex;
    min-width:0;
    justify-content:flex-start;
    margin-top:10px;
  }
  .rp-tag{justify-self:auto}
  .rp-countdown{margin-right:auto}
  .rp-go{margin-left:auto}
}

@media(max-width:720px){
  .rp-wrap{padding:34px 20px 0}
  .rp-title{font-size:clamp(36px,11vw,48px)}
  .rp-hero{gap:28px;margin-bottom:52px}
  .rp-hero-facts{
    grid-template-columns:repeat(2,1fr);
    padding:8px;
  }
  .rp-hero-facts > div{padding:12px;border-right:0}
  .rp-hero-facts > div:first-child{border-right:1px solid var(--border-light)}
  .rp-hero-facts > div:last-child{
    grid-column:1/-1;
    border-top:1px solid var(--border-light);
  }
  .rp-section-head{display:block}
  .rp-section-head p{margin-top:9px}
  .rp-featured{grid-template-columns:1fr;margin-bottom:56px}
  .rp-featured-card{min-height:0;padding:24px 20px}
  .rp-tools{position:static;margin-left:-4px;margin-right:-4px;padding:10px}
  .rp-search-row{grid-template-columns:1fr;gap:7px}
  .rp-result-count{min-width:0;padding-left:2px;text-align:left}
  .rp-filters{gap:7px}
  .rp-filter{min-height:35px;padding:6px 11px}
  .rp-item{
    display:block;
    min-height:0;
    padding:22px 20px;
  }
  .rp-no{padding-top:0}
  .rp-name{margin:9px 0 7px;font-size:21px}
  .rp-desc{margin-bottom:16px}
  .rp-foot{display:flex;gap:9px;margin-top:0}
  .rp-date{font-size:11px}
  .rp-hub-end{
    grid-template-columns:1fr;
    align-items:start;
    margin:58px -4px 24px;
    padding:34px 24px;
  }
  .rp-hub-end nav{align-items:stretch}
  .rp-hub-end a{justify-content:space-between}
}

@media(max-width:420px){
  .rp-foot{align-items:center}
  .rp-foot .rp-date{order:3;flex-basis:auto}
  .rp-foot .rp-go{order:4}
  .rp-tag{padding:5px 8px}
}

@media(prefers-reduced-motion:reduce){
  .rp-featured-card,.rp-item,.rp-filter,.rp-more,.rp-hub-end a{transition:none}
}
