/*
 * Supplio v2 — Report page styles
 * Spec: src/design_handoff_supplio_v3/README.md §7.1-§7.12
 * Depends on: css/v2-tokens.css (must be loaded first)
 */

/* ============================================================
   Breadcrumb + status row
   ============================================================ */
.v2-rpt-bread {
  max-width: 1180px;
  margin: 0 auto;
  padding: 18px 28px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  font-family: var(--v2-font-mono);
  font-size: 11px;
  color: var(--v2-mute);
}

.v2-rpt-bread__crumbs a { color: var(--v2-mute); }
.v2-rpt-bread__crumbs a:hover { color: var(--v2-ink); }
.v2-rpt-bread__crumbs strong { color: var(--v2-ink); font-weight: 600; }

.v2-rpt-bread__status {
  display: inline-flex;
  align-items: center;
  gap: 16px;
}

.v2-rpt-bread__status::before {
  content: '';
  display: inline-block;
  width: 6px; height: 6px;
  background: var(--v2-mint);
  border-radius: 999px;
}

/* ============================================================
   Report layout container
   ============================================================ */
.v2-rpt {
  max-width: 1180px;
  margin: 0 auto;
  padding: 18px 28px 40px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
}

/* Mobile padding reduction — at 375px viewport, the 28px each side eats too much.
   Penalty -150: 17px horizontal overflow on /account/check at 375 because
   .v2-rpt-waterfall's min-content (long "1 451 177 561 PLN" kapital number) forced
   it wider than its 263px grid track. min-width: 0 on grid items + reduced .v2-rpt
   padding so children have room to breathe. */
@media (max-width: 480px) {
  .v2-rpt { padding: 12px 14px 32px; gap: 12px; }
}
.v2-rpt-waterfall,
.v2-rpt-right-col,
.v2-rpt-info,
.v2-rpt-stats,
.v2-rpt-stat {
  min-width: 0;
}

.v2-rpt-card {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 22px;
}

/* ============================================================
   §7.1 Hero — company head
   ============================================================ */
.v2-rpt-hero__head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.v2-rpt-hero__pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  background: var(--v2-mint-bg);
  color: var(--v2-mint);
  border-radius: 999px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.v2-rpt-hero__caps {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
}

.v2-rpt-hero__title {
  font-size: clamp(24px, 3vw, 30px);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 12px;
  color: var(--v2-ink);
  line-height: 1.1;
}

.v2-rpt-hero__ids {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-family: var(--v2-font-mono);
  font-size: 11.5px;
  color: var(--v2-mute);
}

.v2-rpt-hero__ids strong {
  color: var(--v2-ink);
  font-weight: 600;
  margin-right: 4px;
}

/* ============================================================
   §7.2 Verdict card (the hero answer)
   ============================================================ */
.v2-rpt-verdict {
  background: var(--v2-paper);
  border: 1px solid var(--v2-red);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(192, 57, 43, 0.08);
}

.v2-rpt-verdict--amber {
  border-color: var(--v2-amber);
  box-shadow: 0 8px 32px rgba(184, 125, 26, 0.08);
}

.v2-rpt-verdict--mint {
  border-color: var(--v2-mint);
  box-shadow: 0 8px 32px rgba(13, 138, 106, 0.08);
}

/* mute = anon "preliminary score" band. Sanctions / PEP / financials not run
   yet, so the card MUST NOT look like a verdict (red/mint). Neutral grey only.
   Penalty -141. */
.v2-rpt-verdict--mute {
  border-color: var(--v2-hair);
  box-shadow: var(--v2-shadow-card);
}

.v2-rpt-verdict__body {
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 28px;
  padding: 24px 28px;
  background: linear-gradient(180deg, var(--v2-red-bg) 0%, transparent 70%);
}

.v2-rpt-verdict--amber .v2-rpt-verdict__body {
  background: linear-gradient(180deg, var(--v2-amber-bg) 0%, transparent 70%);
}

.v2-rpt-verdict--mint .v2-rpt-verdict__body {
  background: linear-gradient(180deg, var(--v2-mint-bg) 0%, transparent 70%);
}

.v2-rpt-verdict--mute .v2-rpt-verdict__body {
  background: var(--v2-paper-alt);
}

