
/* session-replay-privacy-checklist figures. This article-local stylesheet loads after resources.css.
   Replaces session-replay-privacy-layers.svg, session-replay-data-control-matrix.svg
   and session-replay-b2b-example-checklist.svg. */

.pv-fig {
  margin: 38px 0;
  padding: 30px 32px 28px;
  border: 1px solid #cfdcf0;
  border-radius: 20px;
  background: #f4f7fb;
  color: #071b3a;
}

h3.pv-h {
  margin: 0 0 22px;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: #071b3a;
}

p.pv-note {
  margin: 16px 0 0;
  padding: 13px 16px;
  border-left: 4px solid #b8860b;
  border-radius: 0 10px 10px 0;
  background: #fdf9f1;
  font-size: 14px;
  line-height: 1.5;
  color: #6b4e08;
  text-wrap: pretty;
}

/* ---------- figure 1: lifecycle ---------- */

.pv-life {
  display: grid;
  gap: 10px;
}

.pv-stages {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 18px;
}

.pv-stage {
  position: relative;
  display: grid;
  align-content: start;
  padding: 13px 14px 14px;
  border: 1px solid #d7e2f2;
  border-radius: 13px;
  background: #fff;
}

.pv-stage--mask {
  border-color: #e6cd9a;
  background: #fdf9f1;
}

.pv-stage:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 32px;
  right: -18px;
  width: 8px;
  height: 3px;
  background: #8a94a6;
}

.pv-stage:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 26px;
  right: -12px;
  width: 0;
  height: 0;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 9px solid #8a94a6;
}

p.pv-stage__n {
  display: grid;
  place-items: center;
  width: 21px;
  height: 21px;
  margin: 0 0 7px;
  border-radius: 50%;
  background: #071b3a;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
}

