/* ===== 報告書視覺（學生版・Phase II 深色） A4 ===== */
.rp {
  --line: rgba(255,255,255,0.08);
  --accent: #7cffb2;
  --blue: #5b8fff;
  --text: #f0f0f5;
  --muted: rgba(240,240,245,0.45);
  --sub: rgba(240,240,245,0.66);
  width: 794px;
  margin: 0 auto;
  background: #09090f;
  color: var(--text);
  font-family: 'DM Sans', 'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', system-ui, sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
.rp * { box-sizing: border-box; }

.rp-cover {
  position: relative; overflow: hidden;
  background: linear-gradient(160deg, #0e0e1a, #09090f);
  border-bottom: 1px solid var(--line);
  padding: 54px 56px 46px;
}
.rp-cover::before {
  content: ''; position: absolute; top: -40%; right: -8%; width: 520px; height: 520px;
  background: radial-gradient(circle, rgba(124,255,178,0.14), transparent 70%);
}
.rp-cover > * { position: relative; z-index: 1; }
.rp-brand { display: flex; align-items: center; gap: 10px; font-family: 'Syne', sans-serif; font-weight: 800; font-size: 18px; color: #fff; }
.rp-brand svg { width: 26px; height: 26px; color: var(--accent); }
.rp-brand b { color: var(--accent); font-weight: 800; }
.rp-eyebrow {
  display: inline-flex; align-items: center; gap: 8px; margin: 26px 0 16px;
  font-family: 'DM Sans', sans-serif; font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--accent);
  padding: 6px 14px; border: 1px solid rgba(124,255,178,0.25); border-radius: 100px; background: rgba(124,255,178,0.06);
}
.rp-eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.rp-title { font-family: 'Syne', 'Noto Sans TC', sans-serif; font-size: 34px; font-weight: 800; letter-spacing: -.01em; margin: 0 0 4px; color: #fff; }
.rp-title-en { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.rp-meta { display: flex; flex-wrap: wrap; gap: 24px 46px; margin-top: 30px; }
.rp-meta .k { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.rp-meta .v { font-size: 16px; font-weight: 500; margin-top: 3px; color: #fff; }

.rp-body { padding: 40px 56px 30px; }

.rp-sec { margin-bottom: 30px; page-break-inside: avoid; }
.rp-sec-h { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.rp-sec-h .no {
  width: 30px; height: 30px; flex: 0 0 30px; border-radius: 8px;
  background: rgba(124,255,178,0.08); border: 1px solid rgba(124,255,178,0.25); color: var(--accent);
  display: flex; align-items: center; justify-content: center; font-family: 'Syne', sans-serif; font-weight: 700; font-size: 14px;
}
.rp-sec-h h3 { font-family: 'Syne', 'Noto Sans TC', sans-serif; font-size: 18px; font-weight: 700; margin: 0; color: #fff; }
.rp-sec-body { padding-left: 42px; color: var(--sub); white-space: pre-wrap; }
/* 長字串（無空白的英文/網址）也要換行，避免撐破格子 */
.rp-sec-body, .rp-quote, .rp-qa-tx, .rp-list li, .rp-levelcard .lc-look, .rp-path .rp-sec-body { overflow-wrap: anywhere; word-break: break-word; }
.rp-sec-body.muted { color: var(--muted); }

.rp-tags { display: flex; flex-wrap: wrap; gap: 8px; padding-left: 42px; }
.rp-tag { background: #16161f; border: 1px solid var(--line); border-radius: 999px; padding: 4px 13px; font-size: 12.5px; color: var(--sub); }

/* 能力定位視覺 */
.rp-level-wrap { padding-left: 42px; }
.rp-ladder { display: flex; gap: 6px; margin: 6px 0 16px; }
.rp-rung { flex: 1; text-align: center; }
.rp-rung .bar { height: 8px; border-radius: 999px; background: rgba(255,255,255,0.1); }
.rp-rung.on .bar { background: rgba(124,255,178,0.45); }
.rp-rung.cur .bar { background: var(--accent); box-shadow: 0 0 12px rgba(124,255,178,0.5); }
.rp-rung .lab { font-size: 11px; color: var(--muted); margin-top: 6px; }
.rp-rung.cur .lab { color: var(--accent); font-weight: 700; }
.rp-levelcard { background: #111118; border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 12px; padding: 16px 18px; }
.rp-levelcard .lc-top { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.rp-levelcard .lc-code { font-family: 'Syne', sans-serif; font-size: 20px; font-weight: 800; color: var(--accent); }
.rp-levelcard .lc-name { font-size: 17px; font-weight: 700; color: #fff; }
.rp-levelcard .lc-en { font-size: 11px; letter-spacing: .14em; color: var(--muted); text-transform: uppercase; }
.rp-levelcard .lc-look { margin-top: 8px; color: var(--sub); }

.rp-path { padding-left: 42px; }
.rp-path .pblock { margin-bottom: 14px; }
.rp-path .pblock:last-child { margin-bottom: 0; }
.rp-path .ph { font-size: 12px; letter-spacing: .1em; color: var(--accent); font-weight: 600; margin-bottom: 5px; }
.rp-list { list-style: none; padding: 0; margin: 0; }
.rp-list li { position: relative; padding-left: 18px; margin-bottom: 4px; color: var(--sub); }
.rp-list li::before { content: "▸"; position: absolute; left: 0; color: var(--accent); }

/* 提問與討論 一問一答 */
.rp-qa { padding-left: 42px; display: flex; flex-direction: column; gap: 12px; }
.rp-qa-item { background: #111118; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 9px; }
.rp-qa-row { display: flex; gap: 11px; align-items: flex-start; }
.rp-qa-tag { flex-shrink: 0; width: 24px; height: 24px; border-radius: 7px; display: flex; align-items: center; justify-content: center; font-family: 'Syne', sans-serif; font-weight: 700; font-size: 12px; margin-top: 1px; }
.rp-qa-tag.q { background: rgba(124,255,178,0.12); color: var(--accent); border: 1px solid rgba(124,255,178,0.28); }
.rp-qa-tag.a { background: rgba(91,143,255,0.12); color: var(--blue); border: 1px solid rgba(91,143,255,0.30); }
.rp-qa-tx { flex: 1; min-width: 0; white-space: pre-wrap; color: var(--sub); }
.rp-qa-tag.q + .rp-qa-tx { color: #fff; }

/* AI 等級評估（後續諮詢報告） */
.rp-levelbar { margin: 0 0 26px; padding: 16px 18px; border-radius: 12px; background: linear-gradient(135deg, rgba(124,255,178,0.09), rgba(91,143,255,0.05)); border: 1px solid rgba(124,255,178,0.2); }
.rp-levelbar .lvb-h { font-family: 'Syne', sans-serif; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--accent); margin-bottom: 9px; }
.rp-levelbar .lvb-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rp-levelbar .lv-from { color: var(--muted); font-size: 15px; }
.rp-levelbar .lv-arrow { color: var(--muted); }
.rp-levelbar .lv-to { font-family: 'Syne', 'Noto Sans TC', sans-serif; font-weight: 700; color: #fff; font-size: 18px; }
.rp-levelbar .lv-up { color: #04130b; background: var(--accent); font-weight: 700; font-size: 12px; padding: 3px 11px; border-radius: 100px; }
.rp-levelbar .lv-same { color: var(--accent); border: 1px solid rgba(124,255,178,0.4); font-size: 12px; padding: 3px 11px; border-radius: 100px; }
.rp-levelbar .lv-down { color: #ffd089; border: 1px solid rgba(255,208,137,0.4); font-size: 12px; padding: 3px 11px; border-radius: 100px; }

.rp-quote { background: linear-gradient(135deg, rgba(124,255,178,0.06), rgba(91,143,255,0.05)); border: 1px solid rgba(124,255,178,0.16); border-radius: 12px; padding: 20px 24px; color: var(--sub); font-size: 14.5px; line-height: 1.8; white-space: pre-wrap; }
.rp-quote .qh { font-family: 'Syne', sans-serif; font-size: 12px; letter-spacing: .14em; color: var(--accent); font-weight: 700; margin-bottom: 8px; text-transform: uppercase; }

.rp-foot { border-top: 1px solid var(--line); margin: 8px 56px 0; padding: 18px 0 30px; display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 12px; }
.rp-foot .bk { font-family: 'Syne', sans-serif; font-weight: 700; color: var(--accent); letter-spacing: .04em; }

/* 啟動報告書 PDF 欄位（淺色版・保留） */
.kf-item { margin-bottom: 14px; page-break-inside: avoid; }
.kf-item:last-child { margin-bottom: 0; }
.kf-label { font-size: 12px; font-weight: 700; color: var(--brand); margin-bottom: 3px; }
.kf-val { color: #2a2e3c; white-space: pre-wrap; }
.kf-val.empty { color: #aab0c0; }

/* ===== 啟動報告書 PDF（深色・Phase II 風格） ===== */
.kpdf { width: 794px; margin: 0 auto; background: #09090f; color: #f0f0f5;
  font-family: 'DM Sans','Noto Sans TC','PingFang TC','Microsoft JhengHei',sans-serif;
  font-weight: 300; font-size: 14px; line-height: 1.75; -webkit-font-smoothing: antialiased; }
.kpdf * { box-sizing: border-box; }
.kpdf .cover { position: relative; overflow: hidden; padding: 54px 56px 46px;
  background: linear-gradient(160deg,#0e0e1a,#09090f); border-bottom: 1px solid rgba(255,255,255,0.08); }
.kpdf .cover::before { content: ''; position: absolute; top: -40%; right: -8%; width: 520px; height: 520px;
  background: radial-gradient(circle, rgba(124,255,178,0.14), transparent 70%); }
.kpdf .cv { position: relative; z-index: 1; }
.kpdf .brand { display: flex; align-items: center; gap: 10px; font-family: 'Syne',sans-serif; font-weight: 800; font-size: 18px; color: #fff; }
.kpdf .brand svg { width: 26px; height: 26px; color: #7cffb2; }
.kpdf .brand b { color: #7cffb2; font-weight: 800; }
.kpdf .eyebrow { display: inline-flex; align-items: center; gap: 8px; margin: 26px 0 16px;
  font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: #7cffb2;
  padding: 6px 14px; border: 1px solid rgba(124,255,178,0.25); border-radius: 100px; background: rgba(124,255,178,0.06); }
.kpdf .eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: #7cffb2; }
.kpdf .title { font-family: 'Syne',sans-serif; font-weight: 800; font-size: 34px; letter-spacing: -0.01em; margin: 0 0 4px; }
.kpdf .title-en { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: rgba(240,240,245,0.4); }
.kpdf .meta { display: flex; flex-wrap: wrap; gap: 24px 46px; margin-top: 30px; }
.kpdf .meta .k { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(240,240,245,0.4); }
.kpdf .meta .v { font-size: 16px; font-weight: 500; margin-top: 3px; color: #fff; }
.kpdf .body { padding: 40px 56px 26px; }
.kpdf .sec { margin-bottom: 28px; page-break-inside: avoid; }
.kpdf .sec-h { display: flex; align-items: center; gap: 12px; margin-bottom: 15px; }
.kpdf .sec-h .no { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 8px; background: rgba(124,255,178,0.08);
  border: 1px solid rgba(124,255,178,0.25); color: #7cffb2; display: flex; align-items: center; justify-content: center;
  font-family: 'Syne',sans-serif; font-weight: 700; font-size: 14px; }
.kpdf .sec-h h3 { margin: 0; font-family: 'Syne',sans-serif; font-weight: 700; font-size: 18px; color: #fff; }
.kpdf .sec-body { padding-left: 42px; }
.kpdf .kf { margin-bottom: 15px; page-break-inside: avoid; }
.kpdf .kf:last-child { margin-bottom: 0; }
.kpdf .kf .lab { font-size: 12px; font-weight: 600; color: #7cffb2; margin-bottom: 3px; letter-spacing: .02em; }
.kpdf .kf .val { color: #dfe0e8; white-space: pre-wrap; }
.kpdf .kf .val.empty { color: rgba(240,240,245,0.3); }
.kpdf .foot { border-top: 1px solid rgba(255,255,255,0.08); margin: 6px 56px 0; padding: 18px 0 34px;
  display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: rgba(240,240,245,0.4); }
.kpdf .foot .bk { font-family: 'Syne',sans-serif; font-weight: 700; color: #7cffb2; }

/* ===================================================================
   列印 / 存成 PDF（瀏覽器原生列印，向量文字、真實字體、穩定分頁）
   報告頁面只要在 @media print 下露出 .rp 或 .kpdf 即可
   =================================================================== */
@page { size: A4; margin: 12mm 0; }
@media print {
  html, body { background: #fff !important; margin: 0 !important; padding: 0 !important;
    -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  /* 保留品牌色塊（封面漸層、能力定位卡等） */
  .rp, .rp *, .kpdf, .kpdf * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }

  /* 報告本體填滿可列印區、去掉螢幕用的陰影/外距 */
  .rp, .kpdf { width: 100% !important; max-width: 100% !important; margin: 0 !important; box-shadow: none !important; }

  /* 防止段落被攔腰切斷 */
  .rp-sec, .rp-levelcard, .rp-quote, .rp-path .pblock, .kf-item,
  .kpdf .sec, .kpdf .kf { page-break-inside: avoid; break-inside: avoid; }
  .rp-cover, .kpdf .cover, .rp-sec-h, .kpdf .sec-h { page-break-after: avoid; break-after: avoid; }

  /* ---- 啟動報告書：深色版列印時轉淺色，省墨又清楚 ---- */
  .kpdf { background: #fff !important; color: #1a1d29 !important; }
  .kpdf .cover { background: #fff !important; border-bottom: 1px solid #e4e6ee !important; }
  .kpdf .cover::before { display: none !important; }
  .kpdf .brand, .kpdf .brand span, .kpdf .title, .kpdf .meta .v, .kpdf .sec-h h3 { color: #1a1d29 !important; }
  .kpdf .brand svg, .kpdf .brand b, .kpdf .eyebrow, .kpdf .eyebrow .dot,
  .kpdf .sec-h .no, .kpdf .kf .lab, .kpdf .foot .bk { color: #1d7a4f !important; }
  .kpdf .brand svg { stroke: #1d7a4f !important; }
  .kpdf .eyebrow { border-color: #bfe8d2 !important; background: #f0faf4 !important; }
  .kpdf .eyebrow .dot { background: #1d7a4f !important; }
  .kpdf .sec-h .no { background: #f0faf4 !important; border-color: #bfe8d2 !important; }
  .kpdf .kf .val { color: #2a2e3c !important; }
  .kpdf .kf .val.empty { color: #aab0c0 !important; }
  .kpdf .meta .k, .kpdf .foot { color: #5b6070 !important; }
  .kpdf .foot { border-top: 1px solid #e4e6ee !important; }

  /* ---- 診斷報告：深色版列印時轉淺色 ---- */
  .rp { background: #fff !important; color: #1a1d29 !important; }
  .rp-cover { background: #fff !important; border-bottom: 1px solid #e4e6ee !important; }
  .rp-cover::before { display: none !important; }
  .rp-brand, .rp-title, .rp-meta .v, .rp-sec-h h3, .rp-levelcard .lc-name { color: #1a1d29 !important; }
  .rp-brand svg, .rp-eyebrow, .rp-sec-h .no, .rp-path .ph, .rp-list li::before,
  .rp-quote .qh, .rp-foot .bk, .rp-levelcard .lc-code, .rp-rung.cur .lab { color: #1d7a4f !important; }
  .rp-brand svg { stroke: #1d7a4f !important; }
  .rp-eyebrow { border-color: #bfe8d2 !important; background: #f0faf4 !important; }
  .rp-eyebrow .dot { background: #1d7a4f !important; }
  .rp-sec-h .no { background: #f0faf4 !important; border-color: #bfe8d2 !important; }
  .rp-sec-body, .rp-list li, .rp-levelcard .lc-look, .rp-quote { color: #2a2e3c !important; }
  .rp-tag { background: #f6f7fb !important; border-color: #e4e6ee !important; color: #3a3f50 !important; }
  .rp-levelcard { background: #f6f7fb !important; border-color: #e4e6ee !important; border-left-color: #1d7a4f !important; }
  .rp-rung .bar { background: #e4e6ee !important; }
  .rp-rung.on .bar { background: #bfe8d2 !important; }
  .rp-rung.cur .bar { background: #1d7a4f !important; box-shadow: none !important; }
  .rp-quote { background: #f0faf4 !important; border-color: #bfe8d2 !important; }
  .rp-rung .lab, .rp-title-en, .rp-meta .k, .rp-foot, .rp-levelcard .lc-en { color: #5b6070 !important; }
  .rp-qa-item { background: #f6f7fb !important; border-color: #e4e6ee !important; page-break-inside: avoid; }
  .rp-qa-tag.q { background: #f0faf4 !important; color: #1d7a4f !important; border-color: #bfe8d2 !important; }
  .rp-qa-tag.a { background: #eef0fb !important; color: #3a45b0 !important; border-color: #d3d7e6 !important; }
  .rp-qa-tx { color: #2a2e3c !important; }
  .rp-qa-tag.q + .rp-qa-tx { color: #1a1d29 !important; }
  .rp-levelbar { background: #f0faf4 !important; border-color: #bfe8d2 !important; }
  .rp-levelbar .lvb-h { color: #1d7a4f !important; }
  .rp-levelbar .lv-to { color: #1a1d29 !important; }
  .rp-levelbar .lv-from, .rp-levelbar .lv-arrow { color: #5b6070 !important; }
  .rp-levelbar .lv-up { background: #1d7a4f !important; color: #fff !important; }
  .rp-levelbar .lv-same { color: #1d7a4f !important; border-color: #bfe8d2 !important; }
}