@media (max-width: 720px) {
  .v2-rpt-verdict__body { grid-template-columns: 1fr; }
}

.v2-rpt-verdict__caps {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-red);
  margin-bottom: 10px;
}

.v2-rpt-verdict--amber .v2-rpt-verdict__caps { color: var(--v2-amber); }
.v2-rpt-verdict--mint  .v2-rpt-verdict__caps { color: var(--v2-mint); }

.v2-rpt-verdict__title {
  font-size: 30px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--v2-ink);
  margin: 0 0 12px;
}

.v2-rpt-verdict__desc {
  font-size: 13.5px;
  color: var(--v2-soft);
  line-height: 1.55;
  margin: 0 0 16px;
}

.v2-rpt-verdict__desc strong { color: var(--v2-red); font-weight: 700; }
.v2-rpt-verdict--amber .v2-rpt-verdict__desc strong { color: var(--v2-amber); }
.v2-rpt-verdict--mint  .v2-rpt-verdict__desc strong { color: var(--v2-mint); }

.v2-rpt-verdict__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.v2-rpt-verdict__gauge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.v2-rpt-verdict__gauge-num {
  font-family: var(--v2-font-mono);
  font-size: 38px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-top: -56px;
  color: var(--v2-red);
}

.v2-rpt-verdict--amber .v2-rpt-verdict__gauge-num { color: var(--v2-amber); }
.v2-rpt-verdict--mint  .v2-rpt-verdict__gauge-num { color: var(--v2-mint); }

.v2-rpt-verdict__gauge-of {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--v2-mute);
  text-transform: uppercase;
}

.v2-rpt-verdict__steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  padding: 16px 28px;
  background: var(--v2-bg);
  border-top: 1px solid var(--v2-hair);
}

@media (max-width: 720px) {
  .v2-rpt-verdict__steps { grid-template-columns: 1fr; }
}

.v2-rpt-verdict__step {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.v2-rpt-verdict__step-num {
  font-family: var(--v2-font-mono);
  font-size: 11.5px;
  font-weight: 700;
  color: var(--v2-mint);
  margin-right: 2px;
}

.v2-rpt-verdict__step-text {
  font-size: 12.5px;
  color: var(--v2-ink);
  line-height: 1.5;
}

/* ============================================================
   §7.3 Action bar + Share/QR
   ============================================================ */
.v2-rpt-actions {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 18px;
}

@media (max-width: 720px) {
  .v2-rpt-actions { grid-template-columns: 1fr; }
}

.v2-rpt-action-bar {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 18px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.v2-rpt-action-bar__btns {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.v2-rpt-action-bar__id {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--v2-mute);
  text-transform: uppercase;
}

.v2-rpt-action-bar__id strong { color: var(--v2-ink); }

.v2-rpt-share {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 14px;
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 12px;
  align-items: center;
}

.v2-rpt-share__qr {
  width: 64px; height: 64px;
  background: var(--v2-ink);
  border-radius: 6px;
  padding: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.v2-rpt-share__qr svg { width: 100%; height: 100%; }

.v2-rpt-share__caps {
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-bottom: 2px;
}

.v2-rpt-share__title {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--v2-ink);
  margin-bottom: 2px;
  line-height: 1.3;
}

.v2-rpt-share__url {
  font-family: var(--v2-font-mono);
  font-size: 10px;
  color: var(--v2-mint);
  word-break: break-all;
}

/* ============================================================
   §7.4 Executive brief
   ============================================================ */
.v2-rpt-brief {
  background: linear-gradient(180deg, #fbfcfa 0%, var(--v2-paper) 100%);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 22px;
}

.v2-rpt-brief__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

.v2-rpt-brief__icon {
  width: 36px; height: 36px;
  background: var(--v2-ink);
  color: var(--v2-mint-soft);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
}

.v2-rpt-brief__title {
  flex: 1;
  font-size: 14px;
  font-weight: 700;
  color: var(--v2-ink);
}

.v2-rpt-brief__meta {
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
}

.v2-rpt-brief__body {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.55;
  color: var(--v2-ink);
}

.v2-rpt-brief__body strong { color: var(--v2-red); font-weight: 700; }

/* ============================================================
   §7.6 Score waterfall + stats grid (2:1)
   ============================================================ */
.v2-rpt-waterfall-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 18px;
}

@media (max-width: 800px) {
  .v2-rpt-waterfall-row { grid-template-columns: 1fr; }
}

.v2-rpt-waterfall {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 22px;
}

.v2-rpt-waterfall__title {
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 14px;
}

/* Anon paywall hint inside the waterfall card — fills the empty tail space below
   "Końcowy score" and explains the missing sanctions/PEP/financial factor rows.
   Penalty -136. */
.v2-rpt-wf-hint {
  display: flex;
  gap: 14px;
  margin-top: 18px;
  padding: 16px;
  background: var(--v2-mint-bg);
  border: 1px dashed var(--v2-mint);
  border-radius: 10px;
  align-items: flex-start;
}
.v2-rpt-wf-hint__icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--v2-paper);
  color: var(--v2-mint);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--v2-hair-soft);
}
.v2-rpt-wf-hint__title {
  font-size: 13px;
  font-weight: 700;
  color: var(--v2-ink);
  margin-bottom: 4px;
}
.v2-rpt-wf-hint__desc {
  font-size: 12.5px;
  color: var(--v2-soft);
  line-height: 1.55;
}