.pv-stage--mask p.pv-stage__n { background: #8a5a06; }

p.pv-stage__t {
  margin: 0 0 4px;
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.2;
  color: #071b3a;
}

p.pv-stage__d {
  margin: 0;
  font-size: 14px;
  line-height: 1.4;
  color: #4b5b76;
  text-wrap: pretty;
}

p.pv-stage__flag {
  margin: 8px 0 0;
  padding-top: 8px;
  border-top: 1px solid #e6cd9a;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.3;
  color: #6b4e08;
}

.pv-across {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  align-items: center;
  gap: 8px 18px;
  padding: 14px 18px 15px;
  border: 1px solid #cfe0d6;
  border-radius: 14px;
  background: #eef6f1;
}

p.pv-across__k {
  margin: 0;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #114f30;
}

.pv-across__set {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.pv-across__set span {
  padding: 5px 12px;
  border-radius: 999px;
  background: #fff;
  box-shadow: inset 0 0 0 1px #cfe0d6;
  font-size: 13px;
  font-weight: 600;
  color: #114f30;
}

.pv-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

p.pv-pair__bad,
p.pv-pair__good {
  margin: 0;
  padding: 13px 16px;
  border-left: 4px solid #b8860b;
  border-radius: 0 10px 10px 0;
  background: #fdf9f1;
  font-size: 14px;
  line-height: 1.5;
  color: #6b4e08;
  text-wrap: pretty;
}

p.pv-pair__good {
  border-left-color: #17693f;
  background: #eef6f1;
  color: #114f30;
}

/* ---------- figure 2: control scale ---------- */

.pv-scale {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.pv-col {
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  padding: 15px 16px 16px;
  border: 1px solid #d7e2f2;
  border-radius: 14px;
  background: #fff;
}

.pv-col--allow { border-top: 5px solid #b0bdcd; }
.pv-col--mask { border-top: 5px solid #d09b1f; }
.pv-col--block { border-top: 5px solid #8a5a06; }
.pv-col--exclude { border-top: 5px solid #071b3a; }

p.pv-col__k {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  color: #071b3a;
}

p.pv-col__e {
  margin: 3px 0 12px;
  font-size: 14px;
  line-height: 1.35;
  color: #5a6a80;
  text-wrap: pretty;
}

.pv-items {
  display: grid;
  align-content: start;
  gap: 6px;
}

.pv-items span {
  padding: 7px 11px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  text-wrap: pretty;
}

.pv-items span em {
  font-size: 13px;
  font-style: normal;
  font-weight: 600;
  opacity: 0.85;
}

.pv-col--allow .pv-items span {
  background: #f4f7fb;
  box-shadow: inset 0 0 0 1px #dfe7f3;
  color: #33465f;
}

.pv-col--mask .pv-items span {
  background: #fdf9f1;
  box-shadow: inset 0 0 0 1px #e6cd9a;
  color: #6b4e08;
}

.pv-col--block .pv-items span {
  background: repeating-linear-gradient(-45deg, #fdf2dd 0 6px, #fdf9f1 6px 12px);
  box-shadow: inset 0 0 0 1px #d09b1f;
  color: #6b4e08;
}

.pv-col--exclude .pv-items span {
  background: #071b3a;
  color: #fff;
}

p.pv-col__lim {
  margin: 12px 0 0;
  padding-top: 11px;
  border-top: 1px solid #e6edf7;
  font-size: 14px;
  line-height: 1.4;
  color: #4b5b76;
  text-wrap: pretty;
}

p.pv-col__lim b {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #5a6a80;
}

.pv-strength {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
}

.pv-strength__l,
.pv-strength__r {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #5a6a80;
}

.pv-strength__bar {
  height: 8px;
  border-radius: 4px;
  background: linear-gradient(to right, #dfe7f3, #d09b1f 34%, #8a5a06 67%, #071b3a);
}

.pv-sep {
  margin-top: 16px;
  padding: 16px 20px 18px;
  border: 1px solid #d7e2f2;
  border-radius: 16px;
  background: #fff;
}

p.pv-sep__k {
  margin: 0 0 11px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #5a6a80;
}

.pv-sep__set {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.pv-sep__set span {
  padding: 5px 12px;
  border-radius: 999px;
  background: repeating-linear-gradient(-45deg, #fdf2dd 0 6px, #fdf9f1 6px 12px);
  box-shadow: inset 0 0 0 1px #e6cd9a;
  font-size: 13px;
  font-weight: 600;
  color: #6b4e08;
}

p.pv-sep__d {
  margin: 13px 0 0;
  font-size: 14px;
  line-height: 1.45;
  color: #4b5b76;
  text-wrap: pretty;
}

.pv-url {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.pv-url__row {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 9px 13px;
  border-radius: 10px;
}

.pv-url__row--bad {
  background: #fdf9f1;
  box-shadow: inset 0 0 0 1px #e6cd9a;
}

.pv-url__row--good {
  background: #eef6f1;
  box-shadow: inset 0 0 0 1px #cfe0d6;
}

p.pv-url__k {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.pv-url__row--bad p.pv-url__k { color: #8a5a06; }
.pv-url__row--good p.pv-url__k { color: #17693f; }

.pv-url code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13.5px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.pv-url__row--bad code { color: #6b4e08; }
.pv-url__row--good code { color: #114f30; }

/* ---------- figure 3: AtlasDesk scope ---------- */

.pv-scope {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) 28px minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
}

.pv-zone {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 16px 18px 18px;
  border: 1px solid #d7e2f2;
  border-radius: 16px;
  background: #fff;
}

.pv-zone--out {
  border-color: #cfdcf0;
  background: #f4f7fb;
}

p.pv-zone__k {
  margin: 0;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #5a6a80;
}

.pv-wall {
  position: relative;
  align-self: stretch;
}

.pv-wall::before {
  content: "";
  position: absolute;
  top: 6px;
  bottom: 6px;
  left: 50%;
  width: 4px;
  margin-left: -2px;
  border-radius: 2px;
  background: repeating-linear-gradient(#071b3a 0 8px, transparent 8px 14px);
}

.pv-area {
  padding: 13px 15px 14px;
  border-radius: 12px;
  background: #f4f7fb;
  box-shadow: inset 0 0 0 1px #dfe7f3;
}

.pv-area--out {
  background: #fff;
  box-shadow: inset 0 0 0 1px #cfdcf0;
}

.pv-area__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  margin-bottom: 10px;
}

p.pv-area__t {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  color: #071b3a;
}

p.pv-area__tag {
  margin: 0;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pv-area__tag--allow {
  background: #eef6f1;
  box-shadow: inset 0 0 0 1px #cfe0d6;
  color: #114f30;
}

.pv-area__tag--limited {
  background: #fdf9f1;
  box-shadow: inset 0 0 0 1px #e6cd9a;
  color: #6b4e08;
}

.pv-area__tag--exclude {
  background: #071b3a;
  color: #fff;
}

p.pv-area__d {
  margin: 0;
  font-size: 14px;
  line-height: 1.4;
  color: #4b5b76;
  text-wrap: pretty;
}

.pv-ctrls {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.pv-c {
  padding: 5px 11px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 600;
}

.pv-c--allow {
  background: #fff;
  box-shadow: inset 0 0 0 1px #dfe7f3;
  color: #33465f;
}

.pv-c--mask {
  background: #fdf9f1;
  box-shadow: inset 0 0 0 1px #e6cd9a;
  color: #6b4e08;
}

.pv-c--block {
  background: repeating-linear-gradient(-45deg, #fdf2dd 0 6px, #fdf9f1 6px 12px);
  box-shadow: inset 0 0 0 1px #d09b1f;
  color: #6b4e08;
}

.pv-c--exclude {
  background: #071b3a;
  color: #fff;
}

.pv-shared {
  margin-top: 12px;
  padding: 16px 20px 18px;
  border: 1px solid #d7e2f2;
  border-radius: 16px;
  background: #fff;
}

p.pv-shared__k {
  margin: 0 0 12px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #5a6a80;
}

.pv-shared__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.pv-sc {
  padding: 12px 14px 13px;
  border-radius: 12px;
  background: #f4f7fb;
  box-shadow: inset 0 0 0 1px #dfe7f3;
}

p.pv-sc__t {
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #5a6a80;
}

p.pv-sc__v {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  color: #071b3a;
  text-wrap: pretty;
}

p.pv-sc__v em {
  display: block;
  font-size: 13px;
  font-style: normal;
  font-weight: 600;
  color: #5a6a80;
}

/* ---------- responsive ---------- */

@media (max-width: 1180px) {
  .pv-stages { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .pv-stage:nth-child(4)::before,
  .pv-stage:nth-child(4)::after { display: none; }

  .pv-scale { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .pv-shared__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 940px) {
  .pv-fig { padding: 24px 20px 22px; }

  h3.pv-h { font-size: 22px; }

  .pv-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .pv-stage::before,
  .pv-stage::after { display: none; }

  .pv-across {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .pv-pair { grid-template-columns: minmax(0, 1fr); }

  .pv-scope {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  .pv-wall { display: none; }

  .pv-shared__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .pv-stages { grid-template-columns: minmax(0, 1fr); }

  .pv-scale { grid-template-columns: minmax(0, 1fr); }

  .pv-strength { grid-template-columns: minmax(0, 1fr); }

  .pv-shared__grid { grid-template-columns: minmax(0, 1fr); }

  .pv-url__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
}
