/* 珅泽 OJ 2026 UI beta — visual layer only; production behavior stays native. */
:root {
  --sz-brand: #584bd8;
  --sz-brand-strong: #4638c7;
  --sz-brand-solid: #5144d2;
  --sz-brand-solid-hover: #4033bd;
  --sz-brand-soft: #f0efff;
  --sz-page: #f7f7fc;
  --sz-surface: #ffffff;
  --sz-head: #fafaff;
  --sz-line: #e3e1f1;
  --sz-line-soft: #eeedf6;
  --sz-line-strong: #d6d2ea;
  --sz-text: #22213f;
  --sz-text-dim: #67657e;
  --sz-text-faint: #9491a7;
  --sz-hover: #f5f4ff;
  --sz-shadow: 0 16px 42px rgba(48, 42, 100, .065);
  --ui-radius: 18px;
  --ui-radius-sm: 11px;
}

html.layout--immersive {
  --sz-text: #22213f;
  --sz-text-dim: #67657e;
  --sz-text-faint: #9491a7;
  --sz-line: #e3e1f1;
  --sz-line-strong: #d6d2ea;
}

html.theme--dark {
  --sz-brand: #aaa2ff;
  --sz-brand-strong: #c0baff;
  --sz-brand-solid: #7569e5;
  --sz-brand-solid-hover: #877cf0;
  --sz-brand-soft: rgba(117, 105, 229, .16);
  --sz-page: #151521;
  --sz-surface: #1d1d2a;
  --sz-head: #21212f;
  --sz-line: rgba(255,255,255,.10);
  --sz-line-soft: rgba(255,255,255,.06);
  --sz-line-strong: rgba(255,255,255,.16);
  --sz-text: #efeff8;
  --sz-text-dim: #b2b0c3;
  --sz-text-faint: #858297;
  --sz-hover: rgba(255,255,255,.05);
}

html body {
  background: var(--sz-page);
  color: var(--sz-text);
  font-family: Inter, "SF Pro Display", "PingFang SC", "Microsoft YaHei", sans-serif;
  -webkit-font-smoothing: antialiased;
}

html .section {
  border: 1px solid var(--sz-line);
  border-radius: var(--ui-radius);
  background: var(--sz-surface);
  box-shadow: none;
  overflow: hidden;
}

html .section__header {
  min-height: 64px;
  padding: 16px 22px;
  border-bottom-color: var(--sz-line-soft);
  background: var(--sz-head);
}

html .section__title {
  color: var(--sz-text);
  font-size: 20px;
  font-weight: 760;
  letter-spacing: -.02em;
}

html .button,
html button.button {
  min-height: 42px;
  border-radius: 10px;
  font-weight: 700;
  letter-spacing: 0;
}

/* 上游同时给按钮写了固定 height / line-height，字号变大后文字会向下偏。
   链接与真实 button 统一交给 flex 做垂直居中；input submit 不能用 flex，单独处理。 */
html a.button,
html button.button,
html .sz-home-button,
html .formal-hub__button,
html .formal-final__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55em;
  height: auto;
  line-height: 1.2;
  text-align: center;
}
html input[type="submit"].button,
html input[type="button"].button {
  height: 46px;
  line-height: 1.2;
}

html .primary.button {
  border-color: var(--sz-brand-solid);
  background: var(--sz-brand-solid);
  color: #fff;
  box-shadow: 0 8px 18px rgba(81, 68, 210, .18);
}

html .primary.button:hover {
  border-color: var(--sz-brand-solid-hover);
  background: var(--sz-brand-solid-hover);
}

/* ---------- 登录 / 注册 / 找回密码 ----------
   旧主题的深红沉浸页与新版不一致。账户页改成冷灰紫背景 + 白色表单卡，
   登录、注册和找回密码共用；只改视觉，不改变字段、验证码及提交逻辑。 */