.v2-rpt-wf-row {
  display: grid;
  grid-template-columns: 160px 1fr 50px 50px;
  gap: 10px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--v2-hair-soft);
}

.v2-rpt-wf-row:last-child { border-bottom: none; }
.v2-rpt-wf-row--final { padding-top: 12px; margin-top: 6px; border-top: 1px solid var(--v2-hair); border-bottom: none; }

.v2-rpt-wf-row__label {
  font-size: 12.5px;
  color: var(--v2-ink);
}

.v2-rpt-wf-row__bar {
  position: relative;
  height: 6px;
  background: var(--v2-hair-soft);
  border-radius: 999px;
  overflow: hidden;
}

.v2-rpt-wf-row__bar-fill {
  position: absolute;
  left: 0; top: 0; height: 100%;
  border-radius: 999px;
}

.v2-rpt-wf-row__val {
  font-family: var(--v2-font-mono);
  font-size: 12.5px;
  font-weight: 700;
  color: var(--v2-ink);
  text-align: right;
}

.v2-rpt-wf-row__delta {
  font-family: var(--v2-font-mono);
  font-size: 11.5px;
  font-weight: 700;
  text-align: right;
}

.v2-rpt-wf-row__delta--positive { color: var(--v2-mint); }
.v2-rpt-wf-row__delta--negative { color: var(--v2-red); }
.v2-rpt-wf-row__delta--zero     { color: var(--v2-mute); }

.v2-rpt-wf-row--final .v2-rpt-wf-row__label,
.v2-rpt-wf-row--final .v2-rpt-wf-row__val {
  font-weight: 800;
}

.v2-rpt-right-col {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.v2-rpt-info {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 18px 20px;
}

.v2-rpt-info__head {
  font-family: var(--v2-font-body);
  font-size: 12.5px;
  font-weight: 700;
  margin-bottom: 14px;
  color: var(--v2-ink);
}

.v2-rpt-info__row {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid var(--v2-hair-soft);
  font-size: 12px;
}

.v2-rpt-info__row:last-child { border-bottom: none; }

.v2-rpt-info__label {
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--v2-mute);
  padding-top: 1px;
}

.v2-rpt-info__value {
  color: var(--v2-ink);
  font-weight: 500;
  line-height: 1.4;
  word-break: break-word;
}

.v2-rpt-info__value .v2-rpt-info__sub {
  display: block;
  font-size: 11px;
  color: var(--v2-mute);
  font-weight: 500;
  margin-top: 2px;
}

.v2-rpt-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  align-content: start;
}

.v2-rpt-stat {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 12px;
  padding: 14px;
}

.v2-rpt-stat__label {
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-bottom: 6px;
}

.v2-rpt-stat__value {
  font-family: var(--v2-font-mono);
  font-size: 20px;
  font-weight: 800;
  color: var(--v2-ink);
}

.v2-rpt-stat--red   .v2-rpt-stat__value { color: var(--v2-red); }
.v2-rpt-stat--mint  .v2-rpt-stat__value { color: var(--v2-mint); }
.v2-rpt-stat--amber .v2-rpt-stat__value { color: var(--v2-amber); }

