/* =========================================================
   沐桐知学 · 前端组件共享设计令牌  mt-tokens.css
   官方母版设计语言：暖灰纸底 / 深海墨蓝 / 哑光沉金 / 森林绿
   适配：360–430px 手机 · 1280px 桌面 · A4 打印
   ========================================================= */
:root{
  --ink:#1C2740; --ink-2:#33416A; --ink-3:#4A5A86; --ink-soft:#E8ECF4;
  --gold:#8C6214; --gold-2:#B8862B; --gold-soft:#D9C08A; --gold-bg:#F6EEDC;
  --green:#2E7D57; --green-bg:#E5F2EA;
  --amber:#A5650F; --amber-bg:#FBEFD9;
  --red:#A63D2F; --red-bg:#F7E4E0;
  --text:#2B2F38; --muted:#5B6170; --faint:#767676;
  --line:#E4E1D8; --line-2:#D8D4C8; --paper:#FBFAF6; --card:#FFFFFF; --grey-bg:#F1EFEA;
  --serif:'Noto Serif SC','Noto Serif CJK SC','Songti SC','STSong',serif;
  --sans:'Noto Sans SC','Noto Sans CJK SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  --r-lg:14px; --r-md:10px; --r-sm:8px;
  --gap:12px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.65;overflow-x:hidden;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.nw{white-space:nowrap;flex-shrink:0}               /* 专有名词、微标防断行 */
.mt-wrap{max-width:880px;margin:0 auto;padding:16px 14px 40px}
@media (min-width:768px){.mt-wrap{padding:28px 24px 56px}}

/* ---------- 组件头 ---------- */
.mt-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:16px;flex-wrap:wrap}
.mt-head .l{display:flex;align-items:baseline;gap:10px;min-width:0}
.mt-no{font-family:var(--serif);font-size:26px;font-weight:700;color:var(--gold)}
.mt-title{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--ink);margin:0}
@media (min-width:768px){.mt-no{font-size:30px}.mt-title{font-size:26px}}
.mt-sub{font-size:12px;color:var(--muted)}

