/*
 * LP 月报的样式（A4，浏览器打印成 PDF；屏幕上的编辑器与印刷页共用）。
 * 2026-10-13（Mason）：版式与 portal 的设计系统一致（docs/design-system.md 第 0 节）——
 * Google Sans + Noto Sans JP（根布局的 next/font 变量）、Apple 的中性色（#1d1d1f 墨色、#6e6e73 次要、#d2d2d7 细线）、
 * 墨色文字、细线、留白；健康度用状态点；不用大面积色块；LP 看的文件里不用 Gemini 渐变。
 * 所有选择器都在 .lp-report 之下，不影响 portal 的其他页面。
 */
.lp-report {
  /* ink */
  --ink: #1d1d1f;
  --ink-2: #6e6e73;
  --ink-3: #86868b;
  /* surfaces and lines */
  --paper: #ffffff;
  --desk: #f5f5f7;
  --line: #d2d2d7;
  --line-soft: #e8e8ed;
  /* status dots (always paired with a text label) */
  --dot-green: #34a853;
  --dot-amber: #e3a008;
  --dot-red: #d93025;
  --dot-exit: #86868b;

  --font: var(--font-google-sans), var(--font-noto-jp), "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --fs-body: 9.5pt;
  --fs-small: 8pt;
  --fs-micro: 7pt;
  --fs-h2: 13pt;
  --fs-h1: 26pt;

  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 20px;
  --s6: 24px; --s8: 32px; --s10: 40px;

  --page-w: 210mm;
  --page-h: 297mm;
  --margin: 18mm;
  --total-pages: "1"; /* the document writes the real page count */

  background: var(--desk);
  color: var(--ink);
  font-family: var(--font);
  font-size: var(--fs-body);
  line-height: 1.7;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  counter-reset: pg;
}
.lp-report * { box-sizing: border-box; }
.lp-report p, .lp-report dl, .lp-report dd, .lp-report h1, .lp-report h2, .lp-report h3 { margin: 0; }
.lp-report ul, .lp-report ol { margin: 0; padding: 0; list-style: none; }
.lp-report a { color: inherit; text-decoration: none; }

/* ---------- Pages ---------- */
@page { size: A4; margin: 18mm; }
.lp-report .pages { padding: 1px 0; }
.lp-report .page {
  counter-increment: pg;
  width: var(--page-w);
  min-height: var(--page-h);
  padding: var(--margin);
  margin: var(--s6) auto;
  background: var(--paper);
  border-radius: 4px;
  box-shadow: 0 0 0 0.5px rgb(0 0 0 / 0.06), 0 1px 3px rgb(0 0 0 / 0.04), 0 8px 24px -12px rgb(0 0 0 / 0.08);
  display: flex;
  flex-direction: column;
  break-after: page;
  page-break-after: always;
  position: relative;
}
.lp-report .page:last-child { break-after: auto; page-break-after: auto; }
.lp-report .page-body { flex: 1 1 auto; display: flex; flex-direction: column; gap: var(--s8); }
@media print {
  .lp-report { background: var(--paper); }
  .lp-report .page {
    width: auto;
    min-height: 260mm; /* A4 297 - 2 x 18mm margin, minus 1mm safety */
    padding: 0;
    margin: 0;
    border-radius: 0;
    box-shadow: none;
  }
}
@media screen and (max-width: 820px) {
  .lp-report { overflow-x: auto; }
}

/* running header (pages 2+) */
.lp-report .running {
  display: flex; justify-content: space-between; align-items: baseline;
  font-size: var(--fs-micro); color: var(--ink-3); letter-spacing: 0.01em;
  padding-bottom: var(--s2); margin-bottom: var(--s6);
  border-bottom: 0.5pt solid var(--line);
}
/* footer (every page) */
.lp-report .footer {
  margin-top: var(--s6);
  padding-top: var(--s2);
  border-top: 0.5pt solid var(--line);
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: var(--s6);
  font-size: var(--fs-micro);
  color: var(--ink-3);
  align-items: baseline;
}
.lp-report .footer .signoff span + span::before { content: "·"; margin: 0 var(--s2); }
.lp-report .footer .pageno::before { content: counter(pg) " / " var(--total-pages); color: var(--ink-2); }