/* ============================================================
   §7.8 Trade credit limit hero
   ============================================================ */
.v2-rpt-trade {
  background: linear-gradient(135deg, var(--v2-red-bg) 0%, transparent 70%);
  border: 1px solid var(--v2-red);
  border-radius: 14px;
  padding: 28px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: center;
}

.v2-rpt-trade--mint {
  background: linear-gradient(135deg, var(--v2-mint-bg) 0%, transparent 70%);
  border-color: var(--v2-mint);
}

.v2-rpt-trade--amber {
  background: linear-gradient(135deg, var(--v2-amber-bg) 0%, transparent 70%);
  border-color: var(--v2-amber);
}

@media (max-width: 720px) {
  .v2-rpt-trade { grid-template-columns: 1fr; }
}

.v2-rpt-trade__caps {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-red);
  margin-bottom: 6px;
}

.v2-rpt-trade--mint  .v2-rpt-trade__caps { color: var(--v2-mint); }
.v2-rpt-trade--amber .v2-rpt-trade__caps { color: var(--v2-amber); }

.v2-rpt-trade__num {
  font-family: var(--v2-font-mono);
  font-size: 60px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--v2-red);
}

.v2-rpt-trade--mint  .v2-rpt-trade__num { color: var(--v2-mint); }
.v2-rpt-trade--amber .v2-rpt-trade__num { color: var(--v2-amber); }

.v2-rpt-trade__desc {
  font-size: 13.5px;
  color: var(--v2-ink);
  line-height: 1.5;
}

.v2-rpt-trade__desc strong { color: var(--v2-red); font-weight: 700; }
.v2-rpt-trade--mint  .v2-rpt-trade__desc strong { color: var(--v2-mint); }
.v2-rpt-trade--amber .v2-rpt-trade__desc strong { color: var(--v2-amber); }

/* ============================================================
   §7.9 Financial trajectory 3-year bars
   ============================================================ */
.v2-rpt-fin {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 22px;
}

.v2-rpt-fin__head {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 18px;
}

.v2-rpt-fin__title { font-size: 14px; font-weight: 700; flex: 1; }

.v2-rpt-fin__metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

@media (max-width: 720px) {
  .v2-rpt-fin__metrics { grid-template-columns: repeat(2, 1fr); }
}

.v2-rpt-fin-metric__label {
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-bottom: 6px;
}

.v2-rpt-fin-metric__years {
  display: flex; gap: 6px;
  font-family: var(--v2-font-mono);
  font-size: 11.5px;
  margin-bottom: 8px;
}

.v2-rpt-fin-metric__year { color: var(--v2-mute); }
.v2-rpt-fin-metric__year-val { color: var(--v2-ink); font-weight: 700; }

.v2-rpt-fin-metric__bars {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 56px;
  padding-top: 4px;
}

.v2-rpt-fin-metric__bar {
  flex: 1;
  background: var(--v2-mint);
  border-radius: 3px 3px 0 0;
  min-height: 2px;
}

.v2-rpt-fin-metric__bar--amber { background: var(--v2-amber); }
.v2-rpt-fin-metric__bar--red   { background: var(--v2-red); }

/* ============================================================
   §7.11 Director network
   ============================================================ */
.v2-rpt-dir {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 22px;
}

.v2-rpt-dir__head {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.v2-rpt-dir__title { font-size: 14px; font-weight: 700; }

.v2-rpt-dir__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

@media (max-width: 640px) {
  .v2-rpt-dir__grid { grid-template-columns: 1fr; }
}

.v2-rpt-dir__person {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: var(--v2-paper-alt);
  border: 1px solid var(--v2-hair-soft);
  border-radius: 12px;
}

.v2-rpt-dir__avatar {
  width: 40px; height: 40px;
  background: var(--v2-ink);
  color: var(--v2-mint-soft);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--v2-font-body);
  font-weight: 800;
  font-size: 14px;
  flex-shrink: 0;
}

.v2-rpt-dir__name {
  font-size: 14px;
  font-weight: 700;
  color: var(--v2-ink);
  margin-bottom: 2px;
}