html.layout--immersive #panel {
  background-color: #f4f4fb;
  background-image:
    radial-gradient(circle at 16% 15%, rgba(88,75,216,.12), transparent 29%),
    radial-gradient(circle at 86% 84%, rgba(152,145,238,.13), transparent 31%),
    linear-gradient(145deg, #fafaff 0%, #f1f0fb 58%, #f8f8fc 100%);
}
html.layout--immersive .immersive--center {
  width: 420px;
  max-width: calc(100vw - 32px);
  margin: 48px auto;
  padding: 36px 38px 30px;
  border: 1px solid var(--sz-line);
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 22px 64px rgba(44,39,92,.12);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
html.layout--immersive .immersive--center h1 {
  margin: 0 0 30px;
  color: var(--sz-text);
  font-size: 25px;
  font-weight: 760;
  line-height: 1.35;
  letter-spacing: 0;
  text-align: center;
}
html.layout--immersive .immersive--center h1::before {
  width: 68px;
  height: 68px;
  margin: 0 auto 16px;
  border: 1px solid #dedaf8;
  border-radius: 20px;
  background: #f3f1ff url('/brand-logo.png') center / 46px 46px no-repeat;
  box-shadow: none;
}
html.layout--immersive label.textbox.material,
html.theme--dark.layout--immersive label.textbox.material {
  color: var(--sz-text-dim);
  font-size: 14px;
}
html.layout--immersive label.textbox.material input,
html.theme--dark.layout--immersive label.textbox.material input {
  height: 48px;
  padding: 18px 12px 6px;
  border: 1px solid var(--sz-line-strong);
  border-radius: 11px;
  color: var(--sz-text);
  background: #fff;
  box-shadow: none;
}
html.layout--immersive label.textbox.material input:focus,
html.theme--dark.layout--immersive label.textbox.material input:enabled:read-write:focus {
  border-color: var(--sz-brand) !important;
  outline: 3px solid rgba(88,75,216,.11) !important;
  box-shadow: none !important;
}
html.layout--immersive label.textbox.material.focus,
html.layout--immersive label.textbox.material:focus-within,
html.theme--dark.layout--immersive label.textbox.material.focus,
html.theme--dark.layout--immersive label.textbox.material:focus-within {
  color: var(--sz-brand) !important;
}
html.layout--immersive .immersive--center .button:not(.codicon).primary {
  width: 100%;
  min-height: 48px;
  border-color: var(--sz-brand-solid);
  border-radius: 12px;
  color: #fff;
  background: var(--sz-brand-solid);
  box-shadow: 0 10px 22px rgba(81,68,210,.19);
}
html.layout--immersive .immersive--center .button:not(.codicon).primary:not(.disabled):hover {
  border-color: var(--sz-brand-solid-hover);
  color: #fff;
  background: var(--sz-brand-solid-hover);
}
html.layout--immersive .immersive--center .checkbox,
html.layout--immersive .immersive--center [style*="color:#fff"],
html.layout--immersive .immersive--center [style*="color: #fff"] { color: var(--sz-text-dim) !important; }
html.layout--immersive .supplementary.inverse,
html.layout--immersive .supplementary.inverse a { color: var(--sz-text-dim); opacity: 1; }
html.layout--immersive .supplementary.inverse a:hover { color: var(--sz-brand); }
html.layout--immersive .footer { border-top-color: var(--sz-line); background: transparent; }
html.layout--immersive .footer,
html.layout--immersive .footer a { color: var(--sz-text-dim); }
html.layout--immersive .sz-captcha__tip { color: var(--sz-text-dim) !important; }
html.layout--immersive .sz-captcha__refresh {
  min-width: 46px;
  min-height: 46px;
  border: 1px solid var(--sz-line-strong) !important;
  border-radius: 10px;
  background: #fff !important;
}

/* 查看答卷时题面已经完成渲染；若上游编辑器遮罩误开，不能继续留在题目上转圈。 */
html.page--problem_detail:has(.ti-ans-bar) .outer-loader-container,
html.page--problem_detail:has(.ti-ans-bar) .scratchpad-container > .loader-container {
  display: none !important;
}

/* ---------- 错题本 ---------- */
html.page--wrongbook .main > .row {
  display: grid;
  width: min(100%, 1440px);
  max-width: none;
  margin: 0 auto;
  padding: 0 22px;
  grid-template-columns: minmax(0, 1fr) 270px;
  gap: 20px;
  align-items: start;
}
html.page--wrongbook .main > .row > .columns {
  float: none;
  width: auto;
  min-width: 0;
  padding: 0;
}
html.page--wrongbook .sz-wrongbook-hero-wrap { width: 100%; grid-column: 1 / -1; }
html.page--wrongbook .sz-wrongbook-hero {
  display: flex;
  min-height: 154px;
  margin-bottom: 20px;
  padding: 28px 32px;
  border: 1px solid #dcd8f5;
  border-radius: 18px;
  background: linear-gradient(125deg, #f8f7ff 0%, #f0eeff 100%);
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
html.page--wrongbook .sz-wrongbook-hero__eyebrow {
  display: inline-block;
  margin-bottom: 9px;
  color: var(--sz-brand);
  font-size: 13px;
  font-weight: 780;
}
html.page--wrongbook .sz-wrongbook-hero h1 {
  margin: 0 0 10px;
  color: var(--sz-text);
  font-size: 27px;
  line-height: 1.3;
  letter-spacing: -.02em;
}
html.page--wrongbook .sz-wrongbook-hero p { margin: 0; color: var(--sz-text-dim); line-height: 1.75; }
html.page--wrongbook .sz-wrongbook-hero__tip {
  flex: none;
  max-width: 270px;
  padding: 12px 15px;
  border: 1px solid #d8d3fa;
  border-radius: 11px;
  color: #4f46af;
  background: rgba(255,255,255,.78);
  font-size: 13px;
  line-height: 1.6;
}
html.page--wrongbook .main > .row > .columns:first-of-type > .ti-sw {
  box-sizing: border-box;
  min-height: 54px;
  margin: 0;
  padding: 8px 22px;
  border-right: 1px solid var(--sz-line);
  border-left: 1px solid var(--sz-line);
  color: var(--sz-text);
  background: var(--sz-surface);
  gap: 8px 10px;
}
html.page--wrongbook .main > .row > .columns:first-of-type > .ti-sw:first-child {
  padding-top: 18px;
  border-top: 1px solid var(--sz-line);
  border-radius: 16px 16px 0 0;
}
html.page--wrongbook .main > .row > .columns:first-of-type > .ti-sw--act {
  min-height: 72px;
  padding-top: 12px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--sz-line);
  border-radius: 0 0 16px 16px;
}
html.page--wrongbook .ti-sw__label {
  flex: 0 0 86px;
  min-width: 86px;
  margin: 0;
  color: var(--sz-text-dim);
  font-size: 13px;
  font-weight: 720;
  opacity: 1;
}
html.page--wrongbook .ti-sw__item {
  display: inline-flex;
  min-height: 36px;
  padding: 7px 12px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: var(--sz-text);
  background: transparent;
  font-size: 14px;
  line-height: 1.4;
  align-items: center;
}
html.page--wrongbook .ti-sw__item:hover {
  border-color: var(--sz-line-strong);
  background: var(--sz-hover);
}
html.page--wrongbook .ti-sw a.ti-sw__item--active {
  border-color: var(--sz-brand-solid);
  background: var(--sz-brand-solid);
  box-shadow: 0 4px 12px rgba(81,68,210,.14);
}
html.page--wrongbook .ti-sw__n { margin-left: 4px; font-size: 11px; }
html.page--wrongbook .ti-sw__drill {
  min-width: 220px;
  min-height: 44px;
  padding: 10px 22px;
  border-radius: 11px;
  box-shadow: 0 7px 16px rgba(81,68,210,.16);
  justify-content: center;
}
html.page--wrongbook .ti-sw__drill-hint {
  max-width: 620px;
  margin: 0 0 0 8px;
  color: var(--sz-text-dim);
  font-size: 13px;
  line-height: 1.65;
  opacity: 1;
}
html.page--wrongbook .section.display-mode { margin-top: 18px; }
html.page--wrongbook .display-mode > .section__body:first-of-type { padding: 18px !important; }
html.page--wrongbook .display-mode .search {
  display: grid;
  padding: 0;
  grid-template-columns: minmax(180px, 1fr) auto 158px 46px;
  gap: 10px;
  align-items: center;
}
html.page--wrongbook .display-mode .search > * { position: static; min-width: 0; margin: 0; }
html.page--wrongbook .display-mode .search > input,
html.page--wrongbook .display-mode .search > select {
  height: 46px;
  border: 1px solid var(--sz-line-strong);
  border-radius: 10px;
  background: var(--sz-surface);
}
html.page--wrongbook .display-mode .search > button {
  width: 46px;
  height: 46px;
  border-radius: 10px;
}
html.page--wrongbook .display-mode .search > :nth-child(2) {
  color: var(--sz-text);
  font-size: 14px;
  font-weight: 720;
  white-space: nowrap;
}
html.page--wrongbook [data-fragment-id="problem_list"] > .pager-top { display: none; }
html.page--wrongbook [data-fragment-id="problem_list"] > .pager-bottom {
  padding: 18px 20px;
  border-top: 1px solid var(--sz-line-soft);
}
html.page--wrongbook .data-table { width: 100%; table-layout: fixed; }
html.page--wrongbook .data-table col.col--status { width: 148px; }
html.page--wrongbook .data-table col.col--ac-tried { width: 96px; }
html.page--wrongbook .data-table col.col--difficulty { width: 100px; }
html.page--wrongbook .data-table th {
  height: 54px;
  padding: 13px 18px;
  color: var(--sz-text-dim);
  font-size: 12px;
  font-weight: 750;
}
html.page--wrongbook .data-table td { padding: 18px; vertical-align: middle; }
html.page--wrongbook .data-table tbody tr { min-height: 92px; }
html.page--wrongbook .data-table td.col--status {
  color: #d94a54;
  font-size: 13px;
  font-weight: 720;
  white-space: nowrap;
}
html.page--wrongbook .data-table td.col--problem-name {
  color: var(--sz-text);
  font-size: 15px;
  font-weight: 680;
  line-height: 1.55;
}
html.page--wrongbook .data-table td.col--ac-tried,
html.page--wrongbook .data-table td.col--difficulty { color: var(--sz-text-dim); text-align: center; }
html.page--wrongbook .data-table .toggle-tag { display: none !important; }
html.page--wrongbook .data-table .problem__tags { margin-top: 8px; gap: 6px; }
html.page--wrongbook .data-table .problem__main {
  min-height: 0;
  padding: 0;
  background: transparent !important;
}
html.page--wrongbook .sz-wrongbook-status {
  display: inline-flex;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid #f0c8cc;
  border-radius: 999px;
  color: #c93d48;
  background: #fff5f6;
  align-items: center;
}
html.page--wrongbook .sz-wrongbook-empty {
  display: flex;
  min-height: 260px;
  padding: 40px 20px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
}
html.page--wrongbook .sz-wrongbook-empty::before {
  content: '✓';
  display: grid;
  width: 54px;
  height: 54px;
  margin-bottom: 16px;
  border-radius: 17px;
  color: var(--sz-brand);
  background: var(--sz-brand-soft);
  font-size: 24px;
  place-items: center;
}
html.page--wrongbook .sz-wrongbook-empty strong { color: var(--sz-text); font-size: 18px; }
html.page--wrongbook .sz-wrongbook-empty p { margin: 8px 0 0; color: var(--sz-text-dim); line-height: 1.7; }
html.page--wrongbook .medium-3.columns .section.side {
  margin-bottom: 16px;
  border-radius: 16px;
}
html.page--wrongbook .medium-3.columns .section.side .section__body { padding: 20px; }
html.page--wrongbook .medium-3.columns .menu__link { min-height: 50px; border-radius: 10px; }

@media (max-width: 1050px) {
  html.page--wrongbook .main > .row { grid-template-columns: minmax(0,1fr) 250px; }
}

@media (max-width: 1280px) {
  html.page--wrongbook .main > .row { display: block; padding: 0 16px; }
  html.page--wrongbook .main > .row > .columns { margin-bottom: 16px; }
  html.page--wrongbook .sz-wrongbook-hero { padding: 24px 22px; align-items: flex-start; flex-direction: column; }
  html.page--wrongbook .sz-wrongbook-hero__tip { max-width: none; }
  html.page--wrongbook .main > .row > .columns:first-of-type > .ti-sw { padding-right: 18px; padding-left: 18px; }
  html.page--wrongbook .ti-sw { gap: 7px; }
  html.page--wrongbook .ti-sw__label { flex: 0 0 80px; min-width: 80px; }
  html.page--wrongbook .ti-sw__sep { display: none; }
  html.page--wrongbook .ti-sw__item { padding: 6px 10px; }
  html.page--wrongbook .ti-sw--act { display: flex; gap: 12px 18px; align-items: center; }
  html.page--wrongbook .ti-sw__drill { margin: 0; }
  html.page--wrongbook .ti-sw__drill-hint { margin: 0; line-height: 1.6; }
  html.page--wrongbook .display-mode .search {
    grid-template-columns: auto minmax(140px,1fr) 46px;
    gap: 10px;
  }
  html.page--wrongbook .display-mode .search > input { grid-column: 1 / -1; }
  html.page--wrongbook .display-mode .search > :nth-child(2) { grid-column: 1; }
  html.page--wrongbook .display-mode .search > select { grid-column: 2; width: 100%; }
  html.page--wrongbook .display-mode .search > button { grid-column: 3; }

  /* 窄屏不再压缩桌面表格，改成每道题一张信息卡。 */
  html.page--wrongbook [data-fragment-id="problem_list"] { padding: 14px; background: #f7f7fc; }
  html.page--wrongbook .data-table,
  html.page--wrongbook .data-table tbody { display: block !important; }
  html.page--wrongbook .data-table colgroup,
  html.page--wrongbook .data-table thead { display: none !important; }
  html.page--wrongbook .data-table tbody tr {
    display: grid !important;
    min-height: 0;
    margin-bottom: 12px;
    padding: 18px 20px;
    border: 1px solid var(--sz-line);
    border-radius: 14px;
    background: var(--sz-surface);
    grid-template-columns: minmax(0,1fr) auto auto;
    gap: 14px 18px;
    align-items: center;
  }
  html.page--wrongbook .data-table tbody tr:last-child { margin-bottom: 0; }
  html.page--wrongbook .data-table td {
    display: block !important;
    width: auto !important;
    padding: 0;
    border: 0 !important;
  }
  html.page--wrongbook .data-table td.display-mode-hide,
  html.page--wrongbook .data-table td.col--checkbox,
  html.page--wrongbook .data-table td.col--pid { display: none !important; }
  html.page--wrongbook .data-table td.col--problem-name {
    grid-column: 1 / -1;
    grid-row: 1;
    order: 1;
    padding: 0 0 13px !important;
    border-bottom: 1px solid var(--sz-line-soft) !important;
  }
  html.page--wrongbook .data-table td.col--problem-name > a {
    padding-right: 28px;
    font-size: 16px;
    line-height: 1.55;
  }
  html.page--wrongbook .data-table td.col--problem-name .problem__tags {
    margin-top: 10px;
    justify-content: flex-start;
  }
  html.page--wrongbook .data-table td.col--status {
    grid-column: 1;
    grid-row: 2;
    order: 2;
    border-left: 0 !important;
  }
  html.page--wrongbook .data-table td.col--ac-tried {
    display: inline-flex !important;
    grid-column: 2;
    grid-row: 2;
    order: 3;
    gap: 7px;
    align-items: center;
  }
  html.page--wrongbook .data-table td.col--ac-tried::before {
    content: "通过 / 尝试";
    color: var(--sz-text-dim);
    font-size: 11px;
  }
  html.page--wrongbook .data-table td.col--difficulty { grid-column: 3; grid-row: 2; order: 4; }
  html.page--wrongbook [data-fragment-id="problem_list"] > .pager-bottom {
    margin: 10px -12px -12px;
    background: var(--sz-surface);
  }
}

@media (max-width: 480px) {
  html.page--wrongbook .ti-sw__label { flex-basis: 100%; }
  html.page--wrongbook .ti-sw--act { align-items: stretch; flex-direction: column; }
  html.page--wrongbook .ti-sw__drill { width: 100%; justify-content: center; }
  html.page--wrongbook .ti-sw__drill-hint { margin: 0; }
  html.page--wrongbook .display-mode .search { grid-template-columns: minmax(0,1fr) 46px; }
  html.page--wrongbook .display-mode .search > :nth-child(2) { grid-column: 1 / -1; }
  html.page--wrongbook .display-mode .search > select { grid-column: 1; }
  html.page--wrongbook .display-mode .search > button { grid-column: 2; }
  html.page--wrongbook .sz-wrongbook-hero h1 { font-size: 23px; }
  html.page--wrongbook .data-table tbody tr { padding: 16px; grid-template-columns: minmax(0,1fr) auto; gap: 12px; }
  html.page--wrongbook .data-table td.col--difficulty { display: none; }
  html.page--wrongbook .data-table td.col--ac-tried { grid-column: 2; }
}

@media (max-width: 480px) {
  html.layout--immersive .immersive--center {
    margin: 22px auto;
    padding: 28px 22px 24px;
    border-radius: 18px;
  }
}

html a { color: var(--sz-brand); }

/* 顶栏：保留原有栏目和路径，用更清晰的点击区和选中层级收拢视觉。 */
html .nav {
  height: 68px;
  border-bottom-color: var(--sz-line-soft);
  box-shadow: 0 4px 18px rgba(45, 40, 92, .045);
}
html .nav > .row > .columns { min-height: 68px; }
html .nav__list--main,
html .nav__list--secondary {
  min-height: 68px;
  align-items: center;
}
html .nav__list--main { display: flex; min-width: 0; }
html .nav__list--main > .nav__list-item { height: 68px; }
html .sz-logo {
  height: 68px;
  padding-right: 22px;
}
html .sz-logo__img { height: 42px; }
html .nav .nav__item {
  display: inline-flex;
  height: 44px;
  min-height: 44px;
  margin: 12px 2px;
  padding: 0 13px;
  border-radius: 10px;
  color: var(--sz-text-dim);
  font-size: 15px;
  font-weight: 620;
  line-height: 1.2;
  align-items: center;
  justify-content: center;
  transition: color .16s ease, background-color .16s ease;
}
html .nav .nav__item:hover {
  color: var(--sz-text);
  background: var(--sz-hover);
}
html .nav .nav--active {
  color: var(--sz-brand);
  background: var(--sz-brand-soft);
  font-weight: 740;
}
html .nav .nav--active::after { display: none; }
html .nav .sz-nav-menutrigger {
  cursor: pointer;
  gap: 7px;
}
html .nav .nav__item:focus-visible,
html .nav .sz-logo:focus-visible {
  outline: 3px solid rgba(88,75,216,.22);
  outline-offset: 2px;
}

/* 账户入口：登录是次要操作，注册是明确主操作。 */
html .nav__list--secondary { display: flex; align-items: center; gap: 8px; }
html .nav__list--secondary .nav__item {
  margin: 12px 0;
  padding: 0 15px;
  color: var(--sz-text);
  font-weight: 650;
  text-decoration: none !important;
}
html .nav__list--secondary .nav__item--round {
  display: inline-flex;
  min-width: 76px;
  height: 40px;
  margin: 12px 0;
  padding: 0 17px;
  border: 1px solid var(--sz-brand-solid) !important;
  border-radius: 10px;
  color: #fff !important;
  background: var(--sz-brand-solid) !important;
  box-shadow: none !important;
  font-size: 15px;
  font-weight: 720;
  line-height: 1;
  text-decoration: none !important;
  align-items: center;
  justify-content: center;
}
html .nav__list--secondary .nav__item--round:hover {
  border-color: var(--sz-brand-solid-hover) !important;
  color: #fff !important;
  background: var(--sz-brand-solid-hover) !important;
}
html .nav__list--secondary .nav__item--round:focus-visible {
  outline: 3px solid rgba(88,75,216,.2);
  outline-offset: 2px;
}

@media (max-width: 1120px) {
  html .nav > .row { padding-right: 16px; padding-left: 16px; }
  html .sz-logo { padding-right: 12px; }
  html .sz-logo__img { height: 38px; }
  html .nav .nav__item { margin-right: 0; margin-left: 0; padding-right: 10px; padding-left: 10px; font-size: 14px; }
  html .nav__list--secondary { gap: 4px; }
  html .nav__list--secondary .nav__item { padding-right: 10px; padding-left: 10px; }
  html .nav__list--secondary .nav__item--round { min-width: 68px; padding-right: 13px; padding-left: 13px; }
}

@media (hover: none) and (pointer: coarse) {
  html .nav .nav__item,
  html .nav__list--secondary .nav__item--round { min-height: 44px; }
}

@media (max-width: 600px) {
  html .nav.slideout-menu {
    height: auto;
    border-left: 1px solid var(--sz-line);
    background: var(--sz-surface);
    color: var(--sz-text);
    box-shadow: -16px 0 40px rgba(39,34,80,.14);
  }
  html .nav.slideout-menu,
  html .nav.slideout-menu > .row > .columns,
  html .nav.slideout-menu .nav__list--main,
  html .nav.slideout-menu .nav__list--secondary { min-height: 0; }
  html .nav.slideout-menu .nav__list--main,
  html .nav.slideout-menu .nav__list--secondary { display: block; }
  html .nav.slideout-menu .nav__list--main > .nav__list-item { height: auto; }
  html .nav.slideout-menu .sz-logo { height: 56px; padding: 8px 14px; }
  html .nav.slideout-menu .nav__item,
  html .nav.slideout-menu .nav__list--secondary .nav__item,
  html .nav.slideout-menu .nav__list--secondary .nav__item--round {
    width: calc(100% - 16px);
    min-width: 0;
    height: auto;
    min-height: 48px;
    margin: 3px 8px;
    padding: 10px 14px;
    border-radius: 10px;
    line-height: 1.45;
    justify-content: flex-start;
  }
  html .nav.slideout-menu .nav__list--secondary .nav__item--round { justify-content: center; }
  html .nav.slideout-menu .nav__item,
  html .nav.slideout-menu .nav__list--secondary .nav__item {
    color: var(--sz-text-dim);
  }
  html .nav.slideout-menu .nav__item:hover,
  html .nav.slideout-menu .nav__list--secondary .nav__item:hover {
    color: var(--sz-text);
    background: var(--sz-hover);
  }
  html .nav.slideout-menu .nav--active {
    color: var(--sz-brand);
    background: var(--sz-brand-soft);
  }
  html .nav.slideout-menu .sz-navmenu,
  html .nav.slideout-menu .sz-navmenu__sub {
    border-left-color: var(--sz-line);
    background: transparent;
  }
  html .nav.slideout-menu .sz-navmenu__link { color: var(--sz-text-dim); }
}

/* 多分组考试菜单：Scratch 4 项一行，C++ 8 项两行。 */
html .sz-navmenu:has(.sz-navmenu__group) {
  width: min(480px, calc(100vw - 28px));
  padding: 12px;
  border-color: var(--sz-line);
  border-radius: 14px;
  box-shadow: 0 18px 48px rgba(42,37,86,.14);
}
html .sz-navmenu:has(.sz-navmenu__group) .sz-navmenu__group {
  margin: 8px 8px 7px;
  color: var(--sz-text);
  font-size: 14px;
  font-weight: 820;
  letter-spacing: .02em;
}
html .sz-navmenu:has(.sz-navmenu__group) .sz-navmenu__list + .sz-navmenu__group {
  margin-top: 13px;
  padding-top: 12px;
  border-top: 1px solid var(--sz-line-soft);
}
html .sz-navmenu:has(.sz-navmenu__group) .sz-navmenu__list,
html .sz-navmenu:has(.sz-navmenu__group) .sz-navmenu__list--grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 6px;
}
html .sz-navmenu:has(.sz-navmenu__group) .sz-navmenu__link {
  min-height: 42px;
  padding: 9px 11px;
  border-radius: 9px;
  justify-content: flex-start;
}

html .header--mobile {
  padding: 6px 0;
  border-bottom: 1px solid var(--sz-line);
  background: var(--sz-surface);
  color: var(--sz-text);
  line-height: 44px;
  box-shadow: none;
}
html .header--mobile__domain {
  display: flex;
  width: auto;
  max-width: calc(100vw - 84px);
  height: 44px;
  margin: 0;
  align-items: center;
}
html .header--mobile__domain img {
  display: block;
  width: auto;
  max-width: 120px;
  height: 36px;
  object-fit: contain;
}
html .header__hamburger {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  color: var(--sz-text);
}
html .header__hamburger .hamburger-inner,
html .header__hamburger .hamburger-inner::before,
html .header__hamburger .hamburger-inner::after { background-color: var(--sz-text); }

html .ui-beta-notice {
  position: relative;
  z-index: 50;
  display: flex;
  min-height: 42px;
  padding: 8px 24px;
  border-bottom: 1px solid #d8d4ff;
  background: #eeecff;
  color: #3a3469;
  font-size: 13px;
  align-items: center;
  justify-content: center;
  gap: 22px;
}
html .ui-beta-notice strong { color: #4638c7; }
html .ui-beta-notice a { color: #4638c7; font-weight: 800; text-decoration: none; }
html .ui-beta-notice a:hover { text-decoration: underline; }

html.theme--dark .ui-beta-notice {
  border-bottom-color: rgba(170,162,255,.25);
  background: #272440;
  color: #d5d1f8;
}

/* Preview-only page map: every review page remains discoverable. */
.ui-preview-map { position: fixed; z-index: 9998; right: 18px; bottom: 18px; }
.ui-preview-map > summary {
  display: inline-flex; min-height: 44px; padding: 10px 16px; border: 1px solid #4d40cf;
  border-radius: 999px; color: #fff; background: var(--sz-brand-solid); box-shadow: 0 12px 28px rgba(48,42,100,.22);
  font-size: 14px; font-weight: 800; cursor: pointer; align-items: center; list-style: none;
}
.ui-preview-map > summary::-webkit-details-marker { display: none; }
.ui-preview-map[open] > summary { position: absolute; right: 12px; bottom: 12px; min-width: 44px; overflow: hidden; color: transparent; }
.ui-preview-map[open] > summary::after { content: "×"; position: absolute; inset: 0; display: grid; color: #fff; font-size: 24px; place-items: center; }
.ui-preview-map__panel {
  width: min(390px, calc(100vw - 24px)); max-height: min(650px, calc(100vh - 92px)); overflow: auto;
  padding: 18px; border: 1px solid var(--sz-line-strong); border-radius: 18px; background: var(--sz-surface);
  box-shadow: 0 22px 64px rgba(35,31,77,.24);
}
.ui-preview-map:not([open]) .ui-preview-map__panel { display: none; }
.ui-preview-map__head { padding: 2px 4px 14px; border-bottom: 1px solid var(--sz-line-soft); }
.ui-preview-map__head strong { display: block; color: var(--sz-text); font-size: 18px; }
.ui-preview-map__head span { display: block; margin-top: 5px; color: var(--sz-text-dim); font-size: 12px; line-height: 1.55; }
.ui-preview-map nav { display: grid; padding: 12px 0 52px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.ui-preview-map nav a { display: flex; min-height: 58px; padding: 10px 12px; border: 1px solid var(--sz-line); border-radius: 10px; color: var(--sz-text); background: var(--sz-head); text-decoration: none; flex-direction: column; justify-content: center; }
.ui-preview-map nav a:hover { border-color: var(--sz-brand); background: var(--sz-brand-soft); }
.ui-preview-map nav b { font-size: 14px; }
.ui-preview-map nav small { margin-top: 2px; color: var(--sz-text-dim); font-size: 11px; }
.ui-preview-map nav .ui-preview-map__all { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; }

/* Objective problem workspace: match the polished answer-page prototype. */
html.page--problem_detail .ti-ob-layout {
  width: min(1320px, calc(100% - 32px)); grid-template-columns: minmax(0,1fr) 300px; gap: 18px;
}
html.page--problem_detail .ti-ob-layout > .medium-9.columns > .section:first-child {
  margin-bottom: 18px; border-color: var(--sz-line-strong); border-radius: 16px;
}
html.page--problem_detail .ti-ob-layout > .medium-9.columns > .section:first-child .section__header {
  min-height: 0; padding: 24px 28px 18px; border-bottom: 1px solid var(--sz-line-soft); background: var(--sz-surface);
}
html.page--problem_detail .ti-ob-layout > .medium-9.columns > .section:first-child .section__title {
  max-width: 900px; margin: 0; font-size: clamp(23px,2.2vw,30px); line-height: 1.35; font-weight: 780;
}
html.page--problem_detail .ti-ob-layout .problem__tags { display: flex; margin: 0; padding: 0; flex-wrap: wrap; gap: 7px; }
html.page--problem_detail .ti-ob-layout .problem__tag-item {
  display: inline-flex; min-height: 30px; margin: 0; padding: 5px 9px; border: 1px solid var(--sz-line);
  border-radius: 7px; color: var(--sz-text-dim); background: var(--sz-head); font-size: 12px; align-items: center;
}
html.page--problem_detail .ti-ob-layout .problem-content-container {
  overflow: hidden; border: 1px solid var(--sz-line-strong); border-radius: 16px; background: var(--sz-surface);
  box-shadow: 0 12px 32px rgba(48,42,100,.06);
}
html.page--problem_detail .ti-ob-layout .problem-content { padding: 30px 36px 26px; font-size: 17px; line-height: 1.78; }
html.page--problem_detail .ti-ob-layout .ti-ob-intro {
  margin: -4px 0 24px; padding: 11px 14px; border: 1px solid var(--sz-line-soft); border-radius: 9px;
  color: var(--sz-text-dim); background: var(--sz-head); font-size: 13px; line-height: 1.55;
}
html.page--problem_detail .ti-ob-layout .ti-ob-q--cur { animation: sz-question-in .18s ease-out; }
html.page--problem_detail .ti-ob-layout .ti-ob-q > h1,
html.page--problem_detail .ti-ob-layout .ti-ob-q > h2,
html.page--problem_detail .ti-ob-layout .ti-ob-q > h3 {
  margin: 0 0 18px; color: var(--sz-text); font-size: 14px !important; font-weight: 800; letter-spacing: .04em;
}
html.page--problem_detail .ti-ob-layout .ti-ob-q > ol:first-of-type { margin-bottom: 18px; }
html.page--problem_detail .ti-ob-layout .ti-ob-q,
html.page--problem_detail .ti-ob-layout .ti-ob-q .typo,
html.page--problem_detail .ti-ob-layout .ti-ob-q p,
html.page--problem_detail .ti-ob-layout .ti-ob-q li,
html.page--problem_detail .ti-ob-layout .ti-ob-q label { font-size: 17px !important; }
html.page--problem_detail .ti-ob-layout .ti-ob-q ol { margin-top: 8px; padding-left: 0; list-style-position: inside; }
html.page--problem_detail .ti-ob-layout .ti-ob-q label:has(.objective-input) {
  display: flex !important; min-height: 58px; margin: 10px 0; padding: 13px 16px; border: 1px solid var(--sz-line);
  border-radius: 11px; background: #fff; line-height: 1.65; cursor: pointer; align-items: flex-start; gap: 12px;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
html.page--problem_detail .ti-ob-layout .ti-ob-q label:has(.objective-input):hover { border-color: #aaa1f1; background: #faf9ff; }
html.page--problem_detail .ti-ob-layout .ti-ob-q label:has(.objective-input:focus-visible) { outline: 3px solid rgba(81,68,210,.18); outline-offset: 2px; }
html.page--problem_detail .ti-ob-layout .ti-ob-q label:has(.objective-input:checked) { border-color: var(--sz-brand); background: var(--sz-brand-soft); box-shadow: inset 4px 0 0 var(--sz-brand); }
html.page--problem_detail .ti-ob-layout .ti-ob-q .objective-input { flex: none; margin: 7px 3px 0 1px !important; transform: scale(1.18); }
html.page--problem_detail .ti-ob-layout .ti-ob-pager { margin-top: 30px; padding-top: 22px; border-color: var(--sz-line); justify-content: space-between; }
html.page--problem_detail .ti-ob-layout .ti-ob-pager .button { min-width: 148px; min-height: 46px; margin: 0; }
html.page--problem_detail .ti-ob-layout .ti-ob-pager__n { color: var(--sz-text); font-size: 14px; font-weight: 720; font-variant-numeric: tabular-nums; }
html.page--problem_detail .ti-ob-layout .ti-ob-nav {
  top: 82px; display: flex; padding: 18px; border-color: var(--sz-line-strong); border-radius: 16px;
  background: var(--sz-surface); box-shadow: 0 14px 36px rgba(48,42,100,.09); gap: 8px;
}
html.page--problem_detail .ti-ob-layout .ti-ob-nav__head { padding-bottom: 14px; border-bottom: 1px solid var(--sz-line-soft); }
html.page--problem_detail .ti-ob-layout .ti-ob-nav__lbl { color: var(--sz-text); font-size: 15px; font-weight: 780; opacity: 1; }
html.page--problem_detail .ti-ob-layout .ti-ob-timer { color: var(--sz-text-dim); font-size: 12px; }
html.page--problem_detail .ti-ob-layout .ti-ob-submit-top {
  order: 3; width: 100%; min-width: 0; min-height: 46px; margin: 5px 0 0; box-shadow: 0 8px 18px rgba(81,68,210,.18);
}
html.page--problem_detail .ti-ob-layout .ti-ob-nav__i {
  width: 44px; height: 44px; min-width: 44px; line-height: 42px; border-color: var(--sz-line-strong);
  border-radius: 9px; color: var(--sz-text); background: var(--sz-surface); font-size: 15px; font-weight: 760;
}
html.page--problem_detail .ti-ob-layout .ti-ob-nav__i:hover { border-color: var(--sz-brand); background: var(--sz-hover); }
html.page--problem_detail .ti-ob-layout .ti-ob-nav__i--done { border-color: #bbb5ef; color: var(--sz-brand); background: var(--sz-brand-soft); }
html.page--problem_detail .ti-ob-layout .ti-ob-nav__i--cur { border-color: var(--sz-brand); color: #fff; background: var(--sz-brand); box-shadow: 0 5px 12px rgba(81,68,210,.2); }
html.page--problem_detail .ti-ob-layout .ti-ob-done { margin-top: 10px; padding-top: 14px; border-top: 1px solid var(--sz-line-soft); color: var(--sz-text-dim); font-size: 13px; line-height: 1.55; text-align: left; opacity: 1; }
html.page--problem_detail .ti-ob-layout .ti-ob-done b { color: var(--sz-text); font-size: 17px; }
html.page--problem_detail .ti-ob-layout .ti-ob-warn { display: block; margin-top: 3px; color: #a96d16; }
@keyframes sz-question-in { from { opacity: .25; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* Drill and formal-exam workspaces. */
html.page--ti_drill_take .dr-take-row,
html.page--ti_exam_take .ex-take-row { width: min(1320px, calc(100% - 32px)); }
html.page--ti_drill_take .dr-top,
html.page--ti_exam_take .ex-top { padding: 17px 20px; border-color: var(--sz-line-strong); border-radius: 14px; box-shadow: 0 10px 28px rgba(48,42,100,.07); }
html.page--ti_drill_take .dr-top__title,
html.page--ti_exam_take .ex-top__title { color: var(--sz-text); font-size: 20px; font-weight: 780; }
html.page--ti_drill_take .dr-top__meta,
html.page--ti_exam_take .ex-top__meta { color: var(--sz-text-dim); opacity: 1; }
html.page--ti_drill_take .dr-workspace,
html.page--ti_exam_take .ex-workspace { grid-template-columns: minmax(0,1fr) 300px; gap: 18px; }
html.page--ti_drill_take .dr-main-card,
html.page--ti_exam_take .ex-main-card { border-radius: 16px; }
html.page--ti_drill_take .dr-main-card > .section__body,
html.page--ti_exam_take .ex-main-card > .section__body { padding: 28px 32px; }
html.page--ti_drill_take .dr-progress,
html.page--ti_exam_take .ex-progress { padding: 17px; border-color: var(--sz-line-strong); border-radius: 16px; box-shadow: 0 14px 36px rgba(48,42,100,.09); }
html.page--ti_drill_take .dr-nav__lbl,
html.page--ti_exam_take .ex-nav__lbl { color: var(--sz-text); font-size: 15px; font-weight: 780; }
html.page--ti_drill_take .dr-nav__i,
html.page--ti_exam_take .ex-nav__i { min-width: 44px; min-height: 44px; padding: 8px; border-radius: 9px; font-size: 15px; font-weight: 760; }
html.page--ti_drill_take .dr-legend,
html.page--ti_exam_take .ex-legend { color: var(--sz-text-dim); font-size: 12px; }

/* Results and drill setup use readable information cards instead of legacy tables floating on gray. */
html.page--ti_exam_result .exr-top,
html.page--ti_drill_result .dr-top,
html.page--ti_drill_new .dn-card { border-color: var(--sz-line-strong); border-radius: 16px; box-shadow: 0 12px 32px rgba(48,42,100,.07); }
html.page--ti_exam_result .exr-map,
html.page--ti_drill_result .dr-map { border: 1px solid var(--sz-line); border-radius: 14px; background: var(--sz-head); }
html.page--ti_exam_result .exr-cell,
html.page--ti_drill_result .dr-cell { border-radius: 8px; font-weight: 760; }
html.page--ti_exam_result .exr-table,
html.page--ti_drill_result .dr-table { overflow: hidden; border: 1px solid var(--sz-line); border-radius: 12px; }

@media (max-width: 1100px) {
  html.page--problem_detail .ti-ob-layout { width: min(100% - 24px, 920px); }
  html.page--problem_detail .ti-ob-layout .ti-ob-nav { position: relative; top: auto; max-height: none; margin-bottom: 14px; }
  html.page--ti_drill_take .dr-workspace,
  html.page--ti_exam_take .ex-workspace { display: flex; flex-direction: column; }
}

@media (max-width: 600px) {
  .ui-preview-map { right: 10px; bottom: 10px; }
  .ui-preview-map__panel { padding: 14px; border-radius: 14px; }
  .ui-preview-map nav { grid-template-columns: 1fr; }
  .ui-preview-map nav .ui-preview-map__all { grid-column: 1; }
  html.page--problem_detail .ti-ob-layout { width: calc(100% - 16px); }
  html.page--problem_detail .ti-ob-layout > .medium-9.columns > .section:first-child .section__header { padding: 20px 18px 14px; }
  html.page--problem_detail .ti-ob-layout .problem-content { padding: 22px 18px 20px; }
  html.page--problem_detail .ti-ob-layout .ti-ob-q,
  html.page--problem_detail .ti-ob-layout .ti-ob-q .typo,
  html.page--problem_detail .ti-ob-layout .ti-ob-q p,
  html.page--problem_detail .ti-ob-layout .ti-ob-q li,
  html.page--problem_detail .ti-ob-layout .ti-ob-q label { font-size: 16px !important; }
  html.page--problem_detail .ti-ob-layout .ti-ob-pager { gap: 8px; }
  html.page--problem_detail .ti-ob-layout .ti-ob-pager .button { min-width: 0; padding-inline: 12px; }
}

/* Homepage: keep content, improve hierarchy. */
html.page--homepage { --sz-content-width: 1280px; }
html.page--homepage .sz-hero.section {
  border-color: var(--sz-line-strong);
  border-radius: 24px;
  box-shadow: var(--sz-shadow);
}
html.page--homepage .section { margin-bottom: 18px; }
html.page--homepage .sz-hero h1,
html.page--homepage .section__title { letter-spacing: -.03em; }
html.page--homepage .homepage-card,
html.page--homepage .small-6 .section {
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
html.page--homepage .homepage-card:hover,
html.page--homepage .small-6 .section:hover {
  border-color: rgba(88,75,216,.38);
  box-shadow: 0 12px 28px rgba(48,42,100,.07);
  transform: translateY(-2px);
}

/* Exam catalogue. */
html.page--ti_exam_main .row,
html.page--ti_exam_detail .row { max-width: 1320px; }

html.page--ti_exam_main .section:first-child {
  margin-top: 18px;
  border-color: var(--sz-line-strong);
}

html.page--ti_exam_main .section:first-child .section__header {
  min-height: 72px;
  padding: 18px 24px;
  background: linear-gradient(105deg, #faf9ff 0%, #f2f0ff 100%);
}

html.theme--dark.page--ti_exam_main .section:first-child .section__header {
  background: linear-gradient(105deg, #20202d, #25233c);
}

html.page--ti_exam_main .section:first-child .section__title {
  font-size: clamp(21px, 2vw, 25px);
  line-height: 1.4;
}

html.page--ti_exam_main .exam-ps {
  border-top-width: 1px;
  border-left: 4px solid var(--sz-brand);
}

html.page--ti_exam_main .exam-ps__head { padding: 20px 24px 14px; }
html.page--ti_exam_main .exam-ps__name { color: var(--sz-text); font-size: 19px; }
html.page--ti_exam_main .exam-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0 24px 24px; }
html.page--ti_exam_main .exam-cell {
  min-height: 76px;
  padding: 15px 12px;
  border-color: var(--sz-line);
  border-radius: var(--ui-radius-sm);
  background: var(--sz-surface);
}
html.page--ti_exam_main .exam-cell:hover {
  border-color: var(--sz-brand);
  background: var(--sz-brand-soft);
  transform: translateY(-1px);
}
html.page--ti_exam_main .exam-cell__n { color: var(--sz-brand); }

html.page--ti_exam_main .exam-sw {
  min-height: 62px;
  padding: 11px 20px;
  border-bottom: 1px solid var(--sz-line-soft);
  gap: 8px;
}
html.page--ti_exam_main .exam-sw__item {
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid transparent;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
}
html.page--ti_exam_main .exam-sw__item:hover {
  border-color: var(--sz-line);
  background: var(--sz-hover);
}
html.page--ti_exam_main a.exam-sw__item--active {
  border-color: var(--sz-brand-solid);
  background: var(--sz-brand-solid);
}

html.page--ti_exam_main .exam-group__title {
  min-height: 52px;
  padding: 14px 24px;
  border-top: 1px solid var(--sz-line);
  border-bottom: 1px solid var(--sz-line-soft);
  color: var(--sz-text);
  background: linear-gradient(90deg, #f7f6ff 0%, #fbfbff 100%);
  font-size: 16px;
  font-weight: 760;
  line-height: 1.45;
}
html.page--ti_exam_main .exam-group__title::before {
  content: "考试分组";
  display: inline-flex;
  min-height: 24px;
  margin-right: 10px;
  padding: 3px 8px;
  border: 1px solid #d8d3ff;
  border-radius: 7px;
  color: var(--sz-brand);
  background: #f0efff;
  font-size: 10px;
  font-weight: 800;
  vertical-align: 2px;
  align-items: center;
}

/* 训练/串讲详情：侧栏元信息不截断，章节标题与状态形成清楚的主次层级。 */
html.page--training_detail .medium-3.columns > .section.side {
  margin-bottom: 16px;
  border-radius: 16px;
}
html.page--training_detail .medium-3.columns > .section.side > .section__body {
  padding: 18px 20px 20px;
}
html.page--training_detail .medium-3.columns dl.large.horizontal {
  display: grid;
  margin: 0;
  grid-template-columns: 78px minmax(0,1fr);
  gap: 13px 14px;
  align-items: center;
}
html.page--training_detail .medium-3.columns dl.large.horizontal dt,
html.page--training_detail .medium-3.columns dl.large.horizontal dd {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  line-height: 1.5;
}
html.page--training_detail .medium-3.columns dl.large.horizontal dt {
  color: var(--sz-text-dim);
  font-size: 13px;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
}
html.page--training_detail .medium-3.columns dl.large.horizontal dd {
  color: var(--sz-text);
  font-size: 14px;
  font-weight: 650;
}
html.page--training_detail .medium-3.columns .user-profile-link {
  display: inline-flex;
  min-width: 0;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
html.page--training_detail .medium-3.columns .user-profile-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
}
html.page--training_detail .training__section > .section__header {
  min-height: 58px;
  padding: 14px 20px;
  align-items: center;
}
html.page--training_detail .training__section > .section__header .section__title {
  font-size: 16px;
  font-weight: 760;
  line-height: 1.45;
}
html.page--training_detail .training-section-status--text {
  display: inline-flex;
  min-height: 30px;
  margin: 0;
  padding: 5px 10px;
  border: 1px solid var(--sz-line);
  border-radius: 999px;
  color: var(--sz-text-dim);
  background: var(--sz-head);
  font-size: 12px !important;
  font-weight: 760 !important;
  align-items: center;
}
html.page--training_detail .training-section-status--text.done {
  border-color: #b9e5cd;
  color: #168451;
  background: #eefaf3;
}
html.page--training_detail .training-section-status--text.progress,
html.page--training_detail .training-section-status--text.open {
  border-color: #d6d1ff;
  color: var(--sz-brand);
  background: var(--sz-brand-soft);
}
html.page--training_detail .training-section-status--icon { display: none !important; }

@media (max-width: 600px) {
  html .sz-navmenu:has(.sz-navmenu__group) .sz-navmenu__list,
  html .sz-navmenu:has(.sz-navmenu__group) .sz-navmenu__list--grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

html.page--ti_exam_main .exam-row {
  display: flex;
  min-height: 82px;
  padding: 15px 24px;
  border-top-color: var(--sz-line-soft);
  gap: 16px;
  align-items: center;
}
html.page--ti_exam_main .exam-row:hover {
  background: var(--sz-hover);
  box-shadow: inset 3px 0 0 var(--sz-brand);
}
html.page--ti_exam_main .exam-row__seq { width: 64px; flex: none; }
html.page--ti_exam_main .exam-row__title { min-width: 0; color: var(--sz-text); font-size: 16px; line-height: 1.55; flex: 1 1 auto; }
html.page--ti_exam_main .exam-row__meta { color: var(--sz-text-dim); font-size: 13px; }
html.page--ti_exam_main .exam-row::after {
  content: "开始做题";
  margin-left: 8px;
  color: var(--sz-brand);
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

/* Exam detail. */
html.page--ti_exam_detail .section:first-child {
  margin-top: 18px;
  border-color: var(--sz-line-strong);
}
html.page--ti_exam_detail .section:first-child .section__header {
  min-height: 82px;
  padding: 20px 26px;
  background: linear-gradient(105deg, #faf9ff, #f2f0ff);
}
html.theme--dark.page--ti_exam_detail .section:first-child .section__header { background: #232235; }
html.page--ti_exam_detail .section:first-child .section__title { font-size: clamp(22px, 2.4vw, 28px); }
html.page--ti_exam_detail .exam-detail-title { display: flex; margin: 0; align-items: center; flex-wrap: wrap; gap: 10px 12px; line-height: 1.35; }
html.page--ti_exam_detail .exam-detail-id {
  display: inline-flex; min-height: 28px; padding: 5px 9px; border: 1px solid #d4d0f5; border-radius: 7px;
  color: var(--sz-brand); background: var(--sz-brand-soft); font-size: 12px; font-weight: 800; letter-spacing: 0; align-items: center;
}
html.page--ti_exam_detail .exam-meta { color: var(--sz-text-dim); }
html.page--ti_exam_detail .section__body { padding: 22px 26px; }
html.page--ti_exam_detail .exam-start { margin-top: 20px; }
html.page--ti_exam_detail .exam-start__hint { color: var(--sz-text-dim); }
html.page--ti_exam_detail .exam-struct,
html.page--ti_exam_detail .exam-q {
  min-height: 62px;
  border-color: var(--sz-line-soft);
}
html.page--ti_exam_detail .exam-detail-subhead {
  display: flex; min-height: 62px; padding: 17px 26px 12px; border-top: 1px solid var(--sz-line-soft);
  align-items: baseline; justify-content: space-between; gap: 16px;
}
html.page--ti_exam_detail .exam-detail-subhead h2 { margin: 0; color: var(--sz-text); font-size: 18px; font-weight: 800; }
html.page--ti_exam_detail .exam-detail-subhead span { color: var(--sz-text-dim); font-size: 12px; }
html.page--ti_exam_detail .exam-struct { padding: 14px 26px; align-items: center; }
html.page--ti_exam_detail .exam-struct__name { color: var(--sz-text); font-size: 16px; line-height: 1.5; font-weight: 740; }
html.page--ti_exam_detail .exam-struct__range { color: var(--sz-text-dim); font-size: 12px; opacity: 1; }
html.page--ti_exam_detail .exam-q:hover { background: var(--sz-hover); }
html.page--ti_exam_detail .exam-q__title { color: var(--sz-text); }
html.page--ti_exam_detail .exam-qs { padding: 0; }
html.page--ti_exam_detail .exam-qs > .exam-qh:not(summary) {
  min-height: 72px;
  padding: 22px 26px 12px;
  color: var(--sz-text);
  font-size: 16px;
  font-weight: 760;
  opacity: 1;
}
html.page--ti_exam_detail summary.exam-qh {
  display: flex; min-height: 58px; padding: 16px 26px; color: var(--sz-text); background: var(--sz-head);
  font-size: 15px; font-weight: 760; line-height: 1.5; align-items: center;
}
html.page--ti_exam_detail summary.exam-qh:hover { color: var(--sz-brand); background: var(--sz-hover); }
html.page--ti_exam_detail .exam-qs__legend {
  display: flex;
  min-height: 40px;
  padding: 10px 26px;
  border-bottom: 1px solid var(--sz-line-soft);
  color: var(--sz-text-dim);
  font-size: 12px;
  opacity: 1;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 18px;
}
html.page--ti_exam_detail .exam-legend__item { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
html.page--ti_exam_detail .exam-legend__item .exam-q__dot { width: 8px; height: 8px; }
html.page--ti_exam_detail .exam-q {
  display: grid;
  min-height: 62px;
  padding: 10px 26px;
  border-bottom: 1px solid var(--sz-line-soft);
  font-size: 14px;
  grid-template-columns: 38px 10px minmax(0, 1fr) 76px;
  align-items: center;
  gap: 10px;
}
html.page--ti_exam_detail .exam-q:last-child { border-bottom: 0; }
html.page--ti_exam_detail .exam-q__no { width: auto; color: var(--sz-text-dim); }
html.page--ti_exam_detail .exam-q__title { font-size: 15px; }
html.page--ti_exam_detail .exam-q::after {
  content: "单独练习";
  color: var(--sz-brand);
  font-size: 13px;
  font-weight: 780;
  text-align: right;
}

/* Problem bank. */
html.page--problem_main .section.display-mode { border-color: var(--sz-line-strong); }
/* Keep the input, count, sort and submit in one layout system. The upstream
   count/sort used absolute offsets that no longer matched this padded toolbar. */
html.page--problem_main .search {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 18px 20px;
}
html.page--problem_main .search > input[name="q"] {
  flex: 1 1 240px; width: auto; min-width: 0; height: 42px;
  margin: 0; padding: 0 12px; box-sizing: border-box;
}
html.page--problem_main .search > div,
html.page--problem_main .search > .search-sort,
html.page--problem_main .search > button {
  position: static; inset: auto; float: none; margin: 0;
}
html.page--problem_main .search > div { flex: 0 0 auto; white-space: nowrap; }
html.page--problem_main .search > div p { margin: 0; }
html.page--problem_main .search > .search-sort {
  flex: 0 0 120px; width: 120px; height: 42px; padding: 0 26px 0 10px;
  box-sizing: border-box;
}
html.page--problem_main .search > button {
  display: inline-flex; flex: 0 0 42px; width: 42px; height: 42px;
  align-items: center; justify-content: center; padding: 0; border-radius: 9px;
}
@media (max-width: 600px) {
  html.page--problem_main .search > input[name="q"] { flex: 1 0 100%; }
  html.page--problem_main .search > div { flex: 1 1 auto; }
}
html.page--problem_main .search input,
html.page--problem_main .search select {
  min-height: 42px;
  border-color: var(--sz-line-strong);
  border-radius: 9px;
  background: var(--sz-surface);
}
html.page--problem_main .problem__main { min-height: 64px; }
html.page--problem_main .problem__main:hover { background: var(--sz-hover); }
html.page--problem_main .data-table tbody tr { transition: background .15s ease; }
html.page--problem_main .data-table tbody tr:hover { background: var(--sz-hover); }
html.page--problem_main .col--problem-name { padding-top: 16px; padding-bottom: 16px; }
html.page--problem_main .col--problem-name > a {
  display: inline; color: var(--sz-text); font-size: 16px; font-weight: 680; line-height: 1.45;
}
html.page--problem_main .col--problem-name > a b { color: var(--sz-brand); font-weight: 760; }
html.page--problem_main .problem__tags {
  display: flex; margin: 9px 0 0; padding: 0; flex-wrap: wrap; align-items: center; gap: 6px;
}
html.page--problem_main .problem__tag { margin: 0; }
html.page--problem_main .problem__tag-link {
  display: inline-flex; min-height: 26px; padding: 3px 9px; border: 1px solid transparent; border-radius: 999px;
  color: var(--sz-text-dim); background: #f3f3f5; font-size: 12px; line-height: 18px; align-items: center;
}
html.page--problem_main .problem__tag-link:hover { border-color: var(--sz-line-strong); color: var(--sz-brand); background: var(--sz-brand-soft); }
html.page--problem_main .problem__tag-more { display: inline-flex; margin: 0; }
html.page--problem_main .problem__tag-more button {
  min-height: 26px; padding: 3px 9px; border: 1px solid var(--sz-line); border-radius: 999px;
  color: var(--sz-brand); background: #fff; font-size: 12px; line-height: 18px; cursor: pointer;
}
html.page--problem_main .problem__tags--compact > .problem__tag:nth-child(n+4):not(.problem__tag-more) { display: none; }
html.page--problem_main .problem__tags--expanded > .problem__tag { display: inline-flex !important; }
html.page--problem_main .col--ac-tried { color: var(--sz-text-dim); font-size: 13px; font-variant-numeric: tabular-nums; }

@media only screen and (max-width: 760px) {
  html.page--problem_detail .ti-ob-layout .problem-content { padding: 22px 18px 20px; }
  html.page--problem_detail .ti-ob-layout .ti-ob-pager { gap: 8px; }
  html.page--problem_detail .ti-ob-layout .ti-ob-pager .button { min-width: 0; padding-right: 14px; padding-left: 14px; }
  html.page--problem_main .col--problem-name { padding-top: 13px; padding-bottom: 13px; }
  html.page--problem_main .col--problem-name > a { font-size: 15px; }
}

/* Topic-practice filter: compact, readable hierarchy instead of oversized labels. */
html.page--problem_main .ti-practice { padding: 24px 28px 28px; }
html.page--problem_main .ti-practice .ti-sw { min-height: 54px; padding: 5px 0; gap: 8px; }
html.page--problem_main .ti-practice .ti-sw__label {
  min-width: 72px; margin-right: 6px; color: var(--sz-text-dim); font-size: 14px; font-weight: 760; opacity: 1;
}
html.page--problem_main .ti-practice .ti-sw__item {
  min-height: 40px; padding: 8px 17px; border: 1px solid transparent; border-radius: 9px; box-sizing: border-box;
  color: var(--sz-text); background: #f3f3f6; font-size: 15px; line-height: 1.45;
}
html.page--problem_main .ti-practice .ti-sw__item:hover { border-color: var(--sz-line-strong); background: var(--sz-hover); }
html.page--problem_main .ti-practice .ti-sw a.ti-sw__item--active {
  border-color: var(--sz-brand); color: #fff; background: var(--sz-brand); box-shadow: 0 5px 12px rgba(81,68,210,.15);
}
html.page--problem_main .ti-practice__rule {
  margin-top: 20px; padding: 14px 17px; border-color: #ddd9fb; border-radius: 10px;
  color: var(--sz-text-dim); background: #faf9ff; font-size: 14px; line-height: 1.75; gap: 14px;
}
html.page--problem_main .ti-practice__rule strong { color: var(--sz-brand); font-size: 15px; }
html.page--problem_main .ti-practice__rule span { opacity: 1; }
html.page--problem_main .ti-practice__topics { margin-top: 22px; padding-top: 22px; border-color: var(--sz-line); }
html.page--problem_main .ti-practice__heading { gap: 10px; }
html.page--problem_main .ti-practice__heading h2 { color: var(--sz-text); font-size: 18px; font-weight: 760; }
html.page--problem_main .ti-practice__hint { color: var(--sz-text-dim); font-size: 13px; opacity: 1; }
html.page--problem_main .ti-practice .ti-cat-box .group-list,
html.page--problem_main .ti-practice .ti-cat-box ul.widget--category-filter {
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 9px 10px; margin-top: 14px;
}
html.page--problem_main .ti-practice .ti-cat-box .group-list__item .section__title { font-size: 16px; line-height: 1.5; }
html.page--problem_main .ti-practice .ti-cat-box .group-list__item .section__title > a,
html.page--problem_main .ti-practice .ti-cat-box a.widget--category-filter__tag,
html.page--problem_main .ti-practice .ti-topic {
  min-height: 52px; padding: 11px 14px; border: 1px solid transparent; border-radius: 9px; box-sizing: border-box;
  color: var(--sz-text); background: #f3f3f6; font-size: 16px; line-height: 1.55;
}
html.page--problem_main .ti-practice .ti-cat-box .group-list__item .section__title > a:hover,
html.page--problem_main .ti-practice .ti-cat-box a.widget--category-filter__tag:hover,
html.page--problem_main .ti-practice .ti-topic:hover { border-color: var(--sz-line-strong); background: var(--sz-hover); }

@media (max-width: 640px) {
  html.page--problem_main .ti-practice { padding: 18px 16px 22px; }
  html.page--problem_main .ti-practice .ti-sw__label { flex-basis: 100%; min-width: 0; }
  html.page--problem_main .ti-practice .ti-sw__item { padding: 8px 14px; }
  html.page--problem_main .ti-practice__rule { display: block; }
  html.page--problem_main .ti-practice__rule strong { display: block; margin-bottom: 5px; }
  html.page--problem_main .ti-practice .ti-cat-box .group-list,
  html.page--problem_main .ti-practice .ti-cat-box ul.widget--category-filter { grid-template-columns: 1fr; }
}

/* Problem detail / coding page. */
html.page--problem_detail .lg-problem-hero,
html.page--problem_detail .lg-description-card,
html.page--problem_detail .lg-info-card,
html.page--problem_detail .lg-recommend-card { border-color: var(--sz-line-strong); }
html.page--problem_detail .lg-problem-title { font-size: clamp(23px, 3vw, 34px); }
html.page--problem_detail .lg-tabs { border-color: var(--sz-line); background: var(--sz-head); }
html.page--problem_detail .lg-tab--active { color: var(--sz-brand); border-color: var(--sz-brand); }
html.page--problem_detail .problem-content { font-size: 16px; line-height: 1.82; }
html.page--problem_detail .lg-nav-btn { border-radius: 9px; }

/* Homepage: exam first, then the content available for that exam. */
html.page--homepage .doj-carousel { display: none; }
html.page--homepage .sz-exam-home {
  overflow: visible;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: var(--sz-bg);
  box-shadow: none;
}
html.page--homepage .sz-exam-home > .section__body { padding: 24px 0 64px; }
.sz-home-shell { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
.sz-home-hero { display: grid; min-height: 390px; grid-template-columns: minmax(0, .88fr) minmax(460px, 1.12fr); gap: 16px; }
.sz-home-hero__copy {
  display: flex;
  padding: 42px;
  border: 1px solid var(--sz-line-strong);
  border-radius: 18px;
  background: var(--sz-surface);
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.sz-home-eyebrow,
html.page--homepage .sz-exam-home .sz-home-kicker {
  display: inline-flex;
  min-height: 26px;
  padding: 4px 9px;
  border: 1px solid #d8d3ff;
  border-radius: 7px;
  color: var(--sz-brand);
  background: var(--sz-brand-soft);
  font-size: 12px;
  font-weight: 780;
  align-items: center;
}
.sz-home-hero h2 { margin: 10px 0 12px; color: var(--sz-text); font-size: clamp(36px, 4vw, 54px); line-height: 1.12; letter-spacing: -.035em; }
.sz-home-hero__copy > p { max-width: 480px; margin: 0; color: var(--sz-text-dim); font-size: 16px; line-height: 1.75; }
.sz-home-hero__copy .sz-home-button { margin-top: 26px; }
.sz-home-carousel { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--sz-line-strong); border-radius: 18px; background: #f2f3fb; }
.sz-home-carousel__slides { position: relative; width: 100%; height: 100%; }
.sz-home-carousel__slide { position: absolute; inset: 0; margin: 0; opacity: 0; pointer-events: none; transition: opacity 320ms ease; }
.sz-home-carousel__slide.is-active { opacity: 1; pointer-events: auto; }
.sz-home-carousel__slide img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.sz-home-carousel__slide--campus img { object-fit: cover; object-position: center; }
.sz-home-carousel__arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  display: grid;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 50%;
  color: #302b5d;
  background: rgba(255,255,255,.88);
  box-shadow: 0 7px 18px rgba(31,29,66,.15);
  cursor: pointer;
  transform: translateY(-50%);
  place-items: center;
}
.sz-home-carousel__arrow span { font-size: 30px; line-height: 1; transform: translateY(-1px); }
.sz-home-carousel__arrow--prev { left: 14px; }
.sz-home-carousel__arrow--next { right: 14px; }
.sz-home-carousel__arrow:hover { color: var(--sz-brand); background: #fff; }
.sz-home-carousel__arrow:focus-visible { outline: 3px solid rgba(91,75,214,.32); outline-offset: 2px; }
.sz-home-carousel__pause {
  position: absolute; z-index: 3; left: 16px; bottom: 14px; min-height: 34px; padding: 6px 12px;
  border: 1px solid rgba(255,255,255,.72); border-radius: 999px; color: #373252;
  background: rgba(255,255,255,.9); font-size: 12px; font-weight: 760; cursor: pointer;
}
.sz-home-carousel__pause:hover { color: var(--sz-brand); background: #fff; }
.sz-home-carousel__pause:focus-visible { outline: 3px solid rgba(91,75,214,.32); outline-offset: 2px; }
.sz-home-carousel__status { position: absolute; z-index: 3; right: 16px; bottom: 14px; min-width: 48px; padding: 6px 9px; border-radius: 999px; color: #373252; background: rgba(255,255,255,.9); font-size: 12px; font-weight: 760; text-align: center; }
.sz-classroom-strip {
  margin: 0 0 22px;
  padding: 20px;
  border: 1px solid var(--sz-line-strong);
  border-radius: 18px;
  background: var(--sz-surface);
  box-shadow: var(--sz-shadow);
}
.sz-classroom-strip__head {
  display: flex;
  margin: 0 2px 15px;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
}
.sz-classroom-strip__eyebrow {
  color: var(--sz-brand);
  font-size: 13px;
  font-weight: 820;
  letter-spacing: .08em;
}
.sz-classroom-strip__head h2 {
  margin: 5px 0 0;
  color: var(--sz-text);
  font-size: clamp(20px,2vw,27px);
  line-height: 1.35;
  font-weight: 820;
  letter-spacing: -.02em;
}
.sz-classroom-strip__head p {
  max-width: 420px;
  margin: 0 0 2px;
  color: var(--sz-text-dim);
  font-size: 13px;
  line-height: 1.65;
  text-align: right;
}
.sz-classroom-strip__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.sz-classroom-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 176px;
  overflow: hidden;
  padding: 23px 24px;
  border: 1px solid transparent;
  border-radius: 14px;
  color: #22213f !important;
  text-decoration: none !important;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.sz-classroom-card::after {
  position: absolute;
  right: -42px;
  bottom: -58px;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: rgba(255,255,255,.34);
  content: '';
}
.sz-classroom-card--j { border-color: #b9dfe8; background: linear-gradient(125deg,#ecfbff 0%,#f4f8ff 54%,#e9f0ff 100%); }
.sz-classroom-card--s { border-color: #d4c8f2; background: linear-gradient(125deg,#f5f1ff 0%,#f0f2ff 54%,#eae9ff 100%); }
.sz-classroom-card:hover { transform: translateY(-2px); box-shadow: 0 12px 25px rgba(48,42,100,.11); }
.sz-classroom-card--j:hover { border-color: #72bdcf; }
.sz-classroom-card--s:hover { border-color: #9a89da; }
.sz-classroom-card:focus-visible { outline: 3px solid rgba(88,75,216,.26); outline-offset: 3px; }
.sz-classroom-card__copy { position: relative; z-index: 2; display: flex; min-width: 0; flex: 1; flex-direction: column; align-items: flex-start; }
.sz-classroom-card__tag {
  padding: 4px 8px;
  border: 1px solid rgba(64,67,125,.14);
  border-radius: 999px;
  color: #5b587b;
  background: rgba(255,255,255,.64);
  font-size: 11px;
  font-weight: 760;
}
.sz-classroom-card__copy strong { margin-top: 10px; color: #24213f; font-size: 25px; line-height: 1.25; font-weight: 840; letter-spacing: -.02em; }
.sz-classroom-card__desc { max-width: 310px; margin-top: 7px; color: #5e5b76; font-size: 13px; line-height: 1.6; }
.sz-classroom-card__go { display: inline-flex; margin-top: 12px; color: #5144d2; font-size: 13px; font-weight: 800; align-items: center; gap: 6px; }
.sz-classroom-card__go span { transition: transform .18s ease; }
.sz-classroom-card:hover .sz-classroom-card__go span { transform: translateX(4px); }
.sz-classroom-card__art { position: relative; z-index: 1; display: grid; width: 165px; min-width: 135px; color: rgba(76,73,143,.58); place-items: center; }
.sz-classroom-card--j .sz-classroom-card__art { color: rgba(39,128,151,.58); }
.sz-classroom-card__art svg { display: block; width: 100%; height: auto; overflow: visible; fill: rgba(255,255,255,.28); stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
html.theme--dark .sz-classroom-card { color: var(--sz-text) !important; }
html.theme--dark .sz-classroom-card--j { border-color: rgba(91,183,205,.32); background: linear-gradient(125deg,rgba(36,98,115,.42),rgba(31,37,61,.9)); }
html.theme--dark .sz-classroom-card--s { border-color: rgba(151,130,225,.36); background: linear-gradient(125deg,rgba(76,60,132,.5),rgba(34,33,58,.92)); }
html.theme--dark .sz-classroom-card__tag { color: var(--sz-text-dim); background: rgba(255,255,255,.07); }
html.theme--dark .sz-classroom-card__copy strong { color: var(--sz-text); }
html.theme--dark .sz-classroom-card__desc { color: var(--sz-text-dim); }
html.theme--dark .sz-classroom-card__go { color: var(--sz-brand); }
.sz-formal-feature {
  display: grid; margin: 0 0 22px; padding: 26px 28px; border: 1px solid #aaa1ef; border-radius: 16px;
  background: linear-gradient(115deg, #f5f3ff 0%, #fff 58%); box-shadow: 0 14px 34px rgba(48,42,100,.08);
  grid-template-columns: minmax(0,.86fr) minmax(460px,1.14fr); align-items: center; gap: 26px;
}
.sz-formal-feature__copy { min-width: 0; }
.sz-formal-feature__label { color: var(--sz-brand); font-size: 13px; font-weight: 800; }
.sz-formal-feature h1 { margin: 7px 0 8px; color: var(--sz-text); font-size: clamp(24px,2.3vw,32px); line-height: 1.3; font-weight: 820; letter-spacing: -.02em; }
.sz-formal-feature__copy p { max-width: 520px; margin: 0; color: var(--sz-text-dim); font-size: 14px; line-height: 1.7; }
.sz-formal-feature__copy .sz-home-button { margin-top: 18px; }
.sz-formal-feature__sessions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.sz-formal-feature__sessions article {
  display: flex; min-width: 0; min-height: 132px; padding: 17px 18px; border: 1px solid var(--sz-line); border-radius: 12px;
  background: rgba(255,255,255,.88); flex-direction: column; justify-content: center;
}
.sz-formal-feature__sessions span { color: var(--sz-brand); font-size: 12px; font-weight: 800; }
.sz-formal-feature__sessions strong { margin-top: 6px; color: var(--sz-text); font-size: 16px; line-height: 1.45; }
.sz-formal-feature__sessions small { margin-top: 5px; color: var(--sz-text-dim); font-size: 12px; line-height: 1.5; }
.sz-formal-feature__link {
  display: inline-flex;
  width: fit-content;
  min-height: 32px;
  margin-top: 7px;
  padding: 5px 0;
  color: var(--sz-brand);
  font-size: 13px;
  font-weight: 780;
  line-height: 1.4;
  text-decoration: none;
  align-items: center;
  gap: 6px;
}
.sz-formal-feature__link span { transition: transform .16s ease; }
.sz-formal-feature__link:hover { color: var(--sz-brand-strong); text-decoration: underline; text-underline-offset: 3px; }
.sz-formal-feature__link:hover span { transform: translateX(3px); }
.sz-formal-feature__link:focus-visible { outline: 3px solid rgba(88,75,216,.22); outline-offset: 3px; border-radius: 4px; }

/* Formal exam hub: a focused exam workspace, not a marketing card grid. */
html[data-page="珅泽教育正式模拟考试"] .formal-hub { width: min(1180px,calc(100% - 32px)); margin: 26px auto 56px; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__head {
  margin: 0 0 18px; padding: 28px 30px; border: 1px solid var(--sz-line-strong); border-top: 1px solid var(--sz-line-strong);
  border-radius: 16px; background: var(--sz-surface); text-align: left; box-shadow: 0 10px 28px rgba(48,42,100,.06);
}
html[data-page="珅泽教育正式模拟考试"] .formal-hub__head h1 { color: var(--sz-text); font-size: clamp(27px,3vw,38px); line-height: 1.25; font-weight: 820; letter-spacing: -.025em; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__head p { max-width: 760px; margin: 9px 0 0; color: var(--sz-text-dim); font-size: 14px; line-height: 1.7; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(340px,.85fr); gap: 18px; align-items: start; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__card {
  padding: 32px; border: 1px solid var(--sz-line-strong); border-radius: 16px; background: var(--sz-surface);
  box-shadow: 0 12px 30px rgba(48,42,100,.06);
}
html[data-page="珅泽教育正式模拟考试"] .formal-hub__card--open { border-top: 3px solid var(--sz-brand); }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__card--soon { border-style: solid; background: #fcfcfe; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__tag { padding: 5px 10px; color: var(--sz-brand); background: var(--sz-brand-soft); font-size: 12px; font-weight: 780; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__title { margin-top: 22px; color: var(--sz-text); font-size: 23px; line-height: 1.5; font-weight: 790; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__meta { margin-top: 14px; color: var(--sz-text); font-size: 14px; line-height: 1.8; font-weight: 680; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__desc { margin-top: 18px; color: var(--sz-text-dim); font-size: 14px; line-height: 1.95; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__rules { margin-top: 24px; padding: 23px 24px; border-color: var(--sz-line); border-radius: 11px; background: var(--sz-head); }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__rules h3 { margin-bottom: 14px; color: var(--sz-text); font-size: 15px; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__rules ol { color: var(--sz-text-dim); font-size: 13px; line-height: 1.95; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__rules li + li { margin-top: 7px; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__status { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--sz-line-soft); color: var(--sz-text-dim); line-height: 1.75; }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__go { min-height: 46px; margin-top: 16px; padding: 12px 20px; border-radius: 9px; background: var(--sz-brand); box-shadow: 0 8px 18px rgba(81,68,210,.16); }
html[data-page="珅泽教育正式模拟考试"] .formal-hub__disabled { min-height: 46px; margin-top: 13px; padding: 12px 20px; border: 1px solid var(--sz-line); border-radius: 9px; background: var(--sz-head); }

/* The live preliminary/final flows keep their current forms and handlers. These
   selectors only align their hierarchy with the accepted beta design. */
html.ui-beta .formal-wrap,
html.ui-beta .formal-final,
html.ui-beta .ff-native,
html.ui-beta .ff-score,
html.ui-beta .ff-code { width: min(1180px, calc(100% - 32px)); margin: 26px auto 56px; }
html.ui-beta .formal-hero,
html.ui-beta .formal-final__head,
html.ui-beta .ff-native__body,
html.ui-beta .ff-score__body,
html.ui-beta .ff-code__head,
html.ui-beta .ff-code__card {
  border-color: var(--sz-line-strong); border-top: 1px solid var(--sz-line-strong); border-radius: 16px;
  background: var(--sz-surface); box-shadow: 0 12px 32px rgba(48,42,100,.06);
}
html.ui-beta .formal-hero,
html.ui-beta .formal-final__head { padding: 30px 32px; }
html.ui-beta .formal-title,
html.ui-beta .formal-final h1,
html.ui-beta .ff-native h1,
html.ui-beta .ff-score h1,
html.ui-beta .ff-code__head h1 { color: var(--sz-text); font-size: clamp(25px,2.5vw,34px); line-height: 1.3; font-weight: 820; letter-spacing: -.02em; }
html.ui-beta .formal-meta,
html.ui-beta .formal-final__meta,
html.ui-beta .ff-code__meta { margin-top: 12px; color: var(--sz-text-dim); font-size: 14px; line-height: 1.8; }
html.ui-beta .formal-rules,
html.ui-beta .formal-final__notice,
html.ui-beta .ff-score__notice {
  margin-top: 22px; padding: 20px 22px; border: 1px solid var(--sz-line); border-radius: 12px;
  color: var(--sz-text-dim); background: var(--sz-head); font-size: 14px; line-height: 1.9;
}
html.ui-beta .formal-live { margin-top: 16px; padding: 14px 16px; border: 1px solid #c9c5f3; border-left: 4px solid var(--sz-brand); border-radius: 10px; color: var(--sz-text-dim); background: var(--sz-brand-soft); line-height: 1.8; }
html.ui-beta .formal-final__btn { min-height: 46px; padding: 12px 20px; border-radius: 9px; background: var(--sz-brand); box-shadow: 0 8px 18px rgba(81,68,210,.16); font-size: 15px; }
html.ui-beta .formal-final__btn--light { border: 1px solid var(--sz-line-strong); color: var(--sz-text)!important; background: var(--sz-surface); box-shadow: none; }
html.ui-beta .formal-final__problem,
html.ui-beta .ff-native__item { padding: 20px; border-color: var(--sz-line); border-radius: 11px; background: var(--sz-surface); line-height: 1.65; }
html.ui-beta .formal-final__problem:hover,
html.ui-beta .ff-native__item:hover { border-color: var(--sz-brand); background: var(--sz-hover); }
html.ui-beta .formal-stat { padding: 20px; border-color: var(--sz-line); border-radius: 11px; background: var(--sz-head); }
html.ui-beta .formal-answer-group { border-color: var(--sz-line); border-radius: 11px; background: var(--sz-surface); }
html.ui-beta .formal-table,
html.ui-beta .formal-final__table,
html.ui-beta .ff-score__table { color: var(--sz-text); font-size: 14px; }
html.ui-beta .formal-table th,
html.ui-beta .formal-final__table th,
html.ui-beta .ff-score__table th { color: var(--sz-text-dim); background: var(--sz-head); font-size: 12px; font-weight: 780; }
html.ui-beta .formal-table th,
html.ui-beta .formal-table td,
html.ui-beta .formal-final__table th,
html.ui-beta .formal-final__table td,
html.ui-beta .ff-score__table th,
html.ui-beta .ff-score__table td { padding: 13px 14px; border-color: var(--sz-line-soft); }
html.ui-beta .formal-final__dialog { border: 1px solid var(--sz-line-strong); border-radius: 16px; color: var(--sz-text); background: var(--sz-surface); }
html.ui-beta .formal-final__dialog-close { width: 44px; height: 44px; border-radius: 50%; color: var(--sz-text); background: var(--sz-head); }
html.ui-beta .ff-native__nav,
html.ui-beta .ff-score__nav { padding: 8px; border-color: var(--sz-line-strong); border-radius: 13px; background: var(--sz-surface); }
html.ui-beta .ff-native__nav a,
html.ui-beta .ff-score__nav a { min-height: 42px; padding: 10px 14px; border-radius: 9px; color: var(--sz-text)!important; font-size: 14px; }
html.ui-beta .ff-native__nav a.is-active,
html.ui-beta .ff-native__nav a:hover,
html.ui-beta .ff-score__nav a.is-active,
html.ui-beta .ff-score__nav a:hover { color: var(--sz-brand)!important; background: var(--sz-brand-soft); }
html.ui-beta .ff-code pre { border-color: var(--sz-line); border-radius: 11px; background: #f7f7fb; color: #22213f; }
html.theme--dark.ui-beta .ff-code pre { background: #151521; color: #efeff8; }
.sz-home-button {
  display: inline-flex;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid var(--sz-line-strong);
  border-radius: 10px;
  color: var(--sz-text) !important;
  background: var(--sz-surface);
  font-size: 14px;
  font-weight: 760;
  text-decoration: none !important;
  align-items: center;
  justify-content: center;
}
.sz-home-button--primary { border-color: var(--sz-brand); color: #fff !important; background: var(--sz-brand); }
.sz-home-button--primary:hover { border-color: var(--sz-brand-strong); color: #fff !important; background: var(--sz-brand-strong); }
.sz-home-heading { display: flex; margin: 58px 0 18px; align-items: flex-end; justify-content: space-between; gap: 24px; scroll-margin-top: 92px; }
.sz-home-heading h2,
.sz-study-tools h2 { margin: 7px 0 5px; color: var(--sz-text); font-size: clamp(27px, 3vw, 38px); line-height: 1.2; letter-spacing: -.02em; }
.sz-home-heading p,
.sz-study-tools p { max-width: 700px; margin: 0; color: var(--sz-text-dim); line-height: 1.7; }
.sz-home-heading__note { flex: none; padding: 9px 12px; border-radius: 9px; color: var(--sz-text-dim); background: var(--sz-head); font-size: 12px; }
.sz-exam-tabs { display: grid; padding: 8px; border: 1px solid var(--sz-line-strong); border-radius: 16px; background: #eef0f5; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.sz-exam-tab {
  display: flex;
  min-width: 0;
  min-height: 76px;
  padding: 14px 16px;
  border: 1px solid transparent;
  border-radius: 11px;
  color: var(--sz-text);
  background: transparent;
  text-align: left;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
}
.sz-exam-tab:hover { border-color: var(--sz-line-strong); background: rgba(255,255,255,.7); }
.sz-exam-tab.is-active { border-color: #aaa1f1; color: var(--sz-brand); background: #fff; box-shadow: inset 0 0 0 1px #aaa1f1, 0 6px 16px rgba(76,64,154,.07); }
.sz-exam-tab strong { overflow: hidden; font-size: 16px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.sz-exam-tab span { margin-top: 2px; color: var(--sz-text-dim); font-size: 12px; }
.sz-exam-tab:focus-visible { outline: 3px solid rgba(91,75,214,.28); outline-offset: 2px; }
.sz-exam-panels { margin-top: 14px; }
.sz-exam-panel { overflow: hidden; border: 1px solid var(--sz-line-strong); border-radius: 18px; background: var(--sz-surface); box-shadow: 0 16px 36px rgba(54,52,90,.07); }
.sz-exam-panel__head { display: flex; min-height: 142px; padding: 27px 30px; border-bottom: 1px solid var(--sz-line-strong); background: var(--sz-head); align-items: flex-start; justify-content: space-between; gap: 24px; }
.sz-exam-panel__head h3 { margin: 5px 0 6px; color: var(--sz-text); font-size: clamp(24px, 2.5vw, 31px); line-height: 1.25; }
.sz-exam-panel__head p { max-width: 720px; margin: 0; color: var(--sz-text-dim); line-height: 1.65; }
.sz-exam-status { flex: none; display: inline-flex; min-height: 36px; padding: 7px 12px; border: 1px solid #c9c3f4; border-radius: 999px; color: var(--sz-brand); background: var(--sz-surface); font-size: 12px; font-weight: 760; align-items: center; white-space: nowrap; }
.sz-exam-status--link { text-decoration: none !important; }
.sz-exam-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sz-content-block { min-height: 218px; padding: 27px 30px; border-right: 1px solid var(--sz-line); border-bottom: 1px solid var(--sz-line); background: var(--sz-surface); }
.sz-content-block:nth-child(even) { border-right: 0; }
.sz-content-block:nth-last-child(-n + 2) { border-bottom: 0; }
.sz-content-block--primary { background: #f4f2ff; }
.sz-content-block--muted { background: #f0f1f4; }
.sz-exam-content > .sz-content-block:nth-child(2) { background: #fff; }
.sz-exam-content > .sz-content-block:nth-child(3) { background: #fff; }
.sz-exam-content > .sz-content-block:nth-child(4):not(.sz-content-block--muted) { background: #f1f2f6; }
.sz-content-block h4,
.sz-round h4 { margin: 0 0 9px; color: var(--sz-text); font-size: 20px; line-height: 1.35; font-weight: 800; letter-spacing: -.015em; }
.sz-content-block h4 { display: flex; align-items: center; gap: 10px; }
.sz-content-block h4::before {
  content: ""; width: 4px; height: 20px; border-radius: 999px; background: var(--sz-brand); flex: none;
}
.sz-content-block > p { margin: 0 0 20px; color: var(--sz-text-dim); line-height: 1.65; }
.sz-direct-links,
.sz-level-links { display: flex; flex-wrap: wrap; gap: 8px; }
.sz-direct-links a,
.sz-level-links a {
  display: inline-flex;
  min-width: 64px;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--sz-line-strong);
  border-radius: 9px;
  color: var(--sz-text) !important;
  background: var(--sz-surface);
  font-size: 13px;
  font-weight: 720;
  text-decoration: none !important;
  align-items: center;
  justify-content: center;
}
.sz-direct-links a:hover,
.sz-level-links a:hover { border-color: var(--sz-brand); color: var(--sz-brand) !important; background: var(--sz-brand-soft); }
.sz-direct-links a.sz-home-button--primary { border-color: var(--sz-brand); color: #fff !important; background: var(--sz-brand); }
.sz-direct-links a.sz-home-button--primary:hover { border-color: var(--sz-brand-strong); color: #fff !important; background: var(--sz-brand-strong); }
.sz-level-links--eight { max-width: 420px; }
.sz-unavailable { display: inline-flex; min-height: 36px; padding: 7px 11px; border: 1px solid #cfd2dc; border-radius: 9px; color: var(--sz-text-dim); background: #e8eaf0; font-size: 12px; font-weight: 750; align-items: center; }
.sz-rounds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sz-round { min-height: 360px; padding: 32px 34px 36px; border-right: 1px solid var(--sz-line); background: var(--sz-surface); }
.sz-round:last-child { border-right: 0; }
.sz-round__label {
  display: inline-flex; min-height: 26px; margin-bottom: 10px; padding: 4px 9px; border: 1px solid #d8d3ff;
  border-radius: 7px; color: var(--sz-brand); background: var(--sz-brand-soft); font-size: 12px; font-weight: 800; align-items: center;
}
.sz-round h4 { font-size: 22px; }
.sz-action-list { display: grid; margin-top: 22px; gap: 11px; }
.sz-action-list > a,
.sz-action-list__disabled {
  position: relative; display: grid; min-height: 82px; padding: 15px 46px 15px 17px; border: 1px solid var(--sz-line-strong);
  border-radius: 12px; background: var(--sz-surface); text-decoration: none !important; align-content: center;
  transition: border-color .16s ease, background .16s ease, transform .16s ease, box-shadow .16s ease;
}
.sz-action-list > a::after {
  content: "→"; position: absolute; right: 17px; top: 50%; color: var(--sz-brand); font-size: 18px; font-weight: 760; transform: translateY(-50%);
}
.sz-action-list > a:hover { border-color: var(--sz-brand); background: var(--sz-brand-soft); box-shadow: 0 7px 18px rgba(48,42,100,.07); transform: translateY(-1px); }
.sz-action-list strong { color: var(--sz-text); font-size: 16px; line-height: 1.42; font-weight: 780; }
.sz-action-list span,
.sz-action-list small { display: block; margin-top: 6px; color: var(--sz-text-dim); font-size: 13px; line-height: 1.5; font-weight: 500; }
.sz-action-list__disabled { padding-right: 17px; border-style: dashed; background: #f0f1f4; }
.sz-action-list__disabled strong,
.sz-action-list__disabled small { color: #777a89; }
.sz-study-tools { display: grid; margin-top: 34px; padding: 28px 30px; border: 1px solid var(--sz-line-strong); border-radius: 18px; background: var(--sz-surface); grid-template-columns: minmax(0, 1fr) minmax(360px, .8fr); align-items: center; gap: 24px; }
.sz-study-tools nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.sz-study-tools nav a { display: flex; min-height: 48px; padding: 10px 12px; border: 1px solid var(--sz-line-strong); border-radius: 10px; color: var(--sz-text) !important; background: var(--sz-head); font-weight: 720; text-decoration: none !important; align-items: center; justify-content: space-between; }
.sz-study-tools nav a::after { content: "\2192"; color: var(--sz-brand); }
.sz-study-tools nav a:hover { border-color: var(--sz-brand); background: var(--sz-brand-soft); }

@media (max-width: 800px) {
  html .section { border-radius: 14px; }
  html .section__header { padding: 14px 16px; }
  html.page--ti_exam_main .exam-grid { grid-template-columns: repeat(2, 1fr); padding: 0 16px 18px; }
  html.page--ti_exam_main .exam-row {
    display: grid;
    min-height: 92px;
    padding: 14px 16px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px 12px;
  }
  html.page--ti_exam_main .exam-row__seq { display: none; }
  html.page--ti_exam_main .exam-row__title { grid-column: 1 / -1; }
  html.page--ti_exam_main .exam-row__tag { grid-column: 1; width: max-content; }
  html.page--ti_exam_main .exam-row__meta { grid-column: 1; white-space: normal; }
  html.page--ti_exam_main .exam-row::after { grid-column: 2; grid-row: 2 / 4; margin-left: 0; align-self: center; }
  .sz-home-hero { grid-template-columns: 1fr; }
  .sz-home-carousel { min-height: 250px; }
  .sz-classroom-strip__head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .sz-classroom-strip__head p { max-width: none; text-align: left; }
  .sz-formal-feature { grid-template-columns: 1fr; }
  html[data-page="珅泽教育正式模拟考试"] .formal-hub__grid { grid-template-columns: 1fr; }
  .sz-exam-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sz-exam-content,
  .sz-rounds { grid-template-columns: 1fr; }
  .sz-content-block,
  .sz-content-block:nth-child(even),
  .sz-content-block:nth-last-child(-n + 2) { min-height: 0; border-right: 0; border-bottom: 1px solid var(--sz-line); }
  .sz-content-block:last-child { border-bottom: 0; }
  .sz-round { min-height: 0; border-right: 0; border-bottom: 1px solid var(--sz-line); }
  .sz-round:last-child { border-bottom: 0; }
  .sz-study-tools { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  html .ui-beta-notice { padding: 9px 12px; font-size: 12px; flex-direction: column; gap: 3px; text-align: center; }
  html.page--ti_exam_main .exam-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  html.page--ti_exam_main .exam-cell { min-height: 68px; }
  html.page--ti_exam_main .exam-sw { padding: 10px 12px; }
  html.page--ti_exam_main .exam-sw__label { width: 100%; }
  html.page--ti_exam_detail .section:first-child .section__title { font-size: 22px; }
  html.page--ti_exam_detail .section__body { padding: 18px; }
  html.page--ti_exam_detail .exam-detail-subhead { padding: 16px 18px 10px; align-items: flex-start; flex-direction: column; gap: 3px; }
  html.page--ti_exam_detail .exam-struct { padding: 13px 18px; align-items: flex-start; flex-direction: column; gap: 3px; }
  html.page--ti_exam_detail summary.exam-qh { padding: 15px 18px; }
  html.page--ti_exam_detail .exam-qh { padding: 18px 16px 10px; }
  html.page--ti_exam_detail .exam-qs__legend { padding: 8px 16px 12px; }
  html.page--ti_exam_detail .exam-q {
    min-height: 68px;
    padding: 9px 16px;
    grid-template-columns: 28px 8px minmax(0, 1fr);
  }
  html.page--ti_exam_detail .exam-q::after { display: none; }
  html.page--homepage .sz-exam-home > .section__body { padding-top: 12px; }
  .sz-home-shell { width: min(100% - 20px, 1180px); }
  .sz-classroom-strip { margin-bottom: 14px; padding: 14px; border-radius: 15px; }
  .sz-classroom-strip__head { margin: 0 2px 12px; }
  .sz-classroom-strip__head h2 { font-size: 21px; }
  .sz-classroom-strip__grid { grid-template-columns: 1fr; gap: 9px; }
  .sz-classroom-card { min-height: 145px; padding: 19px 18px; }
  .sz-classroom-card__copy strong { font-size: 22px; }
  .sz-classroom-card__art { width: 118px; min-width: 92px; opacity: .86; }
  .sz-home-hero { min-height: 0; }
  .sz-home-hero__copy { padding: 28px 22px; }
  .sz-home-hero h2 { font-size: 35px; }
  .sz-home-carousel { min-height: 170px; }
  .sz-home-carousel__arrow { width: 38px; height: 38px; }
  .sz-home-carousel__arrow--prev { left: 9px; }
  .sz-home-carousel__arrow--next { right: 9px; }
  .sz-home-carousel__status { right: 10px; bottom: 9px; }
  .sz-formal-feature { margin: 0 0 28px; padding: 20px; }
  .sz-formal-feature__sessions { grid-template-columns: 1fr; }
  .sz-formal-feature__sessions article { min-height: 0; }
  html[data-page="珅泽教育正式模拟考试"] .formal-hub { width: min(100% - 20px,1180px); margin-top: 14px; }
  html[data-page="珅泽教育正式模拟考试"] .formal-hub__head { padding: 22px 20px; }
  html[data-page="珅泽教育正式模拟考试"] .formal-hub__card { padding: 21px; }
  html.ui-beta .formal-wrap,
  html.ui-beta .formal-final,
  html.ui-beta .ff-native,
  html.ui-beta .ff-score,
  html.ui-beta .ff-code { width: min(100% - 20px,1180px); margin-top: 14px; }
  html.ui-beta .formal-hero,
  html.ui-beta .formal-final__head,
  html.ui-beta .ff-native__body,
  html.ui-beta .ff-score__body,
  html.ui-beta .ff-code__head,
  html.ui-beta .ff-code__card { padding: 22px 20px; }
  html.ui-beta .formal-rules,
  html.ui-beta .formal-final__notice,
  html.ui-beta .ff-score__notice { padding: 16px; }
  html.ui-beta .formal-final__actions { align-items: stretch; flex-direction: column; }
  html.ui-beta .formal-final__actions form,
  html.ui-beta .formal-final__btn { width: 100%; box-sizing: border-box; text-align: center; }
  html.ui-beta .ff-code__head { align-items: flex-start; flex-direction: column; }
  .sz-home-heading { display: block; margin-top: 42px; }
  .sz-home-heading__note { display: inline-flex; margin-top: 12px; }
  .sz-exam-tabs { gap: 6px; padding: 6px; }
  .sz-exam-tab { min-height: 70px; padding: 11px 12px; }
  .sz-exam-tab strong { font-size: 14px; }
  .sz-exam-panel__head { min-height: 0; padding: 23px 20px; flex-direction: column; gap: 14px; }
  .sz-content-block,
  .sz-round { padding: 26px 20px 28px; }
  .sz-study-tools { padding: 22px 20px; }
  .sz-study-tools nav { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .sz-home-carousel__slide { transition: none; }
}

/* 错题本固定卡片布局：不再由桌面表格宽度决定是否重排，避免隐藏列和题目信息互相覆盖。 */
html.page--wrongbook .display-mode [data-fragment-id="problem_list"] {
  padding: 14px !important;
  background: #f7f7fc;
}
html.page--wrongbook .display-mode .data-table,
html.page--wrongbook .display-mode .data-table tbody {
  display: block !important;
  width: 100% !important;
}
html.page--wrongbook .display-mode .data-table colgroup,
html.page--wrongbook .display-mode .data-table thead {
  display: none !important;
}
html.page--wrongbook .display-mode .data-table tbody tr {
  position: relative;
  display: grid !important;
  min-height: 0 !important;
  margin: 0 0 12px !important;
  padding: 18px 20px !important;
  overflow: visible;
  border: 1px solid var(--sz-line) !important;
  border-radius: 14px;
  background: var(--sz-surface);
  box-shadow: 0 4px 14px rgba(48,42,100,.035);
  grid-template-columns: minmax(0,1fr) auto auto;
  gap: 14px 20px;
  align-items: center;
}
html.page--wrongbook .display-mode .data-table tbody tr:last-child { margin-bottom: 0 !important; }
html.page--wrongbook .display-mode .data-table tbody td {
  position: static;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  background: transparent !important;
  vertical-align: middle;
}
html.page--wrongbook .display-mode .data-table tbody td.display-mode-hide,
html.page--wrongbook .display-mode .data-table tbody td.col--checkbox,
html.page--wrongbook .display-mode .data-table tbody td.col--pid {
  display: none !important;
}
html.page--wrongbook .display-mode .data-table tbody td.col--problem-name {
  position: relative;
  grid-column: 1 / -1;
  grid-row: 1;
  min-height: 42px !important;
  padding: 0 42px 14px 0 !important;
  border-bottom: 1px solid var(--sz-line-soft) !important;
  color: var(--sz-text);
}
html.page--wrongbook .display-mode .data-table tbody td.col--problem-name > a,
html.page--wrongbook .display-mode .data-table tbody td.col--problem-name .problem__title {
  display: inline !important;
  color: var(--sz-text) !important;
  font-size: 16px !important;
  font-weight: 720 !important;
  line-height: 1.55 !important;
  overflow-wrap: anywhere;
}
html.page--wrongbook .display-mode .data-table tbody td.col--problem-name .star-form {
  position: absolute !important;
  top: -2px;
  right: 0;
  margin: 0 !important;
}
html.page--wrongbook .display-mode .data-table tbody td.col--problem-name .star {
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 9px;
  color: var(--sz-text-dim);
}
html.page--wrongbook .display-mode .data-table tbody td.col--problem-name .problem__tags {
  position: static !important;
  display: flex !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  flex-wrap: wrap;
  justify-content: flex-start !important;
  gap: 6px;
}
html.page--wrongbook .display-mode .data-table tbody td.col--problem-name .problem__tag {
  margin: 0 !important;
}
html.page--wrongbook .display-mode .data-table tbody td.col--status {
  grid-column: 1;
  grid-row: 2;
  justify-self: start;
  color: #c93d48;
  white-space: normal;
}
html.page--wrongbook .display-mode .data-table tbody td.col--ac-tried {
  display: inline-flex !important;
  grid-column: 2;
  grid-row: 2;
  color: var(--sz-text-dim);
  text-align: right;
  white-space: nowrap;
  align-items: center;
  gap: 7px;
}
html.page--wrongbook .display-mode .data-table tbody td.col--ac-tried::before {
  content: "通过 / 尝试";
  color: var(--sz-text-dim);
  font-size: 11px;
  font-weight: 650;
}
html.page--wrongbook .display-mode .data-table tbody td.col--difficulty {
  display: block !important;
  grid-column: 3;
  grid-row: 2;
  min-width: 64px !important;
  text-align: right;
  white-space: nowrap;
}
html.page--wrongbook .display-mode [data-fragment-id="problem_list"] > .pager-bottom {
  margin: 12px -12px -12px;
  background: var(--sz-surface);
}

@media (max-width: 650px) {
  html.page--wrongbook .display-mode .data-table tbody tr {
    padding: 16px !important;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 12px;
  }
  html.page--wrongbook .display-mode .data-table tbody td.col--problem-name {
    padding-right: 38px !important;
  }
  html.page--wrongbook .display-mode .data-table tbody td.col--difficulty { display: none !important; }
  html.page--wrongbook .display-mode .data-table tbody td.col--ac-tried { grid-column: 2; }
}

/* 真实错题列表锁定：由布局脚本直接标记列表 section，避免站内无刷新导航丢失 html 页面类。 */
html .section.sz-wrongbook-list {
  overflow: hidden;
  border-color: var(--sz-line-strong);
  border-radius: 16px;
  background: var(--sz-surface);
}
html .section.sz-wrongbook-list > .section__body:first-child {
  padding: 16px !important;
  border-bottom: 1px solid var(--sz-line-soft);
}
html .sz-wrongbook-list .search {
  position: static !important;
  display: grid !important;
  width: 100%;
  padding: 0 !important;
  grid-template-columns: minmax(220px,1fr) auto 180px 48px !important;
  gap: 10px;
  align-items: center;
}
html .sz-wrongbook-list .search > * {
  position: static !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
}
html .sz-wrongbook-list .search > input,
html .sz-wrongbook-list .search > select {
  height: 46px !important;
  border: 1px solid var(--sz-line-strong) !important;
  border-radius: 10px !important;
  background: var(--sz-surface) !important;
}
html .sz-wrongbook-list .search > [data-fragment-id="problem_stat"] {
  color: var(--sz-text);
  font-size: 14px;
  font-weight: 750;
  white-space: nowrap;
}
html .sz-wrongbook-list .search > [data-fragment-id="problem_stat"] p { margin: 0 !important; }
html .sz-wrongbook-list .search > button {
  width: 48px !important;
  height: 46px !important;
  padding: 0 !important;
  border-radius: 10px !important;
}
html .sz-wrongbook-list [data-fragment-id="problem_list"] {
  padding: 14px !important;
  background: #f7f7fc;
}
html .sz-wrongbook-list .data-table,
html .sz-wrongbook-list .data-table tbody {
  display: block !important;
  width: 100% !important;
}
html .sz-wrongbook-list .data-table colgroup,
html .sz-wrongbook-list .data-table thead {
  display: none !important;
}
html .sz-wrongbook-list .data-table tbody tr {
  position: relative;
  display: grid !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 0 12px !important;
  padding: 18px 20px !important;
  overflow: visible !important;
  border: 1px solid var(--sz-line) !important;
  border-radius: 14px !important;
  background: var(--sz-surface) !important;
  box-shadow: 0 4px 14px rgba(48,42,100,.035);
  grid-template-columns: minmax(0,1fr) auto auto !important;
  grid-template-rows: auto auto !important;
  gap: 14px 20px !important;
  align-items: center !important;
}
html .sz-wrongbook-list .data-table tbody tr:last-child { margin-bottom: 0 !important; }
html .sz-wrongbook-list .data-table tbody td {
  position: static !important;
  display: block !important;
  float: none !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  background: transparent !important;
  transform: none !important;
}
html .sz-wrongbook-list .data-table tbody td.display-mode-hide,
html .sz-wrongbook-list .data-table tbody td.col--checkbox,
html .sz-wrongbook-list .data-table tbody td.col--pid {
  display: none !important;
}
html .sz-wrongbook-list .data-table tbody td.col--problem-name {
  position: relative !important;
  grid-column: 1 / -1 !important;
  grid-row: 1 !important;
  padding: 0 44px 14px 0 !important;
  border-bottom: 1px solid var(--sz-line-soft) !important;
  text-align: left !important;
}
html .sz-wrongbook-list .data-table tbody td.col--problem-name > a {
  position: static !important;
  display: inline !important;
  color: var(--sz-text) !important;
  font-size: 16px !important;
  font-weight: 720 !important;
  line-height: 1.55 !important;
  overflow-wrap: anywhere;
}
html .sz-wrongbook-list .data-table tbody td.col--problem-name .star-form {
  position: absolute !important;
  top: -3px !important;
  right: 0 !important;
  left: auto !important;
  margin: 0 !important;
}
html .sz-wrongbook-list .data-table tbody td.col--problem-name .star {
  width: 34px !important;
  height: 34px !important;
  padding: 0 !important;
  border-radius: 9px;
}
html .sz-wrongbook-list .data-table tbody td.col--problem-name .problem__tags {
  position: static !important;
  inset: auto !important;
  display: flex !important;
  width: auto !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  gap: 6px !important;
  transform: none !important;
}
html .sz-wrongbook-list .data-table tbody td.col--problem-name .problem__tag {
  position: static !important;
  display: inline-flex !important;
  margin: 0 !important;
  transform: none !important;
}
html .sz-wrongbook-list .data-table tbody td.col--status {
  position: static !important;
  display: block !important;
  grid-column: 1 !important;
  grid-row: 2 !important;
  align-self: center;
  justify-self: start;
  color: #c93d48;
  text-align: left !important;
  white-space: normal !important;
}
html .sz-wrongbook-list .data-table tbody td.col--status .sz-wrongbook-status {
  position: static !important;
  display: inline-flex !important;
  transform: none !important;
}
html .sz-wrongbook-list .data-table tbody td.col--ac-tried {
  position: static !important;
  display: inline-flex !important;
  grid-column: 2 !important;
  grid-row: 2 !important;
  color: var(--sz-text-dim);
  text-align: right !important;
  white-space: nowrap !important;
  align-items: center;
  gap: 7px;
}
html .sz-wrongbook-list .data-table tbody td.col--ac-tried::before {
  content: "通过 / 尝试";
  color: var(--sz-text-dim);
  font-size: 11px;
  font-weight: 650;
}
html .sz-wrongbook-list .data-table tbody td.col--difficulty {
  position: static !important;
  display: block !important;
  grid-column: 3 !important;
  grid-row: 2 !important;
  min-width: 64px !important;
  text-align: right !important;
  white-space: nowrap !important;
}

@media (max-width: 900px) {
  html .sz-wrongbook-list .search {
    grid-template-columns: auto minmax(140px,1fr) 48px !important;
  }
  html .sz-wrongbook-list .search > input { grid-column: 1 / -1 !important; }
  html .sz-wrongbook-list .search > [data-fragment-id="problem_stat"] { grid-column: 1 !important; }
  html .sz-wrongbook-list .search > select { grid-column: 2 !important; }
  html .sz-wrongbook-list .search > button { grid-column: 3 !important; }
}

@media (max-width: 650px) {
  html .sz-wrongbook-list .data-table tbody tr {
    padding: 16px !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 12px !important;
  }
  html .sz-wrongbook-list .data-table tbody td.col--problem-name { padding-right: 38px !important; }
  html .sz-wrongbook-list .data-table tbody td.col--difficulty { display: none !important; }
  html .sz-wrongbook-list .data-table tbody td.col--ac-tried { grid-column: 2 !important; }
}

@media (max-width: 480px) {
  html .sz-wrongbook-list .search { grid-template-columns: minmax(0,1fr) 48px !important; }
  html .sz-wrongbook-list .search > [data-fragment-id="problem_stat"] { grid-column: 1 / -1 !important; }
  html .sz-wrongbook-list .search > select { grid-column: 1 !important; }
  html .sz-wrongbook-list .search > button { grid-column: 2 !important; }
}