/* ---------- Section heading ---------- */
.lp-report .section { display: flex; flex-direction: column; gap: var(--s4); }
.lp-report .sec-head {
  display: flex; justify-content: space-between; align-items: baseline; gap: var(--s4);
  padding-top: var(--s3);
  border-top: 0.5pt solid var(--line);
}
.lp-report .sec-title {
  font-weight: 600;
  font-size: var(--fs-h2);
  line-height: 1.35;
  letter-spacing: 0.01em;
  display: flex; flex-wrap: wrap; align-items: baseline; column-gap: var(--s3);
}
.lp-report .sec-en {
  white-space: nowrap;
  font-size: var(--fs-micro);
  font-weight: 500;
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.lp-report .sec-aside { font-size: var(--fs-micro); color: var(--ink-3); text-align: right; }
.lp-report .subhead { font-size: var(--fs-small); font-weight: 600; margin-bottom: var(--s2); display: flex; align-items: baseline; gap: var(--s2); }
.lp-report .subhead .en { font-weight: 500; color: var(--ink-3); text-transform: uppercase; letter-spacing: 0.08em; font-size: 6.5pt; }

/* ---------- Cover ---------- */
.lp-report .cover {
  display: grid; grid-template-columns: minmax(0, 1fr) 62mm; column-gap: var(--s8);
  align-items: end;
  padding-bottom: var(--s6);
}
.lp-report .cover-mark { display: block; height: 15mm; width: auto; margin-bottom: 7mm; }
.lp-report .doc-kind { font-size: var(--fs-small); color: var(--ink-2); display: flex; gap: var(--s2); align-items: baseline; }
.lp-report .doc-kind .en { color: var(--ink-3); text-transform: uppercase; letter-spacing: 0.08em; font-size: 6.5pt; font-weight: 500; }
.lp-report .period { font-weight: 600; font-size: var(--fs-h1); line-height: 1.15; letter-spacing: -0.01em; margin: var(--s3) 0 var(--s3); }
.lp-report .fund-name { font-weight: 500; font-size: 10.5pt; line-height: 1.4; }
.lp-report .fund-name-ja { font-size: var(--fs-small); color: var(--ink-2); margin-top: 2px; }
.lp-report .cover-meta { display: flex; flex-wrap: wrap; gap: var(--s5); margin-top: var(--s5); font-size: var(--fs-small); color: var(--ink-2); align-items: baseline; }
.lp-report .cover-meta > div { display: flex; gap: var(--s2); align-items: baseline; }
.lp-report .cover-meta dt { color: var(--ink-3); }
.lp-report .conf-tag {
  display: inline-block; border: 0.5pt solid var(--ink-2); border-radius: 999px; padding: 0 7px;
  font-size: 6.5pt; font-weight: 600; letter-spacing: 0.1em; line-height: 1.8; color: var(--ink);
}
/* fund facts */
.lp-report .facts { padding-left: var(--s5); border-left: 0.5pt solid var(--line); }
.lp-report .facts-title { font-size: var(--fs-micro); color: var(--ink-2); margin-bottom: var(--s3); display: flex; flex-direction: column; }
.lp-report .facts-title .en { color: var(--ink-3); text-transform: uppercase; letter-spacing: 0.08em; font-size: 6pt; font-weight: 500; }
.lp-report .facts-big { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); }
.lp-report .facts-big dt { font-size: var(--fs-micro); color: var(--ink-2); }
.lp-report .facts-big dd { font-size: 17pt; font-weight: 600; line-height: 1.25; letter-spacing: -0.01em; white-space: nowrap; }
.lp-report .facts-big dd .cur { font-size: 10pt; font-weight: 500; margin-right: 1px; }
.lp-report .facts-big dd .u, .lp-report .deal-terms dd .u { font-size: var(--fs-micro); color: var(--ink-3); font-weight: 400; margin-left: 2px; letter-spacing: 0; }
.lp-report .facts-big dd.sub { font-size: 6.5pt; color: var(--ink-3); font-weight: 400; letter-spacing: 0; line-height: 1.4; }
.lp-report .facts-month { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s2); margin-top: var(--s4); padding-top: var(--s3); border-top: 0.5pt solid var(--line-soft); }
.lp-report .facts-month dt { font-size: 6.5pt; color: var(--ink-2); line-height: 1.35; }
.lp-report .facts-month dd { font-size: 12pt; font-weight: 600; line-height: 1.3; }