.v2-rpt-dir__meta {
  font-family: var(--v2-font-mono);
  font-size: 11px;
  color: var(--v2-mute);
}

/* ============================================================
   §7.14 Status strip
   ============================================================ */
.v2-rpt-status {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

@media (max-width: 720px) {
  .v2-rpt-status { grid-template-columns: 1fr; }
}

.v2-rpt-status-cell {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 12px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.v2-rpt-status-cell__icon {
  width: 36px; height: 36px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.v2-rpt-status-cell--mint  .v2-rpt-status-cell__icon { background: var(--v2-mint-bg);  color: var(--v2-mint); }
.v2-rpt-status-cell--amber .v2-rpt-status-cell__icon { background: var(--v2-amber-bg); color: var(--v2-amber); }
.v2-rpt-status-cell--red   .v2-rpt-status-cell__icon { background: var(--v2-red-bg);   color: var(--v2-red); }

.v2-rpt-status-cell__label {
  font-family: var(--v2-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-bottom: 2px;
}

.v2-rpt-status-cell__value {
  font-size: 13px;
  font-weight: 700;
  color: var(--v2-ink);
}

/* ============================================================
   Dark CTA footer
   ============================================================ */
.v2-rpt-cta-dark {
  background: var(--v2-ink);
  background: radial-gradient(ellipse at top right, rgba(13,138,106,0.18) 0%, var(--v2-ink) 50%);
  color: var(--v2-paper);
  padding: 40px 36px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.v2-rpt-cta-dark h2 {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--v2-paper);
  margin: 0;
  line-height: 1.15;
}

.v2-rpt-cta-dark h2 .v2-mint-text { color: var(--v2-mint-soft); }

/* ============================================================
   Loading + empty states
   ============================================================ */
.v2-rpt-loading {
  text-align: center;
  padding: 80px 24px;
  color: var(--v2-mute);
}

.v2-rpt-loading__spinner {
  display: inline-block;
  width: 32px; height: 32px;
  border: 3px solid var(--v2-hair);
  border-top-color: var(--v2-mint);
  border-radius: 999px;
  animation: v2-spin 0.8s linear infinite;
  margin-bottom: 12px;
}

@keyframes v2-spin { to { transform: rotate(360deg); } }

/* ============================================================
   §7.7 Risk timeline · 12 months / What's changed / Peer distribution
   ============================================================ */
.v2-rpt-timeline,
.v2-rpt-changes,
.v2-rpt-peer {
  /* Parent .v2-rpt is flex-column with stretch; auto horizontal margins would break stretch + shrink to content. */
  margin-top: 22px;
  padding: 22px 26px;
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  position: relative;
}
.v2-rpt-section__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.v2-rpt-section__icon {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  background: var(--v2-mint-bg);
  color: var(--v2-mint);
  border-radius: 8px;
}
.v2-rpt-section__title {
  font-size: 15px;
  font-weight: 700;
  color: var(--v2-ink);
}
.v2-rpt-section__sub {
  font-size: 12px;
  color: var(--v2-soft);
  margin-left: auto;
  font-family: var(--v2-font-mono);
}

/* Pro+ locked overlay */
.v2-rpt-locked {
  position: relative;
  min-height: 180px;
}
.v2-rpt-locked__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.95) 60%);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
  padding: 22px;
  text-align: center;
  z-index: 2;
}
.v2-rpt-locked__title {
  font-size: 14px;
  font-weight: 700;
  color: var(--v2-ink);
}
.v2-rpt-locked__copy {
  font-size: 12.5px;
  color: var(--v2-soft);
  max-width: 420px;
  line-height: 1.5;
}
.v2-rpt-locked__blurred {
  filter: blur(3px);
  pointer-events: none;
  user-select: none;
}

/* Timeline — SVG line chart */
.v2-rpt-timeline__chart {
  width: 100%;
  height: 180px;
  margin-top: 8px;
}
.v2-rpt-timeline__chart .v2-line { fill: none; stroke: var(--v2-mint); stroke-width: 2; stroke-linejoin: round; }
.v2-rpt-timeline__chart .v2-area { fill: var(--v2-mint-bg); opacity: 0.6; }
.v2-rpt-timeline__chart .v2-grid { stroke: var(--v2-hair-soft); stroke-dasharray: 2 4; }
.v2-rpt-timeline__chart .v2-axis-label { font-family: var(--v2-font-mono); font-size: 9.5px; fill: var(--v2-mute); }
.v2-rpt-timeline__chart .v2-point { fill: var(--v2-paper); stroke: var(--v2-mint); stroke-width: 2; }
.v2-rpt-timeline__chart .v2-point--current { fill: var(--v2-mint); }

.v2-rpt-timeline__legend {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--v2-mute);
  margin-top: 8px;
  font-family: var(--v2-font-mono);
}

