/* Report document styles — shared by the app, share links and the website. */
.rp-report {
  --rp-c1: #1f5eff; --rp-c2: #f2994a; --rp-c1soft: #9db8ff; --rp-font: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  --rp-ink: #141b2b; --rp-ink2: #4a5468; --rp-ink3: #6b7489; --rp-line: #e3e7ef; --rp-paper: #ffffff; --rp-soft: #f5f7fb;
  --rp-good: #137a4b; --rp-good-bg: #e3f4ea; --rp-bad: #b8402b; --rp-bad-bg: #fbe7e2; --rp-grid: #e8ebf2; --rp-axis-c: #b9c0cf;
  font-family: var(--rp-font); color: var(--rp-ink); background: var(--rp-paper); line-height: 1.55; font-size: 15.5px;
  border-radius: 14px; padding: 36px 40px 28px; box-shadow: 0 1px 2px rgba(15, 25, 50, .05), 0 12px 32px rgba(15, 25, 50, .07); border: 1px solid var(--rp-line);
  max-width: 900px; margin: 0 auto; position: relative; overflow-wrap: anywhere;
}
.rp-report * { box-sizing: border-box; }
.rp-report h1, .rp-report h2, .rp-report h3 { font-family: var(--rp-font); color: var(--rp-ink); }
.rp-head { border-bottom: 3px solid var(--rp-c1); padding-bottom: 16px; margin-bottom: 22px; }
.rp-logo { max-height: 40px; max-width: 200px; display: block; margin-bottom: 14px; }
.rp-title { font-size: clamp(1.6rem, 3.6vw, 2.2rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; margin: 0 0 6px; }
.rp-meta { color: var(--rp-ink3); margin: 0; font-size: .92rem; }
.rp-verified { display: inline-flex; align-items: center; gap: 6px; margin: 10px 0 0; font-size: .82rem; color: var(--rp-good); background: var(--rp-good-bg); padding: 4px 10px; border-radius: 999px; font-weight: 600; }
.rp-verified svg { width: 15px; height: 15px; }
.rp-verified.rp-edited { color: var(--rp-ink2); background: var(--rp-soft); }
.rp-sec { position: relative; padding: 14px 0 18px; border-bottom: 1px solid var(--rp-line); break-inside: avoid; page-break-inside: avoid; }
.rp-sec:last-of-type { border-bottom: 0; }
.rp-h2 { font-size: 1.18rem; font-weight: 750; margin: 6px 0 4px; letter-spacing: -.01em; }
.rp-sub { color: var(--rp-ink3); font-size: .88rem; margin: 0 0 10px; }
.rp-muted { color: var(--rp-ink3); }
.rp-body { margin-top: 8px; }
.rp-summary { display: grid; gap: 12px; }
.rp-sum-part { background: var(--rp-soft); border-radius: 10px; padding: 14px 16px; border-left: 4px solid var(--rp-c1soft); }
.rp-sum-part.rp-next { border-left-color: var(--rp-c2); }
.rp-sum-part h3 { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--rp-ink3); margin: 0 0 4px; font-weight: 700; }
.rp-sum-part p { margin: 0; font-size: 1.02rem; }
.rp-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.rp-kpi { border: 1px solid var(--rp-line); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rp-kpi-label { font-size: .84rem; color: var(--rp-ink3); font-weight: 600; }
.rp-kpi-value { font-size: 1.85rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.rp-kpi-sub { font-size: .78rem; color: var(--rp-ink3); }
.rp-pill { align-self: flex-start; font-size: .76rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--rp-soft); color: var(--rp-ink2); }
.rp-pill.good { background: var(--rp-good-bg); color: var(--rp-good); }
.rp-pill.bad { background: var(--rp-bad-bg); color: var(--rp-bad); }
.rp-figure { width: 100%; }
.rp-chart { width: 100%; height: auto; display: block; overflow: visible; }
.rp-chart text { font-family: var(--rp-font); }
.rp-grid { stroke: var(--rp-grid); stroke-width: 1; }
.rp-axis { stroke: var(--rp-axis-c); stroke-width: 1; }
.rp-tick { fill: var(--rp-ink3); font-size: 12px; }
.rp-label { fill: var(--rp-ink2); font-size: 12px; font-weight: 600; }
.rp-cat { fill: var(--rp-ink); font-size: 13px; }
.rp-axis-title { fill: var(--rp-ink3); font-size: 12px; }
.rp-line { fill: none; stroke: var(--rp-c1); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.rp-line.rp-s1 { stroke: var(--rp-c2); }
.rp-area { fill: var(--rp-c1); opacity: .08; }
.rp-dot { fill: var(--rp-paper); stroke: var(--rp-c1); stroke-width: 2; }
.rp-dot.rp-s1 { stroke: var(--rp-c2); }
.rp-dot:hover { r: 6; }
.rp-bar { fill: var(--rp-c1soft); transition: opacity .15s; }
.rp-bar.rp-hi { fill: var(--rp-c1); }
.rp-bar:hover { opacity: .8; }
.rp-pt { fill: var(--rp-c1); opacity: .5; }
.rp-foot { font-size: .8rem; color: var(--rp-ink3); margin: 6px 0 0; }
.rp-data { margin-top: 6px; font-size: .86rem; }
.rp-data summary { cursor: pointer; color: var(--rp-ink3); width: fit-content; }
.rp-scroll { overflow-x: auto; }
.rp-table { width: 100%; border-collapse: collapse; font-size: .9rem; margin-top: 6px; }
.rp-table th, .rp-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--rp-line); }
.rp-table th { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--rp-ink3); font-weight: 700; }
.rp-table td.n { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rp-table th:not(:first-child) { text-align: right; }
.rp-list { margin: 0; padding-left: 20px; }
.rp-list li { margin-bottom: 6px; }
.rp-small { font-size: .9rem; color: var(--rp-ink2); }
.rp-findings { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; counter-reset: f; }
.rp-finding { counter-increment: f; border: 1px solid var(--rp-line); border-left: 4px solid var(--rp-c1soft); border-radius: 10px; padding: 12px 14px 12px 46px; position: relative; }
.rp-finding::before { content: counter(f); position: absolute; left: 14px; top: 12px; width: 22px; height: 22px; border-radius: 50%; background: var(--rp-soft); color: var(--rp-ink2); font-weight: 800; font-size: .8rem; display: grid; place-items: center; }
.rp-finding.good { border-left-color: var(--rp-good); }
.rp-finding.bad { border-left-color: var(--rp-bad); }
.rp-finding h3 { font-size: .98rem; margin: 0 0 2px; }
.rp-finding p { margin: 0; color: var(--rp-ink2); }
.rp-recs { margin: 0; padding-left: 22px; display: grid; gap: 8px; }
.rp-recs li::marker { color: var(--rp-c2); font-weight: 800; }
.rp-recs p { margin: 0; }
.rp-themes { display: grid; gap: 14px; margin-top: 12px; }
.rp-theme-head { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.rp-theme-share { margin-left: auto; color: var(--rp-ink3); font-size: .86rem; font-variant-numeric: tabular-nums; }
.rp-meter { height: 8px; background: var(--rp-soft); border-radius: 99px; overflow: hidden; margin: 6px 0; }
.rp-meter span { display: block; height: 100%; background: var(--rp-c1); border-radius: 99px; }
.rp-quotes { list-style: none; padding: 0; margin: 4px 0 0; color: var(--rp-ink2); font-size: .9rem; font-style: italic; }
.rp-quotes li { margin-bottom: 2px; }
.rp-tag { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 2px 7px; border-radius: 99px; background: var(--rp-soft); color: var(--rp-ink2); }
.rp-tag.negative { background: var(--rp-bad-bg); color: var(--rp-bad); }
.rp-tag.positive { background: var(--rp-good-bg); color: var(--rp-good); }
.rp-sentiment { display: flex; height: 26px; border-radius: 8px; overflow: hidden; font-size: .74rem; font-weight: 700; }
.rp-sentiment span { display: flex; align-items: center; justify-content: center; white-space: nowrap; overflow: hidden; min-width: 4px; }
.rp-sent-negative { background: #f3c2b8; color: #6e2214; }
.rp-sent-mixed { background: #f6dfb6; color: #5c3d07; }
.rp-sent-neutral { background: #e3e7ef; color: #3d4659; }
.rp-sent-positive { background: #bfe6cf; color: #0e4b2e; }
.rp-text { white-space: pre-wrap; }
.rp-note { background: #fff9e8; border: 1px solid #f3e2b1; border-radius: 8px; padding: 8px 12px; font-size: .9rem; color: #5a4a1d; margin: 10px 0 0; white-space: pre-wrap; }
.rp-q { font-weight: 700; margin: 0 0 4px; }
.rp-a { margin: 0 0 10px; }
.rp-bignum { font-size: 2.4rem; font-weight: 800; color: var(--rp-c1); }
.rp-footer { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--rp-line); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: .78rem; color: var(--rp-ink3); }
.rp-watermark { color: var(--rp-ink3); font-weight: 700; text-decoration: none; }
/* editing */
.rp-editable { outline: none; border-radius: 6px; transition: box-shadow .12s, background .12s; cursor: text; }
.rp-editable:hover { box-shadow: 0 0 0 1px var(--rp-line); background: rgba(31, 94, 255, .03); }
.rp-editable:focus { box-shadow: 0 0 0 2px var(--rp-c1); background: #fff; }
.rp-editable:empty::before { content: 'Click to write…'; color: var(--rp-ink3); }
.rp-tools { position: absolute; top: 8px; right: 0; display: flex; gap: 2px; opacity: .25; transition: opacity .15s; background: var(--rp-paper); padding: 2px; border-radius: 8px; z-index: 2; align-items: center; }
.rp-sec:hover .rp-tools, .rp-sec:focus-within .rp-tools { opacity: 1; box-shadow: 0 1px 6px rgba(15, 25, 50, .12); }
.rp-tool { border: 0; background: none; width: 30px; height: 30px; border-radius: 6px; display: grid; place-items: center; color: var(--rp-ink2); cursor: pointer; }
.rp-tool:hover:not(:disabled) { background: var(--rp-soft); color: var(--rp-ink); }
.rp-tool:disabled { opacity: .3; cursor: default; }
.rp-tool svg { width: 18px; height: 18px; }
.rp-drag { cursor: grab; }
.rp-tool-select { border: 1px solid var(--rp-line); border-radius: 6px; font: inherit; font-size: .8rem; padding: 3px 4px; background: #fff; color: var(--rp-ink2); }
.rp-hidden { opacity: .45; }
.rp-hidden-tag { display: inline-block; font-size: .72rem; font-weight: 700; color: var(--rp-ink3); background: var(--rp-soft); border-radius: 99px; padding: 2px 8px; }
.rp-dragging { opacity: .4; }
.rp-drop { box-shadow: 0 -3px 0 var(--rp-c1); }
@media (max-width: 640px) {
  .rp-report { padding: 22px 16px 18px; border-radius: 10px; font-size: 15px; }
  .rp-kpi-value { font-size: 1.5rem; }
  .rp-tools { position: static; opacity: 1; margin-bottom: 4px; justify-content: flex-end; flex-wrap: wrap; box-shadow: none; }
  .rp-finding { padding-left: 42px; }
}
@media print {
  @page { size: auto; margin: 14mm 12mm; }
  .rp-report { box-shadow: none; border: 0; padding: 0; max-width: none; font-size: 11.5pt; }
  .rp-tools, .rp-hidden, .rp-data, .rp-hidden-tag { display: none !important; }
  .rp-sec { break-inside: avoid; }
  .rp-chart { max-height: 9cm; }
  .rp-editable { box-shadow: none !important; background: none !important; }
  .rp-editable:empty::before { content: ''; }
  a.rp-watermark { color: #6b7489; }
}
