.responses-page {
  position: relative;
  max-width: 1100px;
  margin: auto
}

.responses-toolbar {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 22px;
  margin-bottom: 24px
}

.responses-toolbar h2 {
  font: 700 24px Manrope;
  margin: 5px 0 2px
}

.responses-toolbar p {
  margin: 0;
  color: var(--muted);
  font-size: 12px
}

.responses-back {
  border: 0;
  background: none;
  color: #52717d;
  font: 600 12px 'DM Sans';
  cursor: pointer;
  padding: 10px 0
}

.responses-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 14px
}

.responses-toolbar-actions>span {
  color: #65818b;
  font-weight: 700;
  font-size: 12px;
  min-width: 42px;
  text-align: center
}

.responses-badge-link {
  cursor: pointer;
  transition: .2s
}

.responses-badge-link:hover,
.responses-badge-link:focus {
  transform: translateY(-1px);
  box-shadow: 0 0 0 3px rgba(39, 118, 83, .13);
  outline: 0
}

.average-response-card,
.response-sheet {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 14px 34px rgba(16, 35, 57, .08)
}

.average-response-card {
  display: grid;
  grid-template-columns: minmax(230px, .72fr) minmax(430px, 1.28fr);
  align-items: center;
  gap: 28px;
  padding: 30px 38px;
  margin-bottom: 26px
}

.average-response-card h2 {
  font: 700 24px/1.25 Manrope;
  margin: 9px 0
}

.average-response-card p {
  color: var(--muted);
  line-height: 1.65
}

.average-response-card .response-chart {
  max-width: 480px
}

.response-sheet {
  padding: 44px 52px;
  margin-bottom: 60px
}

.response-sheet-header {
  text-align: center
}

.response-sheet-header img {
  display: block;
  max-width: 150px;
  max-height: 75px;
  object-fit: contain;
  margin: 0 auto 18px
}

.response-sheet-header h1 {
  font: 700 30px/1.2 Manrope;
  margin: 10px 0
}

.response-sheet-header p {
  max-width: 700px;
  margin: auto;
  color: var(--muted);
  font-style: italic;
  line-height: 1.7;
  text-align: center
}

.response-sheet-meta {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin: 26px 0;
  border-block: 1px solid var(--line);
  padding: 15px 0;
  color: #607984;
  font-size: 12px
}

.response-chart {
  width: min(560px, 100%);
  margin: 4px auto
}

.response-chart .personal-spider-chart {
  width: 100%;
  height: auto
}

.response-score-list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 7px;
  margin: 0 auto 34px;
  max-width: 760px
}

.response-score-list div {
  text-align: center;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 9px 5px
}

.response-score-list span,
.response-score-list strong {
  display: block
}

.response-score-list span {
  min-height: 27px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.35
}

.response-score-list strong {
  margin-top: 4px;
  color: #078f96;
  font: 800 17px Manrope
}

.response-elements {
  display: grid;
  gap: 27px
}

.response-report-divider {
  width: 100%;
  border: 0;
  border-top: 1px solid #9fbabb;
  margin: 3px 0
}

.response-explanatory-text {
  margin: 0;
  color: #536d78;
  line-height: 1.8;
  text-align: justify
}

.response-answer h3 {
  font: 700 16px/1.55 Manrope;
  margin: 0 0 15px;
  text-align: justify
}

.response-answer h3 span {
  color: #08aeb6
}

.response-range {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px
}

.response-range div {
  text-align: center;
  padding: 9px 5px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #78909a
}

.response-range b {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin: 0 auto 7px;
  border-radius: 50%;
  background: var(--mint);
  color: #078f96
}

.response-range small {
  display: block;
  font-size: 10px
}

.response-range .selected {
  background: #e8f8f3;
  border-color: #94dcd2;
  color: #17495a;
  font-weight: 700
}

.response-range .selected b {
  background: var(--teal);
  color: #fff;
  box-shadow: 0 0 0 4px rgba(8, 183, 190, .15)
}

.response-long-answer p {
  min-height: 76px;
  margin: 0;
  border-left: 3px solid var(--teal);
  background: #f4faf8;
  padding: 16px 18px;
  color: #3f5f6c;
  white-space: pre-wrap;
  line-height: 1.75;
  text-align: justify
}

.response-nav-arrow {
  position: fixed;
  top: 50%;
  z-index: 3;
  width: 56px;
  height: 78px;
  border: 0;
  border-radius: 12px;
  background: #123049;
  color: #fff;
  font: 300 54px/1 Arial;
  cursor: pointer;
  opacity: .3;
  transition: .2s
}

.response-nav-arrow:hover:not(:disabled) {
  opacity: .88;
  transform: translateY(-2px)
}

.response-nav-arrow:disabled {
  opacity: .08;
  cursor: default
}

.response-nav-previous {
  left: 270px
}

.response-nav-next {
  right: 18px
}

.responses-loading,
.responses-empty {
  min-height: 420px;
  display: grid;
  place-content: center;
  justify-items: center;
  text-align: center;
  color: var(--muted)
}