/* What's changed — diff rows (design spec: 5-col grid date / event / was / now / delta) */
.v2-rpt-changes__list { display: flex; flex-direction: column; }
.v2-rpt-change-row {
  display: grid;
  grid-template-columns: 90px 1.6fr 1fr 1fr 70px;
  align-items: center;
  gap: 14px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--v2-hair-soft);
  font-size: 13px;
}
.v2-rpt-change-row:last-child { border-bottom: none; }
.v2-rpt-change-row__when {
  font-family: var(--v2-font-mono);
  font-size: 11px;
  color: var(--v2-mute);
}
.v2-rpt-change-row__event {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.v2-rpt-change-row__icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  font-family: var(--v2-font-mono);
  font-size: 12px;
  font-weight: 800;
}
.v2-rpt-change-row--added .v2-rpt-change-row__icon   { background: var(--v2-red-bg);    color: var(--v2-red); }
.v2-rpt-change-row--changed .v2-rpt-change-row__icon { background: var(--v2-amber-bg);  color: var(--v2-amber); }
.v2-rpt-change-row--removed .v2-rpt-change-row__icon { background: var(--v2-mint-bg);   color: var(--v2-mint); }
.v2-rpt-change-row__opis {
  font-size: 13px;
  color: var(--v2-ink);
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
}
.v2-rpt-change-row__was,
.v2-rpt-change-row__now {
  font-family: var(--v2-font-mono);
  font-size: 11px;
  color: var(--v2-mute);
  white-space: nowrap;
}
.v2-rpt-change-row__was strong { color: var(--v2-soft); font-weight: 600; }
.v2-rpt-change-row__now strong { color: var(--v2-ink); font-weight: 700; }
.v2-rpt-change-row__delta {
  font-family: var(--v2-font-mono);
  font-weight: 700;
  font-size: 12px;
  text-align: right;
  white-space: nowrap;
}
.v2-rpt-change-row__delta--positive { color: var(--v2-mint); }
.v2-rpt-change-row__delta--negative { color: var(--v2-red); }
.v2-rpt-change-row__delta--zero     { color: var(--v2-mute); }

.v2-rpt-changes__empty {
  font-size: 12.5px;
  color: var(--v2-soft);
  padding: 14px 18px;
}

@media (max-width: 720px) {
  .v2-rpt-change-row { grid-template-columns: 70px 1fr 60px; gap: 8px; }
  .v2-rpt-change-row__was, .v2-rpt-change-row__now { display: none; }
}

/* Peer distribution — histogram */
.v2-rpt-peer__chart {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 130px;
  margin: 14px 0 8px;
  border-bottom: 1px solid var(--v2-hair-soft);
  padding-bottom: 2px;
}
.v2-rpt-peer__bar {
  flex: 1;
  background: var(--v2-hair);
  border-radius: 3px 3px 0 0;
  position: relative;
  min-height: 4px;
  transition: background var(--v2-trans-fast);
}
.v2-rpt-peer__bar--here {
  background: var(--v2-mint);
}
.v2-rpt-peer__bar--here::after {
  content: 'TUTAJ';
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  color: var(--v2-mint);
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.v2-rpt-peer__axis {
  display: flex;
  justify-content: space-between;
  font-family: var(--v2-font-mono);
  font-size: 10px;
  color: var(--v2-mute);
  margin-top: 4px;
}
.v2-rpt-peer__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--v2-hair-soft);
}
.v2-rpt-peer__stat {
  text-align: center;
}
.v2-rpt-peer__stat-label {
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--v2-mute);
}
.v2-rpt-peer__stat-val {
  font-family: var(--v2-font-mono);
  font-size: 14px;
  font-weight: 700;
  color: var(--v2-ink);
  margin-top: 4px;
}

