@charset "utf-8";

/* ==========================================================================
   内容层：正文、清单、引文、样题、发布信息与打印
   ========================================================================== */

/* --------------------------------------------------------------------------
   正文
   -------------------------------------------------------------------------- */

.prose {
  color: var(--text);
  font-size: 15.5px;
  line-height: 1.95;
}

.prose p + p {
  margin-top: 12px;
}

.prose a {
  color: var(--primary);
  border-bottom: 1px solid rgba(47, 123, 226, 0.36);
}

.prose a:hover {
  border-bottom-color: var(--primary);
}

.lead {
  color: var(--text-2);
  line-height: 1.9;
}

.prose .lead {
  color: var(--text);
}

/* 导语：用一条朱砂竖线标出，比公文式的灰底段落更像网页 */
.summary {
  position: relative;
  padding: 18px 22px 18px 24px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--primary);
  border-radius: var(--radius-sm);
  background-color: var(--paper-2);
  color: var(--ink-3);
  font-size: 15px;
  line-height: 1.95;
}

.summary strong {
  color: var(--ink);
}

/* --------------------------------------------------------------------------
   清单
   -------------------------------------------------------------------------- */

.ordered {
  padding-left: 0;
  counter-reset: ordered;
  list-style: none;
}

.ordered > li {
  position: relative;
  margin-bottom: 12px;
  padding-left: 34px;
  counter-increment: ordered;
  line-height: 1.9;
}

.ordered > li:last-child {
  margin-bottom: 0;
}

.ordered > li::before {
  position: absolute;
  left: 0;
  top: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 7px;
  background-color: var(--primary-soft);
  color: var(--primary-dark);
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1;
  content: counter(ordered);
}

.ordered .ordered,
.ordered .bullets {
  margin-top: 10px;
  margin-bottom: 4px;
}

.bullets {
  padding-left: 0;
}

.bullets > li {
  position: relative;
  margin-bottom: 9px;
  padding-left: 20px;
  line-height: 1.9;
}

.bullets > li:last-child {
  margin-bottom: 0;
}

.bullets > li::before {
  position: absolute;
  left: 2px;
  top: 11px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background-color: var(--primary);
  opacity: 0.55;
  content: "";
}

.ordered > li > .bullets > li::before {
  top: 12px;
  background-color: var(--text-3);
  opacity: 1;
}

/* 括号编号列表：（1）（2）（3） */
.paren-list {
  padding-left: 2.6em;
}

.paren-list > li {
  position: relative;
  margin-bottom: 8px;
  counter-increment: paren;
}

.paren-list > li::before {
  position: absolute;
  left: -2.6em;
  top: 0;
  width: 2.6em;
  color: var(--primary-dark);
  content: "（" counter(paren) "）";
}

.keyword {
  color: var(--primary-dark);
  font-weight: 700;
}

/* --------------------------------------------------------------------------
   引文
   -------------------------------------------------------------------------- */

.quote {
  padding: 18px 22px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--primary);
  border-radius: var(--radius-sm);
  background-color: var(--paper-2);
  color: var(--ink-3);
  font-family: var(--font-kai);
  font-size: 17px;
  line-height: 2;
}

.quote__source {
  display: block;
  margin-top: 12px;
  color: var(--text-3);
  font-family: var(--font-sans);
  font-size: 12.5px;
}

/* --------------------------------------------------------------------------
   样题
   -------------------------------------------------------------------------- */

.questions {
  padding-left: 0;
  counter-reset: question;
  list-style: none;
}

.questions > li {
  position: relative;
  padding: 18px 22px 18px 56px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background-color: var(--paper-2);
  counter-increment: question;
}

.questions > li + li {
  margin-top: 12px;
}

.questions > li::before {
  position: absolute;
  left: 20px;
  top: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  background-color: var(--primary-soft);
  color: var(--primary-dark);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  content: counter(question);
}

.questions__stem {
  color: var(--ink);
  font-size: 15.5px;
  font-weight: 700;
  line-height: 1.8;
}

.questions__options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(172px, 1fr));
  gap: 6px 20px;
  margin-top: 12px;
}

.questions__options > li {
  color: var(--text-2);
  font-size: 14.5px;
  line-height: 1.8;
}

.quiz-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}

.quiz-card {
  position: relative;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background-color: #f7f9fc;
}

.quiz-card__label {
  display: inline-block;
  margin-bottom: 10px;
  padding: 2px 10px;
  border-radius: 999px;
  background-color: var(--primary-soft);
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.4px;
}

.quiz-card__text {
  color: var(--ink-3);
  font-family: var(--font-kai);
  font-size: 17px;
  line-height: 2;
  text-align: justify;
}

.quiz-card__source {
  display: block;
  margin-top: 10px;
  color: var(--text-3);
  font-family: var(--font-sans);
  font-size: 12.5px;
  text-align: right;
}

/* --------------------------------------------------------------------------
   发布信息
   -------------------------------------------------------------------------- */

.publisher {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 20px;
  padding: 17px 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background-color: var(--paper-2);
  color: var(--text-2);
  font-size: 14px;
}

.publisher__org {
  color: var(--ink);
  font-weight: 700;
}

.publisher__date {
  color: var(--text-3);
  font-size: 13px;
}

/* --------------------------------------------------------------------------
   响应式
   -------------------------------------------------------------------------- */

@media (max-width: 780px) {
  .prose {
    font-size: 15px;
  }

  .summary {
    padding: 16px 18px 16px 20px;
  }

  .questions > li {
    padding: 16px 18px 16px 50px;
  }

  .questions > li::before {
    left: 16px;
    top: 16px;
  }

  .quiz-card__text {
    font-size: 16px;
  }
}

/* --------------------------------------------------------------------------
   打印
   -------------------------------------------------------------------------- */

@media print {
  body {
    background-color: #fff;
    font-size: 12pt;
  }

  .utilbar,
  .masthead,
  .mainnav,
  .hero,
  .quickbar,
  .process,
  .breadcrumb,
  .pagetitle,
  .filterbar,
  .columns > aside,
  .to-top,
  .site-footer {
    display: none !important;
  }

  .columns {
    display: block;
    margin-top: 0;
  }

  .block {
    border: 0;
    box-shadow: none;
  }

  .block + .block {
    margin-top: 18pt;
  }

  .block__head,
  .block__body {
    padding: 0 0 8pt;
  }

  .block__title {
    font-size: 14pt;
  }

  .block,
  .gradecard,
  .table-wrap {
    break-inside: avoid;
  }

  /* 报名点二维码：打印时显示全部报名点，每行 4 个并避免卡片跨页断开 */
  .qrcard.is-filtered {
    display: flex;
  }

  .qrgroup.is-filtered {
    display: block;
  }

  .qr-empty {
    display: none !important;
  }

  .qrgroup + .qrgroup {
    margin-top: 18pt;
  }

  .qrgrid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 10pt;
  }

  .qrcard {
    break-inside: avoid;
  }

  a[href]::after {
    content: "";
  }
}