/* ---------- 状态标记 ---------- */
.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;border-radius:999px;padding:3px 10px;white-space:nowrap}
.chip.draft{background:var(--amber-bg);color:var(--amber)}
.chip.signed{background:var(--green-bg);color:var(--green)}
.chip.ink{background:var(--ink);color:#fff}
.chip.gold{background:var(--gold-soft);color:var(--ink)}
.chip.soft{background:var(--grey-bg);color:var(--muted)}
.chip.red{background:var(--red-bg);color:var(--red)}
.chip.green{background:var(--green-bg);color:var(--green)}
.chip.amber{background:var(--amber-bg);color:var(--amber)}

/* ---------- 卡片与栅格 ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px}
.card+.card,.stack>*+*{margin-top:var(--gap)}
.grid2,.grid3,.grid4{display:grid;gap:var(--gap);grid-template-columns:1fr}
@media (min-width:560px){.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:768px){.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.h3{font-size:15px;font-weight:700;color:var(--ink);margin:0 0 8px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.small{font-size:12px;color:var(--muted)}
.lead{font-family:var(--serif);font-size:18px;font-weight:600;line-height:1.6;color:var(--ink)}
.dark{background:var(--ink);border-color:var(--ink);color:#D5DAE5}
.dark .h3,.dark .lead{color:#fff}
.tint{background:var(--ink-soft);border-color:var(--ink-soft)}
.goldcard{background:var(--gold-bg);border-color:var(--gold-bg)}

/* ---------- 数据门禁：没有证据就不画图 ---------- */
.locked{border:1.5px dashed var(--line-2);background:repeating-linear-gradient(135deg,#FBFAF6 0 10px,#F6F4EE 10px 20px);border-radius:var(--r-lg);padding:18px;display:flex;gap:12px;align-items:flex-start}
.locked .ic{width:34px;height:34px;border-radius:17px;background:#fff;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--gold)}
.locked .t{font-weight:700;color:var(--ink);font-size:14px}
.locked .x{font-size:13px;color:var(--muted);margin-top:2px}
.locked .need{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.src{font-size:11px;color:var(--faint);margin-top:6px}

/* ---------- 列表与表格 ---------- */
.bul{margin:0;padding:0;list-style:none}
.bul li{position:relative;padding-left:14px;margin:4px 0;font-size:14px}
.bul li:before{content:'';position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:3px;background:var(--ink-3)}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r-md);background:#fff}
table.mt{width:100%;border-collapse:collapse;font-size:14px;min-width:0}
table.mt.wide{min-width:460px}
table.mt.wide td:first-child{min-width:132px}
@media print{table.mt.wide{min-width:0}}
table.mt th{background:var(--grey-bg);color:var(--ink);font-weight:700;font-size:13px;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line-2);white-space:nowrap}
table.mt td{padding:10px 12px;border-bottom:1px solid #EDEAE2;vertical-align:top}
table.mt tr:last-child td{border-bottom:none}
table.mt .c{text-align:center}

/* ---------- 演示切换条（仅屏幕） ---------- */
.demo-bar{position:sticky;top:0;z-index:20;background:rgba(251,250,246,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);padding:8px 14px}
.demo-bar .in{max-width:880px;margin:0 auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.seg-btn{display:inline-flex;border:1px solid var(--line-2);border-radius:999px;overflow:hidden}
.seg-btn button{font:inherit;font-size:13px;border:none;background:#fff;color:var(--muted);padding:6px 12px;min-height:34px;cursor:pointer}
.seg-btn button[aria-pressed="true"]{background:var(--ink);color:#fff}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--gold-2);outline-offset:2px}

/* ---------- 打印：A4 ---------- */
@page{size:A4;margin:14mm 14mm 16mm}
@media print{
  body{background:#fff;font-size:10.5pt}
  .demo-bar,.no-print{display:none!important}
  .mt-wrap{max-width:none;padding:0}
  .card,.locked,.avoid-break{break-inside:avoid}
  .grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .tbl-wrap{overflow:visible}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* =========================================================
   v2 追加：信息图组件 + A4 物理页（sheet）+ 打印目标
   ========================================================= */
.bar-row{display:grid;grid-template-columns:minmax(72px,auto) 1fr 40px;gap:10px;align-items:center;font-size:14px}
.bar-row .bl{font-weight:700;color:var(--ink)}
.bar-row .bt{height:14px;background:var(--grey-bg);border-radius:7px;overflow:hidden}
.bar-row .bt span{display:block;height:100%;border-radius:7px}
.bar-row .bv{text-align:right;font-weight:700}

/* 研报图表规范：编号 + 行动标题 + 来源（麦肯锡式 Exhibit） */
.exhibit{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px}
.exhibit .ex-no{font-size:11px;letter-spacing:1.5px;color:var(--gold);font-weight:700}
.exhibit .ex-title{font-family:var(--serif);font-size:16px;font-weight:700;color:var(--ink);margin:2px 0 10px;line-height:1.5}
.exhibit .ex-src{font-size:11px;color:var(--faint);margin-top:8px;border-top:1px solid #EDEAE2;padding-top:6px}
.action-title{font-family:var(--serif);font-size:19px;font-weight:700;color:var(--ink);line-height:1.5;margin:0 0 12px;padding-left:12px;border-left:4px solid var(--gold-2)}

/* 正文分析段：左侧标签 + 右侧文字（研报边栏式） */
.prose{display:grid;grid-template-columns:1fr;gap:4px;padding:10px 0;border-top:1px solid #EDEAE2}
.prose .pk{font-size:12px;font-weight:700;color:var(--gold);letter-spacing:1px}
.prose .pv{font-size:14px;line-height:1.8;color:var(--text);text-align:justify}
@media (min-width:640px){.prose{grid-template-columns:88px 1fr;gap:14px}}

/* 漏斗 */
.funnel{display:flex;flex-direction:column;align-items:center;gap:4px}
.funnel .lv{color:#fff;border-radius:6px;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;min-height:38px}
.funnel .lv b{font-size:18px}
/* 甘特 */
.gantt{display:grid;gap:6px;font-size:12px}
.gantt .gr{display:grid;grid-template-columns:78px repeat(8,minmax(0,1fr));gap:3px;align-items:center}
.gantt .gl{font-weight:700;color:var(--ink);font-size:13px}
.gantt .gc{height:22px;border-radius:4px;background:var(--grey-bg)}
.gantt .gc.on{background:var(--ink-3)} .gantt .gc.key{background:var(--gold-2)} .gantt .gc.now{outline:2px solid var(--gold-2);outline-offset:-2px}
.gantt .gh{color:var(--muted);text-align:center}
/* 四象限 */
.quad{display:grid;grid-template-columns:1fr 1fr;gap:4px;font-size:12px}
/* 家长三句话横排 */
.q3{display:grid;gap:10px}
@media (min-width:640px){.q3{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* 交互目标：手风琴（打印目标下由渲染器直接展开，不依赖 CSS） */
details.acc{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:0 16px}
details.acc>summary{list-style:none;cursor:pointer;padding:14px 0;font-weight:700;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px}
details.acc>summary::-webkit-details-marker{display:none}
details.acc>summary:after{content:'展开';font-size:12px;color:var(--muted);font-weight:400}
details.acc[open]>summary:after{content:'收起'}
details.acc>.acc-body{padding-bottom:14px}

/* 草稿水印（打印时每页重复） */
.mt-watermark{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:50;font-family:var(--serif);font-size:64px;font-weight:700;color:rgba(165,101,15,.07);transform:rotate(-24deg);letter-spacing:8px;white-space:nowrap}
@media screen and (max-width:767px){.mt-watermark{font-size:36px}}

/* =========================================================
   A4 物理页：分页由 mt-paginate.js 预先计算，
   1 个 .sheet = 1 张 PDF 页，Chromium 不再自行断页
   ========================================================= */
body.print-target{background:#E9E6DE}
body.print-target .mt-wrap{max-width:none;padding:0}
.sheet{width:210mm;height:297mm;margin:10mm auto;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.12);position:relative;overflow:hidden;box-sizing:border-box;padding:var(--sheet-pt,15mm) var(--sheet-px,13mm) var(--sheet-pb,17mm)}
.sheet .sheet-body{height:100%;display:flex;flex-direction:column;gap:var(--blk-gap,10px)}
.sheet .sheet-foot{position:absolute;left:var(--sheet-px,13mm);right:var(--sheet-px,13mm);bottom:7mm;display:flex;justify-content:space-between;font-size:8.5pt;color:#8A8F98;border-top:.5pt solid #E4E1D8;padding-top:2mm}
.sheet .sheet-head{font-size:8.5pt;color:#8A8F98;display:flex;justify-content:space-between;margin-bottom:3mm}
.sheet.cover-sheet{padding:0}
body.print-target{font-size:var(--pt-body,10.5pt);line-height:var(--lh-body,1.7)}
body.print-target .prose .pv{font-size:var(--pt-body,10.5pt);line-height:var(--lh-body,1.7)}
body.print-target .card,body.print-target .exhibit{padding:var(--card-pad,12px 14px)}
body.print-target .grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
body.print-target .grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
body.print-target .grid4{grid-template-columns:repeat(4,minmax(0,1fr))}
body.print-target .prose{grid-template-columns:78px 1fr;gap:12px}
body.print-target .q3{grid-template-columns:repeat(3,minmax(0,1fr))}
body.print-target .tbl-wrap{overflow:visible}
body.print-target table.mt.wide{min-width:0}
body.print-target .mt-watermark{position:absolute}
@media print{
  body.print-target{background:#fff}
  .sheet{margin:0;box-shadow:none;break-after:page}
  .sheet:last-child{break-after:auto}
}