@media (max-width: 720px) {
  .v2-rpt-timeline, .v2-rpt-changes, .v2-rpt-peer { padding: 16px 18px; }
  .v2-rpt-peer__stats { grid-template-columns: 1fr; }
}

/* ============================================================
   Paywall modal (v3) — inline email-gate + OTP, opens via
   data-paywall-action buttons. Submit POSTs to api.php?action=create_checkout.
   ============================================================ */
.v2-paywall-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.v2-paywall-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(14, 26, 22, 0.62);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.v2-paywall-modal__panel {
  position: relative;
  width: 100%;
  max-width: 440px;
  background: var(--v2-paper, #fff);
  border-radius: 16px;
  box-shadow: 0 24px 56px -16px rgba(14, 26, 22, 0.32), 0 6px 16px -4px rgba(14, 26, 22, 0.18);
  padding: 28px 26px 22px;
  animation: v2PaywallFadeIn 180ms ease-out;
}
@keyframes v2PaywallFadeIn {
  from { opacity: 0; transform: translateY(8px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.v2-paywall-modal__close {
  position: absolute;
  top: 12px;
  right: 14px;
  width: 32px;
  height: 32px;
  border: 0;
  background: transparent;
  font-size: 24px;
  line-height: 1;
  color: var(--v2-soft, #6b7280);
  cursor: pointer;
  border-radius: 8px;
  transition: background 120ms;
}
.v2-paywall-modal__close:hover { background: var(--v2-hair-soft, #f0f4f2); color: var(--v2-ink, #0e1a16); }
.v2-paywall-modal__head { margin-bottom: 18px; }
.v2-paywall-modal__price {
  font-family: var(--v2-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--v2-mint, #0d8a6a);
  text-transform: uppercase;
  margin-bottom: 8px;
}
.v2-paywall-modal__title {
  font-size: 22px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--v2-ink, #0e1a16);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.v2-paywall-modal__subtitle {
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--v2-soft, #6b7280);
  margin: 0;
}
.v2-paywall-modal__form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.v2-paywall-modal__form label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--v2-ink, #0e1a16);
}
.v2-paywall-modal__form input {
  font-family: inherit;
  font-size: 15px;
  padding: 12px 14px;
  border: 1.5px solid var(--v2-hair, #e5e7eb);
  border-radius: 10px;
  background: var(--v2-paper, #fff);
  color: var(--v2-ink, #0e1a16);
  outline: none;
  transition: border-color 120ms, box-shadow 120ms;
}
.v2-paywall-modal__form input:focus {
  border-color: var(--v2-mint, #0d8a6a);
  box-shadow: 0 0 0 3px rgba(13, 138, 106, 0.12);
}
.v2-paywall-modal__form #v2PaywallOtp {
  font-family: var(--v2-font-mono);
  letter-spacing: 0.4em;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
}
.v2-paywall-modal__hint {
  font-size: 11.5px;
  color: var(--v2-soft, #6b7280);
  line-height: 1.5;
  margin-top: 4px;
}

/* Consent rows. align-items:flex-start keeps the box on the first text line when the label
   wraps to two or three lines, which the Polish wording does on a phone. */
.v2-paywall-modal__check {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 10px;
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--v2-soft, #6b7280);
  cursor: pointer;
}
.v2-paywall-modal__check input[type="checkbox"] {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  margin: 2px 0 0;
  accent-color: var(--v2-mint, #10b981);
  cursor: pointer;
}
.v2-paywall-modal__check a {
  color: inherit;
  text-decoration: underline;
}
.v2-paywall-modal__check a:hover { color: var(--v2-ink, #111827); }
.v2-paywall-modal__err {
  font-size: 12.5px;
  color: #c93a3a;
  background: #fdecec;
  padding: 8px 12px;
  border-radius: 8px;
  line-height: 1.4;
}
.v2-paywall-modal__trust {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--v2-hair-soft, #f0f4f2);
  font-size: 11.5px;
  color: var(--v2-soft, #6b7280);
}
@media (max-width: 480px) {
  .v2-paywall-modal__panel { padding: 24px 20px 18px; border-radius: 14px; }
  .v2-paywall-modal__title { font-size: 19px; }
}

/* ============================================================
   §PRINT — Pobierz PDF uses window.print() so PDF appearance = print rules.
   Hide chrome (nav, sidebar, lang toggle, modals, paywall CTAs, locked overlays,
   monitoring nudge, dark CTAs, share QR, mini footer, anomalies, action bar buttons).
   Keep report content only. Strip shadows / gradients (waste of toner / unreadable).
   Force single-column where the screen had multi-column layouts.
   Penalty -145: previous PDF had every UI element rendered + broken styles because
   no @media print rules existed.
   ============================================================ */
@media print {
  /* Page setup */
  @page { size: A4; margin: 14mm 12mm; }

  html, body {
    background: #fff !important;
    color: #0e1a16 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Chrome to hide entirely */
  nav.v2-nav,
  .v2-dash__sidebar,
  .v2-dash__topbar,
  #v2LangToggle,
  .v2-lang-toggle,
  .v2-rpt-bread__status,
  .v2-rpt-action-bar,                 /* Buttons row: PDF / Monitor / Share / Buy */
  .v2-rpt-actions .v2-rpt-action-bar,
  .v2-rpt-share,                      /* QR + copy */
  .v2-rpt-cta-dark,                   /* Bottom "Add to monitoring" CTA */
  .v2-rpt-monitor-cta,
  .v2-rpt-locked,                     /* Locked-section overlays */
  .v2-rpt-wf-hint,                    /* Anon paywall hint inside waterfall */
  .v2-rpt-trade--locked .v2-btn,      /* Anon trade-credit Buy CTA */
  .v2-paywall-modal,
  #v2PaywallModal,
  .v2-mini-footer,
  .print-hide,
  .v2-dash__btn-primary,
  .v2-dash__nav-link,
  .v2-rpt-section__head .v2-rpt-section__action {
    display: none !important;
  }

  /* Layout: drop multi-column grids to single column so a4 width is enough */
  .v2-rpt {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 14px !important;
  }
  .v2-rpt-actions,
  .v2-rpt-waterfall-row {
    display: block !important;
  }
  .v2-rpt-right-col {
    margin-top: 14px !important;
  }
  .v2-rpt-verdict__body,
  .v2-rpt-verdict__steps {
    grid-template-columns: 1fr !important;
  }

  /* Strip decorative shadows + gradients; flat ink-on-paper */
  .v2-rpt-card,
  .v2-rpt-verdict,
  .v2-rpt-waterfall,
  .v2-rpt-info,
  .v2-rpt-stats,
  .v2-rpt-trade,
  .v2-rpt-fin,
  .v2-rpt-dir,
  .v2-rpt-status,
  .v2-rpt-brief,
  .v2-rpt-timeline,
  .v2-rpt-changes,
  .v2-rpt-peer {
    box-shadow: none !important;
    background: #fff !important;
    border: 1px solid #d8dcd8 !important;
    page-break-inside: avoid;
  }
  .v2-rpt-verdict__body {
    background: #fff !important;
  }

  /* Verdict gauge — keep color but reduce size; print-friendly */
  .v2-rpt-verdict__gauge { transform: scale(0.85); transform-origin: top center; }

  /* Section header: ensure they don't get separated from their content */
  .v2-rpt-section__head,
  .v2-rpt-fin__head,
  .v2-rpt-waterfall__title {
    page-break-after: avoid;
  }

  /* Links — show URL inline after text so the printed report carries the source */
  a[href]:after {
    content: "";   /* default off — too noisy; keep clean for now */
  }

  /* Hide v3 version chip on print (it's a dev marker) */
  .v2-nav__ver,
  .v2-dash__brand-version,
  .v2-tag-v2 {
    display: none !important;
  }

  /* Print URL footer — show NIP + verify hash + scan timestamp */
  .v2-rpt::after {
    content: "Supplio · supplio.pl · raport zweryfikowany cyfrowo";
    display: block;
    margin-top: 18px;
    padding-top: 10px;
    border-top: 1px solid #d8dcd8;
    font-size: 9px;
    color: #6b7280;
    text-align: center;
    font-family: var(--v2-font-mono);
  }
}