/* ---------- Badges, status dots ---------- */
.lp-report .badge {
  display: inline-block; vertical-align: 1px;
  border: 0.5pt solid var(--ink); border-radius: 999px; color: var(--ink);
  font-size: 5.75pt; font-weight: 600; letter-spacing: 0.08em; line-height: 1.6;
  padding: 0 5px; margin-right: var(--s2);
}
.lp-report .badge.cont { border-color: var(--line); color: var(--ink-3); letter-spacing: 0.02em; }
.lp-report .health { display: inline-flex; align-items: center; gap: 5px; font-size: var(--fs-micro); font-weight: 500; color: var(--ink-2); white-space: nowrap; line-height: 1.6; }
.lp-report .health .dot { width: 7px; height: 7px; border-radius: 50%; flex: none; background: var(--dot-exit); }
.lp-report .health.green .dot { background: var(--dot-green); }
.lp-report .health.amber .dot { background: var(--dot-amber); }
.lp-report .health.red .dot { background: var(--dot-red); }
.lp-report .health.unknown .dot { background: transparent; box-shadow: inset 0 0 0 1px var(--ink-3); }

/* ---------- Highlights ---------- */
.lp-report .highlights { counter-reset: hl; display: flex; flex-direction: column; gap: var(--s3); }
.lp-report .highlights li { counter-increment: hl; display: grid; grid-template-columns: var(--s6) 1fr; font-size: 10.5pt; line-height: 1.65; }
.lp-report .highlights li::before { content: counter(hl); color: var(--ink-3); font-weight: 500; font-size: 9pt; line-height: 1.85; }

/* ---------- This month ---------- */
.lp-report .events { display: grid; grid-template-columns: 26mm 1fr; column-gap: var(--s4); }
.lp-report .events dt { font-size: var(--fs-small); color: var(--ink-2); padding: var(--s2) 0; border-top: 0.5pt solid var(--line-soft); }
.lp-report .events dd { padding: var(--s2) 0; border-top: 0.5pt solid var(--line-soft); }
.lp-report .events dt:first-of-type, .lp-report .events dt:first-of-type + dd { border-top: 0; padding-top: 0; }
.lp-report .events ul { display: flex; flex-direction: column; gap: var(--s1); }
.lp-report .events li { display: grid; grid-template-columns: 1fr auto; column-gap: var(--s4); align-items: baseline; }
.lp-report .events .date { font-size: var(--fs-micro); color: var(--ink-3); white-space: nowrap; }
.lp-report .co { font-weight: 600; margin-right: 0.6em; }

/* ---------- New investment ---------- */
.lp-report .deal { display: flex; flex-direction: column; gap: var(--s4); }
.lp-report .deal-head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s6); }
.lp-report .deal-name { font-weight: 600; font-size: 13pt; line-height: 1.35; }
.lp-report .deal-oneliner { font-size: var(--fs-small); color: var(--ink-2); margin-top: 2px; }
.lp-report .deal-terms { display: flex; gap: var(--s5); text-align: right; flex: none; }
.lp-report .deal-terms dt { font-size: var(--fs-micro); color: var(--ink-3); }
.lp-report .deal-terms dd { font-size: 12pt; font-weight: 600; line-height: 1.3; white-space: nowrap; }
.lp-report .deal-terms dd .cur { font-size: 8.5pt; font-weight: 500; margin-right: 1px; }
.lp-report .deal-terms dd.small { font-size: var(--fs-small); font-weight: 500; line-height: 1.9; }
.lp-report .fields { display: grid; grid-template-columns: 20mm 1fr; column-gap: var(--s4); row-gap: var(--s2); padding-top: var(--s3); border-top: 0.5pt solid var(--line-soft); }
.lp-report .fields dt { font-size: var(--fs-small); color: var(--ink-3); padding-top: 1px; }
.lp-report .fields a { border-bottom: 0.5pt solid var(--line); }

