/* ============================================================
   双链抽屉 —— 正文里的公司 / 概念 / 子行业 / 人物 / 事件，点开右侧滑出。
   数据在编译期内联进页面（window.COURSE_WIKI），不请求网络，所以点开即出。
   变量沿用 reports/assets/site.css，勿在此重定义。
   ============================================================ */

/* 正文里的双链锚点：比正文重一点、比链接轻一点，读起来不跳戏 */
a.wl{
  color:inherit; text-decoration:none; cursor:pointer;
  border-bottom:1px solid color-mix(in srgb, var(--accent) 42%, transparent);
  padding-bottom:.02em; transition:.12s;
}
a.wl:hover{ color:var(--accent); border-bottom-color:var(--accent); background:var(--accent-soft) }
a.wl::after{
  content:"°"; font-family:var(--mono); font-size:.85em; line-height:0;
  color:var(--accent); margin-left:.12em; vertical-align:super; opacity:.7;
}
a.wl.on{ color:var(--accent); background:var(--accent-soft) }
/* 打包不到的词条由 drawer.js 降级成普通文字，别留下会骗人的下划线 */
a.wl.dead{ border-bottom:0; cursor:default }
a.wl.dead::after{ content:none }

.wl-mask{
  position:fixed; inset:0; z-index:60; background:rgba(20,18,14,.34);
  opacity:0; transition:opacity .2s ease;
}
.wl-mask.on{ opacity:1 }

.wl-drawer{
  position:fixed; top:0; right:0; bottom:0; z-index:61;
  width:min(30rem, 92vw);
  display:flex; flex-direction:column;
  background:var(--panel); border-left:1px solid var(--line);
  box-shadow:-14px 0 40px rgba(20,18,14,.14);
  transform:translateX(100%); transition:transform .24s cubic-bezier(.4,0,.2,1);
}
.wl-drawer.on{ transform:none }

.wl-bar{
  flex:0 0 auto; display:flex; align-items:center; gap:.6rem;
  padding:.7rem .95rem; border-bottom:1px solid var(--line); background:var(--panel-2);
}
.wl-kind{
  flex:1 1 auto; font:700 .72rem/1 var(--mono); letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent);
}
.wl-btn{
  flex:0 0 auto; width:1.9rem; height:1.9rem; display:inline-flex;
  align-items:center; justify-content:center;
  border:1px solid var(--line-2); border-radius:5px; background:var(--panel);
  color:var(--muted); font:600 1rem/1 var(--font); cursor:pointer; transition:.14s;
}
.wl-btn:hover{ border-color:var(--accent); color:var(--accent) }
.wl-x{ font-size:1.25rem; line-height:1 }

.wl-body{ flex:1 1 auto; overflow-y:auto; overflow-x:hidden; padding:1.4rem 1.35rem 1.6rem }
.wl-body h3{
  font-family:var(--serif); font-weight:800; font-size:1.42rem; line-height:1.3;
  margin:0 0 .85rem; letter-spacing:-.01em;
}
.wl-meta{ display:flex; flex-direction:column; gap:.3rem; margin:0 0 1.1rem }
.wl-meta .r{ display:flex; gap:.7rem; font-size:.88rem; line-height:1.6 }
.wl-meta .k{ flex:0 0 4.2rem; color:var(--muted-2); font-weight:600 }
.wl-meta .v{ flex:1 1 auto; color:var(--text) }
.wl-tags{ display:flex; flex-wrap:wrap; gap:.32rem; margin:.55rem 0 0 }
.wl-tags span{
  font:600 .74rem/1 var(--mono); padding:.3rem .5rem; border-radius:4px;
  background:var(--panel-3); color:var(--muted); border:1px solid var(--line);
}
.wl-sum{ font-size:.96rem; line-height:1.82; color:var(--text) }
.wl-sum p{ margin:0 0 .9rem }
.wl-sum b{ font-weight:700 }
.wl-sum code{ font-family:var(--mono); font-size:.88em; background:var(--panel-3); padding:.1em .3em; border-radius:3px }
.wl-sum .empty{ color:var(--muted-2); font-style:italic }
.wl-hint{
  margin:1.4rem 0 0; padding-top:.95rem; border-top:1px dashed var(--line-2);
  font-size:.83rem; line-height:1.7; color:var(--muted-2); display:none;
}
/* 首屏摘要只是垫场：真正的正文由 fetch 取回后整段替换。
   两条提示互斥——加载中显示一条，取不到显示另一条，成功则整个 #wlLead 隐藏。 */
#wlLead.loading .wl-loading{ display:block }
#wlLead.failed  .wl-failed { display:block; color:var(--stamp) }
#wlLead.loading .wl-loading::before{
  content:""; display:inline-block; width:.62em; height:.62em; margin-right:.5em;
  border:2px solid var(--line-2); border-top-color:var(--accent); border-radius:50%;
  animation:wlSpin .7s linear infinite; vertical-align:-.05em;
}
@keyframes wlSpin{ to{ transform:rotate(1turn) } }

/* ---------------- 注入的完整词条正文 ----------------
   目标页只依赖 shared.css，课程页已经加载过它，所以这里**不重定义任何排版**，
   只做「把一个为整页设计的版式塞进 30rem 抽屉」所必需的收窄。 */
#wlFull{ font-size:.95rem; overflow-wrap:anywhere }
/* 整页版式塞进窄抽屉，宽内容一律自己横向滚，绝不把抽屉撑开 */
#wlFull > *{ max-width:100% }
#wlFull .tbl-wrap, #wlFull pre, #wlFull .chips, #wlFull .rc-chips{ max-width:100%; overflow-x:auto }
/* 档案抬头是 flex：左边标题 + 右边 nowrap 的类型徽章（shared.css 里 flex-shrink:0）。
   整页宽度够，30rem 抽屉里不够——标题挤不动，徽章就顶出右边界。允许换行即可。 */
#wlFull .fact-head{ flex-wrap:wrap; gap:.35rem .6rem }
#wlFull .fact-head .t{ min-width:0; overflow-wrap:anywhere }
#wlFull .tearsheet{ margin-top:0 }
#wlFull .tearsheet h1{ font-size:1.5rem; line-height:1.25 }
#wlFull h2{ font-size:1.15rem }
#wlFull h3{ font-size:1rem }
#wlFull .tbl-wrap, #wlFull table{ font-size:.86rem }
#wlFull .chainmap{ zoom:.82 }                 /* 产业链图整体缩一档，否则横向溢出 */
#wlFull table{ display:block; overflow-x:auto; max-width:100% }
#wlFull img{ max-width:100%; height:auto }
#wlFull .marg, #wlFull aside{ position:static; width:auto; float:none }
.wl-marg{ margin-top:1.8rem; padding-top:1.2rem; border-top:2px solid var(--line) }
.wl-marg .marg-head{ font:700 .74rem/1 var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--muted-2); margin-bottom:.7rem }
.wl-foot{ flex:0 0 auto; padding:.95rem 1.35rem; border-top:1px solid var(--line); background:var(--panel-2) }
.wl-foot .btn-ch{ display:block; text-align:center }

@media (max-width:560px){
  .wl-drawer{ width:100vw; top:auto; height:88vh; border-left:0; border-top:1px solid var(--line);
              border-radius:12px 12px 0 0; transform:translateY(100%) }
  .wl-drawer.on{ transform:none }
}

@media print{ .wl-mask,.wl-drawer{ display:none !important } a.wl::after{ content:none } }