.responses-loading span {
  width: 34px;
  height: 34px;
  border: 3px solid #cce8e3;
  border-top-color: var(--teal);
  border-radius: 50%;
  animation: response-spin .8s linear infinite
}

.responses-empty h2 {
  font: 700 25px Manrope;
  color: var(--ink);
  margin-bottom: 5px
}

.all-responses-print {
  display: none
}

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

@media(max-width:900px) {
  .responses-toolbar {
    grid-template-columns: 1fr
  }

  .responses-toolbar-actions {
    justify-content: space-between
  }

  .average-response-card {
    grid-template-columns: 1fr
  }

  .response-nav-previous {
    left: 225px
  }

  .response-sheet {
    padding: 32px 28px
  }
}

@media(max-width:650px) {
  .response-range {
    grid-template-columns: repeat(5, minmax(48px, 1fr));
    overflow-x: auto
  }

  .response-score-list {
    grid-template-columns: 1fr 1fr
  }

  .response-nav-arrow {
    width: 42px;
    height: 62px;
    font-size: 42px
  }

  .response-nav-previous {
    left: 72px
  }

  .response-nav-next {
    right: 5px
  }

  .average-response-card {
    padding: 24px 20px
  }

  .response-sheet {
    padding: 28px 19px
  }

  .responses-toolbar-actions {
    align-items: stretch;
    flex-direction: column
  }

  .responses-toolbar-actions .primary-button {
    width: 100%
  }
}

@media print {

  @page {
    size: A4 portrait;
    margin: 0;
  }

  body.printing-all-responses {
    margin: 0 !important;
    background: #fff !important;
  }

  body.printing-all-responses .sidebar,
  body.printing-all-responses .topbar,
  body.printing-all-responses .responses-toolbar,
  body.printing-all-responses .average-response-card,
  body.printing-all-responses #current-response-sheet,
  body.printing-all-responses .response-nav-arrow {
    display: none !important;
  }

  body.printing-all-responses .app-shell {
    display: block !important;
  }

  body.printing-all-responses .main-content {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  body.printing-all-responses #companies-view,
  body.printing-all-responses .responses-page {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.printing-all-responses .all-responses-print {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
  }

  body.printing-all-responses .print-response-sheet {
    display: block !important;
    visibility: visible !important;
    box-sizing: border-box !important;

    width: 210mm !important;
    min-height: 297mm !important;

    margin: 0 auto !important;

    padding-top: 15mm !important;
    padding-right: 15mm !important;
    padding-bottom: 15mm !important;
    padding-left: 15mm !important;

    background: #fff !important;

    page-break-after: always;
    break-after: page;
  }

  body.printing-all-responses .print-response-sheet:last-child {
    page-break-after: auto;
    break-after: auto;
  }

  body.printing-all-responses .print-response-sheet .response-chart {
    width: 140mm;
    max-height: 140mm;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.printing-all-responses .print-response-sheet .response-score-list {
    margin-bottom: 8mm;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.printing-all-responses .print-response-sheet .response-score-list>div {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.printing-all-responses .print-response-sheet .response-elements {
    gap: 6mm;
  }

  body.printing-all-responses .print-summary-sheet h2 {
    text-align: center;
    font: 700 20px Manrope;
    margin: 3mm 0 2mm;
  }

  body.printing-all-responses .print-summary-sheet {
    padding: 15mm !important;
  }

  body.printing-all-responses .print-summary-sheet .response-sheet-header img {
    max-width: 120px !important;
    max-height: 55px !important;
    margin-bottom: 8px !important;
  }

  body.printing-all-responses .print-summary-sheet .response-sheet-header h1 {
    font-size: 21px !important;
    margin: 5px 0 !important;
  }

  body.printing-all-responses .print-summary-sheet .response-sheet-header p {
    font-size: 8px !important;
    line-height: 1.35 !important;
  }

  body.printing-all-responses .print-summary-sheet .response-sheet-meta {
    margin: 8px 0 !important;
    padding: 7px 0 !important;
  }

  body.printing-all-responses .print-summary-sheet .response-chart {
    width: 115mm !important;
    max-height: 115mm !important;
    margin: 0 auto 3mm !important;
  }

  body.printing-all-responses .print-summary-sheet .response-score-list {
    margin: 0 auto !important;
    gap: 5px !important;
    max-width: 180mm !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.printing-all-responses .print-summary-sheet .response-score-list div {
    padding: 6px 3px !important;
  }

  body.printing-all-responses .print-summary-sheet .response-score-list span {
    min-height: 20px !important;
    font-size: 7px !important;
  }

  body.printing-all-responses .print-summary-sheet .response-score-list strong {
    margin-top: 2px !important;
    font-size: 14px !important;
  }

  body.printing-all-responses .print-response-sheet .response-sheet-header h1 {
    font-size: 25px;
  }

  body.printing-all-responses .print-response-sheet .response-range div {
    break-inside: avoid;
  }

  body.printing-all-responses .print-response-sheet .response-sheet-header>img:first-child {
    display: none !important;
  }
}