/* ---------- Portfolio updates (company cards) ---------- */
.lp-report .cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s8); row-gap: var(--s6); }
.lp-report .card { display: flex; flex-direction: column; gap: var(--s2); padding-top: var(--s3); border-top: 0.5pt solid var(--line-soft); break-inside: avoid; }
.lp-report .card-head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s3); }
.lp-report .card-name { font-weight: 600; font-size: 10.5pt; line-height: 1.4; }
.lp-report .card-oneliner { font-size: var(--fs-micro); color: var(--ink-2); line-height: 1.45; margin-top: -2px; }
.lp-report .kpis { display: grid; grid-template-columns: repeat(var(--kpi-cols, 3), minmax(0, 1fr)); gap: var(--s3); margin: var(--s1) 0 var(--s1); }
.lp-report .kpi { display: flex; flex-direction: column; min-width: 0; }
.lp-report .kpi-label { font-size: 6.5pt; color: var(--ink-2); line-height: 1.3; }
.lp-report .kpi-value { font-size: 13pt; font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; white-space: nowrap; }
.lp-report .kpi-value .cur { font-size: 8.5pt; margin-right: 1px; font-weight: 500; }
.lp-report .kpi-value .unit { font-size: 6.5pt; color: var(--ink-3); margin-left: 2px; font-weight: 400; letter-spacing: 0; }
.lp-report .kpi-meta { font-size: 6.25pt; color: var(--ink-3); line-height: 1.45; display: flex; flex-direction: column; }
.lp-report .kpi-meta .delta { color: var(--ink-2); }
.lp-report .update { font-size: 9pt; line-height: 1.7; }

/* ---------- Activities, requests, notes ---------- */
.lp-report .two-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s8); row-gap: var(--s6); }
.lp-report .bullets { display: flex; flex-direction: column; gap: var(--s2); font-size: 9pt; }
.lp-report .bullets li { padding-left: var(--s4); position: relative; }
.lp-report .bullets li::before { content: ""; position: absolute; left: 1px; top: 0.85em; width: 4px; height: 4px; border-radius: 50%; background: var(--ink-3); }
.lp-report .agenda { display: grid; grid-template-columns: 14mm 1fr; font-size: 9pt; }
.lp-report .agenda dt, .lp-report .agenda dd { padding: 5px 0; border-bottom: 0.5pt solid var(--line-soft); }
.lp-report .agenda dt { color: var(--ink-2); font-size: var(--fs-small); padding-top: 6px; }
.lp-report .agenda dd .tag { font-size: var(--fs-micro); color: var(--ink-3); margin-left: var(--s2); }
.lp-report .after-agenda { margin-top: var(--s3); }
.lp-report .empty { color: var(--ink-3); font-size: var(--fs-small); }

/*
 * 编辑器（只在 .editing 下，印刷页不受影响）：每一页是 portal 画布上的白色卡片（rounded-2xl + shadow-card），
 * 编辑控件放在各节里，用 portal 的字体与色调。
 */
.lp-report.editing { background: transparent; }
.lp-report.editing .page {
  margin: 0 auto var(--s8);
  border-radius: 20px;
  box-shadow: 0 0 0 0.5px rgb(0 0 0 / 0.06), 0 1px 3px rgb(0 0 0 / 0.04);
  scroll-margin-top: 10rem;
}
.lp-report.editing .sec-head { scroll-margin-top: 10rem; }
.lp-report .edit-box {
  margin-top: var(--s2); padding: 10px 12px; border-radius: 12px;
  background: var(--surface-container-low); box-shadow: inset 0 0 0 1px var(--hairline);
  font-family: var(--font); font-size: 12px; line-height: 1.5; color: var(--foreground);
}
