/*
 * 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 /dashboard-v2/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;
}
.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);
  }
}
