:root {
  color-scheme: light;
  --ink: #183153;
  --muted: #6b7a90;
  --line: #d6e4f3;
  --panel: #ffffff;
  --bg: #eaf4ff;
  --accent: #2f7fdc;
  --accent-deep: #17468c;
  --accent-soft: #e8f3ff;
  --gold: #f4c644;
  --gold-soft: #fff5cf;
  --green: #4e9579;
  --warn: #b7791f;
  --danger: #b42318;
  --shadow: 0 14px 34px rgba(32, 76, 132, 0.10);
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

body {
  /* font-size-up-20260721 */
  font-size: 18px;
  margin: 0;
  background:
    linear-gradient(135deg, transparent 0 20%, rgba(255, 255, 255, 0.34) 20% 26%, transparent 26%),
    linear-gradient(126deg, transparent 0 78%, rgba(255, 243, 190, 0.40) 78% 84%, transparent 84%),
    var(--bg);
  color: var(--ink);
  font-family: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", Arial, sans-serif;
  line-height: 1.5;
}

.app-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background:
    linear-gradient(108deg, transparent 0 60%, var(--gold-soft) 60% 70%, transparent 70%),
    #ffffff;
  border-bottom: 4px solid var(--gold);
  box-shadow: 0 3px 14px rgba(23, 70, 140, 0.08);
}

.header-inner {
  width: min(1280px, calc(100% - 80px));
  margin: 0 auto;
  padding: 18px 0 16px;
}

.brand-row {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 14px;
}

.eyebrow {
  margin: 0 0 4px;
  color: var(--accent);
  font-size: 14px;
  font-weight: 700;
}

h1,
h2,
h3 {
  margin: 0;
  line-height: 1.25;
}

h1 {
  color: var(--accent-deep);
  font-size: 25px;
  letter-spacing: 0;
}

h2 {
  font-size: 19px;
  margin-bottom: 16px;
}

h3 {
  font-size: 17px;
  margin: 18px 0 8px;
}

.rule-meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.rule-meta span,
.tag {
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  color: var(--muted);
  font-size: 14px;
}

.app-shell {
  min-height: calc(100vh - 126px);
}

.dashboard-shell {
  position: relative;
  width: min(1280px, calc(100% - 80px));
  margin: 32px auto 52px;
}

.dashboard-shell::before {
  content: "";
  position: fixed;
  inset: 126px 0 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.46) 0 13%, transparent 13% 100%),
    linear-gradient(135deg, transparent 0 84%, rgba(255, 247, 203, 0.38) 84% 91%, transparent 91%);
}

.step-button,
button,
.file-label {
  width: 100%;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--ink);
  border-radius: 8px;
  padding: 10px 12px;
  font: inherit;
  cursor: pointer;
  text-align: left;
}

button:hover,
.file-label:hover,
.step-button.active {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.top-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.top-nav .step-button {
  width: auto;
  min-width: 112px;
  margin: 0;
  color: var(--accent-deep);
  font-weight: 700;
  text-align: center;
  background: #ffffff;
  border-color: #c8dbef;
  box-shadow: 0 2px 7px rgba(47, 127, 220, 0.08);
}

.top-nav .step-button:hover {
  border-color: var(--accent);
  background: #f2f8ff;
}

.top-nav .step-button.active {
  color: #ffffff;
  border-color: var(--accent);
  background: var(--accent);
  box-shadow: 0 5px 14px rgba(47, 127, 220, 0.30);
}

.side-actions {
  display: grid;
  gap: 8px;
  margin-top: 18px;
}

.file-label input {
  display: none;
}

.workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 18px;
  padding: 0;
}

.workspace.single {
  display: block;
}

.step-panel,
.records {
  display: none;
  background: var(--panel);
  border: 1px solid var(--line);
  border-top: 5px solid var(--accent);
  border-radius: 8px;
  padding: 26px 30px;
  box-shadow: var(--shadow);
}

.step-panel.active {
  display: block;
}


.home-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(360px, 0.75fr);
  gap: 18px;
  margin-bottom: 20px;
}

/* Keep homepage connectors completely inside the gap between cards. */
.home-panel .landing-goal-flow li:not(:last-child)::after {
  right: -21px;
  width: 18px;
  font-size: 16px;
}

/* Health archive workspace — visual states and student timeline. */
.step-panel[data-panel="manage"] {
  position: relative;
  padding-top: 50px;
}

.step-panel[data-panel="manage"]::before {
  content: "未选择学员";
  position: absolute;
  top: 10px;
  left: 6px;
  border-left: 5px solid #4b8ee8;
  padding-left: 10px;
  color: #3e78ce;
  font-size: 1rem;
  font-weight: 900;
}

.step-panel[data-panel="manage"][data-archive-state="selected"]::before {
  content: "已选择学员";
}

.step-panel[data-panel="manage"] .management-layout {
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 20px;
}

.step-panel[data-panel="manage"][data-archive-state="venue"] .management-layout {
  grid-template-columns: 1fr;
}

.step-panel[data-panel="manage"][data-archive-state="venue"] .management-side {
  display: none;
}

.step-panel[data-panel="manage"][data-archive-state="venue"] .management-main {
  min-width: 0;
}

.step-panel[data-panel="manage"] .management-side,
.step-panel[data-panel="manage"] .management-main {
  gap: 18px;
}

.step-panel[data-panel="manage"] .management-controls,
.step-panel[data-panel="manage"] .student-summary,
.step-panel[data-panel="manage"] .record-list {
  border: 1px solid #dce8f6;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 30px rgba(48, 93, 151, 0.08);
}

.step-panel[data-panel="manage"] .management-controls {
  padding: 20px;
}

.step-panel[data-panel="manage"] .management-controls label {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 10px;
  color: #173d73;
  font-weight: 900;
}

.step-panel[data-panel="manage"] .management-controls label::before {
  content: "♟";
  color: #4b8ee8;
  font-size: 1.15rem;
}

.step-panel[data-panel="manage"] .management-controls select {
  grid-column: 1 / -1;
  min-height: 52px;
  border: 1px solid #ccddef;
  border-radius: 10px;
  background-color: #fbfdff;
  padding-inline: 14px;
  color: #173d73;
  font-weight: 800;
}

.archive-guide-card {
  min-height: auto;
  padding: 24px;
}

.class-picker-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
  min-width: 0;
}

.class-picker-field label {
  min-width: 0;
}

.class-picker-field button {
  width: auto;
  min-height: 48px;
  white-space: nowrap;
}

.entry-card .class-picker-field select {
  min-height: 48px;
}

.step-panel[data-panel="manage"] .manage-class-picker {
  grid-template-columns: minmax(0, 1fr);
  margin: 0;
}

.step-panel[data-panel="manage"] .manage-class-picker label::before {
  content: "▦";
}

.step-panel[data-panel="manage"] .manage-class-picker label {
  grid-template-columns: auto minmax(0, 1fr);
  justify-content: start;
  white-space: nowrap;
  width: 100%;
}

.step-panel[data-panel="manage"] .manage-class-picker label select,
.student-picker-field label select {
  width: 100%;
}

.managed-class-roster {
  min-height: 640px;
  padding: 24px;
}

.managed-roster-heading {
  display: grid;
  grid-template-columns: minmax(120px, max-content) minmax(360px, 1fr);
  align-items: center;
  gap: 28px;
  padding-bottom: 16px;
  border-bottom: 1px solid #e2ebf6;
}

.managed-roster-heading span {
  color: #4e85df;
  font-size: 13px;
  font-weight: 800;
}

.managed-roster-heading h2 {
  margin: 4px 0 0;
  color: #173d73;
  font-size: 24px;
}

.venue-dashboard-entry {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  justify-self: end;
  width: min(430px, 100%);
  padding: 8px 16px;
  border: 1px solid #d8e6f8;
  border-radius: 999px;
  background: #edf5ff;
  color: #3977d7;
  box-shadow: 0 8px 18px rgba(57, 119, 215, 0.08);
  cursor: pointer;
}

.venue-dashboard-entry b {
  color: #3977d7;
  font-size: 14px;
  text-align: center;
}

.venue-dashboard-entry small {
  color: #6f7f96;
  font-size: 12px;
  font-weight: 800;
}

.venue-dashboard-entry:hover {
  border-color: #8db4ef;
  background: #e6f1ff;
  transform: translateY(-1px);
}

.managed-roster-intro {
  margin: 14px 0 18px;
  color: #71819a;
}

.managed-roster-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.managed-student-card {
  position: relative;
  border: 1px solid #dce8f7;
  border-radius: 16px;
  background: #fbfdff;
  overflow: hidden;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.managed-student-card:hover {
  border-color: #77a5eb;
  box-shadow: 0 10px 24px rgba(45, 94, 158, 0.1);
  transform: translateY(-1px);
}

.managed-student-open {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  width: 100%;
  min-width: 0;
  padding: 15px 112px 15px 15px;
  border: 0;
  background: transparent;
  text-align: left;
}

.managed-student-avatar {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #75a9f3, #4d82df);
  color: #fff;
  font-size: 18px;
  font-weight: 900;
}

.managed-student-copy {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.managed-student-copy strong {
  overflow: hidden;
  color: #173d73;
  font-size: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.managed-student-copy small,
.managed-student-copy em {
  overflow: hidden;
  color: #7d8da5;
  font-size: 13px;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.managed-student-class {
  position: absolute;
  top: 50%;
  right: 16px;
  z-index: 2;
  margin: 0;
  padding: 8px 10px;
  border-color: #d8e5f4;
  background: #fff;
  color: #637995;
  font-size: 12px;
  white-space: nowrap;
  transform: translateY(-50%);
}

/* Keep the per-student class action compact and clear of the profile copy. */
.managed-student-card > .managed-student-class {
  position: absolute !important;
  top: 50% !important;
  right: 14px !important;
  bottom: auto !important;
  left: auto !important;
  display: inline-flex !important;
  width: auto !important;
  min-width: 78px;
  max-width: 92px;
  height: 36px;
  align-items: center;
  justify-content: center;
  padding: 0 10px !important;
  transform: translateY(-50%) !important;
}

/* Local-first startup entrance */
body.launch-locked {
  overflow: hidden;
}

.launch-gate {
  position: fixed;
  inset: 0;
  z-index: 12000;
  overflow: auto;
  padding: 54px 28px;
  background:
    linear-gradient(132deg, rgba(225, 239, 255, 0.9) 0 18%, transparent 18% 72%, rgba(255, 232, 157, 0.45) 72% 80%, transparent 80%),
    #edf6ff;
}

.launch-gate[hidden],
.launch-dialog[hidden] {
  display: none !important;
}

.launch-gate-card {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  width: min(1160px, 100%);
  min-height: 620px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(203, 221, 244, 0.82);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 24px 70px rgba(38, 83, 139, 0.16);
}

.launch-intro,
.launch-actions-panel {
  padding: 62px 64px;
}

.launch-intro {
  position: relative;
  background:
    radial-gradient(circle at 86% 42%, rgba(111, 169, 245, 0.2), transparent 28%),
    linear-gradient(145deg, #f8fbff, #edf5ff);
}

.launch-intro::after {
  content: none;
}

.launch-intro > span,
.launch-actions-panel > span,
.launch-dialog section > span {
  color: #4a84dd;
  font-weight: 800;
}

.launch-intro h2,
.launch-actions-panel h2,
.launch-dialog h2 {
  margin: 12px 0 16px;
  color: #173f77;
}

.launch-intro > p {
  max-width: 470px;
  margin: 0;
  color: #657a94;
  font-size: 16px;
  line-height: 1.85;
}

.launch-product-title {
  margin-bottom: 18px;
}

.launch-product-title h1 {
  max-width: 520px;
  margin: 0;
  color: #123d7b;
  font-size: clamp(30px, 2.5vw, 42px);
  line-height: 1.18;
  letter-spacing: 0.02em;
}

.launch-product-title p {
  margin: 11px 0 0;
  color: #607590;
  font-size: 17px;
}

.launch-product-visual {
  position: relative;
  height: 258px;
  margin: 34px -18px 0;
  overflow: hidden;
  background: transparent;
}

.launch-product-visual::after {
  content: none;
}

.launch-product-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  filter: saturate(0.94) drop-shadow(0 16px 22px rgba(62, 112, 188, 0.10));
}

.launch-capabilities {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.launch-capabilities article {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 14px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid #dce8f6;
}

.launch-capabilities i {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #347ddc;
  font-style: normal;
  font-size: 21px;
  box-shadow: 0 7px 18px rgba(54, 112, 187, 0.12);
}

.launch-capabilities strong,
.launch-capabilities small {
  display: block;
}

.launch-capabilities strong {
  color: #204b81;
}

.launch-capabilities small {
  margin-top: 4px;
  color: #7b8da4;
  line-height: 1.5;
}

.launch-actions-panel {
  align-self: center;
}

.launch-actions-panel h2 {
  font-size: 34px;
}

.launch-login-fields {
  display: grid;
  gap: 15px;
  margin-top: 24px;
}

.launch-login-fields label > span {
  display: block;
  margin-bottom: 7px;
  color: #24466f;
  font-size: 14px;
  font-weight: 800;
}

.launch-login-fields label > span small {
  color: #8797aa;
  font-weight: 500;
}

.launch-login-fields input[type="text"],
.launch-login-fields input[type="password"],
.launch-login-fields select {
  width: 100%;
  min-height: 48px;
  padding: 0 15px;
  border: 1px solid #cedbeb;
  border-radius: 10px;
  background: #f8fafc;
  color: #8999ac;
  font: inherit;
  opacity: 1;
}

.launch-login-fields input:disabled,
.launch-login-fields select:disabled {
  cursor: not-allowed;
  -webkit-text-fill-color: #9aa9bb;
}

.launch-login-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #8495aa;
  font-size: 13px;
}

.launch-login-meta label {
  display: inline-flex;
  width: auto;
  min-width: max-content;
  flex: 0 0 auto;
  gap: 7px;
  align-items: center;
  white-space: nowrap;
  writing-mode: horizontal-tb;
}

.launch-login-meta input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0;
  flex: 0 0 16px;
}

.launch-login-meta span {
  color: #4a84dd;
  font-weight: 700;
}

.launch-action {
  margin-top: 28px;
}

.launch-action button {
  width: 100%;
  min-height: 56px;
  border-radius: 12px;
  font-size: 17px;
  font-weight: 800;
}

.launch-primary {
  border: 1px solid #377fe1;
  background: linear-gradient(135deg, #4489e8, #246ed6);
  color: #fff;
  box-shadow: 0 12px 28px rgba(43, 113, 213, 0.22);
}

.launch-secondary {
  border: 1px solid #94b9ea;
  background: #fff;
  color: #2e72cf;
}

.launch-secondary em {
  margin-left: 8px;
  padding: 3px 7px;
  border-radius: 999px;
  background: #eef4fc;
  color: #7b8da4;
  font-size: 11px;
  font-style: normal;
}

.launch-primary em {
  margin-left: 8px;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
  font-size: 11px;
  font-style: normal;
}

.launch-action p {
  margin: 9px 0 0;
  color: #7a8da6;
  text-align: center;
}

.launch-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 30px 0 0;
  color: #92a1b4;
  font-size: 13px;
}

.launch-divider::before,
.launch-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #dbe5f2;
}

.launch-local-note {
  display: grid;
  gap: 4px;
  margin-top: 36px;
  padding: 18px;
  border-radius: 14px;
  background: #f4f8fd;
  color: #7589a3;
  text-align: center;
}

.launch-local-note b {
  color: #386fae;
}

.launch-dialog {
  position: fixed;
  inset: 0;
  z-index: 12100;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(28, 49, 79, 0.48);
  backdrop-filter: blur(5px);
}

.launch-dialog section {
  position: relative;
  width: min(480px, 100%);
  padding: 42px;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(25, 52, 88, 0.25);
}

.launch-dialog section > button[aria-label="关闭"] {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #f1f5fa;
  color: #58718f;
  font-size: 26px;
}

.launch-dialog p {
  margin: 0 0 28px;
  color: #687c95;
  line-height: 1.75;
}

.launch-dialog .launch-primary {
  width: 100%;
  min-height: 48px;
  border-radius: 10px;
  font-weight: 800;
}

.runtime-mode-status {
  color: #3c75b8;
  font-weight: 700;
}

.settings-cloud-card {
  background: linear-gradient(135deg, #f8fbff, #f3f7fd);
}

.settings-cloud-card .settings-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  margin-bottom: 0;
}

.settings-cloud-card .settings-section-head > div {
  min-width: 0;
}

.settings-cloud-card .settings-section-head h3 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.settings-cloud-card .settings-section-head p {
  max-width: 900px;
  line-height: 1.65;
}

.settings-cloud-card button[disabled] {
  width: auto;
  min-width: 126px;
  justify-self: end;
  white-space: nowrap;
  opacity: 0.62;
  cursor: not-allowed;
}

.settings-coming-badge {
  display: inline-flex;
  margin-left: 0;
  padding: 3px 8px;
  border-radius: 999px;
  background: #eef3fa;
  color: #71859e;
  font-size: 12px;
  vertical-align: middle;
}

@media (max-width: 720px) {
  .settings-cloud-card .settings-section-head {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .settings-cloud-card button[disabled] {
    justify-self: start;
  }
}

.settings-project-launch-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.settings-project-launch-grid > button { min-height: 118px; display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 22px; border: 1px solid #d8e5f5; border-radius: 18px; background: linear-gradient(135deg, #f8fbff, #fff); color: #1b477f; text-align: left; box-shadow: 0 10px 24px rgba(44, 87, 143, .07); }
.settings-project-launch-grid > button:nth-child(2) { background: linear-gradient(135deg, #fffaf0, #fff); border-color: #f0dfb8; }
.settings-project-launch-grid > button:hover { transform: translateY(-2px); border-color: #9fc1ed; box-shadow: 0 14px 30px rgba(44, 87, 143, .12); }
.settings-project-launch-grid i { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 15px; background: #e9f2ff; color: #397bd7; font-size: 15px; font-style: normal; font-weight: 800; }
.settings-project-launch-grid button:nth-child(2) i { background: #fff0c8; color: #ad760d; }
.settings-project-launch-grid span { display: grid; gap: 7px; }
.settings-project-launch-grid strong { font-size: 21px; }
.settings-project-launch-grid small { color: #778aa5; font-size: 14px; font-weight: 500; }
.settings-project-launch-grid b { color: #4b82cf; font-size: 14px; white-space: nowrap; }
.test-project-dialog { position: fixed; inset: 0; z-index: 4000; display: grid; place-items: center; padding: 34px; background: rgba(24, 47, 82, .52); backdrop-filter: blur(5px); }
.test-project-dialog[hidden] { display: none; }
.test-project-dialog-card { width: min(1500px, 94vw); max-height: 88vh; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; border: 1px solid #d8e5f4; border-radius: 24px; background: #fff; box-shadow: 0 30px 80px rgba(21, 47, 84, .25); }
.test-project-dialog[data-project-dialog="device"] .test-project-dialog-card { width: min(1040px, 92vw); }
.test-project-dialog-head { display: flex; justify-content: space-between; gap: 24px; padding: 24px 28px 20px; border-bottom: 1px solid #e3ebf5; background: linear-gradient(110deg, #f7fbff, #fff); }
.test-project-dialog-head div { display: grid; gap: 5px; }
.test-project-dialog-head span { color: #4b82d4; font-size: 13px; font-weight: 800; }
.test-project-dialog-head h2 { margin: 0; color: #173f78; font-size: 25px; }
.test-project-dialog-head p { margin: 0; color: #72849d; }
.test-project-dialog-head > button { width: 42px; height: 42px; padding: 0; border: 0; border-radius: 50%; background: #eef4fb; color: #58718f; font-size: 25px; }
.test-project-dialog-content { min-height: 0; overflow: auto; padding: 24px 28px; }
.test-project-dialog-content .settings-subgroup { margin: 0; }
.test-project-dialog-content .trial-project-settings { padding-top: 0; border-top: 0; }
.test-project-dialog-content .student-project-settings { padding-top: 0; border-top: 0; }
.test-project-dialog-card > footer { display: flex; justify-content: flex-end; padding: 16px 28px; border-top: 1px solid #e3ebf5; background: #fbfdff; }
.test-project-dialog-card > footer button { min-width: 120px; }
@media (max-width: 800px) {
  .settings-project-launch-grid { grid-template-columns: 1fr; }
  .settings-project-launch-grid > button { grid-template-columns: 44px minmax(0, 1fr); padding: 18px; }
  .settings-project-launch-grid b { grid-column: 2; }
  .test-project-dialog { padding: 12px; }
  .test-project-dialog-head, .test-project-dialog-content { padding: 18px; }
}

/* Homepage assessment entrances: emphasize the two primary choices. */
.home-panel .landing-actions { gap: 28px; }
.home-panel .landing-actions button { min-width: 190px; min-height: 58px; padding: 0 32px; border-radius: 11px; font-size: 17px; letter-spacing: .02em; }
@media (max-width: 700px) {
  .home-panel .landing-actions { gap: 14px; }
  .home-panel .landing-actions button { min-width: 150px; min-height: 50px; padding: 0 22px; font-size: 15px; }
}

@media (max-width: 820px) {
  .launch-gate {
    padding: 24px 14px;
  }

  .launch-gate-card {
    grid-template-columns: 1fr;
  }

  .launch-intro,
  .launch-actions-panel {
    padding: 38px 28px;
  }

  .launch-product-visual {
    height: 220px;
    margin-inline: 0;
  }

  .launch-capabilities {
    margin-top: 32px;
  }

  .runtime-mode-status {
    display: none;
  }
}

/* 首页主视觉最终融合：保留原场景插画，入口作为同一功能台的一部分。 */
.home-panel .landing-overview-card {
  position: relative;
  isolation: isolate;
  padding: 0;
  background:
    linear-gradient(90deg, #fff 0%, #fff 38%, rgba(255,255,255,.97) 47%, rgba(255,255,255,.56) 62%, rgba(244,249,255,.12) 100%),
    url("../images/home-health-archive-scene.png") right top / 58% auto no-repeat;
}

.home-panel .landing-overview-card::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  z-index: -1;
  height: 48%;
  background: linear-gradient(180deg, transparent, rgba(235,244,255,.82));
  pointer-events: none;
}

.home-panel .landing-overview-main {
  min-height: 278px;
  display: block;
  padding: 38px 46px 22px;
  background: transparent;
}

.home-panel .landing-overview-main .landing-copy {
  width: 55%;
  max-width: 760px;
}

.landing-home-facts {
  width: fit-content;
  display: flex;
  align-items: stretch;
  gap: 0;
  margin-top: 20px;
  padding: 7px 9px;
  border: 1px solid rgba(197, 215, 238, .86);
  border-radius: 14px;
  background: rgba(255,255,255,.83);
  box-shadow: 0 10px 28px rgba(34, 74, 124, .08);
  backdrop-filter: blur(12px);
}

.landing-home-facts > span {
  min-width: 94px;
  display: grid;
  gap: 2px;
  padding: 4px 13px;
  border-right: 1px solid #e1e9f4;
}

.landing-home-facts > span:last-child {
  border-right: 0;
}

.landing-home-facts strong {
  color: #2f71cc;
  font-size: 17px;
  line-height: 1.2;
  white-space: nowrap;
}

.landing-home-facts small {
  color: #73849a;
  font-size: 11px;
  white-space: nowrap;
}

.home-panel .landing-core-actions {
  position: relative;
  z-index: 1;
  grid-template-columns: 1.16fr 1fr 1fr;
  margin: 0 30px 28px;
  overflow: hidden;
  border: 1px solid rgba(205, 220, 240, .92);
  border-radius: 19px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 16px 40px rgba(31, 69, 119, .12);
  backdrop-filter: blur(16px);
}

.home-panel .landing-core-action,
.home-panel .landing-core-action:hover {
  position: relative;
  min-height: 112px;
  padding: 16px 20px;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
  transform: none;
}

.home-panel .landing-core-action:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 19px;
  right: 0;
  bottom: 19px;
  width: 1px;
  background: linear-gradient(180deg, transparent, #d6e2f1 18%, #d6e2f1 82%, transparent);
}

.home-panel .landing-core-action h3 {
  font-size: 20px;
}

.home-panel .landing-core-action p {
  color: #697d97;
  font-size: 12.5px;
}

.home-panel .landing-core-action button {
  min-height: 38px;
  padding: 7px 15px;
  box-shadow: 0 7px 16px rgba(47, 106, 190, .12);
}

.home-panel .core-action-archive > button {
  background: #dda51f;
  border-color: #dda51f;
  box-shadow: 0 7px 16px rgba(192, 137, 15, .14);
}

.home-panel .landing-core-action .core-secondary-action {
  color: #416fa9;
  background: rgba(255,255,255,.92);
  border-color: #c8d9ee;
  box-shadow: none;
}

@media (max-width: 1180px) {
  .home-panel .landing-overview-card {
    background:
      linear-gradient(90deg, #fff 0%, #fff 45%, rgba(255,255,255,.88) 64%, rgba(244,249,255,.20) 100%),
      url("../images/home-health-archive-scene.png") right top / 66% auto no-repeat;
  }

  .home-panel .landing-overview-main .landing-copy {
    width: 62%;
  }

  .home-panel .landing-core-actions {
    grid-template-columns: 1fr;
  }

  .home-panel .landing-core-action {
    grid-template-columns: 50px minmax(0, 1fr) auto;
    grid-template-rows: auto;
  }

  .home-panel .core-action-entry {
    grid-template-columns: 50px minmax(0, 1fr) auto;
    grid-template-rows: auto;
  }

  .home-panel .landing-core-action > button,
  .home-panel .landing-core-action .core-action-buttons,
  .home-panel .core-action-entry .core-action-buttons {
    grid-column: 3;
    grid-row: 1;
    align-self: center;
  }

  .home-panel .landing-core-action:not(:last-child)::after {
    top: auto;
    right: 20px;
    bottom: 0;
    left: 20px;
    width: auto;
    height: 1px;
  }
}

@media (max-width: 820px) {
  .home-panel .landing-overview-card {
    background:
      linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.98)),
      url("../images/home-health-archive-scene.png") 82% top / auto 300px no-repeat;
  }

  .home-panel .landing-overview-main {
    min-height: 0;
    padding: 28px 22px 20px;
  }

  .home-panel .landing-overview-main .landing-copy {
    width: 100%;
  }

  .landing-home-facts {
    width: 100%;
    box-sizing: border-box;
    overflow-x: auto;
  }

  .landing-home-facts > span {
    min-width: 82px;
  }

  .home-panel .landing-core-actions {
    margin: 0 14px 18px;
  }

  .home-panel .landing-core-action,
  .home-panel .core-action-entry {
    grid-template-columns: 46px minmax(0, 1fr);
    grid-template-rows: auto auto;
  }

  .home-panel .landing-core-action > button,
  .home-panel .landing-core-action .core-action-buttons,
  .home-panel .core-action-entry .core-action-buttons {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
  }
}

.managed-roster-empty {
  display: grid;
  min-height: 420px;
  place-content: center;
  justify-items: center;
  color: #7d8da5;
  text-align: center;
}

.managed-roster-empty i {
  display: grid;
  width: 70px;
  height: 70px;
  place-items: center;
  border-radius: 20px;
  background: #edf5ff;
  color: #4e85df;
  font-size: 30px;
  font-style: normal;
}

.managed-roster-empty h3 {
  margin: 16px 0 6px;
  color: #173d73;
}

.managed-roster-empty p {
  margin: 0;
}

.step-panel[data-panel="manage"] .manage-class-picker button {
  width: 100%;
  min-height: 52px;
  padding-inline: 18px;
  white-space: nowrap;
}

.student-picker-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 116px;
  gap: 10px;
  align-items: end;
  min-width: 0;
}

.student-picker-field label {
  min-width: 0;
  width: 100%;
}

.student-picker-field button {
  width: 100%;
  min-height: 52px;
  padding-inline: 18px;
  white-space: nowrap;
}

.student-class-dialog {
  position: fixed;
  inset: 0;
  z-index: 1600;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(18, 45, 84, 0.44);
  backdrop-filter: blur(5px);
}

.student-class-dialog[hidden] {
  display: none;
}

.student-class-dialog-card {
  position: relative;
  width: min(760px, 100%);
  max-height: min(82vh, 760px);
  overflow: auto;
  padding: 32px;
  border: 1px solid #d7e5f7;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(28, 65, 116, 0.24);
}

.student-class-dialog-card > span {
  color: #4d84df;
  font-size: 14px;
  font-weight: 800;
}

.student-class-dialog-card h3 {
  margin: 7px 54px 8px 0;
  color: #173d73;
  font-size: 25px;
}

.student-class-dialog-card > p {
  margin: 0 54px 22px 0;
  color: #71819a;
  line-height: 1.65;
}

.student-class-dialog-close {
  position: absolute;
  top: 20px;
  right: 20px;
  display: grid;
  flex: 0 0 42px;
  place-items: center;
  width: 42px;
  min-width: 42px;
  max-width: 42px;
  height: 42px;
  min-height: 42px;
  max-height: 42px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #f1f6fc;
  color: #52719a;
  font-size: 25px;
  font-family: Arial, sans-serif;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  text-indent: 0;
  transform: none;
  cursor: pointer;
  box-sizing: border-box;
}

.student-class-dialog-close:hover {
  color: #275ea8;
  background: #e5eef9;
}

.venue-dashboard-card {
  width: min(1040px, 100%);
  max-height: min(86vh, 820px);
}

.venue-dashboard-page {
  display: grid;
  gap: 18px;
}

.venue-dashboard-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding: 24px 26px;
  border: 1px solid #d8e7fb;
  border-left: 6px solid #4d84e6;
  border-radius: 22px;
  background:
    radial-gradient(circle at right top, rgba(250, 221, 129, 0.28), transparent 36%),
    linear-gradient(135deg, #f7fbff 0%, #ffffff 72%);
  box-shadow: 0 18px 38px rgba(62, 104, 164, 0.12);
}

.venue-dashboard-hero span {
  display: inline-flex;
  width: fit-content;
  padding: 5px 12px;
  border-radius: 999px;
  background: #edf5ff;
  color: #4d7fd9;
  font-size: 13px;
  font-weight: 900;
}

.venue-dashboard-hero h2 {
  margin: 10px 0 6px;
  color: #173d73;
  font-size: 34px;
  line-height: 1.12;
}

.venue-dashboard-hero p {
  margin: 0;
  color: #62728b;
  font-size: 17px;
  line-height: 1.7;
}

.venue-dashboard-hero button {
  min-width: 150px;
  padding: 13px 18px;
  border: 1px solid #bcd1ef;
  border-radius: 14px;
  background: #fff;
  color: #275ea8;
  font-size: 16px;
  font-weight: 900;
  cursor: pointer;
}

.venue-dashboard-content {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.venue-dashboard-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.venue-dashboard-metrics article {
  padding: 18px;
  border: 1px solid #dfe9f6;
  border-radius: 18px;
  background: linear-gradient(135deg, #f8fbff 0%, #ffffff 100%);
  box-shadow: 0 12px 26px rgba(70, 103, 148, 0.08);
}

.venue-dashboard-metrics span {
  display: block;
  color: #6f7f96;
  font-size: 13px;
  font-weight: 800;
}

.venue-dashboard-metrics strong {
  display: block;
  margin-top: 6px;
  color: #173d73;
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.venue-focus-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.venue-focus-grid article {
  padding: 16px 18px;
  border: 1px solid #dfe9f6;
  border-radius: 18px;
  background: #f8fbff;
}

.venue-focus-grid article[data-tone="green"] {
  background: #f4fcf8;
  border-color: #cdeee0;
}

.venue-focus-grid article[data-tone="amber"] {
  background: #fffaf0;
  border-color: #f2dfad;
}

.venue-focus-grid article[data-tone="red"] {
  background: #fff7f5;
  border-color: #f2c8bf;
}

.venue-focus-grid strong {
  display: block;
  color: #3f7fdf;
  font-size: 30px;
  line-height: 1;
}

.venue-focus-grid span {
  display: block;
  margin-top: 8px;
  color: #173d73;
  font-size: 15px;
  font-weight: 900;
}

.venue-focus-grid small {
  display: block;
  margin-top: 5px;
  color: #7b899d;
}

.venue-dashboard-metrics small {
  display: block;
  margin-top: 6px;
  color: #8a98ab;
}

.venue-ring-card {
  display: grid;
  grid-template-columns: 86px 1fr;
  align-items: center;
  gap: 16px;
  min-height: 148px;
}

.venue-ring-chart {
  display: grid;
  width: 82px;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
  background:
    radial-gradient(circle, #fff 0 58%, rgba(255,255,255,0) 59%),
    conic-gradient(
      #e85f5a 0 calc(var(--fail) * 1%),
      #4d84e6 calc(var(--fail) * 1%) calc((var(--fail) + var(--pass)) * 1%),
      #65c5b4 calc((var(--fail) + var(--pass)) * 1%) 100%
    );
  box-shadow:
    inset 0 0 0 1px rgba(23, 61, 115, 0.05),
    0 12px 24px rgba(77, 132, 230, 0.12);
}

.venue-ring-card > div:last-child {
  display: grid;
  gap: 6px;
}

.venue-ring-card > div:last-child strong {
  display: flex;
  align-items: baseline;
  gap: 8px;
  color: #173d73;
  font-size: 16px;
}

.venue-ring-card > div:last-child strong small {
  color: #8a98ab;
  font-size: 12px;
}

.venue-ring-card button {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-height: 26px;
  padding: 3px 7px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #6f7f96;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.venue-ring-card button:hover,
.venue-ring-card button.is-active {
  border-color: #d8e6f8;
  background: #f4f8ff;
}

.venue-ring-card button span {
  flex: 1;
  text-align: left;
}

.venue-ring-card button b {
  color: #173d73;
}

.venue-ring-card button i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

.venue-ring-card button i[data-ring="fail"] {
  background: #e85f5a;
}

.venue-ring-card button i[data-ring="pass"] {
  background: #4d84e6;
}

.venue-ring-card button i[data-ring="good"] {
  background: #65c5b4;
}

.venue-ring-member-panel {
  padding: 14px;
  border: 1px solid #dfe9f6;
  border-radius: 16px;
  background: #fbfdff;
}

.venue-ring-member-panel header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.venue-ring-member-panel header span {
  display: block;
  color: #6f7f96;
  font-size: 12px;
  font-weight: 800;
}

.venue-ring-member-panel header strong {
  color: #173d73;
  font-size: 18px;
}

.venue-ring-member-panel header button {
  flex: 0 0 auto;
  width: auto;
  min-width: 84px;
  padding: 7px 14px;
  border: 1px solid #cbdcf1;
  border-radius: 10px;
  background: #fff;
  color: #3977d7;
  font-weight: 900;
  cursor: pointer;
}

.venue-ring-member-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.venue-ring-member-list button {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid #dfe9f6;
  border-radius: 12px;
  background: #f7faff;
  text-align: left;
  cursor: pointer;
}

.venue-ring-member-list button:hover {
  border-color: #8db4ef;
  background: #eef6ff;
}

.venue-ring-member-list b {
  color: #173d73;
  font-size: 15px;
}

.venue-ring-member-list small,
.venue-ring-member-list p {
  margin: 0;
  color: #7b899d;
  font-size: 12px;
}

.venue-overview-block,
.venue-analysis-block,
.venue-observation-block {
  display: grid;
  gap: 14px;
}

.venue-overview-block h3,
.venue-observation-block h3 {
  margin: 0;
  color: #173d73;
  font-size: 20px;
}

.venue-core-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.venue-core-grid article {
  padding: 14px;
  border: 1px solid #dfe9f6;
  border-radius: 16px;
  background: #fbfdff;
}

.venue-core-grid span,
.venue-core-grid small {
  display: block;
  color: #7b899d;
  font-size: 12px;
  font-weight: 800;
}

.venue-core-grid strong {
  display: block;
  margin: 6px 0 4px;
  color: #3f7fdf;
  font-size: 22px;
  line-height: 1.1;
}

.venue-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  border: 1px solid #dfe9f6;
  border-radius: 16px;
  background: #f8fbff;
}

.venue-filter-grid label {
  display: grid;
  gap: 7px;
  color: #617089;
  font-size: 13px;
  font-weight: 900;
}

.venue-filter-grid select {
  width: 100%;
  min-height: 42px;
  border: 1px solid #cbdcf1;
  border-radius: 12px;
  background: #fff;
  color: #173d73;
  font-size: 15px;
  font-weight: 800;
}

.venue-analysis-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr;
  gap: 14px;
}

.venue-line-chart {
  width: 100%;
  min-height: 190px;
  overflow: visible;
}

.venue-line-chart circle {
  fill: #fff;
  stroke: #4d84e6;
  stroke-width: 4;
}

.venue-line-chart text {
  fill: #7b899d;
  font-size: 18px;
  font-weight: 800;
}

.venue-line-chart .venue-student-point circle {
  fill: #1f9d8a;
  stroke: #1f9d8a;
  stroke-width: 2;
}

.venue-line-chart .venue-student-point line {
  stroke: #1f9d8a;
  stroke-width: 2;
  stroke-dasharray: 4 4;
}

.venue-line-chart .venue-student-point text {
  fill: #127a6b;
  font-size: 15px;
}

.venue-line-chart .venue-student-point .venue-student-delta {
  fill: #5b6b82;
  font-size: 12px;
  font-weight: 800;
}

.venue-empty-chart {
  display: grid;
  min-height: 150px;
  place-items: center;
  border-radius: 12px;
  background: #f2f7ff;
  color: #7b899d;
  font-weight: 800;
}

.venue-chart-note {
  margin: 10px 0 0;
  color: #7b899d;
  font-size: 13px;
}

.venue-position-card {
  display: grid;
  gap: 10px;
  padding: 14px;
  border-radius: 14px;
  background: #f7faff;
}

.venue-position-card strong {
  color: #173d73;
  font-size: 20px;
}

.venue-position-card p {
  margin: 0;
  color: #617089;
  line-height: 1.6;
}

.venue-position-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.venue-position-stats span {
  min-width: 0;
  padding: 8px 10px;
  border-radius: 10px;
  background: #eef5ff;
}

.venue-position-stats b,
.venue-position-stats em {
  display: block;
  overflow-wrap: anywhere;
  font-style: normal;
  line-height: 1.25;
}

.venue-position-stats b {
  color: #617089;
  font-size: 12px;
  font-weight: 900;
}

.venue-position-stats em {
  margin-top: 4px;
  color: #173d73;
  font-size: 16px;
  font-weight: 900;
}

.venue-position-bar {
  height: 14px;
  overflow: hidden;
  border-radius: 999px;
  background: #e7eff9;
}

.venue-position-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #4d84e6, #65c5b4);
}

.venue-position-card small {
  color: #3f7fdf;
  font-weight: 900;
}

.venue-observation-block {
  padding: 16px;
  border: 1px solid #dfe9f6;
  border-radius: 16px;
  background: #fbfdff;
}

.venue-observation-block ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.venue-observation-block li {
  padding: 10px 12px;
  border-radius: 12px;
  background: #f7faff;
  color: #526782;
  line-height: 1.5;
}

.venue-dashboard-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr 1.1fr;
  gap: 14px;
}

.venue-dashboard-grid section,
.venue-chart-card {
  padding: 16px;
  border: 1px solid #dfe9f6;
  border-radius: 16px;
  background: #fbfdff;
}

.venue-dashboard-grid h4 {
  margin: 0 0 12px;
  color: #173d73;
  font-size: 17px;
}

.venue-follow-list {
  display: grid;
  gap: 10px;
}

.venue-follow-list p {
  display: grid;
  grid-template-columns: 46px 1fr;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 11px 12px;
  border-radius: 12px;
  background: #f2f7ff;
  color: #586a85;
}

.venue-follow-list b {
  color: #3f7fdf;
  font-size: 22px;
  text-align: center;
}

.venue-progress-stack {
  display: grid;
  gap: 15px;
}

.venue-progress-stack p {
  margin: 0;
}

.venue-progress-stack p > span {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  color: #173d73;
  font-weight: 900;
}

.venue-progress-stack em {
  color: #3f7fdf;
  font-style: normal;
}

.venue-progress-stack i {
  display: block;
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #e7eff9;
}

.venue-progress-stack i strong {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #4d84e6, #65c5b4);
}

.venue-progress-stack small {
  display: block;
  margin-top: 7px;
  color: #7b899d;
}

.venue-dashboard-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.venue-dashboard-list li {
  display: grid;
  gap: 8px;
  padding: 11px 12px;
  border-radius: 12px;
  background: #f7faff;
  color: #526782;
}

.venue-class-row-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.venue-dashboard-list span {
  min-width: 0;
  color: #173d73;
  font-weight: 900;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.venue-dashboard-list b {
  color: #3f7fdf;
}

.venue-dashboard-list > li > em {
  color: #7f8da3;
  font-style: normal;
  font-size: 13px;
}

.venue-dashboard-list small {
  color: #7f8da3;
}

.venue-student-rank-list {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #dfe9f6;
}

.venue-bar-pair {
  display: grid;
  gap: 4px;
}

.venue-bar-pair i,
.venue-bar-pair em {
  display: block;
  height: 7px;
  min-width: 6px;
  border-radius: 999px;
  font-style: normal;
}

.venue-bar-pair i {
  background: #4d84e6;
}

.venue-bar-pair em {
  background: #e4b23e;
  opacity: 0.88;
}

@media (max-width: 900px) {
  .venue-dashboard-metrics,
  .venue-focus-grid,
  .venue-dashboard-grid,
  .venue-core-grid,
  .venue-filter-grid,
  .venue-analysis-grid,
  .venue-ring-member-list,
  .managed-roster-heading {
    grid-template-columns: 1fr;
  }

  .venue-dashboard-entry {
    justify-self: stretch;
  }

  .venue-dashboard-hero {
    grid-template-columns: 1fr;
  }
}

.student-class-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.student-class-option {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 82px;
  padding: 14px;
  border: 1px solid #dce8f7;
  border-radius: 16px;
  background: #f9fbfe;
  text-align: left;
}

.student-class-option:hover {
  border-color: #78a7ee;
  background: #f2f7ff;
}

.student-class-option.is-current {
  border-color: #4e85df;
  background: #edf5ff;
  box-shadow: inset 0 0 0 1px #4e85df;
}

.student-class-option-icon {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 13px;
  background: #e7f0ff;
  color: #4e85df;
  font-size: 20px;
  font-weight: 900;
}

.student-class-option-copy {
  display: grid;
  gap: 4px;
}

.student-class-option-copy strong {
  color: #173d73;
  font-size: 17px;
}

.student-class-option-copy small {
  color: #8190a6;
}

.class-overview-option {
  min-height: 98px;
}

.class-overview-option .student-class-option-copy {
  gap: 3px;
}

.class-overview-dialog-card {
  width: min(1080px, 100%);
  max-height: min(86vh, 820px);
}

.class-browser {
  display: grid;
  grid-template-columns: minmax(300px, 0.9fr) minmax(390px, 1.35fr);
  gap: 18px;
  align-items: start;
}

.class-browser-column {
  min-width: 0;
}

.class-browser-column > h4 {
  margin: 0 0 10px;
  color: #173d73;
  font-size: 16px;
}

.class-browser .class-overview-list {
  grid-template-columns: 1fr;
  max-height: 470px;
  overflow: auto;
  padding-right: 4px;
}

.class-overview-student-list {
  display: grid;
  gap: 10px;
  max-height: 470px;
  overflow: auto;
  padding-right: 4px;
}

.class-student-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  border: 1px solid #dce8f7;
  border-radius: 16px;
  background: #f9fbfe;
  overflow: hidden;
}

.class-student-card:hover,
.class-student-card.is-current {
  border-color: #78a7ee;
  background: #f2f7ff;
}

.class-student-select {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  min-width: 0;
  padding: 13px;
  border: 0;
  background: transparent;
  text-align: left;
}

.class-student-avatar {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #75a9f3, #4d82df);
  color: #fff;
  font-size: 18px;
  font-weight: 900;
}

.class-student-copy {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.class-student-copy strong {
  overflow: hidden;
  color: #173d73;
  font-size: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.class-student-copy small {
  overflow: hidden;
  color: #7b8da7;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.class-student-state {
  color: #4e85df;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.class-student-class-action {
  align-self: center;
  margin-right: 12px;
  padding: 8px 10px;
  border-color: #d7e5f7;
  background: #fff;
  color: #5f7695;
  font-size: 12px;
  white-space: nowrap;
}

.student-class-option-state {
  color: #4e85df;
  font-size: 13px;
  font-weight: 800;
}

.student-class-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 22px;
}

.student-class-dialog-actions button:first-child {
  border-color: #4e85df;
  background: #4e85df;
  color: #fff;
}

.student-class-dialog-empty {
  grid-column: 1 / -1;
  padding: 24px;
  border-radius: 14px;
  background: #f6f9fd;
  text-align: center;
}

body.dialog-open {
  overflow: hidden;
}

.archive-guide-card h3 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 24px;
  color: #173d73;
}

.archive-guide-card h3 i {
  color: #f0b63d;
  font-style: normal;
}

.archive-guide-card ul {
  display: grid;
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.archive-guide-card li,
.archive-empty-benefits article {
  display: flex;
  align-items: center;
  gap: 12px;
}

.archive-guide-card li > b,
.archive-empty-benefits article > b {
  display: grid;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 10px;
  background: #edf5ff;
  color: #4b8ee8;
}

.archive-guide-card li span,
.archive-empty-benefits article span {
  display: grid;
  gap: 3px;
}

.archive-guide-card li strong,
.archive-empty-benefits strong {
  color: #214679;
}

.archive-guide-card li small,
.archive-empty-benefits small {
  color: #7c8fa8;
  line-height: 1.45;
}

.archive-guide-illustration {
  position: relative;
  width: 190px;
  height: 130px;
  margin: 54px auto 0;
  opacity: 0.72;
}

.archive-guide-illustration::before,
.archive-guide-illustration::after,
.archive-guide-illustration span {
  content: "";
  position: absolute;
  border-radius: 12px;
  background: linear-gradient(145deg, #e9f3ff, #cfe2fb);
}

.archive-guide-illustration::before {
  inset: 20px 35px 0 15px;
}

.archive-guide-illustration::after {
  width: 92px;
  height: 70px;
  right: 8px;
  bottom: 10px;
  background: linear-gradient(145deg, #c9dcf9, #edf5ff);
  transform: rotate(8deg);
}

.archive-guide-illustration span {
  width: 84px;
  height: 52px;
  left: 40px;
  top: 0;
  box-shadow: inset 0 -10px 0 rgba(85, 139, 221, 0.18);
}

.archive-empty-state {
  display: grid;
  min-height: 650px;
  place-items: center;
  align-content: center;
  padding: 50px;
  text-align: center;
}

.archive-empty-state h2 {
  margin: 28px 0 8px;
  color: #173d73;
  font-size: 1.35rem;
}

.archive-empty-state > p {
  margin: 0;
  color: #8394aa;
}

.archive-empty-illustration {
  position: relative;
  width: 360px;
  height: 210px;
}

.empty-document {
  position: absolute;
  left: 105px;
  top: 5px;
  width: 142px;
  height: 178px;
  border-radius: 16px;
  background:
    linear-gradient(#dbe8fb 0 0) 78px 40px / 42px 9px no-repeat,
    linear-gradient(#dbe8fb 0 0) 78px 62px / 64px 9px no-repeat,
    linear-gradient(#dbe8fb 0 0) 78px 84px / 74px 9px no-repeat,
    linear-gradient(150deg, #ffffff, #eef5ff);
  box-shadow: 0 16px 28px rgba(50, 94, 151, 0.14);
}

.empty-document::before {
  content: "☺";
  position: absolute;
  left: 18px;
  top: 26px;
  display: grid;
  width: 45px;
  height: 45px;
  place-items: center;
  border-radius: 50%;
  background: #d6e8ff;
  color: #3f83df;
  font-size: 1.45rem;
}

.empty-folder {
  position: absolute;
  left: 62px;
  bottom: 5px;
  display: grid;
  width: 190px;
  height: 95px;
  place-items: center;
  border-radius: 15px 15px 24px 24px;
  background: linear-gradient(145deg, #5a9bf0, #2e68d6);
  color: #ffffff;
  font-size: 3.2rem;
  font-weight: 300;
  box-shadow: 0 18px 30px rgba(47, 105, 214, 0.23);
}

.empty-chart {
  position: absolute;
  right: 25px;
  bottom: 20px;
  width: 70px;
  height: 85px;
  border-bottom: 2px solid #dbe8fb;
  background: linear-gradient(to top, #558fe5 0 45%, transparent 45%) 4px 100% / 12px 55% no-repeat,
    linear-gradient(to top, #8fb8f0 0 62%, transparent 62%) 25px 100% / 12px 78% no-repeat,
    linear-gradient(to top, #c2d9f7 0 72%, transparent 72%) 46px 100% / 12px 100% no-repeat;
}

.archive-empty-benefits {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  width: min(720px, 100%);
  margin-top: 54px;
  text-align: left;
}

.archive-empty-benefits article {
  border: 1px solid #dfeaf7;
  border-radius: 14px;
  background: #fbfdff;
  padding: 18px;
}

.archive-empty-benefits article:nth-child(2) {
  border-color: #f2e2bd;
  background: #fffdf7;
}

.archive-empty-benefits article:nth-child(2) > b {
  background: #fff4d9;
  color: #dfa528;
}

.step-panel[data-panel="manage"] .student-profile-card {
  border-radius: 16px;
  background:
    radial-gradient(circle at 88% 12%, rgba(255,255,255,.72) 0 9%, transparent 9.5%),
    linear-gradient(145deg, #dfeeff, #f8fbff 62%);
  padding: 24px;
}

.profile-identity {
  display: flex;
  align-items: center;
  gap: 14px;
}

.profile-identity > i {
  display: grid;
  flex: 0 0 62px;
  width: 62px;
  height: 62px;
  place-items: center;
  border: 5px solid #ffffff;
  border-radius: 50%;
  background: linear-gradient(145deg, #68a7ef, #3979d5);
  color: #ffffff;
  font-size: 1.55rem;
  font-style: normal;
  font-weight: 900;
  box-shadow: 0 8px 16px rgba(54, 111, 193, 0.18);
}

.profile-identity .profile-heading strong,
.profile-identity strong {
  margin: 0 0 6px;
  font-size: 1.7rem;
}

.profile-metrics b {
  position: relative;
  display: grid;
  gap: 3px;
  min-height: 96px;
  align-content: center;
  border-radius: 12px;
  padding: 14px;
  color: #163d73;
  font-size: 1.35rem;
}

.profile-metrics b small {
  color: #68809c;
  font-size: 0.76rem;
}

.profile-metrics b i {
  position: absolute;
  right: 12px;
  bottom: 10px;
  color: #73a8eb;
  font-style: normal;
}

.profile-metrics .profile-record-count {
  grid-column: 1 / -1;
}

.profile-metrics b em {
  color: #72869e;
  font-size: 0.72rem;
  font-style: normal;
}

.profile-deltas {
  gap: 0;
  padding: 18px 22px 22px;
}

.profile-deltas > strong {
  margin-bottom: 5px;
  color: #617995;
  font-size: 0.78rem;
}

.profile-deltas > strong small {
  font-weight: 500;
}

.profile-deltas span {
  display: flex;
  justify-content: space-between;
  border: 0;
  border-bottom: 1px solid #e7eef6;
  border-radius: 0;
  background: transparent;
  padding: 10px 0;
}

.profile-deltas span b {
  color: #60758e;
}

.profile-deltas span em {
  color: #3d8f78;
  font-style: normal;
  font-weight: 900;
}

.profile-deltas span:nth-of-type(2) em {
  color: #d46859;
}

.profile-deltas span:nth-of-type(3) em {
  color: #4b8ee8;
}

.profile-deltas p {
  margin: 18px 0 0;
  border-radius: 10px;
  background: #fff8df;
  padding: 12px;
  color: #8a7441;
  font-size: 0.75rem;
  text-align: center;
}

.step-panel[data-panel="manage"] .record-list {
  padding: 22px;
}

.record-list-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.record-list-heading h3 {
  margin: 0;
  color: #173d73;
}

.record-list-heading h3 i {
  color: #4b8ee8;
  font-style: normal;
}

.record-list-heading button {
  width: auto;
  border-radius: 9px;
  background: #ffffff;
  color: #315f9d;
}

.record-timeline {
  position: relative;
  gap: 12px;
  padding-left: 28px;
}

.record-timeline::before {
  content: "";
  position: absolute;
  left: 9px;
  top: 24px;
  bottom: 24px;
  width: 2px;
  background: #d9e8fb;
}

.record-item {
  position: relative;
  grid-template-columns: 150px minmax(0, 1fr) auto;
  min-height: 92px;
  border: 1px solid #dce7f4;
  border-left: 1px solid #dce7f4;
  border-radius: 13px;
  background: #ffffff;
  padding: 16px 18px;
  box-shadow: 0 6px 18px rgba(48, 93, 151, 0.045);
}

.record-item::before {
  content: "";
  position: absolute;
  left: -27px;
  top: 38px;
  width: 10px;
  height: 10px;
  border: 4px solid #e7f1ff;
  border-radius: 50%;
  background: #72a7ee;
  box-shadow: 0 0 0 2px #ffffff;
}

.record-item.latest {
  border: 2px solid #76a5eb;
  background: linear-gradient(145deg, #f5f9ff, #ffffff);
  box-shadow: 0 8px 22px rgba(61, 116, 190, 0.08);
}

.record-date strong {
  color: #173d73;
  font-size: 1.08rem;
}

.record-date span {
  display: block;
  margin-top: 6px;
}

.record-item.latest .record-date span {
  display: inline-block;
  border-radius: 999px;
  background: #fff1cf;
  padding: 4px 9px;
  color: #d59120;
  font-weight: 800;
}

.record-metrics span {
  border-color: #dfe8f3;
  background: #f9fbfe;
  color: #6a7d94;
}

.record-actions button {
  margin-top: 0;
  border-radius: 9px;
  background: #ffffff;
  color: #3f77c2;
}

.record-actions button[data-delete] {
  border-color: #f0c9c3;
  color: #cf6255;
}

.record-list-note {
  margin: 18px 0 0;
  border-radius: 10px;
  background: #f2f7ff;
  padding: 12px 14px;
  color: #6f86a3;
  font-size: 0.78rem;
}

@media screen and (max-width: 980px) {
  .step-panel[data-panel="manage"] .management-layout {
    grid-template-columns: 1fr;
  }

  .archive-guide-card {
    min-height: auto;
  }

  .archive-guide-illustration {
    display: none;
  }

  .archive-empty-state {
    min-height: 480px;
  }
}

@media screen and (max-width: 680px) {
  .class-picker-field {
    grid-template-columns: 1fr;
  }

  .archive-empty-state {
    padding: 28px 18px;
  }

  .archive-empty-illustration {
    transform: scale(.75);
    margin-block: -28px;
  }

  .archive-empty-benefits {
    grid-template-columns: 1fr;
    margin-top: 24px;
  }

  .record-item {
    grid-template-columns: 1fr;
  }

  .record-actions {
    justify-content: flex-start;
  }
}

@media screen and (max-width: 1180px) {
  .horizontal-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .horizontal-focus-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 720px) {
  .step-panel[data-panel="manage"] .manage-class-picker {
    grid-template-columns: 1fr;
  }

  .step-panel[data-panel="manage"] .manage-class-picker button {
    width: 100%;
  }

  .student-picker-field,
  .student-class-overview {
    grid-template-columns: 1fr;
  }

  .student-picker-field button {
    width: 100%;
  }

  .student-class-dialog {
    padding: 12px;
  }

  .class-browser {
    grid-template-columns: 1fr;
  }

  .class-browser .class-overview-list,
  .class-overview-student-list {
    max-height: 280px;
  }

  .managed-roster-grid {
    grid-template-columns: 1fr;
  }

  .managed-class-roster {
    min-height: 480px;
    padding: 16px;
  }

  .student-class-dialog-card {
    padding: 24px 18px;
  }

  .student-class-option {
    grid-template-columns: 40px minmax(0, 1fr) auto;
  }

  .horizontal-report.report-page {
    padding: 16px;
  }

  .horizontal-hero {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .horizontal-identity {
    align-items: flex-start;
  }

  .horizontal-avatar {
    flex-basis: 54px;
    width: 54px;
    height: 54px;
    border-width: 4px;
    font-size: 1.25rem;
  }

  .horizontal-data-badge {
    width: 100%;
  }

  .horizontal-kpi-grid,
  .horizontal-focus-grid,
  .horizontal-advice-grid {
    grid-template-columns: 1fr;
  }

  .horizontal-stage-note {
    grid-template-columns: 1fr;
  }
}

@media print {
  .horizontal-report.report-page {
    border-radius: 0;
    background: #ffffff;
    padding: 5mm 6mm;
    box-shadow: none;
  }

  .horizontal-report .horizontal-hero {
    padding: 4mm;
    box-shadow: inset 0 0 0 0.25mm #dce7f4;
  }

  .horizontal-report .horizontal-avatar {
    flex-basis: 15mm;
    width: 15mm;
    height: 15mm;
    border-width: 1mm;
    font-size: 13pt;
  }

  .horizontal-report .horizontal-focus-tags {
    margin-top: 2mm;
  }

  .horizontal-report .horizontal-focus-tags b {
    padding: 1mm 2mm;
    font-size: 7pt;
  }

  .horizontal-report .horizontal-kpi-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 2mm;
    margin-bottom: 3mm;
  }

  .horizontal-report .horizontal-kpi-grid article {
    min-height: 21mm;
    padding: 2.5mm;
    box-shadow: none;
  }

  .horizontal-report .horizontal-kpi-grid strong {
    font-size: 12pt;
  }

  .horizontal-report .horizontal-section {
    padding: 3mm;
    box-shadow: none;
  }

  .horizontal-report .horizontal-focus-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2mm;
  }

  .horizontal-report .horizontal-focus-grid article {
    padding: 2.5mm;
  }

  .horizontal-report .horizontal-focus-grid p {
    font-size: 7.2pt;
    line-height: 1.35;
  }

  .horizontal-report .horizontal-stage-note {
    padding: 2.5mm 3mm;
  }

  .horizontal-report .horizontal-advice-grid {
    gap: 2.5mm;
  }

  .horizontal-report .horizontal-advice-grid article {
    min-height: 21mm;
    padding: 3mm;
  }
}

/* Window 4 sync: keep the four-stage rail and its vertical line, but remove
   the three redundant arrow glyphs between the stage nodes. */
.home-panel .logic-main-flow > em {
  display: none !important;
}

/* Longitudinal three-dimensional interpretation: evidence plus analysis. */
.longitudinal-status-grid .status-evidence {
  display: grid;
  grid-template-columns: 1fr;
  gap: 9px;
  margin: 4px 0 12px;
}

.longitudinal-status-grid .status-evidence-item {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  border: 1px solid #dce8f4;
  border-radius: 12px;
  background: #f8fbff;
  padding: 10px;
}

.longitudinal-status-grid .status-evidence-item > i {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: #e7f1ff;
  color: #3578cf;
  font-size: .72rem;
  font-style: normal;
  font-weight: 800;
}

.longitudinal-status-grid .status-evidence-item p {
  display: grid;
  gap: 4px;
}

.longitudinal-status-grid .status-evidence-item p strong {
  min-height: 0;
  margin: 0;
  color: #244d82;
  font-size: .88rem;
  line-height: 1.4;
}

.longitudinal-status-grid .status-evidence-item p span {
  display: block;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  color: #536b87;
  font-size: .82rem;
  line-height: 1.55;
}

.status-card-synthesis {
  margin: 12px 0;
  border-left: 4px solid #4b86dc;
  border-radius: 0 10px 10px 0;
  background: #edf5ff;
  padding: 10px 12px;
}

.status-card-synthesis h4 {
  margin: 0 0 5px !important;
}

.status-card-synthesis p {
  color: #284f7f !important;
  font-weight: 600;
  line-height: 1.6;
}

@media print {
  body.print-longitudinal-report .status-evidence-item {
    grid-template-columns: 6mm minmax(0, 1fr) !important;
    gap: 1.5mm !important;
    padding: 1.5mm !important;
    border-radius: 1.5mm !important;
  }

  body.print-longitudinal-report .status-evidence-item > i {
    width: 5.5mm !important;
    height: 5.5mm !important;
    font-size: 6pt !important;
  }

  body.print-longitudinal-report .status-evidence-item p strong,
  body.print-longitudinal-report .status-evidence-item p span,
  body.print-longitudinal-report .status-card-synthesis p {
    font-size: 6.5pt !important;
    line-height: 1.35 !important;
  }

  body.print-longitudinal-report .status-card-synthesis {
    margin: 2mm 0 !important;
    padding: 1.8mm 2mm !important;
  }
}

/* Final homepage connector placement override. */
.home-panel .landing-goal-flow li:not(:last-child)::after {
  right: -21px;
  width: 18px;
  font-size: 16px;
}

/* Longitudinal health archive visual redesign. */
.step-panel[data-panel="longitudinal"] {
  position: relative;
  border: 1px solid #dce8f6;
  border-top: 5px solid #3f87df;
  border-radius: 18px;
  background:
    radial-gradient(circle at 93% 5%, rgba(220, 235, 255, .62), transparent 14%),
    rgba(255, 255, 255, .97);
  padding: 26px;
  box-shadow: 0 18px 42px rgba(43, 87, 142, .1);
}

.step-panel[data-panel="longitudinal"] > h2 {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin: 0 0 12px;
  color: #153d73;
  font-size: 1.35rem;
}

.step-panel[data-panel="longitudinal"] > h2::after {
  content: "基于多次测评记录，生成成长趋势与阶段分析";
  color: #7a8fa9;
  font-size: .74rem;
  font-weight: 500;
}

.step-panel[data-panel="longitudinal"] > .toolbar {
  margin-bottom: 18px;
}

.step-panel[data-panel="longitudinal"] > .toolbar button {
  width: auto;
  border-radius: 9px;
  background: #ffffff;
  color: #315f9e;
}

.step-panel[data-panel="longitudinal"] .longitudinal-controls {
  grid-template-columns: minmax(240px, 1.1fr) minmax(220px, .9fr);
  gap: 16px;
  margin-bottom: 20px;
}

.step-panel[data-panel="longitudinal"] .longitudinal-controls label {
  display: grid;
  gap: 8px;
  color: #294d7b;
  font-weight: 800;
}

.step-panel[data-panel="longitudinal"] .longitudinal-controls select {
  min-height: 50px;
  border-color: #cfdef0;
  border-radius: 10px;
  background-color: #fbfdff;
  padding-inline: 14px;
}

.longitudinal-dashboard {
  gap: 18px;
}

.longitudinal-dashboard .archive-overview {
  grid-template-columns: minmax(300px, .9fr) minmax(0, 1.35fr);
  gap: 24px;
  align-items: center;
  border: 1px solid #cfe1f5;
  border-left: 0;
  border-radius: 15px;
  background: linear-gradient(120deg, #eef6ff, #ffffff 62%);
  padding: 22px;
  box-shadow: none;
}

.longitudinal-identity {
  display: flex;
  align-items: center;
  gap: 18px;
}

.longitudinal-identity > i {
  display: grid;
  flex: 0 0 94px;
  width: 94px;
  height: 94px;
  place-items: center;
  border: 7px solid #ffffff;
  border-radius: 50%;
  background: linear-gradient(145deg, #75b4f4, #3678d5);
  color: #ffffff;
  font-size: 2rem;
  font-style: normal;
  font-weight: 900;
  box-shadow: 0 10px 22px rgba(48, 110, 194, .2);
}

.longitudinal-identity span {
  color: #607b9c;
  font-size: .78rem;
}

.longitudinal-identity strong {
  margin: 5px 0 8px;
  color: #163e74;
  font-size: 1.9rem;
}

.longitudinal-identity em {
  color: #607791;
  line-height: 1.55;
}

.longitudinal-dashboard .archive-meta-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.longitudinal-dashboard .archive-meta-grid b {
  display: grid;
  min-height: 118px;
  place-items: center;
  align-content: center;
  gap: 4px;
  border: 1px solid #d8e6f5;
  border-radius: 14px;
  background: rgba(255,255,255,.92);
  padding: 14px 10px;
  color: #163f76;
  font-size: 1.55rem;
  text-align: center;
  box-shadow: 0 7px 18px rgba(53, 98, 157, .055);
}

.longitudinal-dashboard .archive-meta-grid b:last-child {
  border-color: #a9cafa;
  background: linear-gradient(145deg, #f7fbff, #ffffff);
  color: #2f7edc;
  font-size: 1.08rem;
}

.longitudinal-dashboard .archive-meta-grid b > i {
  color: #4b91e8;
  font-size: 1.5rem;
  font-style: normal;
}

.longitudinal-dashboard .archive-meta-grid small {
  color: #6d829b;
  font-size: .72rem;
  font-weight: 600;
}

.longitudinal-dashboard .archive-quality-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.longitudinal-dashboard .archive-quality-grid article {
  position: relative;
  min-height: 130px;
  border: 1px solid #d8e7f5;
  border-top: 0;
  border-radius: 14px;
  background: linear-gradient(145deg, #f4fffb, #ffffff 58%);
  padding: 20px 20px 18px 74px;
  box-shadow: 0 7px 18px rgba(43, 88, 145, .05);
}

.longitudinal-dashboard .archive-quality-grid article::before {
  content: "✓";
  position: absolute;
  left: 18px;
  top: 22px;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 6px solid #d7f5e9;
  border-radius: 50%;
  background: #42bd8f;
  color: #ffffff;
  font-size: 1.1rem;
  font-weight: 900;
  box-shadow: 0 6px 13px rgba(50, 175, 131, .18);
}

.longitudinal-dashboard .archive-quality-grid article:nth-child(2) {
  background: linear-gradient(145deg, #fffaf0, #ffffff 58%);
}

.longitudinal-dashboard .archive-quality-grid article:nth-child(2)::before {
  content: "⌛";
  border-color: #ffedc6;
  background: #f3b63f;
}

.longitudinal-dashboard .archive-quality-grid article:nth-child(3) {
  background: linear-gradient(145deg, #f4f9ff, #ffffff 58%);
}

.longitudinal-dashboard .archive-quality-grid article:nth-child(3)::before {
  content: "◇";
  border-color: #d8eaff;
  background: #4e94e8;
}

.longitudinal-dashboard .archive-quality-grid span {
  color: #5d7692;
  font-weight: 800;
}

.longitudinal-dashboard .archive-quality-grid strong {
  display: block;
  margin: 4px 0 7px;
  color: #173f75;
  font-size: 1.3rem;
}

.longitudinal-dashboard .archive-quality-grid p {
  margin: 0;
  color: #60758f;
  line-height: 1.5;
}

.longitudinal-section-title {
  margin: 2px 0 -4px;
  padding-left: 10px;
  border-left: 4px solid #3f87df;
  color: #173f75;
  font-size: 1.08rem;
}

.longitudinal-dashboard .longitudinal-status-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.longitudinal-dashboard .longitudinal-status-grid article {
  min-width: 0;
  min-height: 310px;
  border: 1px solid #d6eadf;
  border-top: 4px solid #45b989;
  border-radius: 14px;
  background: linear-gradient(160deg, #f5fffb, #ffffff 36%);
  padding: 18px;
  box-shadow: 0 7px 18px rgba(43, 88, 145, .05);
}

.longitudinal-dashboard .longitudinal-status-grid article:nth-child(2) {
  border-color: #f0dfbd;
  border-top-color: #efa937;
  background: linear-gradient(160deg, #fffaf0, #ffffff 36%);
}

.longitudinal-dashboard .longitudinal-status-grid article:nth-child(3) {
  border-color: #d7e7fb;
  border-top-color: #438bea;
  background: linear-gradient(160deg, #f4f9ff, #ffffff 36%);
}

.longitudinal-dashboard .longitudinal-status-grid article:nth-child(4) {
  border-color: #e2d9f7;
  border-top-color: #8b62dc;
  background: linear-gradient(160deg, #faf7ff, #ffffff 36%);
}

.longitudinal-dashboard .longitudinal-status-grid span {
  color: #6b8098;
  font-weight: 800;
}

.longitudinal-dashboard .longitudinal-status-grid strong {
  display: block;
  margin: 7px 0;
  color: #163e74;
  font-size: 1.12rem;
  line-height: 1.35;
  max-width: 100%;
  white-space: normal;
  word-break: normal;
  overflow-wrap: anywhere;
}

.longitudinal-dashboard .status-evidence {
  gap: 5px;
  margin: 9px 0 12px;
}

.longitudinal-dashboard .status-evidence span {
  border-radius: 999px;
  background: #eef5ff;
  padding: 4px 7px;
  color: #56759a;
  font-size: .69rem;
}

.longitudinal-dashboard .longitudinal-status-grid p {
  color: #4e647d;
  font-size: .78rem;
  line-height: 1.55;
}

.longitudinal-dashboard .longitudinal-status-grid h4 {
  margin: 14px 0 7px;
  padding-top: 11px;
  border-top: 1px dashed #d8e6f2;
  color: #244f83;
  font-size: .8rem;
}

.longitudinal-dashboard .status-card-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.longitudinal-dashboard .status-card-heading > i {
  display: grid;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 11px;
  background: #45b989;
  color: #fff;
  font-size: 1.15rem;
  font-style: normal;
  box-shadow: 0 7px 15px rgba(48, 139, 107, .18);
}

.longitudinal-dashboard .status-professional-card:nth-child(2) .status-card-heading > i {
  background: #efa937;
  box-shadow: 0 7px 15px rgba(190, 126, 25, .17);
}

.longitudinal-dashboard .status-professional-card:nth-child(3) .status-card-heading > i {
  background: #438bea;
  box-shadow: 0 7px 15px rgba(49, 112, 198, .18);
}

.longitudinal-dashboard .status-card-heading div {
  min-width: 0;
}

.longitudinal-dashboard .status-card-heading span {
  color: #244f83;
  font-size: 1rem;
}

.longitudinal-dashboard .status-card-heading small {
  display: block;
  margin-top: 2px;
  color: #8294a9;
  font-size: .68rem;
  line-height: 1.3;
}

.longitudinal-dashboard .status-card-knowledge {
  margin-top: 12px;
  padding: 11px 12px;
  border-radius: 10px;
  background: rgba(235, 246, 255, .72);
}

.longitudinal-dashboard .status-card-knowledge h4 {
  margin: 0 0 5px;
  padding: 0;
  border: 0;
}

.longitudinal-dashboard .status-card-scope {
  margin-top: 9px !important;
  padding-top: 8px;
  border-top: 1px dashed #d8e6f2;
  color: #77879a !important;
  font-size: .68rem !important;
  line-height: 1.45 !important;
}

.longitudinal-dashboard .status-action-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: action-priority;
}

.longitudinal-dashboard .status-action-list li {
  position: relative;
  padding-left: 26px;
  color: #4e647d;
  font-size: .78rem;
  line-height: 1.5;
  counter-increment: action-priority;
}

.longitudinal-dashboard .status-action-list li::before {
  content: counter(action-priority);
  position: absolute;
  left: 0;
  top: 1px;
  display: grid;
  width: 19px;
  height: 19px;
  place-items: center;
  border-radius: 50%;
  background: #eee8ff;
  color: #7454c7;
  font-size: .66rem;
  font-weight: 900;
}

.longitudinal-dashboard .longitudinal-summary-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.longitudinal-dashboard .longitudinal-summary-grid article {
  position: relative;
  min-height: 108px;
  border: 1px solid #cfe8dd;
  border-top: 0;
  border-radius: 13px;
  background: #f7fffb;
  padding: 17px 18px 17px 66px;
  box-shadow: none;
}

.longitudinal-dashboard .longitudinal-summary-grid article::before {
  content: "↗";
  position: absolute;
  left: 18px;
  top: 22px;
  color: #38a57b;
  font-size: 2rem;
  font-weight: 900;
}

.longitudinal-dashboard .longitudinal-summary-grid article:nth-child(2) {
  border-color: #f0d89c;
  background: #fffbf2;
}

.longitudinal-dashboard .longitudinal-summary-grid article:nth-child(2)::before {
  content: "◎";
  color: #e9a42d;
}

.longitudinal-dashboard .longitudinal-summary-grid article:nth-child(3) {
  border-color: #cfe0f7;
  background: #f7faff;
}

.longitudinal-dashboard .longitudinal-summary-grid article:nth-child(3)::before {
  content: "⚑";
  color: #438be5;
}

.longitudinal-dashboard .longitudinal-summary-grid h3 {
  margin-bottom: 6px;
}

.longitudinal-dashboard .longitudinal-summary-grid p {
  color: #5b708a;
  font-size: .76rem;
  line-height: 1.5;
}

.longitudinal-dashboard .longitudinal-chart-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.longitudinal-dashboard .longitudinal-chart-grid > article {
  min-width: 0;
  border: 1px solid #d8e5f3;
  border-top: 4px solid #3f87df;
  border-radius: 13px;
  padding: 14px;
  box-shadow: 0 7px 18px rgba(43, 88, 145, .045);
}

.longitudinal-dashboard .longitudinal-chart-grid > article:nth-child(even) {
  border-top-color: #eeb441;
}

.longitudinal-dashboard .trend-card-head h3,
.longitudinal-dashboard .longitudinal-chart-grid > article > h3 {
  font-size: .9rem;
}

.longitudinal-dashboard .trend-card-head strong {
  font-size: .9rem;
}

.longitudinal-dashboard .trend-card-meta {
  gap: 5px;
}

.longitudinal-dashboard .trend-card-meta span {
  padding: 3px 6px;
  font-size: .62rem;
}

.longitudinal-dashboard .longitudinal-sparkline {
  height: 112px;
}

.longitudinal-dashboard .longitudinal-chart-grid p {
  color: #61758d;
  font-size: .68rem;
  line-height: 1.4;
}

.longitudinal-dashboard .longitudinal-radar-list {
  grid-template-columns: 1fr;
  gap: 5px;
}

.longitudinal-dashboard .longitudinal-radar-list div {
  grid-template-columns: minmax(62px, 1fr) auto auto;
  padding: 5px 8px;
  font-size: .7rem;
}

.longitudinal-dashboard .archive-timeline {
  position: relative;
  border: 1px solid #d7e6f6;
  border-top: 4px solid #3f87df;
  border-radius: 13px;
  padding: 18px 18px 18px 54px;
  box-shadow: none;
}

.longitudinal-dashboard .archive-timeline::before {
  content: "";
  position: absolute;
  left: 25px;
  top: 56px;
  bottom: 30px;
  width: 3px;
  background: #bcd8fa;
}

.longitudinal-dashboard .archive-node {
  position: relative;
  grid-template-columns: 120px 100px minmax(0, 1fr);
  min-height: 50px;
  align-items: center;
  border: 1px solid #dfe9f5;
  border-radius: 10px;
  background: #fbfdff;
  padding: 10px 14px;
}

.longitudinal-dashboard .archive-node::before {
  content: "";
  position: absolute;
  left: -39px;
  width: 12px;
  height: 12px;
  border: 5px solid #e4f0ff;
  border-radius: 50%;
  background: #438bea;
}

.longitudinal-dashboard .archive-node span {
  width: fit-content;
  border-radius: 999px;
  background: #eaf3ff;
  padding: 4px 9px;
  color: #3e78c8;
  font-weight: 800;
}

.longitudinal-dashboard .archive-node p {
  margin: 0;
  color: #60758e;
}

@media screen and (max-width: 1180px) {
  .longitudinal-dashboard .archive-overview {
    grid-template-columns: 1fr;
  }

  .longitudinal-dashboard .longitudinal-chart-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .longitudinal-dashboard .longitudinal-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 760px) {
  .step-panel[data-panel="longitudinal"] {
    padding: 16px;
  }

  .step-panel[data-panel="longitudinal"] > h2 {
    display: block;
  }

  .step-panel[data-panel="longitudinal"] > h2::after {
    display: block;
    margin-top: 6px;
  }

  .step-panel[data-panel="longitudinal"] .longitudinal-controls,
  .longitudinal-dashboard .archive-meta-grid,
  .longitudinal-dashboard .archive-quality-grid,
  .longitudinal-dashboard .longitudinal-status-grid,
  .longitudinal-dashboard .longitudinal-summary-grid,
  .longitudinal-dashboard .longitudinal-chart-grid {
    grid-template-columns: 1fr;
  }

  .longitudinal-dashboard .archive-node {
    grid-template-columns: 1fr;
  }
}

/* Keep archive workspace overrides after legacy management rules. */
.step-panel[data-panel="manage"] .management-layout {
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 20px;
}

.step-panel[data-panel="manage"] .student-summary,
.step-panel[data-panel="manage"] .record-list {
  border-radius: 16px;
}

.step-panel[data-panel="manage"] .student-profile-card {
  padding: 24px;
}

.step-panel[data-panel="manage"] .profile-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.step-panel[data-panel="manage"] .profile-metrics b {
  display: grid;
  min-height: 96px;
  border-radius: 12px;
  padding: 14px;
}

.step-panel[data-panel="manage"] .profile-deltas {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 18px 22px 22px;
}

.step-panel[data-panel="manage"] .profile-deltas span {
  display: flex;
  justify-content: space-between;
  border: 0;
  border-bottom: 1px solid #e7eef6;
  border-radius: 0;
  background: transparent;
  padding: 10px 0;
}

.step-panel[data-panel="manage"] .record-list {
  padding: 22px;
}

.step-panel[data-panel="manage"] .record-timeline {
  display: grid;
  gap: 12px;
  padding-left: 28px;
}

.step-panel[data-panel="manage"] .record-item {
  grid-template-columns: 150px minmax(0, 1fr) auto;
  min-height: 92px;
  border: 1px solid #dce7f4;
  border-radius: 13px;
  padding: 16px 18px;
  background: #ffffff;
}

.step-panel[data-panel="manage"] .record-item.latest {
  border: 2px solid #76a5eb;
  background: linear-gradient(145deg, #f5f9ff, #ffffff);
}

.step-panel[data-panel="manage"] .record-actions button {
  margin-top: 0;
}

@media screen and (max-width: 980px) {
  .step-panel[data-panel="manage"] .management-layout {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 680px) {
  .step-panel[data-panel="manage"] .record-item {
    grid-template-columns: 1fr;
  }
}

.home-welcome,
.home-feature-grid article,
.home-stats article,
.home-quick-actions {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
}

.home-welcome {
  padding: 24px 26px;
  border-top: 5px solid var(--accent);
}

.home-welcome span {
  display: block;
  margin-bottom: 8px;
  color: var(--accent);
  font-weight: 700;
}

.home-welcome strong {
  display: block;
  color: var(--accent-deep);
  font-size: 30px;
  line-height: 1.25;
}

.home-welcome p {
  max-width: 720px;
  margin: 12px 0 0;
  color: var(--muted);
}

.home-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.home-stats article {
  padding: 18px;
  min-height: 100px;
}

.home-stats b {
  display: block;
  color: var(--accent);
  font-size: 28px;
  line-height: 1.2;
}

.home-stats span {
  color: var(--muted);
}

.home-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 16px;
}

.home-feature-grid article {
  padding: 20px;
  border-top: 5px solid var(--accent);
}

.home-feature-grid article:nth-child(2) {
  border-top-color: var(--gold);
}

.home-feature-grid span {
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: var(--accent);
  background: var(--accent-soft);
  font-weight: 700;
}

.home-feature-grid b {
  display: block;
  margin-top: 12px;
  color: var(--accent-deep);
  font-size: 22px;
}

.home-feature-grid p {
  min-height: 82px;
  margin: 8px 0 16px;
  color: var(--muted);
}

.home-feature-grid button,
.home-quick-actions button {
  width: auto;
  text-align: center;
}

.home-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 16px;
  margin-bottom: 22px;
}

.home-quick-actions button:first-child {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
}

@media (max-width: 980px) {
  .home-overview,
  .home-feature-grid {
    grid-template-columns: 1fr;
  }
}


.entry-panel {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.entry-workbench {
  display: grid;
  grid-template-columns: minmax(0, 820px) minmax(330px, 390px);
  gap: 22px;
  align-items: start;
}

.entry-form-stack {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.entry-card,
.feedback-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 6px 20px rgba(37, 78, 120, 0.08);
}

.entry-card {
  padding: 18px 20px 20px;
}

.entry-card-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e6eef8;
}

.entry-card-head span {
  display: inline-flex;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent-deep);
  font-weight: 700;
}

.entry-card-head h3 {
  display: inline-block;
  margin: 0 0 0 8px;
  color: var(--accent-deep);
  font-size: 22px;
  vertical-align: middle;
}

.entry-card-head p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 16px;
}

.entry-status {
  flex: 0 0 auto;
  padding: 7px 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fbff;
  color: var(--muted);
  font-size: 16px;
  font-weight: 700;
}

.entry-status.done {
  border-color: #b7dbc9;
  background: #edf8f2;
  color: #276749;
}

.entry-status.partial {
  border-color: #f3d37b;
  background: #fff8dd;
  color: #8a5a0a;
}

.entry-status.blocked {
  border-color: #f4b4ac;
  background: #fff2f0;
  color: var(--danger);
}

.compact-fields {
  align-items: end;
}

label small {
  color: var(--danger);
  font-size: 15px;
  font-weight: 700;
}

.basic-info-gate {
  margin: 0;
  padding: 13px 15px;
  border: 1px solid #f3d37b;
  border-radius: 10px;
  background: #fff9e8;
  color: #7c5a12;
}

.entry-feedback {
  position: sticky;
  top: 148px;
  display: grid;
  gap: 14px;
}

.feedback-card {
  padding: 16px;
}

.feedback-card h3 {
  margin: 0 0 10px;
  color: var(--accent-deep);
  font-size: 19px;
}

.feedback-card p {
  margin: 0;
  color: #475467;
  font-size: 17px;
}

.feedback-profile span {
  color: var(--muted);
  font-size: 16px;
}

.feedback-profile strong {
  display: block;
  margin: 5px 0;
  color: var(--accent-deep);
  font-size: 29px;
}

.completion-meter {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #e7eef7;
}

.completion-meter i {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), #67a4e8);
  transition: width 0.18s ease;
}

.module-state-list,
.computed-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.module-state-list span,
.computed-list span {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbff;
  color: var(--muted);
  font-size: 16px;
}

.module-state-list b,
.computed-list b {
  color: var(--accent-deep);
}

.entry-action-bar {
  position: sticky;
  bottom: 0;
  z-index: 12;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-top: 18px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 -6px 20px rgba(37, 78, 120, 0.08);
}

.entry-action-bar strong,
.entry-action-bar span {
  display: block;
}

.entry-action-bar strong {
  font-size: 19px;
}

.entry-action-bar span {
  color: var(--muted);
  font-size: 16px;
}

.entry-action-buttons {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.entry-action-buttons button {
  width: auto;
  min-width: 124px;
  padding: 11px 16px;
  font-size: 17px;
  text-align: center;
}

.entry-action-buttons button:last-child {
  border-color: var(--accent);
  background: var(--accent);
  color: #ffffff;
  font-weight: 700;
}

.records {
  display: block;
  align-self: start;
}

.grid {
  display: grid;
  gap: 14px;
}

.grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

label {
  display: grid;
  gap: 6px;
  color: #344054;
  font-size: 17px;
  font-weight: 600;
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid #cbd5df;
  border-radius: 8px;
  padding: 11px 12px;
  font: inherit;
  color: #27364a;
  background: #ffffff;
}

input::placeholder,
textarea::placeholder {
  color: #a8b4c4;
  font-weight: 400;
  opacity: 1;
}

textarea {
  resize: vertical;
}

.wide {
  margin-top: 14px;
}

.check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.check-grid label,
.wide {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-weight: 500;
}

.check-grid input,
.wide input {
  width: auto;
}

.hint {
  color: var(--muted);
  font-size: 16px;
  margin: 14px 0 0;
}

.warning-box {
  margin-top: 16px;
  padding: 12px;
  border-left: 4px solid var(--warn);
  background: #fff7ed;
  color: #7c2d12;
}

.toolbar {
  display: flex;
  gap: 10px;
  margin-bottom: 14px;
}

.toolbar button {
  width: auto;
}

.result-cards {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.readiness-card {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.42fr);
  gap: 16px;
  border: 1px solid var(--line);
  border-left: 7px solid var(--green);
  border-radius: 8px;
  background: #ffffff;
  padding: 15px 16px;
  box-shadow: 0 8px 20px rgba(32, 76, 132, 0.08);
}

.readiness-card.risk-yellow {
  border-left-color: var(--gold);
  background: linear-gradient(90deg, #ffffff 0%, #ffffff 70%, #fff9df 100%);
}

.readiness-card.risk-red {
  border-left-color: var(--danger);
  background: linear-gradient(90deg, #ffffff 0%, #ffffff 70%, #fff2f0 100%);
}

.readiness-card.risk-gray {
  border-left-color: #98a2b3;
}

.readiness-card span {
  display: block;
  color: var(--muted);
  margin-bottom: 4px;
}

.readiness-card strong {
  display: block;
  color: var(--accent-deep);
  font-size: 1.2425rem;
  margin-bottom: 7px;
}

.readiness-card p {
  margin: 0 0 5px;
  color: #344054;
}

.readiness-card dl {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 6px 10px;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(248, 251, 255, 0.86);
  padding: 10px 12px;
}

.readiness-card dt {
  color: var(--muted);
}

.readiness-card dd {
  margin: 0;
  color: var(--accent-deep);
  font-weight: 700;
}

.result-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px;
  background: #f8fafc;
}

.result-card strong {
  display: block;
  font-size: 21px;
}

.report-paper {
  background: #ffffff;
  border: 1px solid var(--line);
  padding: 26px;
  min-height: 720px;
}

.report-page {
  width: 100%;
  min-height: auto;
  margin: 0 0 18px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.report-page h3 {
  margin-top: 20px;
}

.report-title {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--accent);
}

.horizontal-report {
  display: grid;
  gap: 18px;
}

.horizontal-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--accent);
}

.horizontal-hero span,
.horizontal-summary-grid span,
.horizontal-status-grid span {
  display: block;
  color: var(--muted);
}

.horizontal-hero h1 {
  margin: 6px 0;
  color: var(--accent-deep);
}

.horizontal-hero p {
  margin: 0;
  color: #475467;
}

.horizontal-data-badge {
  min-width: 96px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbff;
  padding: 14px 16px;
  text-align: center;
}

.horizontal-data-badge strong {
  display: block;
  color: var(--accent);
  font-size: 1.8625rem;
  line-height: 1.1;
}

.horizontal-status-grid,
.horizontal-summary-grid,
.metric-strip,
.ability-cluster-grid {
  display: grid;
  gap: 12px;
}

.horizontal-status-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.horizontal-status-grid article,
.horizontal-summary-grid article,
.joint-judgement,
.ability-cluster-grid article {
  border: 1px solid var(--line);
  border-top: 4px solid var(--accent);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px 16px;
  box-shadow: 0 8px 18px rgba(32, 76, 132, 0.05);
}

.horizontal-status-grid article:nth-child(even),
.horizontal-summary-grid article:nth-child(2),
.ability-cluster-grid article:nth-child(2) {
  border-top-color: var(--gold);
}

.horizontal-status-grid strong {
  display: block;
  margin: 5px 0 7px;
  color: var(--accent-deep);
  font-size: 1.1825rem;
  word-break: keep-all;
}

.horizontal-status-grid p,
.horizontal-summary-grid p,
.joint-judgement p,
.ability-cluster-grid p {
  margin: 0;
  color: #344054;
}

.horizontal-summary-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.horizontal-summary-grid article {
  border-top-width: 3px;
}

.horizontal-summary-grid span {
  margin-bottom: 6px;
  font-weight: 700;
}

.horizontal-action-line {
  margin: 0;
  border-radius: 8px;
  background: var(--accent-soft);
  padding: 14px 16px;
  color: var(--accent-deep);
  font-weight: 700;
}

.horizontal-section {
  display: grid;
  gap: 12px;
  padding-top: 4px;
}

.horizontal-section h3 {
  margin: 4px 0 0;
  color: var(--accent-deep);
}

.metric-strip {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.metric-strip span {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbff;
  padding: 12px;
  color: var(--muted);
}

.metric-strip b {
  display: block;
  color: var(--accent-deep);
  font-size: 1.3125rem;
  margin-bottom: 4px;
}

.joint-judgement strong {
  display: block;
  margin-bottom: 8px;
  color: var(--accent-deep);
  font-size: 1.1625rem;
}

.joint-judgement p + p {
  margin-top: 6px;
}

.ability-cluster-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ability-cluster-grid h4 {
  margin: 0 0 8px;
  color: var(--accent-deep);
}

.ability-cluster-grid p + .reference-line {
  margin-top: 6px;
}

.horizontal-report {
  --report-blue: #2f73df;
  --report-deep: #123b78;
  --report-soft: #edf6ff;
  --report-mint: #e9f8f4;
  --report-gold-soft: #fff7df;
  gap: 22px;
}

.horizontal-report.report-page {
  border: 0;
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(235, 246, 255, 0.88), rgba(255, 255, 255, 0.98) 34%),
    #ffffff;
  padding: 28px;
  box-shadow: 0 18px 50px rgba(39, 93, 158, 0.12);
}

.horizontal-hero {
  border-bottom: 0;
  border-radius: 18px;
  background: linear-gradient(115deg, #ffffff 0%, #f3f8ff 68%, #edf5ff 100%);
  padding: 24px;
  box-shadow: inset 0 0 0 1px rgba(130, 166, 210, 0.2);
}

.horizontal-identity {
  display: flex;
  align-items: center;
  gap: 18px;
}

.horizontal-avatar {
  display: grid;
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  place-items: center;
  border: 6px solid #e4f0ff;
  border-radius: 50%;
  background: linear-gradient(145deg, #65a8f3, #2f73df);
  color: #ffffff;
  font-size: 1.75rem;
  font-weight: 900;
  box-shadow: 0 8px 18px rgba(47, 115, 223, 0.2);
}

.horizontal-identity h1 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.horizontal-identity h1 small {
  border-radius: 999px;
  background: linear-gradient(135deg, #4c92ee, #2f73df);
  padding: 5px 10px;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 800;
}

.horizontal-focus-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}

.horizontal-focus-tags b {
  border-radius: 999px;
  background: #eaf3ff;
  padding: 5px 10px;
  color: var(--report-deep);
  font-size: 0.78rem;
}

.horizontal-data-badge {
  border: 0;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(43, 91, 151, 0.1);
}

.horizontal-data-badge small {
  display: block;
  margin-top: 6px;
  color: #7890ad;
  font-size: 0.7rem;
}

.health-snapshot-card {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 14px;
  align-items: stretch;
  border: 1px solid #dce8f7;
  border-radius: 18px;
  background: #ffffff;
  padding: 16px;
  box-shadow: 0 10px 26px rgba(37, 87, 148, 0.06);
}

.snapshot-title {
  display: grid;
  align-content: center;
  gap: 4px;
  border-right: 1px solid #e2ebf6;
  padding-right: 14px;
}

.snapshot-title span,
.status-legend span {
  color: #6c82a0;
  font-size: 0.78rem;
  font-weight: 800;
}

.snapshot-title strong {
  color: var(--report-deep);
  font-size: 1.32rem;
}

.snapshot-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.snapshot-grid article {
  display: grid;
  gap: 7px;
  border-radius: 14px;
  background: #f7fbff;
  padding: 12px;
}

.snapshot-grid small {
  color: #7087a5;
  font-weight: 800;
}

.snapshot-grid b {
  color: var(--report-deep);
  font-size: 1.02rem;
}

.status-legend {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.advantage {
  --state: #2f9f83;
  --state-bg: #eaf8f3;
}

.basic {
  --state: #467edb;
  --state-bg: #eef5ff;
}

.improve {
  --state: #d98725;
  --state-bg: #fff4e5;
}

.risk {
  --state: #c94d43;
  --state-bg: #fff0ee;
}

.snapshot-grid article,
.status-legend span,
.ability-chip-grid article,
.priority-focus-panel article,
.health-dial,
.horizontal-parent-view-grid article {
  border-color: color-mix(in srgb, var(--state, #467edb) 34%, #dce8f7);
  background: linear-gradient(145deg, var(--state-bg, #f7fbff), #ffffff 64%);
}

.status-legend span {
  border: 1px solid color-mix(in srgb, var(--state, #467edb) 30%, #dce8f7);
  border-radius: 999px;
  padding: 4px 8px;
  color: var(--state, #467edb);
}

.horizontal-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}

.horizontal-kpi-grid article {
  display: grid;
  min-height: 112px;
  align-content: space-between;
  border: 1px solid #dfe9f6;
  border-radius: 14px;
  background: #ffffff;
  padding: 15px;
  box-shadow: 0 8px 22px rgba(37, 87, 148, 0.06);
}

.horizontal-kpi-grid span {
  color: #637a98;
  font-weight: 700;
}

.horizontal-kpi-grid strong {
  color: var(--report-deep);
  font-size: 1.65rem;
  line-height: 1.1;
}

.horizontal-kpi-grid strong small {
  font-size: 0.75rem;
  font-weight: 700;
}

.horizontal-kpi-grid em,
.horizontal-focus-grid em {
  width: fit-content;
  border-radius: 999px;
  background: #edf3fb;
  padding: 4px 8px;
  color: #55708f;
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 800;
}

.horizontal-kpi-grid em.positive,
.horizontal-focus-grid .positive em {
  background: var(--report-mint);
  color: #168675;
}

.horizontal-kpi-grid em.attention,
.horizontal-focus-grid .attention em {
  background: #fff0e8;
  color: #d26831;
}

.horizontal-overall-card {
  background: linear-gradient(145deg, #fffaf0, #ffffff) !important;
}

.horizontal-section {
  border: 1px solid rgba(124, 159, 204, 0.2);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  padding: 20px;
  box-shadow: 0 10px 28px rgba(38, 82, 137, 0.06);
}

.horizontal-report .body-gauge-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.horizontal-section-title {
  display: flex;
  align-items: center;
  gap: 9px;
}

.horizontal-section-title > span {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 8px;
  background: var(--report-soft);
  color: var(--report-blue);
  font-weight: 900;
}

.horizontal-section-title h3 {
  margin: 0;
}

.horizontal-section-title small {
  color: #7b8fa8;
}

.horizontal-section-title.compact {
  margin-top: 6px;
}

.ability-portrait {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 14px;
  margin-top: 14px;
}

.ability-portrait-head {
  display: grid;
  align-content: center;
  border-radius: 15px;
  background: linear-gradient(145deg, #edf7ff, #ffffff);
  padding: 16px;
}

.ability-portrait-head span {
  color: #607895;
  font-size: 0.8rem;
  font-weight: 800;
}

.ability-portrait-head strong {
  color: var(--report-deep);
  font-size: 1.35rem;
}

.ability-chip-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.ability-chip-grid article {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 9px;
  align-items: center;
  border: 1px solid #dfe8f5;
  border-radius: 14px;
  padding: 11px;
}

.ability-chip-grid i,
.priority-focus-panel i,
.action-advice-panel i {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 11px;
  background: var(--state, #467edb);
  color: #ffffff;
  font-style: normal;
  font-weight: 900;
}

.ability-chip-grid b,
.priority-focus-panel b {
  display: block;
  color: var(--report-deep);
}

.ability-chip-grid span {
  color: var(--state, #467edb);
  font-size: 0.78rem;
  font-weight: 900;
}

.ability-chip-grid small {
  display: block;
  margin-top: 3px;
  color: #7087a5;
  font-size: 0.72rem;
  line-height: 1.35;
}

.ability-portrait.compact {
  align-self: stretch;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 0;
  border-radius: 14px;
  background: linear-gradient(145deg, #f7fbff, #ffffff);
  padding: 14px;
}

.ability-portrait.compact .ability-portrait-head {
  min-height: auto;
  border-radius: 12px;
  padding: 10px 12px;
}

.ability-portrait.compact .ability-portrait-head strong {
  font-size: 1.05rem;
}

.ability-portrait.compact .ability-chip-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.ability-portrait.compact .ability-chip-grid article {
  grid-template-columns: 30px 1fr;
  padding: 9px;
}

.ability-portrait.compact .ability-chip-grid i {
  width: 30px;
  height: 30px;
  border-radius: 9px;
}

.ability-portrait.compact .ability-chip-grid small {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.horizontal-focus-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.horizontal-focus-grid article {
  border: 1px solid #dfe8f5;
  border-top: 3px solid #6da4eb;
  border-radius: 14px;
  background: #ffffff;
  padding: 14px;
}

.horizontal-focus-grid article.attention {
  border-top-color: #f2a64b;
}

.horizontal-focus-grid article.positive {
  border-top-color: #46b9a5;
}

.horizontal-focus-grid article > div {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.horizontal-focus-grid i {
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  background: #eaf3ff;
  color: var(--report-blue);
  font-style: normal;
  font-weight: 900;
}

.horizontal-focus-grid h4 {
  flex: 1;
  margin: 0;
  color: var(--report-deep);
}

.horizontal-focus-grid p {
  margin: 6px 0 0;
  color: #52677f;
  font-size: 0.82rem;
  line-height: 1.5;
}

.horizontal-focus-grid p b {
  color: var(--report-deep);
}

.priority-focus-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.95fr);
  gap: 16px;
  align-items: stretch;
  margin-top: 12px;
}

.priority-list,
.strength-list {
  display: grid;
  gap: 10px;
}

.strength-list {
  align-content: start;
}

.priority-list h4,
.strength-list h4 {
  margin: 0;
  color: var(--report-deep);
}

.priority-focus-panel article {
  display: grid;
  grid-template-columns: 72px 36px minmax(0, 1fr) minmax(122px, auto);
  gap: 10px;
  align-items: center;
  border: 1px solid #dfe8f5;
  border-radius: 14px;
  padding: 12px;
}

.priority-list article {
  min-height: 76px;
}

.strength-list article {
  grid-template-columns: 42px 1fr auto;
  min-height: 76px;
  align-content: center;
  padding: 16px;
}

.strength-list article::after {
  content: "优势保持";
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  padding: 5px 9px;
  color: var(--state, #2f9f83);
  font-size: 0.76rem;
  font-weight: 900;
}

.priority-focus-panel article > span,
.priority-focus-panel em {
  color: var(--state, #467edb);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 900;
}

.priority-focus-panel em {
  text-align: right;
  white-space: nowrap;
}

.priority-focus-panel small {
  display: block;
  margin-top: 3px;
  color: #7087a5;
  font-size: 0.78rem;
}

.strength-list p {
  margin: 0;
  border-radius: 12px;
  background: #f7fbff;
  padding: 12px;
  color: #637a98;
}

.horizontal-stage-note {
  display: grid;
  grid-template-columns: minmax(190px, 0.55fr) minmax(0, 1.45fr);
  gap: 16px;
  align-items: center;
  border-radius: 13px;
  background: #f7fbff;
  padding: 14px 16px;
}

.horizontal-stage-note strong {
  color: var(--report-deep);
}

.horizontal-stage-note p {
  margin: 0;
  color: #516981;
}

.horizontal-parent-view-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.horizontal-parent-view-grid article {
  overflow: hidden;
  border: 1px solid #dce8f7;
  border-radius: 15px;
  background: linear-gradient(155deg, #f2f8ff, #ffffff 48%);
  padding: 16px;
}

.horizontal-parent-view-grid article.movement {
  border-color: #d7ece8;
  background: linear-gradient(155deg, #edf9f6, #ffffff 48%);
}

.horizontal-parent-view-grid article.exam {
  border-color: #f1dfb4;
  background: linear-gradient(155deg, #fff8e8, #ffffff 48%);
}

.horizontal-parent-view-grid header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.horizontal-parent-view-grid header i {
  display: grid;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 11px;
  background: linear-gradient(145deg, #69a9f2, #2f73df);
  color: #ffffff;
  font-size: 1.2rem;
  font-style: normal;
  font-weight: 900;
  box-shadow: 0 7px 14px rgba(47, 115, 223, 0.18);
}

.horizontal-parent-view-grid .movement header i {
  background: linear-gradient(145deg, #62c7b4, #279783);
  box-shadow: 0 7px 14px rgba(39, 151, 131, 0.18);
}

.horizontal-parent-view-grid .exam header i {
  background: linear-gradient(145deg, #f2c458, #d99926);
  box-shadow: 0 7px 14px rgba(217, 153, 38, 0.18);
}

.horizontal-parent-view-grid h4 {
  margin: 0;
  color: var(--report-deep);
  font-size: 1.02rem;
}

.horizontal-parent-view-grid header span {
  display: block;
  margin-top: 2px;
  color: #7b8fa8;
  font-size: 0.74rem;
}

.horizontal-parent-view-grid article > strong {
  display: block;
  min-height: 48px;
  color: #173f76;
  line-height: 1.45;
}

.horizontal-parent-view-grid dl {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
}

.horizontal-parent-view-grid dl div {
  border-top: 1px solid rgba(137, 166, 202, 0.22);
  padding-top: 8px;
}

.horizontal-parent-view-grid dl .stage-alert {
  border: 1px solid #f0d49a;
  border-radius: 10px;
  background: #fff9e9;
  padding: 9px 10px;
}

.horizontal-parent-view-grid dl .stage-alert dt {
  color: #b86d13;
}

.horizontal-parent-view-grid dl .stage-alert dd {
  color: #6d5838;
}

.horizontal-parent-view-grid dt {
  margin-bottom: 3px;
  color: var(--report-blue);
  font-size: 0.75rem;
  font-weight: 900;
}

.horizontal-parent-view-grid .movement dt {
  color: #278c7b;
}

.horizontal-parent-view-grid .exam dt {
  color: #bc7919;
}

.horizontal-parent-view-grid dd {
  margin: 0;
  color: #536a83;
  font-size: 0.8rem;
  line-height: 1.48;
}

.horizontal-parent-view-grid article > p {
  min-height: 44px;
  margin: 8px 0 12px;
  color: #536a83;
  font-size: 0.86rem;
  line-height: 1.45;
}

.dimension-watch {
  margin-top: 10px;
  border-top: 1px solid rgba(137, 166, 202, 0.22);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.62);
  padding: 11px 12px;
  color: #536a83;
  font-size: 0.84rem;
  line-height: 1.5;
}

.dimension-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.dimension-tags span {
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  padding: 4px 8px;
  color: var(--state, #467edb);
  font-size: 0.72rem;
  font-weight: 900;
}

.horizontal-advice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.horizontal-advice-grid article {
  min-height: 112px;
  border: 1px solid #dce9f8;
  border-radius: 14px;
  background: linear-gradient(145deg, #f5faff, #ffffff);
  padding: 16px;
}

.horizontal-advice-grid article:nth-child(2) {
  border-color: #f3dfaf;
  background: linear-gradient(145deg, #fff8e8, #ffffff);
}

.horizontal-advice-grid article:nth-child(3) {
  border-color: #e2d9f9;
  background: linear-gradient(145deg, #f7f2ff, #ffffff);
}

.horizontal-advice-grid b {
  color: var(--report-deep);
  font-size: 15px;
  line-height: 1.35;
}

.horizontal-advice-grid p {
  margin: 9px 0 0;
  color: #52677f;
  font-size: 14px;
  line-height: 1.55;
}

.action-advice-panel {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.action-advice-panel article {
  display: grid;
  gap: 8px;
  border: 1px solid #dce9f8;
  border-radius: 14px;
  background: linear-gradient(145deg, #f5faff, #ffffff);
  padding: 14px;
}

.action-advice-panel span {
  color: #6b82a0;
  font-size: 0.78rem;
  font-weight: 900;
}

.action-advice-panel b {
  color: var(--report-deep);
  font-size: 1rem;
}

.action-advice-panel small {
  color: #52677f;
  line-height: 1.42;
}

.horizontal-function-summary {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.horizontal-function-summary h4 {
  margin: 0;
  color: var(--report-deep);
  font-size: 1rem;
}

.horizontal-function-summary > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.horizontal-function-summary article {
  display: grid;
  gap: 5px;
  border: 1px solid #dce9f8;
  border-radius: 12px;
  background: #f8fbff;
  padding: 10px 12px;
}

.horizontal-function-summary b {
  color: var(--report-deep);
  font-size: 0.92rem;
}

.horizontal-function-summary span {
  color: var(--report-blue);
  font-size: 0.8rem;
  font-weight: 900;
}

.horizontal-function-summary small {
  color: #61758d;
  font-size: 0.78rem;
  line-height: 1.35;
}

.domain-summary-strip {
  display: grid;
  gap: 12px;
  margin: 10px 0 14px;
}

.domain-summary-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: baseline;
}

.domain-summary-head span {
  color: #6b82a0;
  font-size: 0.78rem;
  font-weight: 900;
}

.domain-summary-head strong {
  color: var(--report-deep);
  font-size: 1rem;
}

.domain-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.domain-summary-grid article {
  display: grid;
  gap: 8px;
  border: 1px solid #dce9f8;
  border-radius: 14px;
  background: #ffffff;
  padding: 13px;
}

.domain-summary-grid header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.domain-summary-grid b {
  color: var(--report-deep);
}

.domain-summary-grid span {
  border-radius: 999px;
  background: #eef6ff;
  padding: 4px 8px;
  color: var(--report-blue);
  font-size: 0.74rem;
  font-weight: 900;
  white-space: nowrap;
}

.domain-summary-grid p {
  margin: 0;
  color: #52677f;
  font-size: 0.82rem;
  line-height: 1.45;
}

.domain-summary-grid div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.domain-summary-grid em {
  border-radius: 999px;
  background: #f5f8fc;
  padding: 4px 8px;
  color: #52677f;
  font-size: 0.74rem;
  font-style: normal;
  font-weight: 800;
}

.structured-advice-panel {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.structured-advice-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: baseline;
}

.structured-advice-head span {
  color: #6b82a0;
  font-size: 0.78rem;
  font-weight: 900;
}

.structured-advice-head strong {
  color: var(--report-deep);
  font-size: 1rem;
}

.structured-advice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.structured-advice-grid article {
  display: grid;
  gap: 8px;
  border: 1px solid #dce9f8;
  border-radius: 14px;
  background: linear-gradient(145deg, #f5faff, #ffffff);
  padding: 14px;
}

.structured-advice-grid h4 {
  margin: 0;
  color: var(--report-deep);
  font-size: 1rem;
}

.structured-advice-grid p {
  margin: 0;
  color: #52677f;
  font-size: 0.86rem;
  line-height: 1.5;
}

.structured-advice-grid p b {
  display: block;
  margin-bottom: 2px;
  color: var(--report-blue);
}

.structured-advice-grid small {
  color: #687c93;
  font-size: 0.78rem;
  line-height: 1.45;
}

.structured-advice-grid em {
  border-left: 3px solid #f0b429;
  padding-left: 8px;
  color: #5c6470;
  font-size: 0.78rem;
  font-style: normal;
  line-height: 1.42;
}

.practice-focus-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.practice-focus-list b {
  flex-basis: 100%;
  color: var(--report-blue);
  font-size: 0.84rem;
}

.practice-focus-list span {
  border-radius: 999px;
  background: #eef6ff;
  padding: 4px 9px;
  color: var(--report-deep);
  font-size: 0.78rem;
  font-weight: 800;
}

.trend-entry {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-top: 14px;
  border: 1px dashed #bdd4f0;
  border-radius: 14px;
  background: #f7fbff;
  padding: 14px 16px;
}

.trend-entry span {
  display: block;
  color: #6b82a0;
  font-size: 0.78rem;
  font-weight: 900;
}

.trend-entry strong {
  color: var(--report-deep);
}

.trend-entry p {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
}

.trend-entry b {
  border-radius: 999px;
  background: #ffffff;
  padding: 5px 10px;
  color: var(--report-blue);
}

.appendix-section details {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbff;
  padding: 12px 14px;
}

.appendix-section summary {
  cursor: pointer;
  color: var(--accent-deep);
  font-weight: 800;
}

.appendix-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 12px;
  font-size: 13px;
}

.appendix-table th,
.appendix-table td {
  border: 1px solid var(--line);
  padding: 7px 8px;
  text-align: left;
  vertical-align: top;
}

.appendix-table th {
  background: #eef6ff;
  color: var(--accent-deep);
}

.summary-line {
  margin: 18px 0;
  padding: 14px;
  border-radius: 8px;
  background: var(--accent-soft);
  font-weight: 700;
}

.body-gauge-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 10px 0 12px;
}

.boundary-gauge {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #f8fafc;
}

.gauge-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
  margin-bottom: 10px;
}

.gauge-head span {
  color: var(--muted);
  font-size: 14px;
}

.health-dial {
  border-width: 1px;
}

.gauge-status {
  width: fit-content;
  margin-bottom: 10px;
  border-radius: 999px;
  background: var(--state-bg, #eef5ff);
  padding: 5px 10px;
  color: var(--state, #467edb);
  font-size: 0.86rem;
}

.gauge-hint {
  margin: 10px 0 0;
  color: #52677f;
  font-size: 0.82rem;
  line-height: 1.45;
}

.gauge-track {
  position: relative;
  display: flex;
  height: 14px;
  border-radius: 999px;
  overflow: visible;
  background: #e5e7eb;
}

.gauge-zone:first-child {
  border-radius: 999px 0 0 999px;
}

.gauge-zone:last-of-type {
  border-radius: 0 999px 999px 0;
}

.zone-ok {
  background: #2f7d68;
}

.zone-low {
  background: #6b8fb3;
}

.zone-watch {
  background: #e0a11b;
}

.zone-high {
  background: #c44536;
}

.gauge-marker {
  position: absolute;
  top: -5px;
  width: 3px;
  height: 24px;
  border-radius: 999px;
  background: #111827;
  box-shadow: 0 0 0 3px #ffffff;
}

.gauge-scale {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(72px, 1fr));
  gap: 6px;
  margin-top: 8px;
  color: var(--muted);
  font-size: 12px;
}

.ability-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.ability-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 11px 12px;
  background: #ffffff;
}

.ability-card p {
  margin: 7px 0 0;
}

.ability-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.ability-head span {
  min-width: 34px;
  text-align: center;
  border-radius: 999px;
  padding: 3px 8px;
  background: var(--accent-soft);
  color: var(--accent);
  font-weight: 800;
}

.ability-status {
  color: var(--muted);
  font-size: 14px;
}

.reference-line {
  margin: auto 0 0;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.radar-panel {
  margin-top: 14px;
  display: grid;
  grid-template-columns: minmax(320px, 1fr) minmax(220px, 0.7fr);
  gap: 18px;
  align-items: center;
  border: 1px solid #dfe8f5;
  border-radius: 16px;
  background: #ffffff;
  padding: 16px;
}

.radar-panel h3 {
  margin: 0 0 8px;
  color: var(--report-deep);
}

.radar-chart {
  width: min(100%, 360px);
  height: 320px;
}

.radar-svg-grid {
  fill: none;
  stroke: #cbd5df;
  stroke-width: 1;
}

.radar-svg-grid.inner {
  stroke-dasharray: 3 3;
}

.radar-value {
  fill: rgba(15, 118, 110, 0.24);
  stroke: var(--accent);
  stroke-width: 2;
}

.radar-chart text {
  fill: var(--ink);
  font-size: 14px;
  font-weight: 700;
}

.radar-insight {
  border-left: 3px solid var(--accent);
  padding-left: 12px;
}

.radar-insight strong {
  display: block;
  margin-bottom: 6px;
}

.radar-insight p {
  margin: 0;
  color: #344054;
}

.horizontal-ability-detail {
  margin-top: 12px;
  border: 1px solid #dfe8f5;
  border-radius: 14px;
  background: #fbfdff;
  padding: 10px 12px 12px;
}

.horizontal-ability-detail summary {
  cursor: pointer;
  color: var(--report-deep);
  font-weight: 900;
}

.bar-row {
  display: grid;
  grid-template-columns: 54px 1fr 46px;
  gap: 10px;
  align-items: center;
  margin: 8px 0;
}

.bar-track {
  height: 12px;
  background: #e5e7eb;
  border-radius: 999px;
  overflow: hidden;
}

.bar-fill {
  height: 100%;
  background: var(--accent);
}

.prescription-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.note-list {
  padding-left: 18px;
}

.action-list {
  display: grid;
  gap: 8px;
  padding-left: 20px;
}

.action-list li {
  padding-left: 2px;
}

.development-visual {
  display: grid;
  gap: 12px;
  margin: 10px 0 12px;
}

.stage-ladder {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  align-items: stretch;
}

.stage-ladder span {
  position: relative;
  min-height: 42px;
  padding: 8px 6px;
  border: 1px solid var(--line);
  background: #f8fafc;
  color: #667085;
  text-align: center;
  font-weight: 700;
  font-size: 0.8825rem;
}

.stage-ladder span.active {
  border-color: var(--accent);
  background: var(--accent-soft);
  color: var(--accent);
}

.need-spectrum {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.need-spectrum div {
  border: 1px solid var(--line);
  background: #ffffff;
  padding: 9px 10px;
}

.need-spectrum strong,
.need-spectrum span {
  display: block;
}

.need-spectrum strong {
  color: var(--accent);
  margin-bottom: 4px;
}

.need-spectrum span {
  color: #344054;
}

.stage-timeline {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}

.stage-chip {
  border: 1px solid var(--line);
  background: #f5f7f9;
  color: #5f6f84;
  padding: 8px 6px;
  text-align: center;
  min-height: 52px;
  display: grid;
  align-content: center;
  gap: 3px;
}

.stage-chip span {
  font-size: 0.7825rem;
}

.stage-chip strong {
  font-size: 0.8825rem;
  font-weight: 800;
}

.stage-chip.active {
  background: #dff2ef;
  border-color: var(--accent);
  color: #0f5f59;
  box-shadow: inset 0 0 0 2px rgba(48, 127, 119, 0.14);
}

.stage-title {
  display: block;
  border: 1px solid var(--line);
  border-left: 5px solid var(--accent);
  background: #ffffff;
  padding: 8px 10px;
  margin-bottom: 10px;
}

.stage-title strong {
  color: var(--accent);
  font-size: 1.0825rem;
}

.development-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-left: 5px solid var(--accent);
  background: #f8fafc;
  padding: 10px 12px;
}

.development-summary strong {
  display: block;
  color: var(--accent);
  font-size: 1.0825rem;
  margin-bottom: 4px;
}

.development-summary p {
  margin: 0;
  color: #344054;
}

.development-summary > div:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.development-summary span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #ffffff;
  padding: 4px 8px;
  color: #344054;
  white-space: nowrap;
}

.growth-module {
  display: grid;
  gap: 10px;
}

.growth-stage-task {
  border: 1px solid var(--line);
  border-left: 5px solid var(--accent);
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff, #f8fbff);
  padding: 12px 14px;
}

.growth-stage-task strong {
  display: block;
  color: var(--accent-deep);
  margin-bottom: 5px;
}

.growth-stage-task p {
  margin: 0;
  color: #344054;
}

.growth-evidence-flow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 6px;
  align-items: center;
}

.growth-evidence-flow span {
  border: 1px solid #d9e5f2;
  border-radius: 8px;
  background: #ffffff;
  padding: 9px 10px;
  color: #23395d;
  text-align: center;
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.growth-evidence-flow i {
  color: var(--accent);
  font-style: normal;
  font-weight: 800;
}

.growth-need-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.growth-need-card {
  border: 1px solid var(--line);
  border-top: 4px solid var(--gold);
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
}

.growth-need-card > div:first-child {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 9px;
}

.growth-need-card span {
  border-radius: 999px;
  background: #edf5ff;
  color: var(--accent-deep);
  padding: 3px 8px;
  font-weight: 800;
}

.growth-need-card h4 {
  margin: 0;
  color: var(--accent-deep);
}

.growth-need-card dl {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 6px 8px;
  margin: 0;
}

.growth-need-card dt {
  color: var(--accent);
  font-weight: 800;
  white-space: nowrap;
}

.growth-need-card dd {
  margin: 0;
  color: #344054;
}

.growth-support-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.growth-support-row p,
.growth-boundary {
  margin: 0;
  border: 1px dashed #cbd7e4;
  border-radius: 8px;
  background: #fbfcfd;
  padding: 9px 10px;
  color: #344054;
}

.growth-boundary {
  color: var(--muted);
}

.development-evidence-table {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 10px 12px;
  overflow-x: auto;
}

.development-evidence-table h4,
.development-plan-grid h4 {
  margin: 0 0 8px;
  color: var(--accent);
}

.development-evidence-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9425rem;
}

.development-evidence-table th,
.development-evidence-table td {
  border-top: 1px solid #edf1f4;
  padding: 6px 7px;
  text-align: left;
  vertical-align: top;
}

.development-evidence-table th {
  color: var(--accent);
  background: #f8fafc;
  border-top: 0;
}

.development-priority-grid,
.development-plan-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.development-priority-grid .stage-need-card dl {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 6px 8px;
  margin: 0;
}

.development-priority-grid .stage-need-card dt {
  color: var(--accent);
  font-weight: 800;
}

.development-priority-grid .stage-need-card dd {
  margin: 0;
  color: #344054;
}

.development-plan-grid > div {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 10px 12px;
}

.development-plan-grid p {
  margin: 0 0 6px;
  color: #344054;
}

.stage-need-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.stage-need-card {
  border: 1px solid var(--line);
  background: #ffffff;
  padding: 12px;
  display: grid;
  gap: 8px;
  align-content: start;
}

.stage-need-card h4 {
  margin: 0;
  color: var(--accent);
  font-size: 1.0625rem;
}

.stage-need-card p {
  margin: 0;
  color: #1d2939;
  line-height: 1.58;
}

.stage-need-card b {
  color: #101828;
}

.stage-need-card em {
  display: block;
  border-top: 1px solid var(--line);
  padding-top: 7px;
  color: var(--muted);
  font-style: normal;
  font-size: 0.8825rem;
  line-height: 1.45;
}

.exam-chain-grid {
  display: grid;
  gap: 8px;
  margin: 10px 0 12px;
}

.exam-chain {
  display: grid;
  grid-template-columns: 1fr auto 1.35fr auto 1.55fr auto;
  gap: 8px;
  align-items: center;
  border: 1px solid var(--line);
  background: #ffffff;
  padding: 9px 10px;
}

.exam-chain span {
  color: #344054;
}

.exam-chain i {
  color: var(--muted);
  font-style: normal;
}

.exam-chain strong {
  justify-self: end;
  white-space: nowrap;
  color: var(--accent);
  background: var(--accent-soft);
  border-radius: 999px;
  padding: 4px 8px;
}

.record-list {
  display: grid;
  gap: 8px;
}

.record-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: #ffffff;
}

.record-item button {
  margin-top: 8px;
  padding: 7px 9px;
}

.record-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.record-actions button {
  width: auto;
}

.management-controls {
  margin-bottom: 16px;
}

.trend-panel {
  margin-bottom: 16px;
}

.source-hero {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: 18px;
  align-items: center;
  border: 1px solid var(--line);
  border-left: 6px solid var(--accent);
  background: linear-gradient(90deg, #ffffff 0%, #ffffff 78%, #fffdf2 100%);
  padding: 18px;
  margin-bottom: 18px;
}

.source-hero strong {
  display: block;
  font-size: 1.3125rem;
  margin-bottom: 6px;
}

.source-hero p {
  margin: 0;
  color: var(--muted);
}

.source-mark {
  width: 72px;
  height: 72px;
  border: 2px solid var(--accent);
  display: grid;
  place-items: center;
  position: relative;
  background: var(--accent-soft);
}

.source-mark span {
  position: absolute;
  width: 38px;
  height: 8px;
  border-radius: 999px;
  background: var(--accent);
}

.source-mark span:nth-child(1) { transform: translateY(-16px); }
.source-mark span:nth-child(2) { transform: translateY(0); width: 48px; }
.source-mark span:nth-child(3) { transform: translateY(16px); }

.source-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.source-card {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--accent);
  background: #ffffff;
  padding: 14px;
  min-height: 150px;
  box-shadow: 0 10px 24px rgba(32, 76, 132, 0.07);
}

.source-card div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.source-card strong {
  color: #101828;
  font-size: 1.0825rem;
}

.source-card span {
  white-space: nowrap;
  color: var(--accent);
  background: var(--accent-soft);
  border-radius: 999px;
  padding: 3px 8px;
  font-weight: 700;
}

.source-card p {
  margin: 0;
  color: #344054;
}

.source-card em {
  border-top: 1px solid var(--line);
  padding-top: 8px;
  color: var(--muted);
  font-style: normal;
  font-size: 0.9625rem;
}

.data-management {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.data-card {
  border: 1px solid var(--line);
  border-top: 5px solid var(--accent);
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff 0%, #ffffff 72%, #fffdf5 100%);
  padding: 18px;
  box-shadow: var(--shadow);
  position: relative;
  overflow: hidden;
}

.data-card::before {
  content: "";
  position: absolute;
  top: -5px;
  right: 0;
  width: 35%;
  height: 5px;
  background: var(--gold);
}

.data-card h3 {
  margin: 0 0 14px;
  color: var(--accent);
}

.data-sheet-card {
  border-top-color: var(--gold);
}

.data-settings-card {
  border-top-color: var(--gold);
}

.settings-toggle-list {
  display: grid;
  gap: 10px;
}

.settings-toggle-list label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbff;
  padding: 11px 12px;
}

.settings-toggle-list input {
  width: auto;
  margin-top: 4px;
}

.settings-toggle-list span {
  display: grid;
  gap: 2px;
}

.settings-toggle-list b {
  color: var(--accent-deep);
}

.settings-toggle-list em {
  color: var(--muted);
  font-size: 14px;
  font-style: normal;
}

.sheet-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 10px 0 14px;
}

.data-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.data-actions button,
.data-file-label {
  width: auto;
  min-width: 160px;
}

.data-file-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.data-overview-card {
  grid-column: 1 / -1;
}

.blank-test-sheet {
  margin-top: 18px;
}

.blank-sheet-page {
  width: 100%;
  max-width: 210mm;
  min-height: 297mm;
  box-sizing: border-box;
  margin: 0 auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 18px 20px;
  color: #102a43;
}

.blank-sheet-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  border-bottom: 3px solid var(--accent);
  padding-bottom: 12px;
}

.blank-sheet-head span {
  display: block;
  color: var(--muted);
}

.blank-sheet-head h1 {
  margin: 5px 0;
  color: var(--accent-deep);
  font-size: 1.7625rem;
}

.blank-sheet-head p {
  margin: 0;
  color: #475467;
}

.blank-sheet-head strong {
  border: 1px solid #d6e8f8;
  border-radius: 999px;
  background: #eef6ff;
  color: var(--accent-deep);
  padding: 8px 12px;
  white-space: nowrap;
}

.blank-sheet-note {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 10px;
  margin: 14px 0;
  border: 1px solid #f0d58a;
  border-radius: 8px;
  background: #fffaf0;
  padding: 10px 12px;
}

.blank-sheet-note b {
  color: var(--warn);
}

.blank-sheet-section {
  margin-top: 12px;
}

.blank-sheet-section h2 {
  margin: 0 0 7px;
  color: var(--accent-deep);
  font-size: 1.1125rem;
}

.blank-sheet-section table {
  width: 100%;
  border-collapse: collapse;
}

.blank-sheet-section th,
.blank-sheet-section td {
  border: 1px solid #cbd7e4;
  padding: 9px 10px;
  text-align: left;
  vertical-align: middle;
}

.blank-sheet-section th {
  background: #f2f7fc;
  color: var(--accent-deep);
}

.blank-sheet-section td:nth-child(3) {
  width: 34%;
  height: 26px;
  background: #ffffff;
}

.blank-sheet-footer {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
  color: #475467;
}

.data-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.data-overview div {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  padding: 14px;
}

.data-overview strong {
  display: block;
  color: #3d8be2;
  font-size: 1.4125rem;
  margin-bottom: 5px;
}

.data-overview span {
  color: var(--muted);
}

/* Lightweight local settings center. */
.settings-page {
  display: grid;
  gap: 16px;
}

.settings-page-head,
.settings-status-strip,
.settings-content-grid {
  max-width: 1320px;
  width: 100%;
  margin: 0 auto;
}

.settings-page-head {
  padding: 6px 4px 0;
}

.settings-page-head span {
  color: #4c83d7;
  font-size: 13px;
  font-weight: 700;
}

.settings-page-head h2 {
  margin: 4px 0 2px;
  color: var(--accent-deep);
}

.settings-page-head p,
.settings-section-head p {
  margin: 0;
  color: var(--muted);
}

.settings-status-strip {
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 12px 30px rgba(37, 86, 150, 0.08);
}

.settings-section-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 14px;
}

.settings-section-head h3 {
  margin: 0 0 4px;
  color: var(--accent-deep);
}

.settings-content-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.settings-content-grid .data-card {
  border: 0;
  border-radius: 18px;
  padding: 20px;
  box-shadow: 0 14px 34px rgba(38, 83, 145, 0.09);
  overflow: visible;
}

.settings-content-grid .data-card::before {
  display: none;
}

.settings-collapsible {
  padding: 0 !important;
}

.settings-collapsible > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 19px 20px;
  cursor: pointer;
  list-style: none;
}

.settings-collapsible > summary::-webkit-details-marker {
  display: none;
}

.settings-collapsible > summary span {
  display: grid;
  gap: 4px;
}

.settings-collapsible > summary b {
  color: var(--accent-deep);
  font-size: 18px;
}

.settings-collapsible > summary em {
  color: var(--muted);
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
}

.settings-collapsible > summary i {
  color: #3d79cf;
  font-size: 14px;
  font-style: normal;
  white-space: nowrap;
}

.settings-collapsible > summary i::after {
  content: "⌄";
  margin-left: 7px;
}

.settings-collapsible[open] > summary {
  border-bottom: 1px solid #e5edf8;
}

.settings-collapsible[open] > summary i::after {
  content: "⌃";
}

.settings-collapsible-body {
  padding: 18px 20px 20px;
}

.settings-wide-card {
  grid-column: 1 / -1;
}

/* Refined settings center: compact status + field sheet row. */
.settings-page {
  gap: 14px;
}

.settings-content-grid {
  grid-template-columns: minmax(360px, 0.82fr) minmax(520px, 1.18fr);
  gap: 14px;
}

.settings-content-grid .data-card,
.settings-status-strip.data-card {
  background: rgba(255, 255, 255, 0.97);
  border: 1px solid rgba(196, 216, 241, 0.7);
  border-radius: 20px;
  box-shadow: 0 14px 34px rgba(45, 91, 153, 0.09);
}

.settings-section-head h3,
.settings-collapsible > summary b {
  position: relative;
  padding-left: 18px;
}

.settings-section-head h3::before,
.settings-collapsible > summary b::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.18em;
  width: 4px;
  height: 1em;
  border-radius: 4px;
  background: #f2ad25;
}

.settings-record-card,
.data-sheet-card {
  min-height: 310px;
}

.settings-record-card .data-overview {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.settings-record-card .data-overview div {
  position: relative;
  min-height: 92px;
  padding: 18px 16px 14px 70px;
  border-color: #d9e7f8;
  border-radius: 14px;
  background: linear-gradient(135deg, #fbfdff, #f4f8ff);
}

.settings-record-card .data-overview div::before {
  position: absolute;
  left: 16px;
  top: 18px;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 13px;
  color: #2879df;
  background: #e9f2ff;
  font-size: 21px;
  font-weight: 800;
}

.settings-record-card .data-overview div:nth-child(1)::before { content: "●"; }
.settings-record-card .data-overview div:nth-child(2)::before { content: "▤"; color: #18a978; background: #e8f8f1; }
.settings-record-card .data-overview div:nth-child(3)::before { content: "▣"; color: #ef7f22; background: #fff1e5; }
.settings-record-card .data-overview div:nth-child(4)::before { content: "◉"; color: #8a43dc; background: #f5ebff; }

.settings-record-card .data-overview strong {
  color: #176bd6;
  font-size: 1.38rem;
}

.data-sheet-card .settings-section-head {
  margin-bottom: 8px;
}

.data-sheet-card .sheet-form-grid {
  gap: 10px 14px;
  margin: 8px 0 14px;
}

.data-sheet-card .sheet-form-grid input,
.data-sheet-card .sheet-form-grid select {
  min-height: 44px;
}

.sheet-batch-table-wrap {
  width: 100%;
  margin: 10px 0 14px;
  overflow-x: auto;
}

.sheet-batch-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 8px;
}

.sheet-batch-table th {
  padding: 0 8px 2px;
  color: #536783;
  font-size: 13px;
  text-align: left;
}

.sheet-batch-table td {
  padding: 0 4px;
}

.sheet-batch-table input,
.sheet-batch-table select {
  width: 100%;
  min-height: 44px;
  padding: 8px 10px;
}

.sheet-batch-table .sheet-row-action {
  width: 70px;
  text-align: center;
}

.sheet-remove-row {
  min-width: 0 !important;
  padding: 9px 10px !important;
  border-color: #f1d0ca !important;
  color: #c05c4a !important;
  background: #fffaf8 !important;
}

.entry-action-bar .entry-batch-status {
  grid-column: 1 / -1;
  margin: -10px 0 0;
  color: #6d7b91;
  font-size: 13px;
  text-align: right;
}

.entry-action-bar .entry-batch-status.import-warning {
  color: #b24a31;
}

.blank-test-sheet .blank-sheet-page + .blank-sheet-page {
  margin-top: 22px;
}

@media print {
  body.print-test-sheet .blank-test-sheet .blank-sheet-page {
    break-after: page;
    page-break-after: always;
  }

  body.print-test-sheet .blank-test-sheet .blank-sheet-page:last-child {
    break-after: auto;
    page-break-after: auto;
  }
}

.data-sheet-card > .hint {
  margin: 12px 0 0;
}

.data-sheet-card > .data-actions {
  flex-wrap: nowrap;
}

.data-sheet-card > .data-actions button {
  flex: 1 1 0;
  min-width: 0;
  padding-inline: 12px;
}

.data-sheet-card > .hint.import-warning {
  color: #b24a31;
}

.settings-backup-card {
  min-height: 150px;
  padding-right: 34% !important;
  background:
    radial-gradient(circle at 84% 50%, rgba(91, 157, 244, 0.18), transparent 18%),
    linear-gradient(145deg, #ffffff 0%, #ffffff 65%, #eef6ff 100%) !important;
}

.settings-backup-card::after {
  content: "☁";
  position: absolute;
  right: 9%;
  top: 28px;
  color: rgba(73, 139, 230, 0.42);
  font-size: 72px;
  line-height: 1;
}

.settings-backup-card .data-actions {
  margin-top: 8px;
}

.settings-collapsible > summary {
  min-height: 76px;
}

@media (max-width: 980px) {
  .data-sheet-card > .data-actions {
    flex-wrap: wrap;
  }

  .data-sheet-card > .data-actions button {
    flex: 1 1 180px;
  }

  .settings-content-grid {
    grid-template-columns: 1fr;
  }

  .settings-record-card,
  .data-sheet-card {
    min-height: 0;
  }

  .settings-backup-card {
    padding-right: 20px !important;
  }

  .settings-backup-card::after {
    display: none;
  }
}

@media (max-width: 720px) {
  .sheet-batch-table {
    min-width: 700px;
  }

  .entry-action-bar .entry-batch-status {
    text-align: left;
  }
}

.settings-subgroup + .settings-subgroup {
  margin-top: 18px;
}

.settings-subgroup h4 {
  margin: 0 0 10px;
  color: #315c9f;
}

.settings-subgroup h4 small {
  margin-left: 6px;
  color: var(--muted);
  font-weight: 500;
}

.fixed-metric-list,
.metric-toggle-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.fixed-metric-list span,
.metric-toggle-grid label {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #f4f8fe;
  color: #244a83;
  font-weight: 700;
}

.fixed-metric-list i {
  color: #4da58d;
  font-size: 12px;
  font-style: normal;
}

.metric-toggle-grid input,
.compact-option-row input,
.settings-toggle-list.compact input {
  width: 42px;
  height: 23px;
  margin: 0;
  appearance: none;
  border: 0;
  border-radius: 999px;
  background: #cbd6e5;
  position: relative;
  flex: 0 0 auto;
  cursor: pointer;
  transition: 0.2s ease;
}

.metric-toggle-grid input::after,
.compact-option-row input::after,
.settings-toggle-list.compact input::after {
  content: "";
  position: absolute;
  width: 17px;
  height: 17px;
  left: 3px;
  top: 3px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 5px rgba(25, 57, 104, 0.2);
  transition: 0.2s ease;
}

.metric-toggle-grid input:checked,
.compact-option-row input:checked,
.settings-toggle-list.compact input:checked {
  background: #3f83e3;
}

.metric-toggle-grid input:checked::after,
.compact-option-row input:checked::after,
.settings-toggle-list.compact input:checked::after {
  transform: translateX(19px);
}

.compact-option-row {
  display: grid;
  gap: 8px;
  margin: 14px 0;
}

.compact-option-row label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #294f88;
}

.compact-option-row input {
  order: 2;
}

.settings-toggle-list.compact label {
  align-items: center;
  justify-content: space-between;
  border: 0;
  background: #f5f8fd;
  border-radius: 12px;
}

.default-report-select {
  display: grid;
  gap: 8px;
  margin-top: 14px;
  color: #294f88;
  font-weight: 700;
}

.primary-action {
  color: #fff !important;
  border-color: #377ddd !important;
  background: linear-gradient(135deg, #4b8be8, #326fd0) !important;
}

.settings-dialog {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(19, 42, 76, 0.36);
  backdrop-filter: blur(3px);
}

.settings-dialog[hidden] {
  display: none;
}

.settings-dialog-card {
  width: min(520px, 100%);
  padding: 26px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(18, 48, 91, 0.28);
}

.settings-dialog-card > span {
  color: #c18420;
  font-weight: 700;
}

.settings-dialog-card h3 {
  margin: 5px 0 10px;
  color: var(--accent-deep);
}

.settings-dialog-card p {
  color: #60728f;
  line-height: 1.7;
}

.hide-report-references .reference-line,
.hide-unrated-notes .unrated-note {
  display: none !important;
}

.unrated-note {
  margin: 10px 0 0;
  color: #71819a;
  font-size: 12px;
}

.horizontal-advice-grid.reduced {
  grid-template-columns: minmax(0, 1fr);
}

.sheet-preview-dialog {
  position: fixed;
  z-index: 1150;
  inset: 0;
  overflow: auto;
  padding: 28px;
  background: rgba(22, 48, 86, 0.42);
  backdrop-filter: blur(3px);
}

.sheet-preview-dialog[hidden] {
  display: none;
}

.sheet-preview-shell {
  width: min(980px, 100%);
  margin: 0 auto;
  padding: 16px;
  border-radius: 20px;
  background: #f5f8fd;
  box-shadow: 0 28px 80px rgba(19, 48, 90, 0.3);
}

.sheet-preview-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 4px 4px 14px;
}

.sheet-preview-toolbar span {
  color: #4c83d7;
  font-size: 13px;
  font-weight: 700;
}

.sheet-preview-toolbar h3 {
  margin: 3px 0 0;
  color: var(--accent-deep);
}

.sheet-preview-dialog .blank-test-sheet {
  margin-top: 0;
}

@media (max-width: 720px) {
  .sheet-preview-dialog {
    padding: 12px;
  }

  .sheet-preview-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 920px) {
  .settings-content-grid {
    grid-template-columns: 1fr;
  }

  .settings-wide-card {
    grid-column: auto;
  }

  .fixed-metric-list,
  .metric-toggle-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.longitudinal-controls {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 220px;
  gap: 14px;
  margin-bottom: 18px;
}

.longitudinal-dashboard {
  display: grid;
  gap: 16px;
}

.archive-overview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(600px, 0.95fr);
  gap: 18px;
  align-items: center;
  border: 1px solid var(--line);
  border-left: 6px solid var(--accent);
  border-radius: 8px;
  background: linear-gradient(90deg, #ffffff 0%, #ffffff 72%, #fffdf2 100%);
  padding: 18px;
  box-shadow: 0 10px 24px rgba(32, 76, 132, 0.07);
}

.archive-overview span,
.archive-overview em {
  display: block;
  color: var(--muted);
  font-style: normal;
}

.archive-overview strong {
  display: block;
  color: var(--accent-deep);
  font-size: 2.0625rem;
  line-height: 1.2;
  margin: 6px 0;
}

.archive-meta-grid,
.archive-quality-grid,
.longitudinal-status-grid,
.longitudinal-summary-grid,
.longitudinal-chart-grid {
  display: grid;
  gap: 12px;
}

.archive-meta-grid {
  grid-template-columns: repeat(4, minmax(132px, 1fr));
}

.archive-quality-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.archive-meta-grid b {
  display: flex;
  flex-direction: column;
  gap: 4px;
  justify-content: center;
  min-height: 78px;
  box-sizing: border-box;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbff;
  color: var(--accent);
  padding: 12px;
  font-size: clamp(1.1825rem, 1.35vw, 1.4625rem);
  line-height: 1.15;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}

.archive-meta-grid small {
  color: var(--muted);
  font-size: 0.8825rem;
  font-weight: 500;
  white-space: nowrap;
  word-break: keep-all;
}

.archive-quality-grid article {
  border: 1px solid var(--line);
  border-top: 4px solid var(--accent);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px 16px;
  box-shadow: 0 8px 18px rgba(32, 76, 132, 0.05);
}

.archive-quality-grid article:nth-child(2) {
  border-top-color: var(--gold);
}

.archive-quality-grid article:nth-child(3) {
  border-top-color: #55a3d8;
}

.archive-quality-grid span {
  display: block;
  color: var(--muted);
  margin-bottom: 5px;
}

.archive-quality-grid strong {
  display: block;
  color: var(--accent-deep);
  font-size: 1.3125rem;
  margin-bottom: 6px;
  word-break: keep-all;
  overflow-wrap: normal;
}

.archive-quality-grid p {
  margin: 0;
  color: #344054;
  line-height: 1.55;
}

@media (max-width: 1180px) {
  .entry-workbench {
    grid-template-columns: minmax(0, 1fr) 320px;
  }

}

.longitudinal-section-title {
  margin: 18px 0 10px;
  color: var(--accent-deep);
  font-size: 1.1625rem;
}

.longitudinal-status-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.longitudinal-status-grid article,
.longitudinal-summary-grid article,
.longitudinal-chart-grid article,
.archive-timeline {
  border: 1px solid var(--line);
  border-top: 4px solid var(--accent);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px 16px;
  box-shadow: 0 8px 18px rgba(32, 76, 132, 0.06);
}

.longitudinal-status-grid article:nth-child(even),
.longitudinal-summary-grid article:nth-child(2),
.longitudinal-chart-grid article:nth-child(even) {
  border-top-color: var(--gold);
}

.longitudinal-status-grid span {
  display: block;
  color: var(--muted);
  margin-bottom: 5px;
}

.longitudinal-status-grid strong {
  display: block;
  color: var(--accent-deep);
  font-size: 1.2625rem;
  margin-bottom: 8px;
  word-break: keep-all;
  overflow-wrap: normal;
}

.longitudinal-status-grid em {
  display: inline-flex;
  border-radius: 999px;
  background: #eef6ff;
  color: var(--accent-deep);
  border: 1px solid #d6e8f8;
  padding: 3px 8px;
  font-size: 0.8825rem;
  font-style: normal;
  font-weight: 700;
  margin-bottom: 8px;
}

.status-evidence {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 2px 0 10px;
}

.status-evidence span {
  display: inline-flex;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fbff;
  color: #667085;
  padding: 3px 8px;
  font-size: 0.8425rem;
  margin: 0;
}

.longitudinal-status-grid p,
.longitudinal-summary-grid p,
.longitudinal-chart-grid p {
  margin: 0;
  color: #344054;
}

.longitudinal-status-grid .status-next {
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px dashed #d8e6f2;
  color: #667085;
  font-size: 0.9825rem;
}

.longitudinal-summary-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.longitudinal-summary-grid h3,
.longitudinal-chart-grid h3,
.archive-timeline h3 {
  margin: 0 0 10px;
  color: var(--accent-deep);
}

.longitudinal-summary-grid p + p {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #edf2f7;
}

.longitudinal-chart-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.trend-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  margin-bottom: 8px;
}

.trend-card-head h3 {
  margin: 0;
}

.trend-card-head strong {
  color: var(--accent-deep);
  white-space: nowrap;
}

.trend-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}

.trend-card-meta span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fbff;
  color: var(--muted);
  padding: 3px 8px;
  font-size: 0.8625rem;
}

.longitudinal-sparkline {
  width: 100%;
  height: 150px;
  margin: 4px 0 8px;
}

.longitudinal-sparkline line {
  stroke: #d9e4ef;
  stroke-width: 2;
}

.longitudinal-sparkline polyline {
  fill: none;
  stroke: var(--accent);
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.longitudinal-sparkline circle {
  fill: #ffffff;
  stroke: var(--accent);
  stroke-width: 3;
}

.longitudinal-sparkline text {
  fill: var(--muted);
  font-size: 13px;
}

.longitudinal-radar-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.longitudinal-radar-list div {
  display: grid;
  grid-template-columns: minmax(70px, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fbff;
  padding: 7px 10px;
}

.longitudinal-radar-list b {
  color: var(--accent-deep);
  font-size: 1.1125rem;
}

.longitudinal-radar-list i {
  color: var(--green);
  font-style: normal;
  font-weight: 700;
}

.archive-timeline {
  display: grid;
  gap: 10px;
}

.archive-node {
  display: grid;
  grid-template-columns: 130px 90px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbff;
  padding: 10px 12px;
}

.archive-node span {
  justify-self: start;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent-deep);
  padding: 3px 8px;
  font-weight: 700;
}

.archive-node p {
  margin: 0;
  color: var(--muted);
}

.trend-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}

.trend-grid div {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #f8fafc;
}

.trend-grid strong {
  display: block;
  color: var(--muted);
  font-size: 14px;
}

.trend-grid span {
  display: block;
  margin-top: 4px;
  font-size: 21px;
  font-weight: 800;
}

.detail-paper {
  margin-top: 16px;
}

.detail-actions {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 12px;
}

.detail-actions button {
  width: auto;
}

@media (max-width: 980px) {
  .header-inner,
  .dashboard-shell {
    width: min(100% - 24px, 1500px);
  }

  .brand-row {
    display: grid;
    gap: 10px;
  }

  .rule-meta {
    justify-content: flex-start;
  }

  .top-nav .step-button {
    flex: 1 1 142px;
  }

  .app-shell,
  .workspace {
    grid-template-columns: 1fr;
  }

  .entry-workbench {
    grid-template-columns: 1fr;
  }

  .entry-feedback {
    position: static;
    order: -1;
  }

  .entry-action-bar {
    display: grid;
  }

  .entry-action-buttons {
    justify-content: stretch;
  }

  .entry-action-buttons button {
    flex: 1 1 180px;
  }

  .grid.two,
  .grid.three,
  .check-grid,
  .result-cards,
  .prescription-grid,
  .stage-ladder,
  .need-spectrum,
  .source-grid,
  .readiness-card,
  .longitudinal-controls,
  .archive-overview,
  .archive-meta-grid,
  .archive-quality-grid,
  .longitudinal-status-grid,
  .longitudinal-summary-grid,
  .longitudinal-chart-grid,
  .trend-grid {
    grid-template-columns: 1fr;
  }

  .archive-node {
    grid-template-columns: 1fr;
  }

  .source-hero {
    grid-template-columns: 1fr;
  }

  .exam-chain {
    grid-template-columns: 1fr;
  }

  .exam-chain i {
    display: none;
  }

  .radar-panel {
    grid-template-columns: 1fr;
  }
}

@media print {
  html,
  body {
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
  }

  .dashboard-shell::before {
    display: none !important;
    content: none !important;
  }

  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .no-print,
  .app-header,
  .sidebar,
  .records,
  .toolbar,
  .result-cards,
  form > .step-panel[data-panel="sources"],
  form > .step-panel:not([data-panel="report"]) {
    display: none !important;
  }

  .app-shell,
  .workspace {
    display: block;
    padding: 0;
  }

  .step-panel,
  .step-panel.active {
    display: block;
    border: 0;
    padding: 0;
  }

  .report-paper {
    border: 0;
    padding: 0;
    min-height: auto;
    display: block;
  }

  .report-page {
    width: 100%;
    max-width: 174mm;
    min-height: 265mm;
    margin: 0 auto;
    padding: 5mm 6mm;
    border: 0;
    overflow: visible;
    break-inside: avoid;
    page-break-inside: avoid;
    break-after: page;
    page-break-after: always;
  }

  .horizontal-report.report-page {
    display: block;
    min-height: auto;
    padding: 5mm 6mm;
    font-size: 8.7pt;
    line-height: 1.28;
    break-inside: auto;
    page-break-inside: auto;
    break-after: auto;
    page-break-after: auto;
  }

  .horizontal-report .horizontal-hero {
    grid-template-columns: minmax(0, 1fr) 20mm;
    gap: 8mm;
    padding-bottom: 5mm;
    margin-bottom: 4mm;
  }

  .horizontal-report .horizontal-hero h1 {
    margin: 1.5mm 0;
    font-size: 18pt;
    line-height: 1.1;
  }

  .horizontal-report .horizontal-hero p {
    font-size: 9pt;
  }

  .horizontal-report .horizontal-data-badge {
    min-width: 0;
    padding: 4mm 2mm;
  }

  .horizontal-report .horizontal-data-badge strong {
    font-size: 18pt;
  }

  .horizontal-report .horizontal-status-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3mm;
    margin-bottom: 4mm;
  }

  .horizontal-report .horizontal-status-grid article,
  .horizontal-report .ability-cluster-grid article {
    padding: 3mm;
    box-shadow: none;
  }

  .horizontal-report .horizontal-status-grid strong {
    margin: 1mm 0;
    font-size: 10.5pt;
  }

  .horizontal-report .horizontal-section {
    gap: 3mm;
    padding-top: 0;
    margin-top: 4mm;
    break-inside: auto;
    page-break-inside: auto;
  }

  .horizontal-report > .horizontal-section:nth-of-type(3) {
    break-before: page;
    page-break-before: always;
    margin-top: 0;
  }

  .horizontal-report .horizontal-section h3 {
    margin: 0;
    padding-top: 1mm;
    font-size: 11pt;
  }

  .horizontal-report .metric-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2.5mm;
  }

  .horizontal-report .metric-strip span {
    padding: 2.5mm 3mm;
  }

  .horizontal-report .metric-strip b {
    font-size: 11.5pt;
    margin-bottom: 1mm;
  }

  .horizontal-report .body-gauge-grid {
    gap: 3mm;
    margin: 0;
  }

  .horizontal-report .boundary-gauge {
    padding: 3mm;
  }

  .horizontal-report .gauge-head {
    margin-bottom: 2mm;
  }

  .horizontal-report .gauge-head span {
    font-size: 8pt;
  }

  .horizontal-report .gauge-track {
    height: 3mm;
  }

  .horizontal-report .gauge-marker {
    top: -1.5mm;
    height: 6mm;
  }

  .horizontal-report .gauge-scale {
    margin-top: 2mm;
    font-size: 7pt;
  }

  .horizontal-report .radar-panel {
    grid-template-columns: 52mm minmax(0, 1fr);
    gap: 4mm;
    margin-top: 0;
    align-items: center;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .horizontal-report .radar-panel h3 {
    grid-column: 1 / -1;
    padding-top: 0;
  }

  .horizontal-report .radar-chart {
    width: 52mm;
    height: 48mm;
  }

  .horizontal-report .radar-insight {
    padding-left: 4mm;
  }

  .horizontal-report .ability-cluster-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3mm;
  }

  .horizontal-report .ability-cluster-grid h4 {
    margin-bottom: 2mm;
    font-size: 10pt;
  }

  .horizontal-report .ability-cluster-grid p + .reference-line {
    margin-top: 1.5mm;
  }

  .horizontal-report .reference-line {
    padding-top: 1.5mm;
    font-size: 7pt;
  }

  .horizontal-report .development-visual,
  .horizontal-report .growth-module,
  .horizontal-report .exam-action-map {
    gap: 3mm;
    margin: 0;
  }

  .horizontal-report .stage-timeline {
    gap: 2mm;
    margin-bottom: 0;
  }

  .horizontal-report .stage-chip {
    min-height: 12mm;
    padding: 2mm 1.5mm;
  }

  .horizontal-report .growth-stage-task,
  .horizontal-report .growth-need-card,
  .horizontal-report .exam-core-card,
  .horizontal-report .exam-parent-card,
  .horizontal-report .exam-future-goal {
    padding: 3mm;
    box-shadow: none;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .horizontal-report .growth-stage-task {
    display: block;
    padding: 2mm 2.5mm;
  }

  .horizontal-report .growth-evidence-flow {
    display: none;
  }

  .horizontal-report .growth-need-cards {
    gap: 3mm;
  }

  .horizontal-report .growth-need-card > div:first-child {
    margin-bottom: 2mm;
  }

  .horizontal-report .growth-need-card dl {
    grid-template-columns: 19mm minmax(0, 1fr);
    gap: 1.5mm 2mm;
  }

  .horizontal-report .growth-support-row {
    gap: 2mm;
  }

  .horizontal-report .growth-support-row p,
  .horizontal-report .growth-boundary {
    padding: 2mm 2.5mm;
  }

  .horizontal-report .growth-boundary,
  .horizontal-report .growth-module > .reference-line,
  .horizontal-report .appendix-section,
  .horizontal-report .exam-secondary-list,
  .horizontal-report .exam-goal-card,
  .horizontal-report .exam-note {
    display: none;
  }

  .horizontal-report .exam-core-card {
    grid-template-columns: minmax(0, 1fr) 46mm;
    gap: 3mm;
  }

  .horizontal-report .exam-parent-counts {
    gap: 1.5mm;
  }

  .horizontal-report .exam-parent-counts span {
    padding: 1.5mm 2mm;
  }

  .horizontal-report .exam-priority-map {
    gap: 3mm;
  }

  .horizontal-report .exam-card-title {
    margin-bottom: 2mm;
  }

  .horizontal-report .exam-card-metrics {
    gap: 2mm;
    margin-bottom: 2mm;
  }

  .horizontal-report .exam-card-metrics p {
    padding: 2mm;
  }

  .horizontal-report .exam-parent-card dl {
    grid-template-columns: 13mm minmax(0, 1fr);
    gap: 1.5mm 2mm;
  }

  .horizontal-report .appendix-section {
    margin-top: 3mm;
  }

  .horizontal-report .appendix-section details {
    padding: 2.5mm 3mm;
  }

  .physical-report {
    font-size: 9.5pt;
    line-height: 1.24;
  }

  .report-page h3 {
    margin: 14px 0 7px;
  }

  .physical-report h3 {
    margin: 8px 0 5px;
  }

  .report-title {
    padding-bottom: 11px;
  }

  .summary-line {
    margin: 12px 0;
    padding: 10px 12px;
  }

  .development-visual {
    gap: 8px;
    margin: 8px 0 10px;
  }

  .stage-ladder {
    gap: 4px;
  }

  .stage-ladder span {
    min-height: 34px;
    padding: 6px 4px;
    font-size: 8.3pt;
  }

  .need-spectrum {
    gap: 6px;
  }

  .need-spectrum div {
    padding: 7px 8px;
  }

  .need-spectrum strong,
  .need-spectrum span,
  .exam-chain {
    font-size: 8.8pt;
  }

  .exam-chain-grid {
    gap: 6px;
    margin: 8px 0 10px;
  }

  .exam-chain {
    gap: 6px;
    padding: 7px 8px;
  }

  .exam-chain strong {
    padding: 3px 6px;
  }

  .body-gauge-grid {
    gap: 10px;
    margin: 8px 0 9px;
  }

  .physical-report .body-gauge-grid {
    gap: 7px;
    margin: 6px 0 7px;
  }

  .boundary-gauge {
    padding: 10px;
  }

  .physical-report .boundary-gauge {
    padding: 7px;
  }

  .gauge-head {
    margin-bottom: 8px;
  }

  .gauge-track {
    height: 12px;
  }

  .gauge-marker {
    top: -5px;
    height: 22px;
  }

  .zone-ok {
    background: #d9d9d9;
  }

  .zone-low {
    background: #efefef;
  }

  .zone-watch {
    background: #9f9f9f;
  }

  .zone-high {
    background: #4f4f4f;
  }

  .gauge-scale {
    gap: 5px;
    margin-top: 7px;
    font-size: 10px;
  }

  .physical-report .gauge-scale {
    font-size: 8.5pt;
  }

  .ability-grid,
  .prescription-grid {
    gap: 8px;
  }

  .physical-report .ability-grid {
    gap: 7px;
  }

  .ability-card,
  .prescription-grid div {
    padding: 9px 10px;
  }

  .physical-report .ability-card {
    padding: 7px 8px;
  }

  .ability-card p,
  .type-report p {
    margin: 6px 0 0;
  }

  .physical-report .ability-card p {
    margin-top: 4px;
  }

  .reference-line {
    padding-top: 6px;
    font-size: 10px;
  }

  .physical-report .reference-line {
    padding-top: 4px;
    font-size: 8pt;
  }

  .radar-panel {
    margin-top: 9px;
    grid-template-columns: 230px 1fr;
    gap: 10px;
  }

  .physical-report .radar-panel {
    margin-top: 6px;
    grid-template-columns: 180px 1fr;
    gap: 8px;
  }

  .radar-chart {
    width: 230px;
    height: 220px;
  }

  .physical-report .radar-chart {
    width: 180px;
    height: 174px;
  }

  .radar-insight {
    padding-left: 10px;
  }

  .physical-report .radar-insight {
    padding-left: 8px;
  }

  .physical-report .radar-insight strong {
    margin-bottom: 4px;
  }

  .action-list {
    gap: 5px;
    margin: 8px 0;
    padding-left: 18px;
  }

  .note-list {
    margin: 8px 0;
    padding-left: 18px;
  }

  .report-page:last-child {
    break-after: auto;
    page-break-after: auto;
  }

  body.print-report-viewer form > .step-panel:not([data-panel="viewer"]) {
    display: none !important;
  }

  body.print-report-viewer form > .step-panel[data-panel="viewer"] {
    display: block !important;
  }

  body.print-report-viewer .step-panel[data-panel="viewer"] > h2 {
    display: none !important;
  }

  body.print-test-sheet .app-header,
  body.print-test-sheet .top-nav,
  body.print-test-sheet .data-management,
  body.print-test-sheet .step-panel[data-panel="data"] > h2,
  body.print-test-sheet form > .step-panel:not([data-panel="data"]) {
    display: none !important;
  }

  body.print-test-sheet form > .step-panel[data-panel="data"] {
    display: block !important;
  }

  body.print-test-sheet .blank-test-sheet {
    display: block !important;
    margin: 0 !important;
  }

  body.print-test-sheet .blank-sheet-page {
    width: 100%;
    max-width: none;
    min-height: 269mm;
    height: 269mm;
    box-sizing: border-box;
    margin: 0 auto !important;
    padding: 7mm 8mm;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    font-size: 8.5pt;
    line-height: 1.22;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  body.print-test-sheet .blank-sheet-head {
    display: grid !important;
    padding-bottom: 2.5mm;
  }

  body.print-test-sheet .blank-sheet-head h1 {
    margin: 1mm 0;
    font-size: 17pt;
  }

  body.print-test-sheet .blank-sheet-head strong {
    padding: 2mm 3mm;
  }

  body.print-test-sheet .blank-sheet-note {
    grid-template-columns: 18mm minmax(0, 1fr);
    gap: 2mm;
    margin: 2.5mm 0;
    padding: 2mm 2.5mm;
  }

  body.print-test-sheet .blank-sheet-section {
    margin-top: 2mm;
  }

  body.print-test-sheet .blank-sheet-section h2 {
    margin-bottom: 1mm;
    font-size: 10.5pt;
  }

  body.print-test-sheet .blank-sheet-section th,
  body.print-test-sheet .blank-sheet-section td {
    padding: 1.35mm 2mm;
  }

  body.print-test-sheet .blank-sheet-section td:nth-child(3) {
    height: 5mm;
  }

  body.print-test-sheet .blank-sheet-footer {
    margin-top: 3mm;
  }

  @page {
    size: A4 portrait;
    margin: 14mm;
  }
}



.management-layout {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.management-side,
.management-main {
  display: grid;
  gap: 18px;
}

.student-summary,
.management-controls,
.record-list,
.trend-panel,
.detail-paper {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
}

.student-profile-card {
  display: grid;
  gap: 12px;
}

.student-profile-card span,
.student-profile-card em,
.record-date span,
.record-metrics span,
.profile-deltas span {
  color: var(--muted);
  font-style: normal;
  font-size: 13px;
}

.student-profile-card strong {
  display: block;
  font-size: 26px;
  margin: 4px 0;
}

.profile-metrics,
.profile-deltas,
.record-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.profile-metrics b,
.profile-deltas span,
.record-metrics span {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 5px 9px;
  background: #f8fafc;
}

.record-timeline {
  display: grid;
  gap: 10px;
}

.record-item {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}

.record-item.latest {
  border-color: var(--accent);
  background: #f2fbf9;
}

.record-date strong {
  display: block;
  font-size: 17px;
}

.exam-prep-panel {
  display: grid;
  gap: 10px;
}

.exam-action-map {
  gap: 12px;
}

.exam-core-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  border: 1px solid var(--line);
  border-left: 5px solid var(--accent);
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff, #f8fbff);
  padding: 12px 14px;
}

.exam-core-card strong {
  display: block;
  color: var(--accent-deep);
  font-size: 1.05rem;
  margin-bottom: 5px;
}

.exam-core-card p {
  margin: 0;
  color: #344054;
}

.exam-parent-counts {
  display: grid;
  grid-template-columns: repeat(2, max-content);
  gap: 6px;
}

.exam-parent-counts span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #ffffff;
  padding: 4px 9px;
  color: #344054;
  white-space: nowrap;
}

.exam-priority-map {
  display: grid;
  gap: 10px;
}

.exam-parent-card {
  border: 1px solid var(--line);
  border-left: 5px solid #b9cbe0;
  border-radius: 8px;
  background: #ffffff;
  padding: 12px 14px;
}

.exam-parent-card.primary {
  border-left-color: var(--gold);
  background: #fffdf7;
}

.exam-card-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.exam-card-title > span {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--accent);
  color: #ffffff;
  font-weight: 800;
}

.exam-card-title b {
  display: block;
  color: var(--accent-deep);
}

.exam-card-title em {
  display: inline-block;
  margin-top: 3px;
  color: #7a8798;
  font-style: normal;
}

.exam-card-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}

.exam-card-metrics p {
  margin: 0;
  border: 1px solid #d9e5f2;
  border-radius: 8px;
  background: #f8fbff;
  padding: 8px 10px;
  color: #23395d;
}

.exam-card-metrics small {
  display: block;
  margin-bottom: 3px;
  color: var(--muted);
}

.exam-parent-card dl {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 5px 10px;
  margin: 0;
}

.exam-parent-card dt {
  color: var(--accent);
  font-weight: 800;
}

.exam-parent-card dd {
  margin: 0;
  color: #344054;
}

.exam-secondary-list {
  border: 1px dashed #cbd7e4;
  border-radius: 8px;
  background: #fbfcfd;
  padding: 9px 12px;
}

.exam-secondary-list summary {
  cursor: pointer;
  color: var(--accent-deep);
  font-weight: 800;
}

.exam-secondary-list p {
  margin: 8px 0 0;
  color: #344054;
}

.parent-goals {
  grid-template-columns: 1fr;
}

.exam-stage-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  border: 1px solid var(--line);
  border-left: 5px solid var(--accent);
  background: #f8fafc;
  padding: 12px 14px;
}

.exam-stage-summary strong {
  display: block;
  color: var(--accent);
  font-size: 1.02rem;
  margin-bottom: 4px;
}

.exam-stage-summary p {
  margin: 0;
  color: #344054;
}

.exam-status-counts {
  display: grid;
  grid-template-columns: repeat(2, max-content);
  gap: 6px;
}

.exam-status-counts span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #ffffff;
  padding: 4px 8px;
  color: #344054;
  white-space: nowrap;
}

.exam-transition-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.exam-transition-grid > div,
.exam-goal-card,
.exam-priority-list {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 10px 12px;
}

.exam-transition-grid h4,
.exam-goal-card h4,
.exam-priority-list h4 {
  margin: 0 0 8px;
  color: var(--accent);
}

.exam-transition-grid p {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
}

.exam-tag {
  border-radius: 999px;
  padding: 4px 8px;
  border: 1px solid transparent;
}

.exam-tag.current {
  color: #1d4f7a;
  background: #eaf4fb;
  border-color: #c9e1f1;
}

.exam-tag.next {
  color: #8a4f08;
  background: #fff3dc;
  border-color: #f0d29d;
}

.exam-tag.shift {
  color: #27665d;
  background: var(--accent-soft);
  border-color: #c8e4de;
}

.exam-rule-note {
  border: 1px dashed #c8d5df;
  background: #fbfcfd;
  color: var(--muted);
  padding: 8px 10px;
  border-radius: 8px;
}

.exam-prep-head {
  border: 1px solid var(--line);
  border-left: 5px solid var(--accent);
  padding: 10px 12px;
  background: #f8fafc;
}

.exam-prep-head strong {
  display: block;
  color: var(--accent);
  font-size: 1rem;
}

.exam-prep-head span,
.exam-note {
  color: var(--muted);
}

.exam-prep-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.exam-prep-grid > div,
.exam-need-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: #ffffff;
}

.exam-prep-grid h4 {
  margin: 0 0 8px;
  color: var(--accent);
}

.exam-prep-grid p {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.exam-prep-grid p span {
  border-radius: 999px;
  background: var(--accent-soft);
  padding: 4px 8px;
}

.exam-need-list {
  display: grid;
  gap: 8px;
}

.exam-need-item b {
  display: block;
  margin-bottom: 4px;
}

@media (max-width: 980px) {
  .management-layout,
  .exam-prep-grid {
    grid-template-columns: 1fr;
  }

  .record-item {
    grid-template-columns: 1fr;
  }
}






.management-controls {
  display: grid;
  gap: 12px;
}

.student-summary {
  padding: 0;
  overflow: hidden;
}

.student-profile-card {
  position: relative;
  padding: 24px;
  background: linear-gradient(180deg, #ffffff 0%, #f7fbfa 100%);
}

.student-profile-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: var(--accent);
}

.student-profile-card > div:first-child {
  border-bottom: 1px solid var(--line);
  padding-bottom: 16px;
}

.profile-heading {
  display: grid;
  gap: 4px;
}

.profile-detail-button {
  width: auto;
  justify-self: start;
  margin-top: 8px;
  padding: 8px 14px;
  border-color: var(--accent);
  background: var(--accent);
  color: #ffffff;
  font-weight: 800;
}

.profile-detail-button:hover {
  background: var(--accent-deep);
  color: #ffffff;
}

.student-profile-card span {
  display: inline-flex;
  align-items: center;
  color: var(--accent);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0;
}

.student-profile-card strong {
  font-size: 34px;
  line-height: 1.1;
  margin: 8px 0 10px;
}

.student-profile-card em {
  display: block;
  line-height: 1.5;
}

.profile-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.profile-metrics b {
  border-radius: 8px;
  padding: 10px 12px;
  background: #ffffff;
  border-color: #d9e2ec;
  font-size: 15px;
}

.profile-deltas {
  padding: 0 22px 22px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.profile-deltas span {
  border-radius: 8px;
  padding: 8px 10px;
  background: #f8fafc;
}

.record-list {
  padding: 18px;
}

.record-item {
  grid-template-columns: 160px minmax(0, 1fr) auto;
  border-left: 4px solid transparent;
  box-shadow: 0 1px 0 rgba(16, 24, 40, 0.03);
  padding: 14px 16px;
}

.record-item.latest {
  border-left-color: var(--accent);
}

.record-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.record-actions button {
  white-space: nowrap;
}


.exam-prep-grid.compact {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 8px;
}

.exam-prep-grid.compact > div {
  padding: 10px 12px;
  background: #fbfcfd;
}

.exam-need-list.compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.exam-need-list.compact .exam-need-item {
  padding: 10px 12px;
  border-left: 4px solid #d6e8e4;
}

.exam-need-title {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 7px;
}

.exam-need-list.compact .exam-need-item b,
.exam-need-title b {
  color: #102a43;
}

.exam-need-title span {
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent);
  padding: 3px 8px;
  white-space: nowrap;
}

.exam-need-item dl {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 5px 8px;
  margin: 0;
}

.exam-need-item dt {
  color: var(--accent);
  font-weight: 800;
  font-size: 0.86rem;
}

.exam-need-item dd {
  margin: 0;
  color: #344054;
}

.exam-priority-list {
  display: grid;
  gap: 6px;
}

.exam-priority-list > div {
  display: grid;
  grid-template-columns: 28px 74px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  border-top: 1px solid #edf1f4;
  padding-top: 6px;
}

.exam-priority-list > div:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.exam-priority-list span {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: #102a43;
  color: #ffffff;
  font-size: 0.82rem;
}

.exam-priority-list b {
  color: var(--accent);
}

.exam-priority-list p,
.exam-goal-card p {
  margin: 0;
  color: #344054;
}

.exam-goal-card {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 14px;
  border-left: 5px solid #d9a441;
  background: #fffdf8;
}

.exam-goal-card h4 {
  grid-column: 1 / -1;
}

@media (max-width: 980px) {
  .exam-prep-grid.compact,
  .exam-need-list.compact,
  .exam-stage-summary,
  .exam-transition-grid,
  .exam-goal-card,
  .development-summary,
  .development-priority-grid,
  .development-plan-grid,
  .growth-need-cards,
  .growth-support-row,
  .data-management,
  .data-overview {
    grid-template-columns: 1fr;
  }

  .growth-evidence-flow {
    grid-template-columns: 1fr;
  }

  .growth-evidence-flow i {
    display: none;
  }

  .exam-status-counts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .exam-priority-list > div {
    grid-template-columns: 28px 74px minmax(0, 1fr);
  }
  }

.product-intro-panel {
  overflow: hidden;
}

.product-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 22px;
  align-items: stretch;
  border: 1px solid var(--line);
  border-left: 6px solid var(--accent);
  border-radius: 8px;
  background: linear-gradient(110deg, #ffffff 0%, #f5faff 62%, #fff8d8 100%);
  padding: 24px;
  margin-bottom: 18px;
}

.intro-kicker {
  display: inline-block;
  margin-bottom: 8px;
  color: var(--accent);
  font-weight: 800;
}

.product-hero strong {
  display: block;
  color: var(--accent-deep);
  font-size: 1.8rem;
  line-height: 1.3;
  margin-bottom: 10px;
}

.product-hero p,
.product-note {
  margin: 0;
  color: var(--muted);
  line-height: 1.8;
}

.product-flow {
  display: grid;
  gap: 10px;
}

.product-flow div {
  border: 1px solid var(--line);
  border-left: 5px solid var(--gold);
  border-radius: 8px;
  background: rgba(255,255,255,.86);
  padding: 14px 16px;
}

.product-flow div:first-child {
  border-left-color: var(--accent);
}

.product-flow b,
.product-card-grid b,
.product-logic-card b {
  color: var(--accent-deep);
}

.product-flow span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
}

.product-section {
  margin-top: 18px;
}

.product-section h3 {
  color: var(--accent);
  margin-bottom: 12px;
}

.product-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.product-card-grid.four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.product-card-grid article,
.product-logic-card {
  border: 1px solid var(--line);
  border-top: 4px solid var(--accent);
  border-radius: 8px;
  background: #ffffff;
  padding: 16px;
  box-shadow: 0 10px 24px rgba(32, 76, 132, 0.06);
}

.product-card-grid article:nth-child(even),
.product-logic-card {
  border-top-color: var(--gold);
}

.product-card-grid p,
.product-logic-card li {
  color: #344054;
  line-height: 1.7;
}

.product-two-col {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  gap: 16px;
}

.metric-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.metric-cloud span {
  border: 1px solid #cfe0f2;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent-deep);
  padding: 6px 10px;
  font-weight: 700;
}

.product-logic-card ol {
  margin: 0;
  padding-left: 20px;
}

.source-section {
  border: 1px solid var(--line);
  border-top: 5px solid var(--gold);
  border-radius: 8px;
  padding: 18px;
  background: #fffefa;
}

.source-hero.compact {
  margin-bottom: 14px;
  background: #ffffff;
}

@media (max-width: 980px) {
  .product-hero,
  .product-two-col,
  .product-card-grid,
  .product-card-grid.four {
    grid-template-columns: 1fr;
  }
}



.source-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.source-links a {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid #cfe0f2;
  border-radius: 999px;
  background: #f3f9ff;
  color: #17468c;
  font-weight: 700;
  text-decoration: none;
  line-height: 1.35;
}

.source-links a:hover {
  border-color: #2f7fdc;
  background: #eaf4ff;
}

.compact-source-grid .source-card > p {
  grid-column: 1 / -1;
  font-size: 13px;
  line-height: 1.55;
}

.compact-source-grid .source-card {
  grid-template-columns: auto minmax(0, 1fr);
  align-content: start;
  min-height: 132px;
}

.compact-source-grid .source-card > div:first-child {
  grid-column: 1 / -1;
}

.compact-source-grid .source-card > em {
  grid-column: 1;
  align-self: stretch;
  display: flex;
  align-items: center;
  white-space: nowrap;
  font-size: 12px;
}

.compact-source-grid .source-card > .source-links {
  grid-column: 2;
  align-self: stretch;
  justify-content: flex-start;
  align-items: center;
  margin-top: 0;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.compact-source-grid .source-links a {
  min-height: 26px;
  padding: 4px 9px;
  font-size: 12px;
  line-height: 1.35;
  text-decoration: none;
  cursor: pointer;
}

.source-info-dialog {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(20, 43, 76, 0.42);
  backdrop-filter: blur(5px);
}

.source-info-dialog[hidden] {
  display: none;
}

.source-info-card {
  position: relative;
  width: min(680px, 100%);
  max-height: min(760px, calc(100vh - 48px));
  overflow: auto;
  padding: 30px;
  border: 1px solid #d8e5f5;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 26px 70px rgba(24, 62, 112, 0.24);
}

.source-info-close {
  position: absolute;
  top: 16px;
  right: 16px;
  display: grid;
  place-items: center;
  width: 36px;
  min-width: 36px;
  max-width: 36px;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #58708e;
  background: #f0f5fb;
  font-size: 24px;
  font-family: Arial, sans-serif;
  font-weight: 400;
  line-height: 1;
  text-indent: 0;
  transform: none;
  cursor: pointer;
  box-sizing: border-box;
}

.source-info-close:hover {
  color: #275ea8;
  background: #e5eef9;
}

.source-info-kicker {
  color: #3e7ed8;
  font-size: 13px;
  font-weight: 800;
}

.source-info-card h3 {
  margin: 8px 44px 22px 0;
  color: var(--accent-deep);
  font-size: 23px;
  line-height: 1.4;
}

.source-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.source-info-grid > div,
.source-info-section,
.source-info-note {
  padding: 16px;
  border-radius: 14px;
  background: #f6f9fe;
}

.source-info-section,
.source-info-note {
  margin-top: 12px;
}

.source-info-content {
  margin-top: 12px;
}

.source-info-content h4 {
  margin: 0 0 10px;
  color: #214b82;
  font-size: 15px;
}

.source-info-content ul {
  margin: 0;
  padding-left: 20px;
  color: #5f6f84;
  font-size: 13px;
  line-height: 1.7;
}

.source-rule-table-wrap {
  margin-top: 12px;
  overflow: auto;
  border: 1px solid #d9e6f5;
  border-radius: 12px;
}

.source-rule-table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  background: #fff;
  font-size: 12px;
}

.source-rule-table th,
.source-rule-table td {
  padding: 7px 9px;
  border-bottom: 1px solid #e6edf6;
  text-align: center;
}

.source-rule-table th {
  color: #214b82;
  background: #edf5ff;
  font-weight: 800;
}

.source-rule-table tbody tr:last-child td {
  border-bottom: 0;
}

.source-info-note {
  border: 1px solid #f0dfae;
  background: #fffaf0;
}

.source-info-card b {
  color: #214b82;
  font-size: 14px;
}

.source-info-card p {
  margin: 7px 0 0;
  color: #5f6f84;
  font-size: 14px;
  line-height: 1.7;
}

.source-info-section ol {
  margin: 10px 0 0;
  padding-left: 24px;
  color: #5f6f84;
  font-size: 14px;
  line-height: 1.75;
}

.source-info-section ol li + li {
  margin-top: 5px;
}

.source-rule-callout {
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px solid #d8e6f7;
  border-radius: 14px;
  background: #f5f9fe;
}

.source-rule-callout p {
  margin-top: 5px;
}

.source-info-card > .primary-action {
  margin-top: 20px;
  min-width: 120px;
}

.home-panel .landing-goal-flow li:not(:last-child)::after {
  right: -21px;
  width: 18px;
  font-size: 16px;
}

@media (max-width: 640px) {
  .source-info-card {
    padding: 24px 18px;
  }

  .source-info-grid {
    grid-template-columns: 1fr;
  }
}



/* modern three-page architecture */
.landing-mode .app-header {
  display: none;
}

.landing-mode .dashboard-shell {
  width: min(1240px, calc(100% - 72px));
  margin-top: 34px;
}

.landing-mode .step-panel {
  display: none;
}

.landing-mode .step-panel[data-panel="home"].active {
  display: block;
}

.landing-panel {
  border: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.landing-page {
  display: grid;
  gap: 26px;
}

.landing-hero {
  min-height: 390px;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) 420px;
  gap: 28px;
  align-items: stretch;
  padding: 34px;
  border-radius: 24px;
  background:
    radial-gradient(circle at 82% 18%, rgba(233, 185, 73, 0.28), transparent 28%),
    linear-gradient(135deg, #ffffff 0%, #f6faff 52%, #eaf4ff 100%);
  box-shadow: 0 18px 48px rgba(38, 67, 110, 0.12);
}

.landing-copy {
  align-self: center;
  max-width: 690px;
}

.landing-kicker {
  display: inline-flex;
  margin-bottom: 18px;
  color: var(--accent);
  font-weight: 700;
}

.landing-copy h2 {
  margin: 0;
  color: var(--accent-deep);
  font-size: clamp(36px, 4vw, 48px);
  line-height: 1.18;
  letter-spacing: 0;
}

.landing-copy p {
  max-width: 620px;
  margin: 18px 0 28px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.75;
}

.landing-actions,
.feature-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.landing-actions button,
.feature-entry-card button {
  width: auto;
  min-height: 44px;
  padding: 10px 20px;
  text-align: center;
  font-weight: 700;
}

.landing-actions button:first-child,
.feature-entry-card button {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
}

.landing-overview-panel {
  align-self: stretch;
  display: grid;
  align-content: center;
  gap: 10px;
  padding: 28px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(220, 229, 240, 0.9);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
}

.landing-overview-panel > span {
  color: var(--muted);
}

.landing-overview-panel > strong {
  color: var(--accent);
  font-size: 58px;
  line-height: 1;
}

.landing-overview-panel > em {
  color: var(--accent-deep);
  font-style: normal;
  font-weight: 700;
}

.landing-overview-panel div {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.landing-overview-panel b {
  padding: 12px 14px;
  border-radius: 12px;
  color: var(--ink);
  background: #f5f8fc;
  font-weight: 600;
}

.landing-overview-panel i {
  color: var(--accent);
  font-style: normal;
}

.landing-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.feature-entry-card {
  min-height: 250px;
  padding: 26px;
  border-radius: 20px;
  border: 1px solid rgba(220, 229, 240, 0.9);
  background: linear-gradient(145deg, #ffffff, #f6faff);
  box-shadow: 0 12px 32px rgba(38, 67, 110, 0.08);
  transition: transform 180ms ease-out, box-shadow 180ms ease-out;
}

.feature-entry-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 44px rgba(38, 67, 110, 0.13);
}

.feature-gold {
  background: linear-gradient(145deg, #ffffff, #fff9df);
}

.feature-slate {
  background: linear-gradient(145deg, #ffffff, #f2f5f8);
}

.feature-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: #fff;
  background: var(--accent);
  font-weight: 800;
  font-size: 22px;
}

.feature-gold .feature-icon {
  background: #d6a936;
}

.feature-slate .feature-icon {
  background: #213a5b;
}

.feature-entry-card h3 {
  margin-top: 18px;
  color: var(--accent-deep);
  font-size: 22px;
}

.feature-entry-card p {
  min-height: 56px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}

.feature-tags span {
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(63, 120, 215, 0.10);
  color: var(--accent-deep);
  font-size: 13px;
}

.landing-quick-actions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.landing-quick-actions button {
  min-height: 76px;
  padding: 14px 16px;
  border-radius: 16px;
  text-align: left;
  background: rgba(255,255,255,0.86);
}

.landing-quick-actions button:disabled {
  opacity: 0.48;
  cursor: not-allowed;
}

.landing-quick-actions b,
.landing-quick-actions span {
  display: block;
}

.landing-quick-actions b {
  color: var(--accent-deep);
}

.landing-quick-actions span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 13px;
}

.landing-value,
.landing-source-summary {
  padding: 26px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid var(--line);
}

.landing-value {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 28px;
  align-items: center;
}

.landing-value span {
  color: var(--accent);
  font-weight: 700;
}

.landing-value h3,
.landing-source-summary h3 {
  margin-top: 8px;
  color: var(--accent-deep);
  font-size: 24px;
}

.landing-flow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  background: linear-gradient(90deg, rgba(63,120,215,.18), rgba(233,185,73,.20));
  border-radius: 18px;
  overflow: hidden;
}

.landing-flow li {
  padding: 22px;
}

.landing-flow li + li {
  border-left: 1px solid rgba(255,255,255,0.8);
}

.landing-flow b,
.landing-flow span {
  display: block;
}

.landing-flow b {
  color: var(--accent-deep);
  font-size: 20px;
}

.landing-flow span {
  margin-top: 8px;
  color: var(--muted);
}

.landing-source-summary {
  display: grid;
  gap: 14px;
}

.landing-source-summary p {
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
}

.landing-source-summary summary {
  width: fit-content;
  padding: 10px 16px;
  border-radius: 999px;
  color: #fff;
  background: var(--accent);
  cursor: pointer;
  font-weight: 700;
}

.compact-source-grid {
  margin-top: 18px;
}

.landing-footer {
  padding: 14px 0 24px;
  color: var(--muted);
  text-align: center;
  font-size: 13px;
}

.business-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.home-return {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  padding: 0;
  border-radius: 12px;
  color: var(--accent-deep);
  font-weight: 800;
  text-align: center;
}

.entry-feedback .completion-meter,
.entry-feedback #entryCompletionText,
.entry-feedback #entryModuleStates,
.entry-feedback h3:has(+ .completion-meter) {
  display: none !important;
}

.entry-feedback .feedback-card:has(.completion-meter) {
  display: none !important;
}

@media (max-width: 980px) {
  .landing-mode .dashboard-shell {
    width: min(100% - 24px, 1240px);
  }

  .landing-hero,
  .landing-feature-grid,
  .landing-quick-actions,
  .landing-value,
  .landing-flow {
    grid-template-columns: 1fr;
  }

  .landing-flow li + li {
    border-left: 0;
    border-top: 1px solid rgba(255,255,255,0.8);
  }
}


/* brand logo placement */
.business-brand {
  display: flex;
  align-items: center;
  gap: 14px;
}

.nav-brand-logo {
  width: 112px;
  height: 42px;
  object-fit: contain;
  display: block;
  mix-blend-mode: multiply;
}

.landing-brand-logo {
  width: 190px;
  height: 76px;
  object-fit: contain;
  display: block;
  margin: 0 0 18px;
  mix-blend-mode: multiply;
}

@media (max-width: 760px) {
  .nav-brand-logo {
    width: 92px;
    height: 34px;
  }

  .landing-brand-logo {
    width: 150px;
    height: 60px;
  }
}

/* Parent-friendly height and weight evidence. */
.growth-parent-intro {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.growth-parent-intro > b {
  grid-column: 1 / -1;
  color: #234d83;
  font-size: 16px;
}

.growth-parent-intro > span {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 3px 9px;
  padding: 13px;
  border-radius: 14px;
  background: linear-gradient(145deg, #edf5ff, #fafcff);
}

.growth-parent-intro i {
  grid-row: 1 / 3;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #4a82d4;
  font-style: normal;
  font-weight: 900;
}

.growth-parent-intro strong {
  color: #1d477e;
  font-size: 14px;
}

.growth-parent-intro small {
  color: #667991;
  line-height: 1.55;
}

.growth-parent-scale {
  display: grid;
  gap: 7px;
}

.growth-parent-scale > span {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  align-items: center;
  min-height: 48px;
  padding: 8px 11px;
  border-radius: 10px;
}

.growth-parent-scale b {
  color: #234d83;
}

.growth-parent-scale small {
  color: #5f7188;
  line-height: 1.5;
}

.growth-parent-scale .is-alert {
  background: #fff3ef;
  border-left: 4px solid #e88162;
}

.growth-parent-scale .is-watch {
  background: #fff8e8;
  border-left: 4px solid #e3ad37;
}

.growth-parent-scale .is-usual {
  background: #edf8f5;
  border-left: 4px solid #55b39f;
}

.growth-parent-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 14px;
  border-radius: 14px;
  background: #f5f8fc;
}

.growth-parent-actions > b {
  grid-column: 1 / -1;
  color: #234d83;
  font-size: 15px;
}

.growth-parent-actions > span {
  position: relative;
  padding: 9px 10px 9px 30px;
  border-radius: 9px;
  background: #fff;
  color: #536981;
}

.growth-parent-actions > span::before {
  content: "!";
  position: absolute;
  left: 10px;
  top: 9px;
  display: grid;
  width: 15px;
  height: 15px;
  place-items: center;
  border-radius: 50%;
  background: #fff0c8;
  color: #b47d0c;
  font-size: 10px;
  font-weight: 900;
}

.growth-professional-notes {
  overflow: hidden;
  border: 1px solid #dce6f2;
  border-radius: 13px;
  background: #fbfdff;
}

.growth-professional-notes summary {
  padding: 12px 15px;
  color: #3975c8;
  cursor: pointer;
  font-weight: 900;
}

.growth-professional-body {
  display: grid;
  gap: 10px;
  padding: 0 15px 15px;
}

.growth-professional-body > p {
  margin: 0;
  color: #60738c;
  line-height: 1.65;
}

@media (max-width: 760px) {
  .growth-parent-intro,
  .growth-rule-grid,
  .growth-parent-actions {
    grid-template-columns: 1fr;
  }

  .growth-parent-intro > b,
  .growth-parent-actions > b {
    grid-column: 1;
  }

  .growth-parent-scale > span {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}


/* refined brand and page chrome */
.business-header-inner {
  display: grid;
  gap: 12px;
}

.business-brand {
  min-width: 0;
}

.business-brand h1 {
  white-space: nowrap;
}

.brand-row {
  align-items: center;
  margin-bottom: 0;
}

.top-nav {
  align-items: center;
}

.top-nav .home-return {
  flex: 0 0 auto;
  margin-right: 6px;
  border-radius: 12px;
}

.nav-brand-logo {
  width: 132px;
  height: 44px;
}

@media (max-width: 760px) {
  .business-brand h1 {
    white-space: normal;
  }
}


/* Data management page uses inner cards only. */
.business-mode .step-panel[data-panel="data"] {
  background: transparent;
  border: 0;
  border-top: 0;
  box-shadow: none;
  padding: 0;
  margin-bottom: 0;
}

.blank-test-sheet:empty {
  display: none;
}


/* Health archive empty states. */
.health-empty {
  color: #8a98ad;
  line-height: 1.6;
}

.health-empty-side {
  min-height: 64px;
  display: flex;
  align-items: center;
  padding: 4px 0;
}

.health-empty-main {
  min-height: 64px;
  display: flex;
  align-items: center;
  padding: 0 4px;
}


/* Refined landing feature cards. */
.landing-feature-grid {
  gap: 18px;
}

.feature-entry-card {
  min-height: 170px;
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  grid-template-rows: auto 1fr auto;
  column-gap: 18px;
  row-gap: 8px;
  align-items: start;
  padding: 24px;
}

.feature-entry-card .feature-icon {
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 48px;
  height: 48px;
  align-self: start;
}

.feature-entry-card h3 {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  font-size: 23px;
  line-height: 1.25;
}

.feature-entry-card p {
  grid-column: 2;
  grid-row: 2;
  min-height: 0;
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
}

.feature-entry-card button {
  grid-column: 2;
  grid-row: 3;
  justify-self: start;
  margin-top: 8px;
}


/* Landing hero without redundant intro blocks. */
.landing-hero {
  min-height: 310px;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  padding: 44px 48px;
  align-items: center;
}

.landing-copy {
  max-width: 920px;
}

.landing-copy h2 {
  max-width: 880px;
}

.landing-copy p {
  max-width: 760px;
}

.landing-actions {
  margin-top: 8px;
}


/* Product goal process redesign. */
.landing-goal {
  grid-template-columns: minmax(320px, 0.78fr) minmax(0, 1.22fr);
  align-items: center;
  gap: 34px;
}

.landing-goal-copy h3 {
  margin-bottom: 14px;
  line-height: 1.35;
}

.landing-goal-copy p {
  margin: 0;
  color: var(--text);
  line-height: 1.85;
}

.landing-goal-flow {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.landing-goal-flow li {
  position: relative;
  min-height: 248px;
  padding: 22px 18px 20px;
  border: 1px solid #dbe6f4;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(247,250,255,0.9));
  box-shadow: 0 18px 36px rgba(37, 83, 138, 0.08);
}

.landing-goal-flow li:nth-child(2),
.landing-goal-flow li:nth-child(4) {
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,249,226,0.86));
}

.landing-goal-flow li:not(:last-child)::after {
  content: ">";
  position: absolute;
  right: -17px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--accent);
  font-size: 32px;
  font-weight: 800;
}

.landing-goal-flow b {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-bottom: 18px;
  border-radius: 999px;
  color: var(--accent);
  background: #edf5ff;
  border: 1px solid #d8e7fb;
  font-size: 22px;
}

.landing-goal-flow li:nth-child(2) b {
  color: #a37512;
  background: #fff5d8;
  border-color: #f0dfad;
}

.landing-goal-flow li:nth-child(3) b {
  color: #287b88;
  background: #eaf8fb;
  border-color: #cfedf2;
}

.landing-goal-flow li:nth-child(4) b {
  color: #6b55bf;
  background: #f1edff;
  border-color: #ded6fb;
}

.landing-goal-flow strong {
  display: block;
  color: var(--accent-deep);
  font-size: 24px;
  line-height: 1.25;
}

.landing-goal-flow p {
  min-height: 86px;
  margin: 12px 0 16px;
  color: var(--muted);
  line-height: 1.65;
}

.landing-goal-flow em {
  display: block;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(239, 246, 255, 0.9);
  color: var(--accent);
  font-style: normal;
  font-weight: 800;
  text-align: center;
}

.landing-goal-flow li:nth-child(2) em {
  color: #9a7215;
  background: #fff6dc;
}

.landing-goal-flow li:nth-child(3) em {
  color: #287b88;
  background: #eaf8fb;
}

.landing-goal-flow li:nth-child(4) em {
  color: #6b55bf;
  background: #f2efff;
}

@media (max-width: 1180px) {
  .landing-goal {
    grid-template-columns: 1fr;
  }

  .landing-goal-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .landing-goal-flow li:nth-child(2)::after {
    display: none;
  }
}

@media (max-width: 720px) {
  .landing-goal-flow {
    grid-template-columns: 1fr;
  }

  .landing-goal-flow li:not(:last-child)::after {
    display: none;
  }
}


/* Modern homepage composition based on product dashboard reference. */
.landing-page {
  max-width: 1560px;
  gap: 24px;
}

.landing-hero {
  min-height: 348px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(480px, 0.74fr);
  align-items: center;
  gap: 44px;
  padding: 44px 54px;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 22%, rgba(255, 210, 84, 0.18), transparent 28%),
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(246,250,255,0.94));
  border: 1px solid #d7e3f3;
  border-radius: 26px;
  box-shadow: 0 22px 60px rgba(32, 72, 126, 0.12);
}

.landing-copy {
  max-width: 780px;
}

.landing-copy h2 {
  max-width: 760px;
  margin: 0 0 22px;
  font-size: clamp(40px, 4.3vw, 58px);
  line-height: 1.12;
  letter-spacing: 0;
  color: #183d82;
}

.landing-copy p {
  max-width: 760px;
  margin: 0 0 28px;
  color: #62728b;
  font-size: 20px;
  line-height: 1.85;
}

.landing-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.landing-actions button {
  min-width: 144px;
  min-height: 52px;
  border-radius: 9px;
  font-size: 18px;
  font-weight: 800;
}

.landing-hero-side {
  display: grid;
  grid-template-columns: minmax(220px, 0.92fr) minmax(220px, 1fr);
  align-items: center;
  gap: 26px;
}

.landing-mini-stats {
  display: grid;
  gap: 11px;
  padding: 26px 28px;
  border: 1px solid #d7e3f3;
  border-radius: 18px;
  background: rgba(255,255,255,0.88);
  box-shadow: 0 16px 36px rgba(30, 70, 125, 0.11);
}

.landing-mini-stats span {
  color: #52657f;
  font-size: 18px;
  font-weight: 700;
}

.landing-mini-stats strong {
  color: #3f7fde;
  font-size: 64px;
  line-height: 1;
}

.landing-mini-stats em {
  margin-top: -4px;
  color: #173b7d;
  font-style: normal;
  font-weight: 800;
  font-size: 19px;
}

.landing-mini-stats b {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 12px;
  border-radius: 9px;
  background: #f4f7fc;
  color: #173b7d;
  font-size: 16px;
  font-weight: 800;
}

.landing-mini-stats i {
  color: #3f7fde;
  font-style: normal;
}

.landing-illustration {
  position: relative;
  min-height: 250px;
  border-radius: 24px;
  background:
    radial-gradient(circle at 48% 16%, rgba(81, 132, 226, 0.16), transparent 34%),
    linear-gradient(145deg, #f8fbff, #eef5ff);
}

.illus-board {
  position: absolute;
  left: 48px;
  top: 34px;
  width: 130px;
  height: 166px;
  border: 8px solid #5f8fed;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 18px 22px 0 rgba(64, 126, 220, 0.14);
  transform: rotate(7deg);
}

.illus-board::before {
  content: "";
  position: absolute;
  left: 36px;
  top: -20px;
  width: 56px;
  height: 24px;
  border-radius: 7px;
  background: #ffd66b;
  box-shadow: inset 0 -2px 0 rgba(145, 111, 23, 0.16);
}

.illus-board span {
  display: block;
  width: 70px;
  height: 9px;
  margin: 24px 0 0 28px;
  border-radius: 99px;
  background: #9cb9f4;
}

.illus-board span + span {
  margin-top: 14px;
}

.illus-board i {
  position: absolute;
  left: 28px;
  bottom: 30px;
  width: 78px;
  height: 28px;
  border-radius: 99px 99px 12px 12px;
  background: #8fb2f2;
}

.illus-heart {
  position: absolute;
  left: 42px;
  bottom: 44px;
  width: 54px;
  height: 54px;
  transform: rotate(-45deg);
  background: #5f8fed;
  border-radius: 12px;
  box-shadow: 8px 12px 0 rgba(95, 143, 237, 0.16);
}

.illus-heart::before,
.illus-heart::after {
  content: "";
  position: absolute;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #5f8fed;
}

.illus-heart::before {
  top: -25px;
  left: 0;
}

.illus-heart::after {
  left: 25px;
  top: 0;
}

.illus-bars {
  position: absolute;
  right: 36px;
  bottom: 38px;
  display: flex;
  align-items: flex-end;
  gap: 10px;
}

.illus-bars span {
  display: block;
  width: 22px;
  border-radius: 8px 8px 4px 4px;
  background: linear-gradient(180deg, #7aa5f4, #4f7fe2);
}

.illus-bars span:nth-child(1) { height: 58px; }
.illus-bars span:nth-child(2) { height: 86px; }
.illus-bars span:nth-child(3) { height: 122px; }

.landing-feature-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.feature-entry-card {
  min-height: 178px;
  grid-template-columns: 70px minmax(0, 1fr);
  align-items: start;
  padding: 30px 34px;
  border-radius: 22px;
  box-shadow: 0 18px 46px rgba(32, 72, 126, 0.09);
}

.feature-entry-card h3 {
  margin-top: 0;
  font-size: 28px;
}

.feature-entry-card p {
  max-width: 420px;
  font-size: 17px;
  line-height: 1.72;
}

.feature-entry-card button {
  margin-top: 10px;
  min-width: 120px;
  min-height: 46px;
  border-radius: 9px;
  font-weight: 800;
}

.feature-gold button {
  background: linear-gradient(135deg, #e5ac1c, #d49a0f);
  border-color: #d49a0f;
}

.landing-goal {
  grid-template-columns: minmax(360px, 0.66fr) minmax(720px, 1.34fr);
  align-items: center;
  gap: 36px;
  padding: 36px 40px;
}

.landing-goal-copy h3 {
  margin: 12px 0 18px;
  font-size: 32px;
  line-height: 1.38;
}

.landing-goal-copy p {
  font-size: 18px;
  line-height: 1.8;
}

.landing-goal-flow {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 34px;
  padding-bottom: 34px;
}

.landing-goal-flow::after {
  content: "";
  position: absolute;
  left: 9%;
  right: 9%;
  bottom: 10px;
  border-bottom: 3px dashed rgba(94, 143, 237, 0.36);
}

.landing-goal-flow li {
  min-height: 250px;
  display: grid;
  align-content: start;
  justify-items: center;
  text-align: center;
  padding: 20px 18px 18px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,251,255,0.95));
}

.landing-goal-flow li:not(:last-child)::after {
  content: "";
  width: 20px;
  height: 20px;
  right: -30px;
  top: 50%;
  border-top: 4px solid #4e80df;
  border-right: 4px solid #4e80df;
  transform: translateY(-50%) rotate(45deg);
}

.landing-goal-flow b {
  width: 42px;
  height: 42px;
  margin: -36px 0 10px;
  border-radius: 50%;
  font-size: 20px;
}

.landing-goal-flow strong {
  font-size: 25px;
}

.landing-goal-flow p {
  min-height: 76px;
  margin: 10px 0 12px;
  font-size: 16px;
  line-height: 1.62;
}

.goal-icon {
  position: relative;
  display: block;
  width: 92px;
  height: 92px;
  margin: 4px auto 14px;
  border-radius: 22px;
  background: linear-gradient(145deg, #f6faff, #e9f1ff);
  box-shadow: inset 0 0 0 1px #d9e6f7;
}

.goal-step-entry .goal-icon::before {
  content: "";
  position: absolute;
  left: 26px;
  top: 18px;
  width: 42px;
  height: 54px;
  border: 6px solid #5a8be8;
  border-radius: 8px;
}

.goal-step-entry .goal-icon::after {
  content: "";
  position: absolute;
  left: 35px;
  top: 36px;
  width: 26px;
  height: 17px;
  border-left: 5px solid #5a8be8;
  border-bottom: 5px solid #5a8be8;
  transform: rotate(-45deg);
}

.goal-step-eval .goal-icon {
  background: linear-gradient(145deg, #fffaf0, #fff2ce);
}

.goal-step-eval .goal-icon::before {
  content: "";
  position: absolute;
  left: 24px;
  bottom: 22px;
  width: 12px;
  height: 42px;
  background: #e3ae2c;
  box-shadow: 22px -14px 0 #e3ae2c, 44px -28px 0 #e3ae2c;
  border-radius: 5px 5px 0 0;
}

.goal-step-eval .goal-icon::after {
  content: "";
  position: absolute;
  right: 16px;
  bottom: 16px;
  width: 28px;
  height: 28px;
  border: 5px solid #32496f;
  border-radius: 50%;
  box-shadow: 16px 16px 0 -12px #32496f;
}

.goal-step-track .goal-icon {
  background: linear-gradient(145deg, #f2fbfd, #e4f8fb);
}

.goal-step-track .goal-icon::before {
  content: "";
  position: absolute;
  left: 20px;
  bottom: 22px;
  width: 56px;
  height: 42px;
  border-left: 5px solid #56b7c1;
  border-bottom: 5px solid #56b7c1;
}

.goal-step-track .goal-icon::after {
  content: "";
  position: absolute;
  left: 28px;
  top: 42px;
  width: 46px;
  height: 26px;
  border-top: 6px solid #56b7c1;
  border-right: 6px solid #56b7c1;
  transform: skewY(-22deg);
}

.goal-step-apply .goal-icon {
  background: linear-gradient(145deg, #f8f5ff, #eee9ff);
}

.goal-step-apply .goal-icon::before {
  content: "";
  position: absolute;
  left: 27px;
  top: 18px;
  width: 38px;
  height: 54px;
  border: 6px solid #8b6ee8;
  border-radius: 8px;
}

.goal-step-apply .goal-icon::after {
  content: "";
  position: absolute;
  right: 19px;
  bottom: 18px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #8b6ee8;
  box-shadow: inset 0 0 0 10px rgba(255,255,255,0.24);
}

.landing-goal-flow em {
  position: relative;
  z-index: 1;
  font-size: 16px;
  border-radius: 999px;
}

.landing-source-summary {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  padding: 24px 30px;
}

.landing-source-summary::before {
  content: "";
  width: 54px;
  height: 54px;
  border-radius: 16px;
  background: linear-gradient(135deg, #4f83e3, #325db0);
  box-shadow: inset 0 0 0 14px rgba(255,255,255,0.16);
}

.landing-source-summary > div h3 {
  margin: 0 0 8px;
  font-size: 26px;
}

.landing-source-summary > div p {
  font-size: 17px;
  line-height: 1.7;
}

.landing-source-summary details {
  justify-self: end;
}

.landing-source-summary details[open] {
  grid-column: 1 / -1;
  justify-self: stretch;
}

.landing-source-summary summary {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  font-size: 17px;
  font-weight: 800;
}

.landing-source-summary details[open] summary {
  margin-bottom: 18px;
}

.advice-source-section {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid rgba(219, 169, 55, 0.34);
}

.advice-source-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.advice-source-heading > span {
  flex: 0 0 auto;
  padding: 5px 10px;
  border-radius: 999px;
  color: #a86f0f;
  background: #fff4d8;
  font-size: 13px;
  font-weight: 800;
}

.advice-source-heading h4 {
  margin: 0 0 5px;
  color: var(--accent-deep);
  font-size: 19px;
}

.advice-source-heading p {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
}

.advice-source-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.advice-source-card {
  min-height: 248px;
  border-top-color: #dfa633;
  background: linear-gradient(155deg, #fffdf8 0%, #fff 72%);
}

.advice-source-card > p {
  font-size: 13px;
  line-height: 1.55;
}

.advice-source-card > em {
  font-size: 12px;
}

.advice-source-grid .source-links {
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 7px;
}

.advice-source-grid .source-links a {
  min-height: 26px;
  padding: 4px 9px;
  font-size: 12px;
  white-space: normal;
  line-height: 1.35;
}

@media (max-width: 1180px) {
  .advice-source-grid {
    grid-template-columns: 1fr;
  }

  .advice-source-card {
    min-height: 0;
  }
}

/* 展开评价依据时，按钮仍停留在标题区原位，仅让详情卡片向下展开。 */
@media (min-width: 1321px) {
  .landing-source-summary {
    position: relative;
  }

  .landing-source-summary:has(details[open]) > div {
    padding-right: 190px;
  }

  .landing-source-summary details[open] > summary {
    position: absolute;
    top: 40px;
    right: 28px;
    z-index: 3;
    margin: 0;
  }
}

@media (max-width: 1320px) {
  .landing-hero,
  .landing-goal {
    grid-template-columns: 1fr;
  }

  .landing-hero-side {
    grid-template-columns: minmax(260px, 0.55fr) minmax(280px, 0.45fr);
  }

  .landing-goal-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .landing-hero,
  .landing-goal {
    padding: 28px 22px;
  }

  .landing-hero-side,
  .landing-feature-grid,
  .landing-goal-flow,
  .landing-source-summary {
    grid-template-columns: 1fr;
  }

  .landing-illustration {
    display: none;
  }

  .landing-goal-flow li:not(:last-child)::after,
  .landing-goal-flow::after {
    display: none;
  }

  .landing-source-summary details {
    justify-self: start;
  }
}


/* Landing font scale and wrap refinement. */
.landing-hero {
  min-height: 326px;
  grid-template-columns: minmax(0, 1fr) minmax(440px, 0.7fr);
  gap: 34px;
  padding: 38px 46px;
}

.landing-copy h2 {
  max-width: 720px;
  font-size: clamp(34px, 3.45vw, 48px);
  line-height: 1.16;
}

.landing-copy p {
  max-width: 720px;
  font-size: 17px;
  line-height: 1.72;
}

.landing-actions {
  gap: 12px;
}

.landing-actions button {
  min-width: 132px;
  min-height: 46px;
  padding: 0 20px;
  font-size: 16px;
  white-space: nowrap;
}

.landing-hero-side {
  grid-template-columns: minmax(210px, 0.88fr) minmax(200px, 0.95fr);
  gap: 22px;
}

.landing-mini-stats {
  padding: 22px 24px;
  gap: 9px;
}

.landing-mini-stats span {
  font-size: 16px;
}

.landing-mini-stats strong {
  font-size: 54px;
}

.landing-mini-stats em {
  font-size: 17px;
}

.landing-mini-stats b {
  min-height: 34px;
  font-size: 14px;
  white-space: nowrap;
}

.landing-illustration {
  min-height: 222px;
}

.feature-entry-card {
  min-height: 164px;
  grid-template-columns: 62px minmax(0, 1fr);
  padding: 26px 28px;
}

.feature-icon {
  width: 52px;
  height: 52px;
  font-size: 24px;
}

.feature-entry-card h3 {
  font-size: 24px;
  white-space: nowrap;
}

.feature-entry-card p {
  font-size: 15px;
  line-height: 1.65;
}

.feature-entry-card button {
  min-width: 108px;
  min-height: 42px;
  padding: 0 18px;
  font-size: 15px;
  white-space: nowrap;
}

.landing-goal {
  grid-template-columns: minmax(330px, 0.62fr) minmax(680px, 1.38fr);
  gap: 30px;
  padding: 32px 36px;
}

.landing-goal-copy h3 {
  font-size: 27px;
  line-height: 1.34;
}

.landing-goal-copy p {
  font-size: 16px;
  line-height: 1.72;
}

.landing-goal-flow {
  gap: 28px;
}

.landing-goal-flow li {
  min-height: 228px;
  padding: 18px 16px 16px;
}

.landing-goal-flow b {
  width: 38px;
  height: 38px;
  margin-top: -34px;
  font-size: 18px;
}

.landing-goal-flow strong {
  font-size: 22px;
  white-space: nowrap;
}

.landing-goal-flow p {
  min-height: 68px;
  font-size: 14px;
  line-height: 1.55;
}

.goal-icon {
  width: 78px;
  height: 78px;
  margin-bottom: 12px;
}

.landing-goal-flow em {
  max-width: 100%;
  padding: 8px 10px;
  font-size: 14px;
  line-height: 1.35;
}

.landing-source-summary {
  padding: 22px 28px;
}

.landing-source-summary > div h3 {
  font-size: 23px;
}

.landing-source-summary > div p {
  font-size: 15px;
  line-height: 1.65;
}

.landing-source-summary summary {
  min-height: 44px;
  padding: 9px 16px;
  font-size: 15px;
  white-space: nowrap;
}

@media (max-width: 1320px) {
  .landing-hero,
  .landing-goal {
    grid-template-columns: 1fr;
  }
}


/* Landing font shrink two steps. */
.landing-copy h2 {
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.18;
}

.landing-copy p {
  font-size: 15px;
  line-height: 1.68;
}

.landing-actions button {
  min-width: 122px;
  min-height: 42px;
  padding: 0 18px;
  font-size: 14px;
}

.landing-mini-stats span {
  font-size: 14px;
}

.landing-mini-stats strong {
  font-size: 46px;
}

.landing-mini-stats em {
  font-size: 15px;
}

.landing-mini-stats b {
  min-height: 32px;
  font-size: 13px;
}

.feature-entry-card h3 {
  font-size: 21px;
}

.feature-entry-card p {
  font-size: 13.5px;
  line-height: 1.58;
}

.feature-entry-card button {
  min-width: 100px;
  min-height: 38px;
  font-size: 13.5px;
}

.landing-goal-copy h3 {
  font-size: 23px;
  line-height: 1.34;
}

.landing-goal-copy p {
  font-size: 14px;
  line-height: 1.65;
}

.landing-goal-flow b {
  width: 34px;
  height: 34px;
  font-size: 16px;
}

.landing-goal-flow strong {
  font-size: 19px;
}

.landing-goal-flow p {
  font-size: 12.5px;
  line-height: 1.5;
}

.landing-goal-flow em {
  font-size: 12.5px;
}

.landing-source-summary > div h3 {
  font-size: 20px;
}

.landing-source-summary > div p {
  font-size: 13.5px;
  line-height: 1.58;
}

.landing-source-summary summary {
  min-height: 40px;
  font-size: 13.5px;
}


/* Modern entry workbench redesign based on reference mockup. */
.entry-panel {
  padding-top: 26px;
}

.entry-workbench {
  max-width: 1460px;
  margin: 0 auto;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 410px);
  gap: 22px;
}

.entry-form-stack {
  gap: 18px;
}

.entry-card,
.entry-feedback .feedback-card,
.entry-action-bar {
  border-color: #dbe7f7;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 18px 44px rgba(38, 67, 110, 0.08);
}

.entry-card {
  padding: 28px;
}

.entry-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 20px;
  padding-bottom: 18px;
  margin-bottom: 22px;
  border-bottom-color: #e2ebf6;
}

.entry-card-head > div {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  column-gap: 16px;
}

.entry-card-head span {
  grid-row: 1 / span 2;
  width: 52px;
  height: 52px;
  border-radius: 10px;
  background: linear-gradient(135deg, #4c8be6, #1f5ed8);
  color: #fff;
  font-size: 23px;
  font-weight: 800;
  box-shadow: 0 12px 22px rgba(48, 112, 218, 0.22);
}

.entry-card-head h3 {
  margin: 0;
  color: #183d7a;
  font-size: 27px;
  line-height: 1.15;
  letter-spacing: 0;
}

.entry-card-head h3::after {
  display: inline-block;
  margin-left: 22px;
  padding-left: 22px;
  border-left: 1px solid #cfd9e8;
  color: #6d7b91;
  font-size: 16px;
  font-weight: 700;
  vertical-align: 4px;
}

.entry-card[data-entry-card="basic"] .entry-card-head h3::after {
  content: "步骤 1/3";
}

.entry-card[data-entry-card="body"] .entry-card-head h3::after {
  content: "步骤 2/3";
}

.entry-card[data-entry-card="fitness"] .entry-card-head h3::after {
  content: "步骤 3/3";
}

.entry-card-head p {
  grid-column: 2 / -1;
  margin: 8px 0 0;
  color: #74839a;
  font-size: 15.5px;
  line-height: 1.55;
}

.entry-status {
  align-self: center;
  padding: 9px 18px;
  border-radius: 999px;
  border-color: #f5d7bd;
  background: #fff0e5;
  color: #c36229;
  font-size: 16px;
  font-weight: 800;
}

.entry-status.done {
  border-color: #bddfcb;
  background: #edf8f2;
  color: #257052;
}

.entry-status.partial {
  border-color: #f2d27a;
  background: #fff8dc;
  color: #8a5a0a;
}

.entry-status.blocked {
  border-color: #f0b2ab;
  background: #fff2ef;
  color: #bd372f;
}

.entry-card .grid.two {
  grid-template-columns: repeat(2, minmax(260px, 1fr));
  gap: 24px 28px;
}

.entry-card .grid.three {
  grid-template-columns: repeat(3, minmax(210px, 1fr));
  gap: 22px 26px;
}

.entry-card label {
  color: #24334a;
  font-size: 16px;
  font-weight: 800;
}

.entry-card label small {
  display: inline-block;
  margin-left: 6px;
  color: #d64c3d;
  font-size: 14px;
}

.entry-card input,
.entry-card select {
  min-height: 56px;
  margin-top: 9px;
  padding: 0 18px;
  border-color: #cfdae8;
  border-radius: 10px;
  background-color: #fff;
  color: #22304a;
  font-size: 16px;
  font-weight: 650;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.entry-card input::placeholder {
  color: #aeb8c7;
  font-weight: 500;
}

.entry-card input:focus,
.entry-card select:focus {
  border-color: #4a86df;
  box-shadow: 0 0 0 3px rgba(74, 134, 223, 0.14);
}

.entry-card .hint,
.basic-info-gate {
  border-radius: 12px;
  color: #6f7f95;
  font-size: 15px;
  line-height: 1.65;
}

.basic-info-gate {
  padding: 16px 18px;
  border-color: #f1d18a;
  background: linear-gradient(90deg, #fff7e8, #fffdf7);
  color: #7d5a18;
}

.entry-feedback {
  top: 132px;
  gap: 16px;
}

.entry-feedback .feedback-card {
  position: relative;
  overflow: hidden;
  padding: 22px 24px;
}

.entry-feedback .feedback-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 0%, rgba(74, 134, 223, 0.12), transparent 32%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 251, 255, 0.96));
}

.entry-feedback .feedback-card > * {
  position: relative;
  z-index: 1;
}

.feedback-profile {
  min-height: 132px;
}

.feedback-profile span,
.feedback-card h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  color: #183d7a;
  font-size: 18px;
  font-weight: 800;
}

.feedback-profile span::before,
.feedback-card h3::before {
  content: "";
  width: 32px;
  height: 32px;
  border-radius: 9px;
  background: linear-gradient(135deg, #4c8be6, #1f5ed8);
  box-shadow: 0 10px 18px rgba(48, 112, 218, 0.2);
}

.feedback-card:nth-of-type(2) h3::before {
  background: linear-gradient(135deg, #4c8be6, #1f5ed8);
}

.feedback-card:nth-of-type(3) h3::before {
  background: linear-gradient(135deg, #5a86d9, #264776);
}

.feedback-profile strong {
  margin: 8px 0 8px;
  color: #112a58;
  font-size: 32px;
  line-height: 1.2;
}

.feedback-profile p,
.feedback-card p {
  color: #5f6f86;
  font-size: 16px;
  line-height: 1.65;
}

.computed-list {
  margin-top: 14px;
  gap: 0;
  overflow: hidden;
  border: 1px solid #dce7f7;
  border-radius: 12px;
  background: #fff;
}

.computed-list span {
  min-height: 46px;
  padding: 11px 14px;
  border: 0;
  border-bottom: 1px solid #e8eff8;
  border-radius: 0;
  background: transparent;
  color: #5f6f86;
  font-size: 15.5px;
}

.computed-list span:last-child {
  border-bottom: 0;
}

.computed-list b {
  color: #1f5ed8;
  font-weight: 800;
}

.entry-action-bar {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto;
  gap: 24px;
  align-items: center;
  margin-top: 18px;
  padding: 20px 26px;
  border-radius: 18px;
}

.entry-action-bar > div:first-child {
  min-height: 62px;
  padding: 12px 18px 12px 54px;
  border-radius: 12px;
  background: linear-gradient(90deg, #fff6dd, #fffdf7);
  color: #5d6b7f;
}

.entry-action-bar > div:first-child::before {
  content: "";
  position: absolute;
}

.entry-action-bar strong {
  color: #183d7a;
  font-size: 18px;
}

.entry-action-bar span {
  margin-top: 4px;
  color: #6d7b91;
  font-size: 15px;
  line-height: 1.5;
}

.entry-action-buttons {
  gap: 12px;
}

.entry-action-buttons button {
  min-width: 138px;
  min-height: 50px;
  padding: 0 18px;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 800;
}

.entry-action-buttons button:last-child {
  min-width: 180px;
  color: #fff;
  border-color: #2f6fde;
  background: linear-gradient(135deg, #347be8, #1f5ed8);
  box-shadow: 0 12px 24px rgba(47, 111, 222, 0.22);
}

@media (max-width: 1180px) {
  .entry-workbench {
    grid-template-columns: minmax(0, 1fr);
  }

  .entry-feedback {
    position: static;
    order: -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .entry-card .grid.three {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }
}

@media (max-width: 760px) {
  .entry-card {
    padding: 22px;
  }

  .entry-card-head,
  .entry-action-bar,
  .entry-feedback {
    grid-template-columns: 1fr;
  }

  .entry-card .grid.two,
  .entry-card .grid.three {
    grid-template-columns: 1fr;
  }

  .entry-card-head h3::after {
    display: block;
    margin: 8px 0 0;
    padding-left: 0;
    border-left: 0;
  }
}


/* Entry action hint icon completion. */
.entry-action-bar > div:first-child {
  position: relative;
}

.entry-action-bar > div:first-child::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 18px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 50%, #d9902f 0 3px, transparent 4px),
    linear-gradient(135deg, #ffd77a, #f6a93b);
  box-shadow: 0 8px 16px rgba(214, 146, 45, 0.18);
}


/* Homepage compact layout after removing overview and illustration. */
.home-panel .landing-hero-side,
.home-panel .landing-mini-stats,
.home-panel .landing-illustration {
  display: none !important;
}

.home-panel .landing-hero {
  min-height: 282px;
  grid-template-columns: minmax(0, 1fr) !important;
  padding: 52px 64px;
  align-items: center;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    linear-gradient(90deg, #ffffff 0%, #ffffff 38%, rgba(255,255,255,0.96) 47%, rgba(255,255,255,0.48) 62%, rgba(238,246,255,0.08) 100%),
    url("../images/home-health-archive-scene.png") right center / 58% auto no-repeat;
}

.home-panel .landing-copy {
  position: relative;
  z-index: 1;
  max-width: 54%;
}

.home-panel .landing-copy h2 {
  max-width: 880px;
  margin: 0 0 14px;
  font-size: 40px;
  line-height: 1.12;
}

.home-panel .landing-copy p {
  max-width: 510px;
  margin: 0;
  font-size: 15px;
  line-height: 1.72;
}

.home-panel .landing-actions {
  margin-top: 28px;
  gap: 14px;
}

.home-panel .landing-actions button {
  min-width: 132px;
  min-height: 42px;
  padding: 0 22px;
  font-size: 14px;
}

.home-panel .landing-feature-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 22px;
}

.home-panel .feature-entry-card {
  min-height: 150px;
  padding: 26px 30px;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 10px 18px;
  align-items: center;
}

.home-panel .feature-entry-card .feature-icon {
  grid-column: 1;
  grid-row: 1 / 3;
  width: 52px;
  height: 52px;
  font-size: 25px;
}

.home-panel .feature-entry-card h3 {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  font-size: 21px;
  line-height: 1.2;
  white-space: nowrap;
}

.home-panel .feature-entry-card p {
  grid-column: 2;
  grid-row: 2;
  max-width: none;
  min-height: 0;
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
}

.home-panel .feature-entry-card button {
  grid-column: 3;
  grid-row: 1 / 3;
  align-self: center;
  justify-self: end;
  min-width: 108px;
  min-height: 40px;
  padding: 0 18px;
  font-size: 13.5px;
}

.home-panel .landing-goal {
  grid-template-columns: minmax(300px, 0.62fr) minmax(0, 1.38fr);
  gap: 34px;
  padding: 34px 40px;
  align-items: center;
}

.home-panel .landing-goal-copy h3 {
  max-width: 440px;
  font-size: 24px;
  line-height: 1.28;
}

.home-panel .landing-goal-copy p {
  max-width: 440px;
  font-size: 13.5px;
  line-height: 1.75;
}

.home-panel .landing-goal-flow {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}

.home-panel .landing-goal-flow::after {
  left: 8%;
  right: 8%;
}

.home-panel .landing-goal-flow li {
  min-height: 188px;
  padding: 18px 14px 16px;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
}

.home-panel .landing-goal-flow li:not(:last-child)::after {
  right: -15px;
  top: 51%;
  font-size: 26px;
}

.home-panel .landing-goal-flow b {
  width: 34px;
  height: 34px;
  margin-top: -27px;
  font-size: 15px;
}

.home-panel .landing-goal-flow strong {
  margin-top: 6px;
  font-size: 18px;
  line-height: 1.2;
}

.home-panel .landing-goal-flow p {
  min-height: 54px;
  margin: 8px 0 10px;
  font-size: 12px;
  line-height: 1.5;
}

.home-panel .goal-icon {
  width: 64px;
  height: 64px;
  margin-top: auto;
}

.home-panel .landing-goal-flow em {
  max-width: 126px;
  margin-top: 10px;
  padding: 7px 10px;
  font-size: 11.5px;
  line-height: 1.25;
  white-space: normal;
}

@media (max-width: 1180px) {
  .home-panel .landing-feature-grid {
    grid-template-columns: 1fr;
  }

  .home-panel .feature-entry-card {
    grid-template-columns: 52px minmax(0, 1fr) auto;
  }

  .home-panel .landing-goal {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .home-panel .landing-hero {
    min-height: auto;
    padding: 34px 24px;
    background:
      linear-gradient(rgba(255,255,255,0.94), rgba(255,255,255,0.94)),
      url("../images/home-health-archive-scene.png") center / cover no-repeat;
  }

  .home-panel .landing-copy {
    max-width: 100%;
  }

  .home-panel .landing-copy h2 {
    font-size: 30px;
  }

  .home-panel .feature-entry-card {
    grid-template-columns: 50px minmax(0, 1fr);
  }

  .home-panel .feature-entry-card button {
    grid-column: 2;
    grid-row: 3;
    justify-self: start;
  }

  .home-panel .landing-goal-flow {
    grid-template-columns: 1fr;
  }

  .home-panel .landing-goal-flow li:not(:last-child)::after,
  .home-panel .landing-goal-flow::after {
    display: none;
  }
}



/* Homepage product goal without variable decorative icons. */
.home-panel .goal-icon {
  display: none !important;
}

.home-panel .landing-goal {
  grid-template-columns: minmax(330px, 0.6fr) minmax(0, 1.4fr);
  gap: 30px;
  padding: 32px 40px;
}

.home-panel .landing-goal-flow {
  gap: 14px;
}

.home-panel .landing-goal-flow li {
  min-height: 142px;
  padding: 20px 16px 18px;
  justify-content: space-between;
}

.home-panel .landing-goal-flow b {
  margin-top: -29px;
}

.home-panel .landing-goal-flow strong {
  margin-top: 4px;
  font-size: 18px;
}

.home-panel .landing-goal-flow p {
  min-height: 48px;
  margin: 8px 0;
  font-size: 12px;
  line-height: 1.45;
}

.home-panel .landing-goal-flow em {
  max-width: 136px;
  margin-top: 4px;
  padding: 7px 11px;
  font-size: 11.5px;
  line-height: 1.25;
}

.home-panel .landing-goal-flow::after {
  bottom: -20px;
}

.home-panel .landing-goal-copy h3 {
  max-width: 470px;
}

.home-panel .landing-goal-copy p {
  max-width: 500px;
}



/* Homepage settings gear and unobstructed goal arrows. */
.home-panel .feature-slate .settings-gear-icon {
  position: relative;
  color: transparent;
  overflow: visible;
}

.home-panel .feature-slate .settings-gear-icon::before {
  content: "";
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background:
    radial-gradient(circle at center, #0f6fb7 0 7px, #ffffff 7px 12px, transparent 12px),
    conic-gradient(
      from 0deg,
      #7e8a94 0 18deg,
      transparent 18deg 36deg,
      #7e8a94 36deg 54deg,
      transparent 54deg 72deg,
      #7e8a94 72deg 90deg,
      transparent 90deg 108deg,
      #7e8a94 108deg 126deg,
      transparent 126deg 144deg,
      #7e8a94 144deg 162deg,
      transparent 162deg 180deg,
      #7e8a94 180deg 198deg,
      transparent 198deg 216deg,
      #7e8a94 216deg 234deg,
      transparent 234deg 252deg,
      #7e8a94 252deg 270deg,
      transparent 270deg 288deg,
      #7e8a94 288deg 306deg,
      transparent 306deg 324deg,
      #7e8a94 324deg 342deg,
      transparent 342deg 360deg
    );
  filter: drop-shadow(0 8px 14px rgba(20, 48, 86, 0.16));
}

.home-panel .feature-slate .settings-gear-icon::after {
  content: "";
  position: absolute;
  inset: 15px;
  border: 8px solid #7e8a94;
  border-radius: 50%;
}

.home-panel .landing-goal-flow {
  gap: 22px;
}

.home-panel .landing-goal-flow li:not(:last-child)::after {
  right: -22px;
  z-index: 3;
  width: 22px;
  text-align: center;
  color: #3f7ed9;
  text-shadow:
    -3px 0 0 #fff,
    3px 0 0 #fff,
    0 -3px 0 #fff,
    0 3px 0 #fff;
}

.home-panel .landing-goal-flow li {
  z-index: 2;
}

@media (max-width: 760px) {
  .home-panel .feature-slate .settings-gear-icon::before {
    width: 28px;
    height: 28px;
  }
}



/* Entry required tag inline refinement. */
.entry-panel .entry-card label {
  display: block;
  line-height: 1.25;
}

.entry-panel .entry-card label small {
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  vertical-align: baseline;
  color: #d64c3d;
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1;
}

.entry-panel .entry-card input,
.entry-panel .entry-card select {
  display: block;
  width: 100%;
  min-height: 52px;
  margin-top: 8px;
}

.entry-panel .entry-card .grid.two {
  gap: 20px 28px;
}

.entry-panel .entry-card .grid.three {
  gap: 18px 24px;
}

.entry-panel .entry-card {
  padding-top: 28px;
  padding-bottom: 28px;
}

.entry-panel .entry-card-head {
  padding-bottom: 18px;
  margin-bottom: 18px;
}



/* Homepage unified feature card icons. */
.home-panel .feature-entry-card .entry-person-plus-icon,
.home-panel .feature-entry-card .archive-file-icon {
  position: relative;
  overflow: hidden;
  color: transparent;
  background: #213a5b;
  box-shadow: 0 12px 22px rgba(31, 55, 90, 0.18);
}

.home-panel .feature-entry-card .entry-person-plus-icon::before,
.home-panel .feature-entry-card .archive-file-icon::before {
  content: "";
  position: absolute;
  inset: 9px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.home-panel .feature-entry-card .entry-person-plus-icon::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23eef6ff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='17' cy='15' r='6'/%3E%3Cpath d='M7 34c2.4-7.2 17.6-7.2 20 0'/%3E%3Cpath d='M33 12v14M26 19h14' stroke='%238ab8ff'/%3E%3C/g%3E%3C/svg%3E");
}

.home-panel .feature-entry-card .archive-file-icon::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23eef6ff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7h15l7 7v23H12z'/%3E%3Cpath d='M27 7v8h8' stroke='%238ab8ff'/%3E%3Cpath d='M18 22h11M18 28h14M18 34h9'/%3E%3C/g%3E%3C/svg%3E");
}

/* Homepage product goal module refinement 2026-07-24. */
.home-panel .landing-goal {
  grid-template-columns: minmax(300px, 0.62fr) minmax(720px, 1.38fr);
  gap: 32px;
  align-items: center;
  padding: 34px 38px;
}

.home-panel .landing-goal-copy span {
  font-size: 13px;
  line-height: 1.2;
  color: #4f80c9;
  opacity: 0.82;
  letter-spacing: 0;
}

.home-panel .landing-goal-copy h3 {
  max-width: 430px;
  margin: 10px 0 14px;
  font-size: 27px;
  line-height: 1.24;
  letter-spacing: 0;
}

.home-panel .landing-goal-copy p {
  max-width: 455px;
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: #526278;
}

.home-panel .landing-goal-flow {
  gap: 18px;
  align-items: stretch;
  padding-bottom: 0;
}

.home-panel .landing-goal-flow::after {
  display: none;
}

.home-panel .landing-goal-flow li {
  min-height: 166px;
  padding: 24px 16px 18px;
  border: 1px solid #d8e3f1;
  border-radius: 18px;
  box-shadow: 0 8px 18px rgba(45, 82, 132, 0.06);
  justify-content: flex-start;
}

.home-panel .landing-goal-flow li:not(:last-child)::after {
  content: "›";
  right: -16px;
  top: 50%;
  width: 14px;
  transform: translateY(-50%);
  color: #3f7ed9;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  text-shadow: none;
  opacity: 0.72;
}

.home-panel .landing-goal-flow b {
  width: 36px;
  height: 36px;
  margin-top: -40px;
  margin-bottom: 14px;
  font-size: 15px;
  box-shadow: 0 4px 10px rgba(45, 82, 132, 0.06);
}

.home-panel .landing-goal-flow strong {
  margin-top: 0;
  font-size: 19px;
  line-height: 1.2;
}

.home-panel .landing-goal-flow p {
  min-height: 50px;
  max-width: 174px;
  margin: 10px auto 14px;
  font-size: 12.5px;
  line-height: 1.55;
  color: #68758a;
}

.home-panel .landing-goal-flow em {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 136px;
  min-height: 30px;
  margin: auto auto 0;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 11.5px;
  line-height: 1.2;
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .home-panel .landing-goal {
    grid-template-columns: 1fr;
  }
}

/* Homepage product goal follow-up refinement 2026-07-24. */
.home-panel .landing-goal {
  grid-template-columns: minmax(340px, 0.66fr) minmax(700px, 1.34fr);
  gap: 28px;
}

.home-panel .landing-goal-copy h3 {
  max-width: 460px;
  font-size: 26px;
  line-height: 1.25;
}

.home-panel .landing-goal-flow li:not(:last-child)::after {
  content: ">";
  right: -14px;
  top: 50%;
  width: 12px;
  color: #4d7fd5;
  font-size: 17px;
  font-weight: 500;
  line-height: 1;
  transform: translateY(-50%);
  opacity: 0.62;
}

.home-panel .landing-goal-flow p {
  color: #59677a;
}

/* Homepage product goal precise layout refinement 2026-07-24. */
.home-panel .landing-goal {
  grid-template-columns: minmax(310px, 0.58fr) minmax(740px, 1.42fr);
  gap: 24px;
  align-items: center;
}

.home-panel .landing-goal-copy {
  transform: translateY(-18px);
}

.home-panel .landing-goal-copy h3 {
  max-width: 420px;
  font-size: 24px;
  line-height: 1.28;
  word-break: keep-all;
}

.home-panel .landing-goal-copy p {
  max-width: 400px;
  line-height: 1.62;
}

.home-panel .landing-goal-flow {
  gap: 24px;
  align-items: stretch;
}

.home-panel .landing-goal-flow li {
  position: relative;
  min-height: 172px;
  padding: 24px 16px 54px;
  border: 1px solid #dce7f4;
  border-radius: 18px;
  background: linear-gradient(180deg, #fff 0%, #fff 78%, rgba(74, 126, 214, 0.045) 100%);
  box-shadow: 0 5px 14px rgba(45, 82, 132, 0.045);
}

.home-panel .landing-goal-flow .goal-step-evaluate {
  background: linear-gradient(180deg, #fff 0%, #fff 78%, rgba(218, 170, 45, 0.06) 100%);
}

.home-panel .landing-goal-flow .goal-step-track {
  background: linear-gradient(180deg, #fff 0%, #fff 78%, rgba(64, 154, 164, 0.05) 100%);
}

.home-panel .landing-goal-flow .goal-step-apply {
  background: linear-gradient(180deg, #fff 0%, #fff 78%, rgba(128, 104, 218, 0.05) 100%);
}

.home-panel .landing-goal-flow li:not(:last-child)::after {
  content: "›";
  position: absolute;
  right: -21px;
  top: 50%;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  box-sizing: border-box;
  border: 1px solid #d5e3f5;
  border-radius: 50%;
  background: #fff;
  color: #79a2dc;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  transform: translateY(-50%);
  box-shadow: 0 2px 6px rgba(62, 112, 181, 0.1);
  opacity: 1;
  z-index: 2;
}

.home-panel .landing-goal-flow b {
  width: 36px;
  height: 36px;
  margin-top: -42px;
  margin-bottom: 14px;
  font-size: 15px;
  box-shadow: none;
}

.home-panel .landing-goal-flow strong {
  margin: 0 0 6px;
  font-size: 19px;
  line-height: 1.2;
}

.home-panel .landing-goal-flow p {
  min-height: 44px;
  max-width: 176px;
  margin: 0 auto;
  color: #59677a;
  font-size: 12.5px;
  line-height: 1.5;
}

.home-panel .landing-goal-flow em {
  position: absolute;
  left: 50%;
  bottom: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 136px;
  height: 30px;
  min-height: 30px;
  margin: 0;
  padding: 0 10px;
  border-radius: 999px;
  transform: translateX(-50%);
  font-size: 11.5px;
  line-height: 1;
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .home-panel .landing-goal-copy {
    transform: none;
  }

  .home-panel .landing-goal-flow li:not(:last-child)::after {
    display: none;
  }
}


/* health archive header and empty-state refinement */
.business-brand h1 {
  order: 1;
}

.business-brand .nav-brand-logo {
  order: 2;
  margin-left: 8px;
}

.health-empty-side,
.health-empty-main {
  box-sizing: border-box;
  padding: 14px 20px;
}

.health-empty-side {
  min-height: 68px;
  justify-content: flex-start;
}

.health-empty-main {
  min-height: 68px;
}

@media screen and (max-width: 1180px) {
  .horizontal-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .horizontal-focus-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 720px) {
  .horizontal-report.report-page {
    padding: 16px;
  }

  .horizontal-report .horizontal-hero,
  .horizontal-kpi-grid,
  .horizontal-focus-grid,
  .horizontal-parent-view-grid,
  .horizontal-advice-grid,
  .horizontal-stage-note {
    grid-template-columns: 1fr;
  }

  .horizontal-report .horizontal-hero {
    padding: 18px;
  }

  .horizontal-identity {
    align-items: flex-start;
  }

  .horizontal-avatar {
    flex-basis: 54px;
    width: 54px;
    height: 54px;
    border-width: 4px;
    font-size: 1.25rem;
  }

  .horizontal-data-badge {
    width: 100%;
  }
}

@media print {
  .horizontal-report.report-page {
    border-radius: 0;
    background: #ffffff;
    padding: 5mm 6mm;
    box-shadow: none;
  }

  .horizontal-report .horizontal-hero {
    padding: 4mm;
    box-shadow: inset 0 0 0 0.25mm #dce7f4;
  }

  .horizontal-report .horizontal-avatar {
    flex-basis: 15mm;
    width: 15mm;
    height: 15mm;
    border-width: 1mm;
    font-size: 13pt;
  }

  .horizontal-report .horizontal-focus-tags {
    margin-top: 2mm;
  }

  .horizontal-report .horizontal-focus-tags b {
    padding: 1mm 2mm;
    font-size: 7pt;
  }

  .horizontal-report .horizontal-kpi-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 2mm;
    margin-bottom: 3mm;
  }

  .horizontal-report .horizontal-kpi-grid article {
    min-height: 21mm;
    padding: 2.5mm;
    box-shadow: none;
  }

  .horizontal-report .horizontal-kpi-grid strong {
    font-size: 12pt;
  }

  .horizontal-report .horizontal-section {
    padding: 3mm;
    box-shadow: none;
  }

  .horizontal-report .horizontal-focus-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2mm;
  }

  .horizontal-report .horizontal-focus-grid article {
    padding: 2.5mm;
  }

  .horizontal-report .horizontal-focus-grid p {
    font-size: 7.2pt;
    line-height: 1.35;
  }

  .horizontal-report .horizontal-stage-note {
    padding: 2.5mm 3mm;
  }

  .horizontal-report .horizontal-parent-view-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.5mm;
  }

  .horizontal-report .horizontal-parent-view-grid article {
    padding: 3mm;
  }

  .horizontal-report .horizontal-parent-view-grid header {
    gap: 2mm;
    margin-bottom: 2mm;
  }

  .horizontal-report .horizontal-parent-view-grid header i {
    flex-basis: 8mm;
    width: 8mm;
    height: 8mm;
    border-radius: 2mm;
    font-size: 9pt;
    box-shadow: none;
  }

  .horizontal-report .horizontal-parent-view-grid article > strong {
    min-height: 10mm;
    font-size: 8pt;
  }

  .horizontal-report .horizontal-parent-view-grid dl {
    gap: 1.5mm;
    margin-top: 2mm;
  }

  .horizontal-report .horizontal-parent-view-grid dl div {
    padding-top: 1.5mm;
  }

  .horizontal-report .horizontal-parent-view-grid dt,
  .horizontal-report .horizontal-parent-view-grid dd {
    font-size: 7pt;
    line-height: 1.3;
  }

  .horizontal-report .horizontal-advice-grid {
    gap: 2.5mm;
  }

  .horizontal-report .horizontal-advice-grid article {
    min-height: 21mm;
    padding: 3mm;
  }
}
/* Homepage: measurement data to professional evaluation logic. */
.home-panel .evaluation-logic {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
  padding: 28px;
  overflow: hidden;
  background:
    radial-gradient(circle at 96% 4%, rgba(255, 218, 105, 0.2), transparent 24%),
    linear-gradient(150deg, #ffffff 0%, #f8fbff 72%, #fffdf5 100%);
}

.evaluation-logic-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.evaluation-logic-head > div:first-child > span,
.logic-output-head small {
  display: block;
  margin-bottom: 5px;
  color: #4e84d9;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.evaluation-logic-head h3 {
  margin: 0 0 7px;
  color: #183f78;
  font-size: 25px;
  line-height: 1.3;
}

.evaluation-logic-head p,
.logic-output-head p {
  margin: 0;
  color: #6a7d98;
  font-size: 14px;
  line-height: 1.65;
}

.logic-path-summary {
  display: flex;
  align-items: center;
  gap: 9px;
  flex: 0 0 auto;
  padding: 10px 14px;
  border-radius: 999px;
  background: #edf5ff;
  color: #2d5e9f;
  font-size: 12px;
}

.logic-path-summary i {
  color: #e0a72e;
  font-size: 17px;
  font-style: normal;
}

.logic-data-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.logic-data-card {
  position: relative;
  display: flex;
  min-height: 230px;
  flex-direction: column;
  gap: 13px;
  padding: 21px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(40, 86, 143, 0.09);
}

.logic-data-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  border-radius: 18px 0 0 18px;
  background: #4d87df;
}

.logic-data-card.logic-function::before { background: #53aeba; }
.logic-data-card.logic-fitness::before { background: #e0a72e; }
.logic-data-card.logic-skill::before { background: #8c78d8; }

.logic-card-top {
  display: flex;
  align-items: center;
  gap: 13px;
}

.logic-icon {
  display: grid;
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(145deg, #e9f3ff, #dbeaff);
  color: #3d78cf;
  font-size: 25px;
  font-weight: 900;
}

.logic-function .logic-icon { color: #358e9a; background: #e6f8fa; }
.logic-fitness .logic-icon { color: #b88010; background: #fff4d7; }
.logic-skill .logic-icon { color: #765fc6; background: #f0ecff; }

.logic-card-top small {
  color: #8797ad;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.logic-card-top h4 {
  margin: 3px 0 0;
  color: #173c72;
  font-size: 19px;
}

.logic-data-card > p {
  min-height: 44px;
  margin: 0;
  color: #63758e;
  font-size: 13px;
  line-height: 1.65;
}

.longitudinal-print-heading {
  display: none;
}

@media print {
  @page {
    size: A4 portrait;
    margin: 12mm;
  }

  html,
  body,
  .app-shell,
  .workspace,
  #assessmentForm {
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  body.print-report-viewer .launch-gate,
  body.print-longitudinal-report .launch-gate,
  body.print-test-sheet .launch-gate,
  body.print-report-viewer .launch-dialog,
  body.print-longitudinal-report .launch-dialog,
  body.print-test-sheet .launch-dialog {
    display: none !important;
  }

  body.print-report-viewer form > .step-panel:not([data-panel="viewer"]),
  body.print-longitudinal-report form > .step-panel:not([data-panel="longitudinal"]),
  body.print-test-sheet form > .step-panel:not([data-panel="data"]) {
    display: none !important;
  }

  body.print-report-viewer form > .step-panel[data-panel="viewer"],
  body.print-longitudinal-report form > .step-panel[data-panel="longitudinal"],
  body.print-test-sheet form > .step-panel[data-panel="data"] {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  body.print-report-viewer .detail-paper,
  body.print-report-viewer .horizontal-report.report-page {
    width: auto !important;
    max-width: none !important;
    min-height: 0 !important;
    box-sizing: border-box;
  }

  body.print-report-viewer .detail-paper {
    padding: 0 !important;
  }

  body.print-report-viewer .horizontal-report.report-page {
    margin: 0 !important;
    padding: 5mm !important;
    border: 0.25mm solid #d9e5f1 !important;
    border-radius: 0 !important;
    break-after: auto !important;
    page-break-after: auto !important;
  }

  body.print-report-viewer .horizontal-report .horizontal-section {
    margin-top: 4mm !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  body.print-report-viewer .horizontal-report:not(.trial-report) > .horizontal-section:nth-of-type(3) {
    margin-top: 4mm !important;
    break-before: auto !important;
    page-break-before: auto !important;
  }

  body.print-report-viewer .horizontal-report .print-section-block {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.print-report-viewer .horizontal-report .horizontal-section-title {
    margin-bottom: 2mm !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }

  body.print-report-viewer .horizontal-report .horizontal-section-title + * {
    break-before: avoid !important;
    page-break-before: avoid !important;
  }

  .horizontal-report .horizontal-focus-grid {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  body.print-report-viewer .horizontal-report .horizontal-hero,
  body.print-report-viewer .horizontal-report .horizontal-kpi-grid,
  body.print-report-viewer .horizontal-report .body-gauge-grid,
  body.print-report-viewer .horizontal-report .radar-panel,
  body.print-report-viewer .horizontal-report .horizontal-focus-grid,
  body.print-report-viewer .horizontal-report .development-visual,
  body.print-report-viewer .horizontal-report .horizontal-parent-view-grid,
  body.print-report-viewer .horizontal-report .horizontal-advice-grid {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.print-report-viewer .horizontal-report .horizontal-parent-view-grid article,
  body.print-report-viewer .horizontal-report .horizontal-advice-grid article {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.print-report-viewer .horizontal-report .radar-panel {
    grid-template-columns: 62mm minmax(0, 1fr) !important;
    gap: 4mm !important;
    align-items: center !important;
    margin-top: 2mm !important;
    padding: 3mm !important;
  }

  body.print-report-viewer .horizontal-report .radar-chart {
    width: 60mm !important;
    height: 56mm !important;
  }

  body.print-report-viewer .horizontal-report .ability-portrait.compact {
    padding: 3mm !important;
    gap: 2.5mm !important;
  }

  body.print-report-viewer .horizontal-report .ability-portrait.compact .ability-portrait-head {
    padding: 2mm 2.5mm !important;
  }

  body.print-report-viewer .horizontal-report .ability-portrait.compact .ability-chip-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 2mm !important;
  }

  body.print-report-viewer .horizontal-report .ability-portrait.compact .ability-chip-grid article {
    grid-template-columns: 7mm minmax(0, 1fr) !important;
    min-height: 12mm !important;
    padding: 2mm !important;
  }

  body.print-report-viewer .horizontal-report .ability-portrait.compact .ability-chip-grid i {
    width: 7mm !important;
    height: 7mm !important;
    border-radius: 2mm !important;
    font-size: 8pt !important;
  }

  body.print-report-viewer .horizontal-report .ability-portrait.compact .ability-chip-grid b {
    font-size: 8.4pt !important;
  }

  body.print-report-viewer .horizontal-report .ability-portrait.compact .ability-chip-grid span,
  body.print-report-viewer .horizontal-report .ability-portrait.compact .ability-chip-grid small {
    font-size: 6.8pt !important;
    line-height: 1.25 !important;
  }

  body.print-report-viewer .horizontal-report .horizontal-parent-view-grid article {
    padding: 2.5mm !important;
  }

  body.print-report-viewer .horizontal-report .horizontal-parent-view-grid article > strong {
    min-height: 0 !important;
    margin-top: 1mm !important;
    font-size: 8.2pt !important;
  }

  body.print-report-viewer .horizontal-report .dimension-watch {
    min-height: 0 !important;
    margin: 2mm 0 !important;
    padding: 2mm !important;
    font-size: 7.2pt !important;
    line-height: 1.35 !important;
  }

  body.print-report-viewer .horizontal-report .dimension-tags {
    gap: 1.5mm !important;
  }

  body.print-report-viewer .horizontal-report .dimension-tags span {
    padding: 1mm 1.8mm !important;
    font-size: 6.8pt !important;
  }

  body.print-longitudinal-report .step-panel[data-panel="longitudinal"] > h2 {
    display: none !important;
  }

  body.print-longitudinal-report .longitudinal-dashboard {
    display: block !important;
    width: auto !important;
    color: #243b5a;
    font-size: 8.4pt;
    line-height: 1.35;
  }

  body.print-longitudinal-report .longitudinal-print-heading {
    display: flex !important;
    align-items: flex-end;
    justify-content: space-between;
    gap: 8mm;
    margin: 0 0 4mm;
    padding: 0 0 3mm;
    border-bottom: 0.7mm solid #4d87df;
  }

  body.print-longitudinal-report .longitudinal-print-heading span,
  body.print-longitudinal-report .longitudinal-print-heading strong {
    display: block;
  }

  body.print-longitudinal-report .longitudinal-print-heading span {
    color: #6f8199;
    font-size: 7.5pt;
  }

  body.print-longitudinal-report .longitudinal-print-heading strong {
    margin-top: 1mm;
    color: #163f78;
    font-size: 18pt;
    line-height: 1.1;
  }

  body.print-longitudinal-report .longitudinal-print-heading b {
    color: #60748f;
    font-size: 7.5pt;
    font-weight: 600;
    white-space: nowrap;
  }

  body.print-longitudinal-report .archive-overview {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.45fr) !important;
    gap: 4mm !important;
    margin: 0 0 3mm !important;
    padding: 4mm !important;
    border-left-width: 1.2mm !important;
    border-radius: 2mm !important;
    box-shadow: none !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.print-longitudinal-report .longitudinal-identity > i {
    width: 13mm !important;
    height: 13mm !important;
    flex-basis: 13mm !important;
    font-size: 13pt !important;
  }

  body.print-longitudinal-report .longitudinal-identity strong {
    margin: 0.7mm 0 !important;
    font-size: 16pt !important;
  }

  body.print-longitudinal-report .archive-meta-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 2mm !important;
  }

  body.print-longitudinal-report .archive-meta-grid b {
    min-width: 0 !important;
    min-height: 16mm !important;
    padding: 2mm !important;
    font-size: 11pt !important;
  }

  body.print-longitudinal-report .archive-meta-grid small {
    font-size: 6.8pt !important;
  }

  body.print-longitudinal-report .archive-quality-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 2.5mm !important;
    margin-bottom: 3mm !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.print-longitudinal-report .archive-quality-grid article {
    padding: 2.5mm 3mm !important;
    border-top-width: 0.8mm !important;
    border-radius: 2mm !important;
    box-shadow: none !important;
  }

  body.print-longitudinal-report .archive-quality-grid span {
    margin-bottom: 0.5mm !important;
    font-size: 7pt !important;
  }

  body.print-longitudinal-report .archive-quality-grid strong {
    margin-bottom: 1mm !important;
    font-size: 10pt !important;
  }

  body.print-longitudinal-report .archive-quality-grid p {
    font-size: 7.2pt !important;
    line-height: 1.35 !important;
  }

  body.print-longitudinal-report .longitudinal-section-title {
    margin: 3mm 0 2mm !important;
    font-size: 11pt !important;
  }

  body.print-longitudinal-report .longitudinal-status-grid,
  body.print-longitudinal-report .longitudinal-summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 2.5mm !important;
    margin-bottom: 3mm !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.print-longitudinal-report .longitudinal-status-grid article,
  body.print-longitudinal-report .longitudinal-summary-grid article {
    padding: 3mm !important;
    border-top-width: 0.8mm !important;
    border-radius: 2mm !important;
    box-shadow: none !important;
  }

  body.print-longitudinal-report .status-card-heading {
    gap: 2mm !important;
    margin-bottom: 2mm !important;
  }

  body.print-longitudinal-report .status-card-heading > i {
    width: 8mm !important;
    height: 8mm !important;
    flex-basis: 8mm !important;
    border-radius: 2mm !important;
    font-size: 9pt !important;
    box-shadow: none !important;
  }

  body.print-longitudinal-report .status-card-heading span {
    font-size: 9.5pt !important;
  }

  body.print-longitudinal-report .status-card-heading small,
  body.print-longitudinal-report .status-evidence span {
    font-size: 6.5pt !important;
  }

  body.print-longitudinal-report .longitudinal-status-grid strong {
    min-height: 9mm !important;
    margin-bottom: 2mm !important;
    font-size: 9pt !important;
    line-height: 1.3 !important;
  }

  body.print-longitudinal-report .longitudinal-status-grid h4 {
    margin: 1.5mm 0 1mm !important;
    font-size: 7.2pt !important;
  }

  body.print-longitudinal-report .status-evidence {
    gap: 1mm !important;
    margin: 0 0 2mm !important;
  }

  body.print-longitudinal-report .status-evidence span {
    padding: 0.7mm 1.4mm !important;
  }

  body.print-longitudinal-report .status-card-knowledge {
    padding: 2mm !important;
  }

  body.print-longitudinal-report .status-card-knowledge p,
  body.print-longitudinal-report .status-card-scope,
  body.print-longitudinal-report .longitudinal-summary-grid p {
    font-size: 7.2pt !important;
    line-height: 1.4 !important;
  }

  body.print-longitudinal-report .longitudinal-summary-grid h3 {
    margin-bottom: 2mm !important;
    font-size: 9.5pt !important;
  }

  body.print-longitudinal-report .longitudinal-summary-grid p + p {
    margin-top: 1.5mm !important;
    padding-top: 1.5mm !important;
  }

  body.print-longitudinal-report .longitudinal-chart-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 3mm !important;
  }

  body.print-longitudinal-report .longitudinal-chart-grid > article {
    padding: 3mm !important;
    border-top-width: 0.8mm !important;
    border-radius: 2mm !important;
    box-shadow: none !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.print-longitudinal-report .longitudinal-chart-grid h3 {
    font-size: 9.5pt !important;
  }

  body.print-longitudinal-report .longitudinal-chart-grid p,
  body.print-longitudinal-report .trend-card-meta span {
    font-size: 7pt !important;
    line-height: 1.35 !important;
  }

  body.print-longitudinal-report .longitudinal-sparkline {
    height: 36mm !important;
    margin: 1mm 0 2mm !important;
  }

  body.print-longitudinal-report .longitudinal-radar-list {
    gap: 1.5mm !important;
  }

  body.print-longitudinal-report .longitudinal-radar-list div {
    padding: 1.4mm 2mm !important;
  }

  body.print-test-sheet .settings-page {
    display: none !important;
  }

  body.print-test-sheet .sheet-preview-dialog {
    position: static !important;
    display: block !important;
    inset: auto !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
  }

  body.print-test-sheet .sheet-preview-shell {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.print-test-sheet .blank-test-sheet {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  body.print-test-sheet .blank-sheet-page {
    width: auto !important;
    max-width: none !important;
    min-height: 260mm !important;
    height: auto !important;
    margin: 0 !important;
    padding: 5mm 6mm !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-shadow: none !important;
    overflow: visible !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    break-after: page !important;
    page-break-after: always !important;
  }

  body.print-test-sheet .blank-sheet-page:last-child {
    break-after: auto !important;
    page-break-after: auto !important;
  }

  body.print-test-sheet .blank-sheet-section,
  body.print-test-sheet .blank-sheet-section table,
  body.print-test-sheet .blank-sheet-section tr,
  body.print-test-sheet .blank-sheet-footer {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
}

.logic-tags,
.logic-inputs,
.logic-outputs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.logic-tags span,
.logic-inputs span,
.logic-outputs span {
  padding: 5px 9px;
  border-radius: 999px;
  background: #f0f6fd;
  color: #3b659b;
  font-size: 11px;
  font-weight: 800;
}

.logic-fitness .logic-tags span { background: #fff7e4; color: #9b6d16; }
.logic-skill .logic-tags span { background: #f3efff; color: #6e5bb1; }

.logic-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 13px;
  border-top: 1px solid #e8eef6;
}

.logic-card-foot > span {
  color: #8090a5;
  font-size: 11px;
}

.logic-card-foot > span b {
  display: inline-block;
  margin-left: 5px;
  color: #27568f;
}

.logic-card-foot button,
.logic-output-grid button {
  width: auto;
  min-height: 34px;
  padding: 0 13px;
  border: 0;
  border-radius: 9px;
  background: #347fdb;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
}

.logic-card-foot button:hover,
.logic-output-grid button:hover {
  background: #246abd;
}

.logic-merge {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
  color: #5e79a0;
  font-size: 12px;
  text-align: center;
}

.logic-merge span {
  height: 1px;
  background: linear-gradient(90deg, transparent, #bdd1eb);
}

.logic-merge span:nth-of-type(2) {
  background: linear-gradient(90deg, #bdd1eb, transparent);
}

.logic-merge b {
  padding: 7px 13px;
  border-radius: 999px;
  background: #edf5ff;
}

.logic-merge i {
  grid-column: 1 / -1;
  margin-top: -9px;
  color: #dba32d;
  font-size: 22px;
  font-style: normal;
  line-height: 1;
}

.logic-output {
  display: grid;
  gap: 15px;
  padding: 21px;
  border-radius: 18px;
  background: #eef6ff;
}

.logic-output-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}

.logic-output-head h4 {
  margin: 0;
  color: #173f77;
  font-size: 20px;
}

.logic-output-head p {
  max-width: 650px;
  text-align: right;
}

.logic-output-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.logic-output-grid article {
  position: relative;
  display: flex;
  min-height: 260px;
  flex-direction: column;
  gap: 10px;
  padding: 19px;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 9px 24px rgba(38, 83, 137, 0.08);
}

.output-number {
  position: absolute;
  top: 16px;
  right: 17px;
  color: #b7c9e0;
  font-size: 20px;
  font-weight: 900;
}

.logic-output-grid h5 {
  margin: 0;
  color: #214f8a;
  font-size: 18px;
}

.logic-output-grid article > p {
  min-height: 58px;
  margin: 0;
  color: #687b94;
  font-size: 12px;
  line-height: 1.65;
}

.logic-inputs,
.logic-outputs {
  align-items: center;
}

.logic-inputs small,
.logic-outputs small {
  width: 28px;
  color: #8a99ad;
  font-size: 10px;
  font-weight: 900;
}

.logic-outputs span {
  background: #fff3d8;
  color: #9a6c12;
}

.logic-output-grid button {
  align-self: flex-start;
  margin-top: auto;
}

.logic-evidence-list {
  display: grid;
  gap: 10px;
}

.logic-evidence-list > div {
  padding: 13px 15px;
  border-radius: 10px;
  background: #f7faff;
}

.logic-evidence-list b {
  color: #24558f;
}

.logic-evidence-list p {
  margin: 4px 0 0;
}

@media (max-width: 1100px) {
  .evaluation-logic-head,
  .logic-output-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .logic-output-head p {
    text-align: left;
  }

  .logic-output-grid {
    grid-template-columns: 1fr;
  }

  .logic-output-grid article,
  .logic-output-grid article > p {
    min-height: 0;
  }
}

@media (max-width: 760px) {
  .home-panel .evaluation-logic {
    padding: 20px;
  }

  .logic-data-grid {
    grid-template-columns: 1fr;
  }

  .logic-path-summary {
    align-items: flex-start;
    flex-direction: column;
    border-radius: 14px;
  }

  .logic-path-summary i {
    transform: rotate(90deg);
  }

  .logic-card-foot {
    align-items: flex-start;
    flex-direction: column;
  }
}
/* Evaluation logic v2: visual process and graphic data cards. */
.evaluation-logic-head {
  align-items: center;
}

.logic-main-flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 12px;
  padding: 13px 18px;
  border-radius: 15px;
  background: linear-gradient(90deg, #e9f4ff 0%, #f3f8ff 48%, #fff6dd 100%);
  box-shadow: inset 0 0 0 1px rgba(72, 126, 194, 0.08);
}

.logic-main-flow span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: #28578f;
  font-size: 13px;
}

.logic-main-flow span i {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #3e7fd2;
  font-size: 10px;
  font-style: normal;
  box-shadow: 0 4px 10px rgba(35, 82, 140, 0.1);
}

.logic-main-flow em {
  color: #d79b20;
  font-size: 20px;
  font-style: normal;
}

.logic-data-card {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 18px;
  min-height: 244px;
  padding: 20px;
}

.logic-card-content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 12px;
}

.logic-card-content > p {
  min-height: 22px;
  margin: 0;
  color: #63758e;
  font-size: 13px;
  line-height: 1.6;
}

.logic-visual {
  position: relative;
  min-height: 196px;
  overflow: hidden;
  border-radius: 15px;
}

.shape-visual { background: linear-gradient(155deg, #edf5ff, #dcecff); }
.function-visual { background: linear-gradient(155deg, #eafafb, #d8f3f6); }
.fitness-visual { background: linear-gradient(155deg, #fff8e8, #ffedbd); }
.skill-visual { background: linear-gradient(155deg, #f5f1ff, #e9e1ff); }

.body-outline {
  position: absolute;
  top: 25px;
  left: 22px;
  width: 45px;
  height: 110px;
  border: 4px solid #4a84d8;
  border-top: 0;
  border-radius: 45% 45% 38% 38%;
}

.body-outline::before {
  content: "";
  position: absolute;
  top: -18px;
  left: 10px;
  width: 18px;
  height: 18px;
  border: 4px solid #4a84d8;
  border-radius: 50%;
  background: #edf5ff;
}

.body-outline::after {
  content: "";
  position: absolute;
  left: 17px;
  bottom: -36px;
  width: 4px;
  height: 38px;
  border-radius: 4px;
  background: #4a84d8;
  box-shadow: -13px 0 #4a84d8, 13px 0 #4a84d8;
}

.shape-scales {
  position: absolute;
  top: 28px;
  right: 15px;
  display: grid;
  gap: 15px;
}

.shape-scales i {
  position: relative;
  width: 56px;
  height: 7px;
  border-radius: 99px;
  background: #c6dbf5;
}

.shape-scales i::after {
  content: "";
  position: absolute;
  width: 62%;
  height: 100%;
  border-radius: inherit;
  background: #4d87df;
}

.shape-scales i:nth-child(2)::after { width: 44%; }
.shape-scales i:nth-child(3)::after { width: 73%; }

.shape-scales b {
  position: absolute;
  top: 11px;
  left: 0;
  color: #54739b;
  font-size: 9px;
  font-style: normal;
  white-space: nowrap;
}

.lungs {
  position: absolute;
  top: 31px;
  left: 32px;
  width: 86px;
  height: 88px;
}

.lungs::before {
  content: "";
  position: absolute;
  left: 40px;
  top: -13px;
  width: 6px;
  height: 45px;
  border-radius: 6px;
  background: #39a0ac;
}

.lungs i {
  position: absolute;
  top: 15px;
  width: 38px;
  height: 67px;
  border: 4px solid #39a0ac;
  border-radius: 44% 55% 50% 50%;
  background: rgba(255, 255, 255, 0.35);
}

.lungs i:first-child { left: 0; transform: rotate(7deg); }
.lungs i:last-child { right: 0; transform: rotate(-7deg); }

.breath-wave {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 32px;
  height: 24px;
  background: linear-gradient(135deg, transparent 42%, #39a0ac 43% 50%, transparent 51%) 0 0 / 24px 24px repeat-x;
  opacity: 0.85;
}

.radar-grid,
.radar-shape {
  position: absolute;
  top: 34px;
  left: 31px;
  width: 88px;
  height: 88px;
  clip-path: polygon(50% 0, 98% 35%, 80% 96%, 20% 96%, 2% 35%);
}

.radar-grid {
  background: #e7ca81;
  box-shadow: inset 0 0 0 22px #fff4d5, inset 0 0 0 24px #d9b65e;
}

.radar-shape {
  top: 48px;
  left: 45px;
  width: 61px;
  height: 61px;
  background: rgba(215, 155, 32, 0.58);
  clip-path: polygon(50% 0, 91% 39%, 70% 92%, 21% 74%, 7% 32%);
}

.radar-label {
  position: absolute;
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #9b701a;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
}

.radar-strength { top: 12px; left: 64px; }
.radar-coordinate { top: 57px; right: 8px; }
.radar-balance { bottom: 20px; right: 27px; }
.radar-flex { bottom: 20px; left: 27px; }
.radar-reaction { top: 57px; left: 8px; }

.sport-badge {
  position: absolute;
  top: 27px;
  left: 43px;
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border: 6px double #826ad0;
  border-radius: 50%;
  background: rgba(255,255,255,.52);
  color: #826ad0;
  font-size: 29px;
}

.skill-stars {
  position: absolute;
  top: 111px;
  left: 24px;
  display: flex;
  gap: 3px;
}

.skill-stars b,
.skill-stars i {
  color: #8068cb;
  font-size: 16px;
  font-style: normal;
}

.skill-stars i { color: #cfc5ef; }

.skill-progress {
  position: absolute;
  left: 23px;
  right: 23px;
  bottom: 27px;
  height: 8px;
  border-radius: 99px;
  background: #d6cef0;
}

.skill-progress i {
  display: block;
  width: 68%;
  height: 100%;
  border-radius: inherit;
  background: #8068cb;
}

.logic-match-band {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  padding: 15px 22px;
  border-radius: 14px;
  background: linear-gradient(90deg, #dceeff 0%, #edf6ff 55%, #fff0c9 100%);
  color: #24558f;
}

.logic-match-band > strong {
  padding-right: 20px;
  border-right: 1px solid rgba(56, 105, 166, 0.22);
  font-size: 14px;
}

.logic-match-band > div {
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: 9px;
}

.logic-match-band span {
  padding: 6px 11px;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  font-size: 12px;
  font-weight: 800;
}

.logic-match-band i {
  color: #d89a1d;
  font-style: normal;
}

.logic-match-band > b {
  position: absolute;
  left: 50%;
  bottom: -25px;
  color: #d89a1d;
  font-size: 20px;
}

.logic-output {
  margin-top: 6px;
}

.logic-inputs,
.logic-focus,
.logic-outputs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.logic-inputs small,
.logic-focus small,
.logic-outputs small {
  width: 48px;
  color: #8797aa;
  font-size: 10px;
  font-weight: 900;
}

.logic-focus span,
.logic-outputs span {
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
}

.logic-focus span {
  background: #f0f4f9;
  color: #516b8d;
}

.logic-inputs .source-shape { background: #e8f2ff; color: #3475ca; }
.logic-inputs .source-function { background: #e3f7f8; color: #288c98; }
.logic-inputs .source-fitness { background: #fff2cf; color: #9b6c0e; }
.logic-inputs .source-skill { background: #eee9ff; color: #7259c2; }
.logic-inputs .source-stage { background: #edf1f6; color: #586d89; }

.logic-output-grid article {
  min-height: 270px;
}

@media (max-width: 950px) {
  .logic-main-flow {
    grid-template-columns: 1fr;
  }

  .logic-main-flow em {
    justify-self: center;
    transform: rotate(90deg);
  }

  .logic-data-card {
    grid-template-columns: 120px minmax(0, 1fr);
  }
}

@media (max-width: 620px) {
  .logic-data-card {
    grid-template-columns: 1fr;
  }

  .logic-visual {
    min-height: 150px;
  }

  .logic-match-band {
    grid-template-columns: 1fr;
  }

  .logic-match-band > strong {
    padding-right: 0;
    padding-bottom: 10px;
    border-right: 0;
    border-bottom: 1px solid rgba(56, 105, 166, 0.22);
  }

  .logic-match-band > div {
    align-items: stretch;
    flex-direction: column;
  }

  .logic-match-band i {
    align-self: center;
    transform: rotate(90deg);
  }
}

/* Evaluation logic v46: true hidden/details states, isolated from the legacy landing grid. */
.home-panel .evaluation-logic {
  display: block !important;
  min-height: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

#evaluationLogicDetails[hidden],
.evaluation-logic-summary[hidden] {
  display: none !important;
}

.home-panel .evaluation-logic-summary {
  display: flex !important;
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  min-height: 96px;
  margin: 0 !important;
  padding: 18px 24px;
  align-items: center;
  gap: 12px;
}

.home-panel .evaluation-logic-summary > span {
  display: flex;
  min-width: 0;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.home-panel .evaluation-logic-summary > em {
  flex: 0 0 auto;
}

.home-panel .evaluation-logic-summary > strong {
  flex: 0 0 auto;
}

@media (max-width: 820px) {
  .home-panel .evaluation-logic-summary {
    min-height: 84px;
    padding: 14px 12px;
    gap: 5px;
  }

  .home-panel .evaluation-logic-summary > span {
    gap: 4px;
  }

  .home-panel .evaluation-logic-summary > span i {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
    font-size: 12px;
  }

  .home-panel .evaluation-logic-summary > span b {
    font-size: 13px;
  }

  .home-panel .evaluation-logic-summary > strong {
    display: none;
  }
}

@media (max-width: 560px) {
  .home-panel .evaluation-logic-summary {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr;
    row-gap: 10px;
  }

  .home-panel .evaluation-logic-summary > span:nth-of-type(3) {
    grid-column: 1;
  }

  .home-panel .evaluation-logic-summary > em:nth-of-type(2) {
    display: none;
  }
}

/* 各指标依据弹窗：将参考文献提升为与规则要点并列的重点信息 */
.source-reference-panel {
  margin-top: 20px;
  padding: 16px;
  border: 2px solid #b9d2f3;
  border-radius: 18px;
  background: linear-gradient(135deg, #edf5ff 0%, #f8fbff 58%, #fff8e8 100%);
  box-shadow: 0 10px 26px rgba(42, 91, 157, 0.1);
}

.source-reference-panel > header {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 13px;
}

.source-reference-panel > header > span {
  flex: 0 0 auto;
  padding: 5px 10px;
  border-radius: 999px;
  color: #fff;
  background: #dfa92f;
  font-size: 13px;
  font-weight: 800;
}

.source-reference-panel > header > div {
  display: grid;
  gap: 2px;
}

.source-reference-panel > header b {
  color: #153f79;
  font-size: 19px;
  line-height: 1.25;
}

.source-reference-panel > header small {
  color: #6f829f;
  font-size: 13px;
}

.source-reference-list {
  display: grid;
  gap: 10px;
}

.source-reference-list article {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 11px;
  padding: 13px 14px;
  border: 1px solid rgba(126, 164, 216, 0.34);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
}

.source-reference-list article > i {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  color: #3979d6;
  background: #e8f1ff;
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.source-reference-list article > div {
  display: grid;
  grid-template-columns: auto minmax(180px, 1fr) auto;
  align-items: center;
  gap: 7px 10px;
  min-width: 0;
}

.source-reference-list article span {
  padding: 3px 8px;
  border-radius: 999px;
  color: #2f6fca;
  background: #edf4ff;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.source-reference-list article b {
  color: #183d72;
  font-size: 15px;
  line-height: 1.45;
}

.source-reference-list article code {
  padding: 3px 8px;
  border-radius: 7px;
  color: #7d5a16;
  background: #fff4d7;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.source-reference-list article p {
  grid-column: 1 / -1;
  margin: 0;
  color: #596e8c;
  font-size: 13px;
  line-height: 1.65;
}

.source-reference-list article p strong {
  color: #234f8d;
}

/* 三维评价弹窗：先展示家长关心的判断与行动，再展示专业流程 */
.parent-value-panel {
  margin-bottom: 16px;
  padding: 16px;
  border-radius: 17px;
  background: linear-gradient(135deg, #edf8fa 0%, #f8fbff 100%);
}

.movement-value-panel {
  background: linear-gradient(135deg, #f2efff 0%, #faf9ff 100%);
}

.movement-value-panel > div {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.growth-stage-table .source-rule-table th:first-child,
.growth-stage-table .source-rule-table td:first-child {
  width: 118px;
  white-space: normal;
}

.movement-stage-table .source-rule-table th:first-child,
.movement-stage-table .source-rule-table td:first-child {
  width: 112px;
  white-space: normal;
}

.movement-measure-table .source-rule-table th:first-child,
.movement-measure-table .source-rule-table td:first-child {
  width: 150px;
}

.exam-value-panel {
  background: linear-gradient(135deg, #fff6df 0%, #fffaf0 100%);
}

.parent-value-panel > header,
.parent-decision-table > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.parent-value-panel > header span {
  padding: 5px 10px;
  border-radius: 999px;
  color: #fff;
  background: #3478d4;
  font-size: 13px;
  font-weight: 800;
}

.parent-value-panel > header b,
.parent-decision-table > header b {
  flex: 1;
  color: #153f79;
  font-size: 18px;
}

.parent-value-panel > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.growth-value-panel > div {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.parent-value-panel article {
  position: relative;
  min-height: 106px;
  padding: 13px 13px 12px 48px;
  border: 1px solid rgba(91, 139, 202, 0.2);
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.88);
}

.parent-value-panel article i {
  position: absolute;
  top: 13px;
  left: 12px;
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 50%;
  color: #3779d4;
  background: #e5f0ff;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}

.parent-value-panel article strong {
  display: block;
  margin-bottom: 5px;
  color: #214c84;
  font-size: 15px;
}

.parent-value-panel article p {
  margin: 0;
  color: #607491;
  font-size: 13px;
  line-height: 1.65;
}

.parent-decision-table {
  margin-bottom: 17px;
  overflow: hidden;
  border: 1px solid #d9e5f5;
  border-radius: 15px;
  background: #fff;
}

.parent-decision-table > header {
  margin: 0;
  padding: 12px 14px;
  background: #f3f7fc;
}

.parent-decision-table > header span {
  color: #71849f;
  font-size: 12px;
  font-weight: 700;
}

.parent-decision-row {
  display: grid;
  grid-template-columns: 1.05fr 1.2fr 1.35fr;
  border-top: 1px solid #e7edf6;
}

.parent-decision-row > span {
  padding: 10px 13px;
  color: #586e8b;
  font-size: 13px;
  line-height: 1.55;
}

.parent-decision-row > span + span {
  border-left: 1px solid #edf1f7;
}

.parent-decision-row b,
.parent-decision-row small {
  display: block;
}

.parent-decision-row b {
  color: #214c84;
  font-size: 13px;
}

.parent-decision-row small {
  margin-top: 2px;
  color: #8291a8;
  font-size: 11px;
}

.parent-decision-head {
  background: #fbfcfe;
}

.parent-decision-head > span {
  color: #254f89;
  font-size: 12px;
  font-weight: 800;
}

.exam-priority-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  padding: 13px;
  border-top: 1px solid #e7edf6;
}

.exam-priority-grid span {
  display: grid;
  gap: 3px;
  padding: 11px;
  border-radius: 11px;
  background: #fff8e9;
}

.exam-priority-grid i {
  color: #d99b20;
  font-style: normal;
  font-weight: 800;
}

.exam-priority-grid b {
  color: #765214;
  font-size: 14px;
}

.exam-priority-grid small {
  color: #82745c;
  font-size: 11px;
  line-height: 1.45;
}

.exam-rule-alert {
  margin: 0 13px 13px;
  padding: 10px 12px;
  border-radius: 10px;
  color: #72551f;
  background: #fff4d8;
  font-size: 13px;
  line-height: 1.6;
}

@media (max-width: 760px) {
  .source-reference-panel {
    padding: 13px;
  }

  .source-reference-list article > div {
    grid-template-columns: 1fr;
  }

  .source-reference-list article code {
    justify-self: start;
    white-space: normal;
  }

  .parent-value-panel > div,
  .exam-priority-grid {
    grid-template-columns: 1fr;
  }

  .growth-value-panel > div {
    grid-template-columns: 1fr;
  }

  .parent-decision-row {
    grid-template-columns: 1fr;
  }

  .parent-decision-row > span + span {
    border-top: 1px dashed #e5ebf4;
    border-left: 0;
  }
}

/* Evaluation logic v53: strengthen the final health-record destination. */
.evaluation-logic-details .logic-advice-end {
  position: relative;
  min-height: 68px;
  padding: 11px 18px;
  gap: 14px;
  border: 1px solid transparent;
  cursor: pointer;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    background .28s ease;
}

.evaluation-logic-details .logic-advice-end > span {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 12px;
  font-size: 21px;
}

.evaluation-logic-details .logic-advice-end > div:not(.advice-capabilities) {
  display: flex;
  align-items: center;
  min-width: 0;
}

.evaluation-logic-details .logic-advice-end b {
  color: #214f86;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: .02em;
}

.evaluation-logic-details .advice-capabilities {
  gap: 9px !important;
}

.evaluation-logic-details .advice-capabilities i {
  min-height: 34px;
  padding: 7px 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(88, 132, 188, .12);
  font-size: 12px;
  line-height: 1;
  box-shadow: 0 4px 10px rgba(56, 100, 154, .05);
}

.evaluation-logic-details .logic-advice-arrow {
  position: relative;
  z-index: 1;
  display: grid;
  width: 24px;
  height: 34px;
  flex: 0 0 24px;
  place-items: center;
  color: #3978cd;
  background: transparent;
  box-shadow: none;
  font-size: 28px;
  font-weight: 500;
  line-height: 1;
  transition: transform .22s ease, color .22s ease;
}

.evaluation-logic-details .logic-advice-end:hover,
.evaluation-logic-details .logic-advice-end:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(65, 126, 207, .24);
  background: linear-gradient(100deg, #eef6ff 0%, #f8fbff 45%, #fff2c8 100%);
  box-shadow: 0 15px 30px rgba(34, 78, 132, .14);
  outline: none;
}

.evaluation-logic-details .logic-advice-end:hover .logic-advice-arrow,
.evaluation-logic-details .logic-advice-end:focus-visible .logic-advice-arrow {
  transform: translateX(4px);
  color: #286bc4;
}

.evaluation-logic-details .logic-advice-end:active {
  transform: translateY(-1px) scale(.997);
}

@media (max-width: 760px) {
  .evaluation-logic-details .logic-advice-end {
    flex-wrap: wrap;
  }

  .evaluation-logic-details .advice-capabilities {
    display: flex !important;
    width: 100%;
    margin-left: 56px;
  }
}

/* Student Excel migration dialog. */
.excel-export-dialog {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  padding: 24px;
  place-items: center;
  background: rgba(19, 42, 76, .52);
  backdrop-filter: blur(8px);
}

.excel-export-dialog[hidden] {
  display: none !important;
}

.excel-export-dialog > section {
  width: min(760px, calc(100vw - 32px));
  max-height: min(760px, calc(100vh - 48px));
  overflow: auto;
  padding: 28px;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(24, 55, 96, .28);
}

.excel-export-dialog header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.excel-export-dialog header span {
  color: #4a7fd0;
  font-size: 13px;
  font-weight: 800;
}

.excel-export-dialog h2 {
  margin: 5px 0 6px;
  color: #183f79;
  font-size: 26px;
}

.excel-export-dialog header p {
  margin: 0;
  color: #75849b;
  font-size: 14px;
}

.excel-export-dialog header > button {
  position: relative;
  display: grid;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: #61748f;
  background: #f2f6fb;
  font-size: 0;
  line-height: 1;
}

.excel-export-dialog header > button::before,
.excel-export-dialog header > button::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 15px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transform-origin: center;
}

.excel-export-dialog header > button::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.excel-export-dialog header > button::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.excel-export-class {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  margin-top: 22px;
  padding: 14px 16px;
  border-radius: 14px;
  background: #f4f8ff;
}

.excel-export-class > span {
  color: #254f87;
  font-weight: 800;
}

.excel-export-class select {
  min-height: 44px;
  border: 1px solid #d7e3f3;
  border-radius: 10px;
  background: #fff;
}

.excel-export-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 10px;
}

.excel-export-toolbar strong {
  color: #314f78;
  font-size: 14px;
}

.excel-export-toolbar div {
  display: flex;
  gap: 8px;
}

.excel-export-toolbar button {
  min-height: 34px;
  padding: 6px 13px;
}

.excel-export-student-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  max-height: 360px;
  overflow: auto;
  padding: 2px;
}

.excel-export-student {
  position: relative;
  display: grid;
  grid-template-columns: 20px 42px minmax(0, 1fr) 22px;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid #dfe8f4;
  border-radius: 14px;
  cursor: pointer;
  background: #fff;
  transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}

.excel-export-student:hover {
  border-color: #8db4e8;
  background: #f8fbff;
  transform: translateY(-1px);
}

.excel-export-student:has(input:checked) {
  border-color: #4c84d6;
  background: #edf5ff;
}

.excel-export-student input {
  width: 18px;
  height: 18px;
  accent-color: #447fd1;
}

.excel-export-avatar {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 12px;
  color: #3975c5;
  background: #e6f0ff;
  font-weight: 900;
}

.excel-export-student > span:nth-of-type(2) {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.excel-export-student strong,
.excel-export-student small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.excel-export-student strong {
  color: #193e74;
}

.excel-export-student small {
  color: #7c8ba1;
  font-size: 12px;
}

.excel-export-student > i {
  opacity: 0;
  color: #3979ce;
  font-style: normal;
  font-weight: 900;
}

.excel-export-student:has(input:checked) > i {
  opacity: 1;
}

.excel-export-empty {
  grid-column: 1 / -1;
  margin: 0;
  padding: 36px;
  border-radius: 14px;
  color: #7b8ba1;
  background: #f6f8fb;
  text-align: center;
}

.excel-export-dialog footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 22px;
}

.excel-export-dialog footer button {
  min-width: 132px;
}

@media (max-width: 640px) {
  .excel-export-dialog {
    padding: 12px;
  }

  .excel-export-dialog > section {
    padding: 20px 16px;
  }

  .excel-export-class {
    grid-template-columns: 1fr;
  }

  .excel-export-student-list {
    grid-template-columns: 1fr;
  }
}

/* Evaluation logic v48-final: clean icon controls and reliable click targets. */
.home-panel .evaluation-logic-summary-cue {
  display: grid !important;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(66, 123, 203, .22);
  border-radius: 50%;
  color: #3977ca;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 6px 16px rgba(44, 89, 148, .10);
  transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.home-panel .evaluation-logic-summary-cue i,
.home-panel .evaluation-logic-collapse span {
  display: block;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
}

.home-panel .evaluation-logic-summary-cue i {
  transform: translateY(-2px) rotate(45deg);
}

.home-panel .evaluation-logic-summary:hover .evaluation-logic-summary-cue,
.home-panel .evaluation-logic-summary:focus-visible .evaluation-logic-summary-cue {
  background: #fff;
  box-shadow: 0 8px 20px rgba(44, 89, 148, .17);
  transform: translateY(2px);
}

.home-panel .evaluation-logic-collapse {
  display: grid !important;
  width: 38px;
  height: 38px;
  min-height: 38px;
  flex: 0 0 38px;
  padding: 0;
  place-items: center;
  border-radius: 50%;
  cursor: pointer;
  position: relative;
  z-index: 20;
}

.home-panel .evaluation-logic-collapse span {
  transform: translateY(2px) rotate(225deg);
}

/* Evaluation logic v48: compact icon-only expand/collapse affordances. */
.home-panel .evaluation-logic-summary-cue {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(66, 123, 203, .22);
  border-radius: 50%;
  color: #3977ca;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 6px 16px rgba(44, 89, 148, .10);
  transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.home-panel .evaluation-logic-summary-cue i,
.home-panel .evaluation-logic-collapse span {
  display: block;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
}

.home-panel .evaluation-logic-summary-cue i {
  transform: translateY(-2px) rotate(45deg);
}

.home-panel .evaluation-logic-summary:hover .evaluation-logic-summary-cue,
.home-panel .evaluation-logic-summary:focus-visible .evaluation-logic-summary-cue {
  background: #fff;
  box-shadow: 0 8px 20px rgba(44, 89, 148, .17);
  transform: translateY(2px);
}

.home-panel .evaluation-logic-collapse {
  display: grid;
  width: 38px;
  height: 38px;
  min-height: 38px;
  flex: 0 0 38px;
  padding: 0;
  place-items: center;
  border-radius: 50%;
  cursor: pointer;
  position: relative;
  z-index: 5;
}

.home-panel .evaluation-logic-collapse span {
  transform: translateY(2px) rotate(225deg);
}

.home-panel .evaluation-logic-collapse:hover {
  transform: translateY(-1px);
}

/* Evaluation logic v47-final: expanded view keeps the stage rail on the left. */
.home-panel .evaluation-logic-details:not([hidden]) {
  display: grid;
  grid-template-columns: 178px minmax(0, 1fr);
  column-gap: 22px;
  row-gap: 11px;
  padding: 22px 24px 20px;
}

.evaluation-logic-details > .evaluation-logic-head {
  grid-column: 1 / -1;
  grid-row: 1;
}

.evaluation-logic-details > .logic-main-flow {
  grid-column: 1;
  grid-row: 2 / 6;
}

.evaluation-logic-details > .logic-data-grid {
  grid-column: 2;
  grid-row: 2;
}

.evaluation-logic-details > .logic-match-band {
  grid-column: 2;
  grid-row: 3;
}

.evaluation-logic-details > .logic-output {
  grid-column: 2;
  grid-row: 4;
}

.evaluation-logic-details > .logic-advice-end {
  grid-column: 2;
  grid-row: 5;
}

@media (max-width: 760px) {
  .home-panel .evaluation-logic-details:not([hidden]) {
    grid-template-columns: 1fr;
    padding: 18px 14px;
  }

  .evaluation-logic-details > .evaluation-logic-head { grid-column: 1; grid-row: 1; }
  .evaluation-logic-details > .logic-main-flow { grid-column: 1; grid-row: 2; }
  .evaluation-logic-details > .logic-data-grid { grid-column: 1; grid-row: 3; }
  .evaluation-logic-details > .logic-match-band { grid-column: 1; grid-row: 4; }
  .evaluation-logic-details > .logic-output { grid-column: 1; grid-row: 5; }
  .evaluation-logic-details > .logic-advice-end { grid-column: 1; grid-row: 6; }
}

/* Evaluation logic v47: restore the original left stage rail inside expanded details. */
.home-panel .evaluation-logic-details:not([hidden]) {
  display: grid;
  grid-template-columns: 178px minmax(0, 1fr);
  column-gap: 22px;
  row-gap: 11px;
  padding: 22px 24px 20px;
}

.evaluation-logic-details > .evaluation-logic-head {
  grid-column: 1 / -1;
  grid-row: 1;
}

.evaluation-logic-details > .logic-main-flow {
  grid-column: 1;
  grid-row: 2 / 6;
}

.evaluation-logic-details > .logic-data-grid {
  grid-column: 2;
  grid-row: 2;
}

.evaluation-logic-details > .logic-match-band {
  grid-column: 2;
  grid-row: 3;
}

.evaluation-logic-details > .logic-output {
  grid-column: 2;
  grid-row: 4;
}

.evaluation-logic-details > .logic-advice-end {
  grid-column: 2;
  grid-row: 5;
}

@media (max-width: 760px) {
  .home-panel .evaluation-logic-details:not([hidden]) {
    grid-template-columns: 1fr;
    padding: 18px 14px;
  }

  .evaluation-logic-details > .evaluation-logic-head { grid-column: 1; grid-row: 1; }
  .evaluation-logic-details > .logic-main-flow { grid-column: 1; grid-row: 2; }
  .evaluation-logic-details > .logic-data-grid { grid-column: 1; grid-row: 3; }
  .evaluation-logic-details > .logic-match-band { grid-column: 1; grid-row: 4; }
  .evaluation-logic-details > .logic-output { grid-column: 1; grid-row: 5; }
  .evaluation-logic-details > .logic-advice-end { grid-column: 1; grid-row: 6; }
}
/* Refined, consistent vector illustrations for the four measurement types. */
.logic-illustration {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 196px;
}

.logic-illustration .svg-main,
.logic-illustration .svg-soft,
.logic-illustration .svg-measure,
.logic-illustration .svg-wave,
.logic-illustration .svg-surface {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.logic-illustration .svg-main { stroke-width: 4; }
.logic-illustration .svg-soft { stroke-width: 2; opacity: 0.48; }
.logic-illustration .svg-measure { stroke-width: 2; opacity: 0.72; }
.logic-illustration .svg-wave { stroke-width: 3; }
.logic-illustration .svg-surface { stroke-width: 3; fill: rgba(255,255,255,.36); }

.shape-visual .logic-illustration { color: #397bd0; }
.function-visual .logic-illustration { color: #2d96a2; }
.fitness-visual .logic-illustration { color: #b27c12; }
.skill-visual .logic-illustration { color: #765ec4; }

.svg-metrics text,
.skill-levels text {
  fill: #4d6d96;
  font-size: 10px;
  font-weight: 800;
}

.svg-metrics rect {
  fill: #c8daf0;
}

.svg-metrics .metric-fill {
  fill: #4b86d8;
}

.radar-grid-lines polygon,
.radar-grid-lines path {
  fill: none;
  stroke: #d5b45f;
  stroke-width: 1.2;
}

.radar-grid-lines polygon:first-child {
  fill: rgba(255,255,255,.26);
}

.radar-data {
  fill: rgba(213, 151, 26, 0.4);
  stroke: #bd8516;
  stroke-width: 2.5;
  stroke-linejoin: round;
}

.radar-points circle {
  fill: #fff7df;
  stroke: #bd8516;
  stroke-width: 2;
}

.radar-text text {
  fill: #8c6417;
  font-size: 9px;
  font-weight: 900;
  text-anchor: middle;
}

.svg-badge-ring {
  fill: rgba(255,255,255,.35);
  stroke: #8068cb;
  stroke-width: 3;
  stroke-dasharray: 3 4;
}

.skill-levels rect {
  fill: #d5cdef;
}

.skill-levels .level-fill {
  fill: #8068cb;
}

.skill-projects rect {
  fill: rgba(255,255,255,.7);
  stroke: #b5a8e2;
  stroke-width: 1;
}

.skill-projects text {
  fill: #6f5ab5;
  font-size: 9px;
  font-weight: 800;
  text-anchor: middle;
}

.logic-output-grid article {
  min-height: 238px;
}

.logic-output-grid {
  align-items: stretch;
}

@media (max-width: 620px) {
  .logic-illustration {
    min-height: 150px;
  }
}
/* Evaluation logic v3: vertical stage rail, compact cards, and illustrated outputs. */
.home-panel .evaluation-logic {
  grid-template-columns: 148px minmax(0, 1fr);
  column-gap: 18px;
  row-gap: 16px;
}

.evaluation-logic-head {
  grid-column: 1 / -1;
  grid-row: 1;
}

.logic-main-flow {
  grid-column: 1;
  grid-row: 2 / 6;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: minmax(330px, 1fr) 22px 72px 22px minmax(240px, .8fr) 22px 64px;
  align-items: stretch;
  gap: 0;
  min-height: 100%;
  padding: 14px 11px;
  border-radius: 18px;
  background: linear-gradient(180deg, #e7f2ff 0%, #eef7ff 43%, #fff5d8 100%);
}

.logic-main-flow span {
  position: relative;
  align-self: center;
  justify-content: flex-start;
  padding: 11px 8px;
  border-radius: 12px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 7px 18px rgba(37, 81, 137, 0.08);
}

.logic-main-flow span:nth-of-type(1) { grid-row: 1; }
.logic-main-flow span:nth-of-type(2) { grid-row: 3; }
.logic-main-flow span:nth-of-type(3) { grid-row: 5; }
.logic-main-flow span:nth-of-type(4) { grid-row: 7; }

.logic-main-flow em {
  position: relative;
  justify-self: center;
  align-self: center;
  color: #d69a20;
  transform: rotate(90deg);
}

.logic-main-flow em:nth-of-type(1) { grid-row: 2; }
.logic-main-flow em:nth-of-type(2) { grid-row: 4; }
.logic-main-flow em:nth-of-type(3) { grid-row: 6; }

.logic-main-flow span b {
  font-size: 11px;
  line-height: 1.35;
}

.logic-data-grid {
  grid-column: 2;
  grid-row: 2;
  gap: 11px;
}

.logic-data-card {
  grid-template-columns: 118px minmax(0, 1fr);
  gap: 13px;
  min-height: 194px;
  padding: 13px 14px;
  border-radius: 15px;
}

.logic-visual {
  min-height: 166px;
  border-radius: 12px;
}

.logic-illustration {
  min-height: 166px;
}

.logic-card-content {
  gap: 8px;
}

.logic-card-top h4 {
  font-size: 17px;
}

.logic-card-content > p {
  min-height: 0;
  font-size: 12px;
}

.logic-tags {
  gap: 4px;
}

.logic-tags span {
  padding: 4px 7px;
  font-size: 10px;
}

.logic-card-foot {
  gap: 7px;
  padding-top: 9px;
}

.logic-card-foot button {
  min-height: 30px;
  padding: 0 10px;
  font-size: 11px;
}

.logic-card-foot > span {
  font-size: 10px;
}

.logic-match-band {
  grid-column: 2;
  grid-row: 3;
  min-height: 64px;
  padding: 10px 16px;
}

.logic-output {
  grid-column: 2;
  grid-row: 4;
  padding: 16px;
}

.logic-advice-end {
  grid-column: 2;
  grid-row: 5;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 58px;
  padding: 10px 16px;
  border-radius: 14px;
  background: linear-gradient(90deg, #f2f7ff, #fff7df);
  color: #28578f;
}

.logic-advice-end > span {
  display: grid;
  width: 35px;
  height: 35px;
  place-items: center;
  border-radius: 11px;
  background: #377fd3;
  color: #fff;
  font-size: 18px;
  font-weight: 900;
}

.logic-advice-end div {
  display: grid;
  gap: 2px;
}

.logic-advice-end b {
  font-size: 13px;
}

.logic-advice-end small {
  color: #73849a;
  font-size: 11px;
}

.body-fill {
  fill: rgba(73, 133, 213, 0.1);
  stroke: none;
}

.waist-tape {
  fill: none;
  stroke: #397bd0;
  stroke-width: 2;
  stroke-dasharray: 3 3;
}

.metric-ring {
  fill: none;
  stroke: #c8daf0;
  stroke-width: 5;
}

.metric-ring-fill {
  fill: none;
  stroke: #4b86d8;
  stroke-width: 5;
  stroke-linecap: round;
  stroke-dasharray: 75 107;
  transform: rotate(-90deg);
  transform-origin: center;
}

.ring-waist {
  stroke-dasharray: 55 107;
}

.svg-metrics text {
  text-anchor: middle;
}

.svg-metrics > text {
  text-anchor: start;
}

.svg-metrics .metric-caption {
  fill: #6c83a1;
  font-size: 8px;
  font-weight: 700;
}

.badge-inner {
  fill: rgba(255,255,255,.48);
  stroke: #b7a9e5;
  stroke-width: 1.5;
}

.rope-path,
.rope-handle,
.athlete-body,
.motion-line {
  fill: none;
  stroke: #765ec4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rope-path { stroke-width: 2.5; }
.rope-handle { stroke-width: 4; }
.athlete-body { stroke-width: 3.5; }
.motion-line { stroke-width: 1.8; opacity: .65; }
.athlete-head { fill: #f5f1ff; stroke: #765ec4; stroke-width: 3; }

.skill-levels .level-label {
  fill: #806fae;
  font-size: 8px;
  font-weight: 700;
}

.output-visual {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  place-items: center;
  border-radius: 13px;
}

.output-visual svg {
  width: 38px;
  height: 38px;
  fill: none;
  stroke: currentColor;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.output-growth { background: #e8f2ff; color: #3b7bcd; }
.output-movement { background: #fff2d0; color: #ad7914; }
.output-exam { background: #eee9ff; color: #735ac2; }

.logic-output-grid article {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-content: start;
  column-gap: 10px;
  row-gap: 8px;
  min-height: 224px;
}

.logic-output-grid article .output-visual {
  grid-column: 1;
  grid-row: 1 / 3;
}

.logic-output-grid h5 {
  grid-column: 2;
  align-self: center;
}

.logic-output-grid .logic-inputs,
.logic-output-grid .logic-focus,
.logic-output-grid .logic-outputs,
.logic-output-grid button {
  grid-column: 1 / -1;
}

.logic-output-grid button {
  align-self: end;
  justify-self: start;
}

@media (max-width: 1050px) {
  .home-panel .evaluation-logic {
    grid-template-columns: 1fr;
  }

  .logic-main-flow {
    grid-column: 1;
    grid-row: 2;
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
    grid-template-rows: 1fr;
    min-height: 0;
  }

  .logic-main-flow span,
  .logic-main-flow span:nth-of-type(n),
  .logic-main-flow em,
  .logic-main-flow em:nth-of-type(n) {
    grid-row: 1;
  }

  .logic-main-flow span {
    justify-content: center;
  }

  .logic-main-flow em {
    transform: none;
  }

  .logic-data-grid { grid-column: 1; grid-row: 3; }
  .logic-match-band { grid-column: 1; grid-row: 4; }
  .logic-output { grid-column: 1; grid-row: 5; }
  .logic-advice-end { grid-column: 1; grid-row: 6; }
}

@media (max-width: 700px) {
  .logic-main-flow {
    grid-template-columns: 1fr;
  }

  .logic-main-flow span,
  .logic-main-flow span:nth-of-type(n),
  .logic-main-flow em,
  .logic-main-flow em:nth-of-type(n) {
    grid-row: auto;
  }

  .logic-main-flow em {
    transform: rotate(90deg);
  }

  .logic-data-card {
    grid-template-columns: 104px minmax(0, 1fr);
  }
}

/* Evaluation logic v8: symbols identify categories; text carries the logic. */
.logic-data-card {
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  min-height: 174px;
  padding: 12px 13px;
}

.logic-visual {
  display: grid;
  min-height: 148px;
  place-items: center;
  border: 0;
  box-shadow: none;
}

.logic-visual .logic-illustration {
  display: none;
}

.logic-visual::before {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 19px;
  background: rgba(255,255,255,.62);
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
  box-shadow: 0 7px 16px rgba(41, 82, 133, .08);
}

.shape-visual::before {
  content: "↕";
  color: #397bd0;
}

.function-visual::before {
  content: "≈";
  color: #2d96a2;
}

.fitness-visual::before {
  content: "◇";
  color: #b27c12;
}

.skill-visual::before {
  content: "◎";
  color: #765ec4;
}

.logic-card-content {
  gap: 7px;
}

.logic-card-top h4 {
  font-size: 16px;
}

.logic-card-content > p {
  font-size: 11px;
}

.logic-tags span {
  padding: 3px 6px;
  font-size: 9px;
}

.logic-card-foot {
  padding-top: 7px;
}

.logic-card-foot > span {
  font-size: 9px;
}

.logic-card-foot button {
  min-height: 28px;
  padding-inline: 9px;
  font-size: 10px;
}

.logic-output-grid article {
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: auto auto auto auto auto;
  min-height: 238px;
  padding: 13px;
}

.logic-output-grid article .output-number {
  grid-column: 2;
  grid-row: 1;
}

.logic-output-grid h5 {
  grid-column: 2;
  grid-row: 1;
  padding-right: 34px;
}

.logic-output-grid article .output-visual {
  grid-column: 1;
  grid-row: 1 / 3;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 13px;
  background-image: none;
  box-shadow: none;
}

.logic-output-grid article .output-visual svg {
  display: none;
}

.logic-output-grid article .output-visual::before {
  font-size: 22px;
  font-weight: 800;
}

.logic-output-grid article .output-growth::before {
  content: "↗";
  color: #249fa8;
}

.logic-output-grid article .output-movement::before {
  content: "⌁";
  color: #7958ca;
}

.logic-output-grid article .output-exam::before {
  content: "◎";
  color: #d58b00;
}

.logic-output-grid .logic-inputs,
.logic-output-grid .logic-focus,
.logic-output-grid .logic-outputs,
.logic-output-grid button {
  grid-column: 1 / -1;
}

.logic-output-grid .logic-inputs { grid-row: 2; }
.logic-output-grid .logic-focus { grid-row: 3; }
.logic-output-grid .logic-outputs { grid-row: 4; }
.logic-output-grid button { grid-row: 5; }

/* Evaluation logic v11: final readable, content-fit layout. */
.logic-data-card {
  grid-template-columns: 52px minmax(0, 1fr);
  grid-template-rows: auto;
  align-items: start;
  gap: 11px;
  min-height: 0;
  padding: 13px 14px;
}

.logic-visual {
  align-self: start;
  width: 48px;
  height: 48px;
  min-height: 48px;
  margin-top: 18px;
  overflow: visible;
  border: 0;
  border-radius: 14px;
  box-shadow: none;
}

.logic-visual .logic-illustration {
  display: none;
}

.logic-visual::after {
  display: none;
}

.logic-visual::before {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  font-size: 24px;
  line-height: 1;
  box-shadow: 0 5px 12px rgba(41, 82, 133, .07);
}

.shape-visual::before { content: "↕"; color: #397bd0; }
.function-visual::before { content: "≈"; color: #2d96a2; }
.fitness-visual::before { content: "◇"; color: #b27c12; }
.skill-visual::before { content: "◎"; color: #765ec4; }

.logic-card-content {
  gap: 7px;
}

.logic-card-top {
  justify-content: flex-start;
  text-align: left;
}

.logic-card-top small {
  font-size: 11px;
}

.logic-card-top h4 {
  margin-top: 2px;
  font-size: 18px;
}

.logic-card-content > p {
  min-height: 0;
  text-align: left;
  font-size: 12px;
  line-height: 1.55;
}

.logic-tags {
  justify-content: flex-start;
  gap: 5px;
}

.logic-tags span {
  padding: 4px 7px;
  font-size: 10px;
}

.logic-card-foot {
  margin-top: 2px;
  align-items: center;
  flex-direction: row;
  gap: 7px;
  padding-top: 8px;
}

.logic-card-foot > span {
  font-size: 11px;
}

.logic-card-foot button {
  width: auto;
  min-height: 30px;
  padding-inline: 10px;
  font-size: 11px;
}

.logic-output-head > p {
  display: none;
}

.logic-output-head h4 {
  font-size: 21px;
}

.logic-output-head small {
  font-size: 11px;
}

.logic-output-grid article {
  grid-template-columns: 40px minmax(0, 1fr);
  grid-template-rows: auto auto auto auto auto;
  align-content: start;
  column-gap: 8px;
  row-gap: 7px;
  min-height: 0;
  padding: 14px;
}

.logic-output-grid article .output-number {
  grid-column: 2;
  grid-row: 1;
  font-size: 18px;
}

.logic-output-grid h5 {
  grid-column: 2;
  grid-row: 1;
  padding-right: 32px;
  font-size: 17px;
}

.logic-output-grid article .output-visual {
  grid-column: 1;
  grid-row: 1;
  width: 38px;
  height: 38px;
  min-width: 38px;
  min-height: 38px;
  border: 0;
  border-radius: 11px;
  background-image: none;
  box-shadow: none;
}

.logic-output-grid article .output-visual svg {
  display: none;
}

.logic-output-grid article .output-visual::before {
  font-size: 19px;
  font-weight: 800;
}

.logic-output-grid article .output-growth::before { content: "↗"; color: #249fa8; }
.logic-output-grid article .output-movement::before { content: "⌁"; color: #7958ca; }
.logic-output-grid article .output-exam::before { content: "◎"; color: #d58b00; }

.logic-output-grid .logic-inputs,
.logic-output-grid .logic-focus,
.logic-output-grid .logic-outputs,
.logic-output-grid button {
  grid-column: 1 / -1;
}

.logic-output-grid .logic-inputs { grid-row: 2; }
.logic-output-grid .logic-focus { grid-row: 3; }
.logic-output-grid .logic-outputs { grid-row: 4; }
.logic-output-grid button { grid-row: 5; }

.logic-output-grid .logic-inputs,
.logic-output-grid .logic-focus,
.logic-output-grid .logic-outputs {
  gap: 5px;
}

.logic-output-grid .logic-inputs small,
.logic-output-grid .logic-focus small,
.logic-output-grid .logic-outputs small {
  font-size: 10px;
}

.logic-output-grid .logic-inputs span,
.logic-output-grid .logic-focus span,
.logic-output-grid .logic-outputs span {
  padding: 4px 7px;
  font-size: 10px;
}

.logic-output-grid button {
  min-height: 30px;
  padding-inline: 10px;
  font-size: 11px;
}

/* Evaluation logic v9: denser content area with a roomier stage rail. */
.home-panel .evaluation-logic {
  grid-template-columns: 178px minmax(0, 1fr);
  column-gap: 22px;
  row-gap: 11px;
  padding: 22px 24px 20px;
}

.evaluation-logic-head {
  margin-bottom: 1px;
}

.logic-main-flow {
  padding: 18px 17px;
  grid-template-rows: minmax(250px, 1fr) 18px 58px 18px minmax(164px, .68fr) 18px 54px;
}

.logic-main-flow span {
  padding: 10px 11px;
}

.logic-main-flow span b {
  font-size: 11px;
}

.logic-data-grid {
  gap: 9px;
}

.logic-data-card {
  grid-template-columns: 66px minmax(0, 1fr);
  gap: 10px;
  min-height: 148px;
  padding: 10px 11px;
}

.logic-visual {
  min-height: 126px;
  border-radius: 11px;
}

.logic-visual::before {
  width: 48px;
  height: 48px;
  border-radius: 15px;
  font-size: 25px;
  box-shadow: 0 5px 12px rgba(41, 82, 133, .07);
}

.logic-card-content {
  gap: 5px;
}

.logic-card-top h4 {
  font-size: 15px;
}

.logic-card-top small,
.logic-card-content > p {
  font-size: 10px;
}

.logic-tags {
  gap: 3px;
}

.logic-tags span {
  padding: 3px 5px;
  font-size: 8px;
}

.logic-card-foot {
  gap: 5px;
  padding-top: 5px;
}

.logic-card-foot button {
  min-height: 25px;
  padding-inline: 8px;
  font-size: 9px;
}

.logic-match-band {
  min-height: 52px;
  padding: 7px 13px;
}

.logic-match-band > div {
  gap: 7px;
}

.logic-match-band span {
  padding: 5px 9px;
}

.logic-output {
  padding: 12px;
}

.logic-output-head {
  margin-bottom: 9px;
}

.logic-output-grid {
  gap: 9px;
}

.logic-output-grid article {
  grid-template-columns: 40px minmax(0, 1fr);
  column-gap: 8px;
  row-gap: 6px;
  min-height: 166px;
  padding: 11px;
}

.logic-output-grid article .output-visual {
  width: 38px;
  height: 38px;
  min-width: 38px;
  min-height: 38px;
  border-radius: 11px;
}

.logic-output-grid article .output-visual::before {
  font-size: 19px;
}

.logic-output-grid h5 {
  font-size: 15px;
}

.logic-output-grid .logic-inputs,
.logic-output-grid .logic-focus,
.logic-output-grid .logic-outputs {
  gap: 3px;
}

.logic-output-grid .logic-inputs small,
.logic-output-grid .logic-focus small,
.logic-output-grid .logic-outputs small {
  font-size: 9px;
}

.logic-output-grid .logic-inputs span,
.logic-output-grid .logic-focus span,
.logic-output-grid .logic-outputs span {
  padding: 3px 5px;
  font-size: 8px;
}

.logic-output-grid button {
  min-height: 26px;
  padding: 0 9px;
  font-size: 9px;
}

.logic-advice-end {
  min-height: 50px;
  padding: 8px 14px;
}

@media (max-width: 1050px) {
  .home-panel .evaluation-logic {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .home-panel .evaluation-logic {
    padding: 18px 14px;
  }

  .logic-data-card {
    grid-template-columns: 58px minmax(0, 1fr);
  }
}

/* Evaluation logic v10: remove empty panels, restore readable type. */
.logic-data-card {
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: start;
  min-height: 0;
  padding: 13px 14px;
}

.logic-visual {
  align-self: start;
  width: 48px;
  height: 48px;
  min-height: 48px;
  margin-top: 18px;
  border-radius: 14px;
}

.logic-visual::before {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  font-size: 24px;
}

.logic-card-content {
  gap: 7px;
}

.logic-card-top small {
  font-size: 11px;
}

.logic-card-top h4 {
  font-size: 18px;
}

.logic-card-content > p {
  font-size: 12px;
  line-height: 1.55;
}

.logic-tags {
  gap: 5px;
}

.logic-tags span {
  padding: 4px 7px;
  font-size: 10px;
}

.logic-card-foot {
  margin-top: 2px;
  padding-top: 8px;
}

.logic-card-foot > span {
  font-size: 11px;
}

.logic-card-foot button {
  min-height: 30px;
  padding-inline: 10px;
  font-size: 11px;
}

.logic-match-band {
  min-height: 58px;
}

.logic-match-band > strong {
  font-size: 12px;
}

.logic-match-band span {
  padding: 6px 10px;
}

.logic-match-band span em {
  font-size: 11px;
}

.logic-match-band span small {
  font-size: 9px;
}

.logic-output-head {
  align-items: center;
}

.logic-output-head > div:first-child > span,
.logic-output-head small {
  font-size: 11px;
}

.logic-output-head h4 {
  font-size: 21px;
}

.logic-output-head > p {
  display: none;
}

.logic-output-grid article {
  min-height: 0;
  padding: 14px;
}

.logic-output-grid article .output-number {
  font-size: 18px;
}

.logic-output-grid h5 {
  font-size: 17px;
}

.logic-output-grid .logic-inputs,
.logic-output-grid .logic-focus,
.logic-output-grid .logic-outputs {
  gap: 5px;
}

.logic-output-grid .logic-inputs small,
.logic-output-grid .logic-focus small,
.logic-output-grid .logic-outputs small {
  font-size: 10px;
}

.logic-output-grid .logic-inputs span,
.logic-output-grid .logic-focus span,
.logic-output-grid .logic-outputs span {
  padding: 4px 7px;
  font-size: 10px;
}

.logic-output-grid button {
  min-height: 30px;
  padding-inline: 10px;
  font-size: 11px;
}

@media (max-width: 700px) {
  .logic-data-card {
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .logic-visual {
    width: 44px;
    height: 44px;
    min-height: 44px;
  }
}

/* Evaluation logic v44: collapsed horizontal process summary. */
.evaluation-logic {
  padding: 0;
  overflow: hidden;
}

.evaluation-logic-summary[hidden] {
  display: none;
}

.evaluation-logic-summary {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto;
  width: 100%;
  min-height: 104px;
  padding: 20px 24px;
  align-items: center;
  gap: 14px;
  border: 0;
  border-radius: inherit;
  color: #173c72;
  background: linear-gradient(90deg, #edf5ff 0%, #f7f9ff 55%, #fff9e8 100%);
  box-shadow: none;
  cursor: pointer;
}

.evaluation-logic-summary:hover,
.evaluation-logic-summary:focus-visible {
  background: linear-gradient(90deg, #e3f0ff 0%, #f2f5ff 52%, #fff4d5 100%);
  box-shadow: inset 0 0 0 2px rgba(64, 127, 210, .16);
  outline: none;
}

.evaluation-logic-summary > span {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.evaluation-logic-summary > span i {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  place-items: center;
  border-radius: 50%;
  color: #397bd1;
  background: #fff;
  box-shadow: 0 7px 18px rgba(39, 83, 139, .13);
  font-size: 16px;
  font-style: normal;
  font-weight: 900;
}

.evaluation-logic-summary > span:nth-of-type(2) i { color: #43a2aa; }
.evaluation-logic-summary > span:nth-of-type(3) i { color: #7d65cf; }
.evaluation-logic-summary > span:nth-of-type(4) i { color: #b77b13; }

.evaluation-logic-summary > span b {
  white-space: nowrap;
  font-size: 18px;
}

.evaluation-logic-summary > em {
  color: #d6a02d;
  font-size: 24px;
  font-style: normal;
  font-weight: 800;
}

.evaluation-logic-summary > strong {
  display: flex;
  align-items: center;
  gap: 7px;
  padding-left: 8px;
  color: #3f75ba;
  white-space: nowrap;
  font-size: 13px;
}

.evaluation-logic-summary > strong i {
  font-size: 18px;
  font-style: normal;
}

.evaluation-logic-details {
  padding: 22px 24px 24px;
}

.evaluation-logic-collapse {
  width: auto;
  min-height: 36px;
  padding: 7px 13px;
  border: 1px solid rgba(70, 126, 200, .22);
  border-radius: 999px;
  color: #3c72b8;
  background: rgba(240, 246, 255, .9);
  font-size: 13px;
  font-weight: 800;
}

.evaluation-logic-collapse:hover {
  background: #e7f1ff;
}

@media (max-width: 900px) {
  .evaluation-logic-summary {
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
    padding: 16px;
    gap: 7px;
  }

  .evaluation-logic-summary > strong {
    grid-column: 1 / -1;
    justify-self: center;
    padding: 2px 0 0;
  }

  .evaluation-logic-summary > span {
    gap: 6px;
  }

  .evaluation-logic-summary > span b {
    font-size: 14px;
  }
}

/* 2026-07-30: align the four-stage rail to the four corresponding content rows. */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 761px) {
    .home-panel .evaluation-logic-details:not([hidden]) > .logic-main-flow {
      position: relative;
      grid-row: 1 / 5;
      grid-template-rows: subgrid;
      row-gap: 11px;
    }

    .home-panel .evaluation-logic-details:not([hidden]) > .logic-main-flow::before {
      content: "";
      position: absolute;
      top: calc((100% - 3 * 11px) / 8 + 18px);
      bottom: calc((100% - 3 * 11px) / 8 + 18px);
      left: 46px;
      width: 1px;
      border-radius: 999px;
      background: linear-gradient(180deg, #74a7ed 0%, #8c85df 68%, #d8a43b 100%);
      z-index: 0;
    }

    .home-panel .logic-main-flow span:nth-of-type(1) { grid-row: 1; }
    .home-panel .logic-main-flow span:nth-of-type(2) { grid-row: 2; }
    .home-panel .logic-main-flow span:nth-of-type(3) { grid-row: 3; }
    .home-panel .logic-main-flow span:nth-of-type(4) { grid-row: 4; }

    .home-panel .logic-main-flow em:nth-of-type(1) { grid-row: 1; }
    .home-panel .logic-main-flow em:nth-of-type(2) { grid-row: 2; }
    .home-panel .logic-main-flow em:nth-of-type(3) { grid-row: 3; }

    .home-panel .logic-main-flow > em {
      display: none;
    }

    .home-panel .logic-main-flow span {
      position: relative;
      z-index: 1;
    }

    .home-panel .logic-main-flow span i {
      position: relative;
      z-index: 2;
      border: 1px solid rgba(115, 158, 220, 0.28);
      box-shadow: 0 4px 12px rgba(35, 82, 140, 0.12);
    }
  }
}

/* 2026-07-30：首页总览与三个核心入口合并，成长档案流程固定展开。 */
.home-panel .landing-overview-card {
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #d7e3f3;
  border-radius: 24px;
  background: linear-gradient(135deg, #fff 0%, #f7faff 58%, #edf5ff 100%);
  box-shadow: 0 16px 42px rgba(35, 75, 128, .10);
}

.landing-overview-main {
  box-sizing: border-box;
  min-height: 224px;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(430px, .88fr);
  align-items: center;
  gap: 34px;
  padding: 28px 38px 24px;
  background:
    radial-gradient(circle at 81% 17%, rgba(255, 211, 82, .18), transparent 27%),
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(245,250,255,.90));
}

.landing-overview-main .landing-copy {
  max-width: 760px;
}

.landing-eyebrow {
  display: inline-flex;
  margin-bottom: 8px;
  color: #4d7fbd;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .16em;
}

.landing-overview-main .landing-copy h2 {
  margin: 0 0 10px;
  font-size: clamp(31px, 3vw, 44px);
  line-height: 1.15;
}

.landing-overview-main .landing-copy p {
  max-width: 720px;
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
}

.landing-overview-main .landing-hero-side {
  display: grid !important;
  grid-template-columns: minmax(190px, .9fr) minmax(190px, 1fr);
  gap: 18px;
}

.landing-overview-main .landing-mini-stats {
  display: grid !important;
  gap: 4px;
  padding: 14px 16px;
}

.landing-overview-main .landing-mini-stats strong {
  font-size: 38px;
}

.landing-overview-main .landing-mini-stats span {
  font-size: 13px;
}

.landing-overview-main .landing-mini-stats em {
  font-size: 13px;
}

.landing-overview-main .landing-mini-stats b {
  min-height: 26px;
  padding: 4px 9px;
  font-size: 12px;
}

.landing-overview-main .landing-illustration {
  display: block !important;
  min-height: 166px;
}

.landing-core-actions {
  display: grid;
  grid-template-columns: 1.14fr 1fr 1fr;
  border-top: 1px solid #dce7f5;
  background: rgba(255, 255, 255, .82);
}

.landing-core-action {
  box-sizing: border-box;
  min-width: 0;
  min-height: 124px;
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) auto;
  grid-template-rows: auto;
  align-items: center;
  gap: 14px;
  padding: 18px 22px;
  border-right: 1px solid #e1e9f4;
}

.landing-core-action:last-child {
  border-right: 0;
}

.landing-core-action .feature-icon {
  grid-column: 1;
  grid-row: 1;
  width: 48px;
  height: 48px;
  margin: 0;
}

.landing-core-action h3 {
  margin: 0 0 4px;
  color: #173f79;
  font-size: 20px;
  line-height: 1.2;
}

.landing-core-action p {
  margin: 0;
  color: #71829a;
  font-size: 13px;
  line-height: 1.45;
}

.landing-core-action button {
  width: auto;
  min-height: 40px;
  padding: 8px 16px;
  border-radius: 9px;
  white-space: nowrap;
  color: #fff;
  background: #3f7ed8;
  border-color: #3f7ed8;
  font-size: 14px;
  font-weight: 800;
}

.landing-core-action > button {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  margin: 0;
}

.core-action-archive {
  background: linear-gradient(135deg, rgba(255,255,255,.45), rgba(255,248,218,.64));
}

.core-action-archive > button {
  background: #dda51f;
  border-color: #dda51f;
}

.core-action-settings {
  background: linear-gradient(135deg, rgba(255,255,255,.35), rgba(240,245,251,.82));
}

.core-action-buttons {
  grid-column: 3;
  grid-row: 1;
  display: flex;
  align-items: center;
  gap: 8px;
}

.core-action-entry {
  grid-template-columns: 50px minmax(0, 1fr);
  grid-template-rows: auto auto;
  row-gap: 9px;
}

.core-action-entry .core-action-buttons {
  grid-column: 2;
  grid-row: 2;
  justify-self: start;
}

.landing-core-action .core-secondary-action {
  color: #416fa9;
  background: #fff;
  border-color: #cbdcf1;
  font-weight: 700;
}

.home-panel .evaluation-logic-static {
  cursor: default;
  border-radius: 22px 22px 0 0;
}

.home-panel .evaluation-logic-static:hover,
.home-panel .evaluation-logic-static:focus-visible {
  background: linear-gradient(90deg, #edf5ff 0%, #f7f9ff 55%, #fff9e8 100%);
  box-shadow: none;
}

@media (max-width: 1180px) {
  .landing-overview-main {
    grid-template-columns: minmax(0, 1fr) minmax(360px, .78fr);
    padding-inline: 28px;
  }

  .landing-overview-main .landing-hero-side {
    grid-template-columns: 1fr;
  }

  .landing-overview-main .landing-illustration {
    display: none !important;
  }

  .landing-core-action {
    grid-template-columns: 46px minmax(0, 1fr);
  }

  .landing-core-action > button,
  .landing-core-action .core-action-buttons {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
  }
}

@media (max-width: 820px) {
  .landing-overview-main {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 24px 20px;
  }

  .landing-overview-main .landing-hero-side {
    display: block !important;
  }

  .landing-core-actions {
    grid-template-columns: 1fr;
  }

  .landing-core-action {
    min-height: 104px;
    border-right: 0;
    border-bottom: 1px solid #e1e9f4;
  }

  .landing-core-action:last-child {
    border-bottom: 0;
  }

  .core-action-buttons {
    flex-wrap: wrap;
  }

  .home-panel .evaluation-logic-static {
    border-radius: 18px 18px 0 0;
  }
}

/* 2026-07-30: entry actions and centralized data management. */
.entry-action-buttons #entryReportBtn {
  min-width: 270px;
}

.settings-data-management-card {
  min-height: 0;
  padding-right: 24px !important;
  background: linear-gradient(145deg, #fff, #f5f9ff) !important;
}

.settings-data-management-card::after {
  display: none;
}

.settings-data-management-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 12px;
}

.settings-data-management-groups > div {
  padding: 14px 16px;
  border: 1px solid #dbe7f6;
  border-radius: 14px;
  background: rgba(255, 255, 255, .84);
}

.settings-data-management-groups > div > strong {
  color: #214d87;
}

.settings-data-management-groups .data-actions {
  flex-wrap: wrap;
  margin-top: 10px;
}

.settings-data-management-groups .hint {
  margin: 10px 0 0;
}

.settings-data-management-groups .hint.import-warning {
  color: #b24a31;
}

@media (max-width: 980px) {
  .settings-data-management-groups {
    grid-template-columns: 1fr;
  }
}

@media print {
  body.print-report-viewer .horizontal-report > .horizontal-section:nth-of-type(3) {
    margin-top: 4mm !important;
    break-before: auto !important;
    page-break-before: auto !important;
  }

  body.print-longitudinal-report .archive-quality-grid article {
    min-height: 25mm !important;
    padding: 2.5mm 3mm 2.5mm 12mm !important;
  }

  body.print-longitudinal-report .archive-quality-grid article::before {
    left: 2.5mm !important;
    top: 3mm !important;
    width: 7mm !important;
    height: 7mm !important;
    border-width: 1mm !important;
    font-size: 8pt !important;
    box-shadow: none !important;
  }

  body.print-longitudinal-report .longitudinal-summary-grid article::before {
    display: none !important;
    content: none !important;
  }
}

@media (max-width: 620px) {
  .evaluation-logic-summary {
    grid-template-columns: 1fr auto 1fr;
  }

  .evaluation-logic-summary > span:nth-of-type(3) {
    grid-column: 1;
  }

  .evaluation-logic-summary > em:nth-of-type(2) {
    display: none;
  }

  .evaluation-logic-summary > span i {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
    font-size: 13px;
  }

  .evaluation-logic-summary > span b {
    font-size: 13px;
  }

  .evaluation-logic-details {
    padding: 16px 12px;
  }
}

@media (max-width: 700px) {
  .logic-data-card {
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .logic-visual::before {
    width: 52px;
    height: 52px;
  }
}
/* Evaluation logic v4: polished methodology infographic. */
.evaluation-logic-head p {
  max-width: 850px;
  margin: 6px 0 0;
  color: #657a96;
  font-size: 13px;
  line-height: 1.65;
}

.logic-main-flow {
  position: relative;
  padding: 16px 10px;
  background: linear-gradient(180deg, rgba(235,245,255,.86), rgba(246,249,255,.9) 58%, rgba(255,247,225,.92));
  box-shadow: inset -1px 0 rgba(109, 148, 200, .15);
}

.logic-main-flow::before {
  content: "";
  position: absolute;
  top: 46px;
  bottom: 46px;
  left: 28px;
  width: 1px;
  background: linear-gradient(180deg, #5b9be6, #67c7cd 45%, #9d7ee0 72%, #e3a72b);
}

.logic-main-flow span {
  z-index: 1;
  align-self: center;
  gap: 9px;
  padding: 12px 8px;
  background: transparent;
  box-shadow: none;
}

.logic-main-flow span i {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  background: #fff;
  box-shadow: 0 5px 14px rgba(34, 81, 141, .14), inset 0 0 0 1px rgba(72, 126, 194, .08);
}

.logic-main-flow span:nth-of-type(1) i { color: #347bd1; }
.logic-main-flow span:nth-of-type(2) i { color: #2da1ab; }
.logic-main-flow span:nth-of-type(3) i { color: #795ec8; }
.logic-main-flow span:nth-of-type(4) i { color: #b87c08; }

.logic-main-flow span div {
  display: grid;
  gap: 4px;
}

.logic-main-flow span b {
  color: #244f84;
  font-size: 12px;
}

.logic-main-flow span small {
  color: #7a8ba1;
  font-size: 9px;
  line-height: 1.45;
}

.logic-main-flow > em {
  z-index: 1;
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  font-size: 11px;
}

.logic-layer-label {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  padding: 0 13px;
  border-radius: 10px;
  background: linear-gradient(90deg, #e7f2ff, rgba(255,255,255,.5));
}

.logic-layer-label b {
  color: #3474c3;
  font-size: 12px;
}

.logic-layer-label span {
  color: #8091a7;
  font-size: 10px;
}

.logic-data-card {
  overflow: hidden;
  border: 0;
  box-shadow: 0 10px 26px rgba(31, 75, 130, .1);
}

.logic-shape {
  box-shadow: 0 13px 30px rgba(47, 112, 198, .13);
}

.logic-fitness {
  min-height: 205px;
  box-shadow: 0 15px 34px rgba(191, 132, 19, .16);
}

.logic-fitness::after {
  content: "能力结构核心";
  position: absolute;
  top: 0;
  right: 18px;
  padding: 4px 9px;
  border-radius: 0 0 8px 8px;
  background: #e4aa2e;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
}

.logic-match-band {
  grid-template-columns: 145px minmax(0, 1fr);
  padding: 9px 13px;
  background: linear-gradient(90deg, #e7f2ff, #f2f7ff 48%, #fff5d8);
  box-shadow: 0 10px 24px rgba(38, 80, 132, .08);
}

.logic-match-band > strong {
  display: grid;
  gap: 3px;
  padding-right: 12px;
  font-size: 11px;
}

.logic-match-band > strong small {
  color: #5890d0;
  font-size: 9px;
}

.logic-process-track {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 6px !important;
}

.logic-process-track .process-node {
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 7px;
  min-width: 0;
  padding: 7px 8px;
  border-radius: 11px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 5px 14px rgba(43, 87, 143, .08);
}

.logic-process-track .process-node > b {
  grid-row: 1 / 3;
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 9px;
  background: #e8f2ff;
  color: #3979ca;
  font-size: 12px;
}

.logic-process-track .process-node:nth-of-type(3) > b,
.logic-process-track .process-node:nth-of-type(4) > b {
  background: #f0ebff;
  color: #765bc3;
}

.logic-process-track .process-node:nth-of-type(5) > b {
  background: #fff2d5;
  color: #a9750c;
}

.logic-process-track .process-node em {
  color: #315c91;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.logic-process-track .process-node small {
  overflow: hidden;
  color: #8291a4;
  font-size: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.logic-process-track > i {
  color: #d99c20;
  font-size: 13px;
}

.logic-output {
  position: relative;
  background: linear-gradient(180deg, #edf6ff, #e9f3ff);
  box-shadow: inset 0 0 0 1px rgba(77, 130, 193, .06);
}

.logic-output-head small {
  display: inline-flex;
  padding: 4px 9px;
  border-radius: 999px;
  background: #e7ddff;
  color: #7257bd;
  letter-spacing: 0;
}

.logic-output-grid article {
  border-top: 3px solid transparent;
  box-shadow: 0 10px 24px rgba(34, 77, 129, .09);
}

.logic-output-grid article:nth-child(1) {
  border-top-color: #4cb8bc;
  background: linear-gradient(155deg, #fff, #f5fcfc);
}

.logic-output-grid article:nth-child(2) {
  border-top-color: #8067cc;
  background: linear-gradient(155deg, #fff, #faf8ff);
}

.logic-output-grid article:nth-child(3) {
  border-top-color: #dfa52b;
  background: linear-gradient(155deg, #fff, #fffaf0);
}

.logic-output-grid article:nth-child(1) .output-number { color: #45aeb3; }
.logic-output-grid article:nth-child(2) .output-number { color: #7c62ca; }
.logic-output-grid article:nth-child(3) .output-number { color: #d69b21; }

.logic-advice-end {
  position: relative;
  overflow: hidden;
  box-shadow: 0 9px 22px rgba(34, 78, 132, .08);
}

.logic-advice-end::after {
  content: "";
  position: absolute;
  right: -30px;
  top: -45px;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: rgba(238, 184, 64, .09);
}

.advice-capabilities {
  display: flex !important;
  flex-direction: row !important;
  gap: 6px !important;
  margin-left: auto;
  z-index: 1;
}

.advice-capabilities i {
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.75);
  color: #4d6f98;
  font-size: 9px;
  font-style: normal;
  font-weight: 800;
}

@media (max-width: 1150px) {
  .logic-process-track .process-node small {
    display: none;
  }

  .logic-process-track .process-node {
    grid-template-rows: auto;
  }

  .logic-process-track .process-node > b {
    grid-row: 1;
  }
}

@media (max-width: 760px) {
  .logic-layer-label {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
    padding-block: 8px;
  }

  .logic-process-track {
    grid-template-columns: 1fr !important;
  }

  .logic-process-track > i {
    justify-self: center;
    transform: rotate(90deg);
  }

  .advice-capabilities {
    display: none !important;
  }
}

/* Evaluation logic v5: polished input illustrations and explanatory output panels. */
.logic-data-card {
  grid-template-columns: 132px minmax(0, 1fr);
  min-height: 206px;
  padding: 14px;
}

.logic-visual,
.logic-illustration {
  min-height: 178px;
}

.logic-visual {
  border: 1px solid rgba(77, 127, 190, .08);
  box-shadow: inset 0 1px rgba(255,255,255,.78);
}

.logic-illustration {
  filter: drop-shadow(0 6px 8px rgba(39, 80, 132, .06));
}

.shape-visual .body-fill {
  fill: rgba(73, 133, 213, .13);
}

.shape-visual .svg-surface,
.function-visual .svg-surface {
  fill: rgba(255,255,255,.58);
}

.shape-visual .metric-ring,
.shape-visual .metric-ring-fill {
  filter: drop-shadow(0 2px 3px rgba(55, 111, 184, .13));
}

.fitness-visual .radar-data {
  filter: drop-shadow(0 4px 4px rgba(181, 124, 14, .16));
}

.skill-visual .svg-badge-ring,
.skill-visual .badge-inner {
  filter: drop-shadow(0 5px 7px rgba(110, 82, 180, .12));
}

.logic-output-head {
  margin-bottom: 10px;
}

.logic-source-map {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) 150px;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  padding: 9px 10px;
  border-radius: 13px;
  background: rgba(255,255,255,.7);
  box-shadow: inset 0 0 0 1px rgba(74, 126, 192, .08);
}

.logic-source-map span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 30px;
  padding: 5px 8px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 900;
}

.logic-source-map span i {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 7px;
  background: rgba(255,255,255,.72);
  font-size: 12px;
  font-style: normal;
}

.logic-source-map .source-shape { background: #e8f2ff; color: #3475ca; }
.logic-source-map .source-function { background: #e3f7f8; color: #288c98; }
.logic-source-map .source-fitness { background: #fff2cf; color: #9b6c0e; }
.logic-source-map .source-skill { background: #eee9ff; color: #7259c2; }

.logic-source-map > b {
  position: relative;
  color: #54729a;
  font-size: 10px;
  text-align: center;
}

.logic-source-map > b::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 100%;
  width: 18px;
  height: 1px;
  margin-right: 2px;
  background: #9ab7d9;
}

.logic-output-grid article {
  grid-template-columns: 1fr auto;
  grid-template-rows: auto 104px auto auto auto auto;
  min-height: 326px;
  padding: 14px;
  column-gap: 10px;
  row-gap: 9px;
}

.logic-output-grid article .output-number {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  justify-self: end;
}

.logic-output-grid h5 {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  font-size: 17px;
}

.logic-output-grid article .output-visual {
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100%;
  height: 104px;
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(77, 122, 178, .06);
}

.logic-output-grid article .output-visual svg {
  width: 100%;
  height: 100%;
  stroke-width: 2;
}

.logic-output-grid .logic-inputs { grid-row: 3; }
.logic-output-grid .logic-focus { grid-row: 4; }
.logic-output-grid .logic-outputs { grid-row: 5; }
.logic-output-grid button { grid-row: 6; }

.output-growth {
  background: linear-gradient(145deg, #edfbfc, #e2f7f8);
  color: #20a9b5;
}

.output-growth .chart-grid {
  stroke: #aadce0;
  stroke-width: 1;
  opacity: .6;
}

.output-growth .growth-area {
  fill: url(#growthArea);
  stroke: none;
}

.output-growth .growth-line {
  fill: none;
  stroke: #20a9b5;
  stroke-width: 3.5;
}

.output-growth .chart-points circle {
  fill: #fff;
  stroke: #20a9b5;
  stroke-width: 3;
}

.output-growth .chart-labels {
  fill: #5e8b91;
  stroke: none;
  font-size: 8px;
  font-weight: 700;
}

.output-movement {
  background: linear-gradient(145deg, #f5f1ff, #ede7ff);
  color: #8359d9;
}

.output-movement .mini-radar > path {
  fill: none;
  stroke: #bba8e6;
  stroke-width: 1.2;
}

.output-movement .mini-radar .mini-radar-data {
  fill: rgba(131, 89, 217, .24);
  stroke: #8359d9;
  stroke-width: 2;
}

.output-movement .movement-person circle {
  fill: #8359d9;
  stroke: none;
}

.output-movement .movement-person path,
.output-movement .ability-bars path {
  fill: none;
  stroke: #8359d9;
  stroke-linecap: round;
}

.output-movement .movement-person path { stroke-width: 5; }
.output-movement .ability-bars path { stroke-width: 7; opacity: .5; }
.output-movement .ability-dots circle { fill: #8359d9; stroke: none; }

.output-exam {
  background: linear-gradient(145deg, #fff8e8, #fff2d3);
  color: #dc9000;
}

.output-exam .target circle,
.output-exam .target path {
  fill: none;
  stroke: #dc9000;
}

.output-exam .target circle:first-child { stroke: #f0bd57; stroke-width: 7; }
.output-exam .target circle:nth-child(2) { stroke-width: 6; }
.output-exam .target circle:nth-child(3) { fill: #dc9000; stroke: none; }
.output-exam .target path { stroke-width: 3; }
.output-exam .target path:last-child { fill: #dc9000; stroke: none; }

.output-exam .gauge-track,
.output-exam .gauge-value {
  fill: none;
  stroke-linecap: round;
  stroke-width: 11;
}

.output-exam .gauge-track { stroke: #f2d494; }
.output-exam .gauge-value { stroke: #dc9000; }

.output-exam .score-gauge text {
  fill: #b46f00;
  stroke: none;
  font-size: 23px;
  font-weight: 900;
  text-anchor: middle;
}

.output-exam .score-gauge small {
  display: none;
}

.output-exam .exam-items rect {
  fill: rgba(255,255,255,.7);
  stroke: #edbe62;
  stroke-width: 1;
}

.output-exam .exam-items path {
  fill: none;
  stroke: #d88700;
  stroke-width: 2;
}

@media (max-width: 1080px) {
  .logic-source-map {
    grid-template-columns: repeat(4, 1fr);
  }

  .logic-source-map > b {
    grid-column: 1 / -1;
  }
}


/* Entry selector and inferred-grade refinements. */
.entry-panel #existingStudentSelect {
  font-weight: 500;
}

.entry-panel #existingStudentSelect::placeholder {
  color: #a8b4c5;
  font-weight: 400;
  opacity: 1;
}

.entry-panel #existingStudentSelect:placeholder-shown {
  color: #a8b4c5;
  font-weight: 400;
}

.entry-field-note {
  display: block;
  margin-top: 7px;
  color: #8a9aaf;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.45;
}

/* Homepage card title rhythm and action alignment. */
.home-panel .landing-feature-grid .feature-entry-card {
  row-gap: 15px;
}

.home-panel .landing-feature-grid .feature-entry-card > button {
  transform: translateY(8px);
}

@media (max-width: 1080px) {
  .home-panel .landing-feature-grid .feature-entry-card > button {
    transform: none;
  }
}

@media (max-width: 700px) {
  .logic-source-map {
    grid-template-columns: repeat(2, 1fr);
  }

  .logic-data-card {
    grid-template-columns: 112px minmax(0, 1fr);
  }
}

/* Evaluation logic v6: reference artwork embedded as image assets. */
.logic-data-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
}

.logic-layer-label {
  grid-column: 1 / -1;
}

.logic-data-card {
  grid-template-columns: 1fr;
  grid-template-rows: 248px minmax(0, 1fr);
  gap: 10px;
  min-width: 0;
  min-height: 458px;
  padding: 12px;
}

.logic-visual {
  position: relative;
  min-height: 248px;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.logic-visual .logic-illustration {
  visibility: hidden;
}

.logic-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: .97;
  mix-blend-mode: multiply;
  -webkit-mask-image: radial-gradient(ellipse 82% 88% at 50% 48%, #000 70%, transparent 100%);
  mask-image: radial-gradient(ellipse 82% 88% at 50% 48%, #000 70%, transparent 100%);
}

.shape-visual {
  background: radial-gradient(circle at 50% 42%, rgba(232,242,255,.8), transparent 72%);
}
.function-visual {
  background: radial-gradient(circle at 50% 42%, rgba(227,247,248,.82), transparent 72%);
}
.fitness-visual {
  background: radial-gradient(circle at 50% 42%, rgba(255,243,211,.84), transparent 72%);
}
.skill-visual {
  background: radial-gradient(circle at 50% 42%, rgba(239,234,255,.86), transparent 72%);
}

.shape-visual::after { background-image: url("../images/logic/logic-shape.png"); }
.function-visual::after { background-image: url("../images/logic/logic-function.png"); }
.fitness-visual::after { background-image: url("../images/logic/logic-fitness.png"); }
.skill-visual::after { background-image: url("../images/logic/logic-skill.png"); }

.logic-card-content {
  gap: 8px;
}

.logic-card-top {
  justify-content: center;
  text-align: center;
}

.logic-card-top h4 {
  margin-top: 3px;
  font-size: 16px;
}

.logic-card-content > p {
  min-height: 38px;
  text-align: center;
}

.logic-tags {
  justify-content: center;
}

.logic-card-foot {
  margin-top: auto;
  align-items: flex-start;
  flex-direction: column;
}

.logic-card-foot button {
  width: 100%;
}

.logic-source-map {
  display: none;
}

.logic-output-grid article .output-visual {
  overflow: hidden;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-blend-mode: multiply;
}

.logic-output-grid article .output-visual svg {
  visibility: hidden;
}

.logic-output-grid article .output-growth {
  background-color: #ebf9fa;
  background-image:
    linear-gradient(90deg, rgba(235,249,250,.2), rgba(235,249,250,.06)),
    url("../images/logic/logic-growth.png");
}

.logic-output-grid article .output-movement {
  background-color: #f2edff;
  background-image:
    linear-gradient(90deg, rgba(242,237,255,.18), rgba(242,237,255,.05)),
    url("../images/logic/logic-movement.png");
}

.logic-output-grid article .output-exam {
  background-color: #fff5dd;
  background-image:
    linear-gradient(90deg, rgba(255,245,221,.15), rgba(255,245,221,.04)),
    url("../images/logic/logic-exam.png");
}

@media (max-width: 1180px) {
  .logic-data-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .logic-data-card {
    grid-template-columns: 148px minmax(0, 1fr);
    grid-template-rows: auto;
    min-height: 224px;
  }

  .logic-card-top {
    justify-content: flex-start;
    text-align: left;
  }

  .logic-card-content > p {
    min-height: 0;
    text-align: left;
  }

  .logic-tags {
    justify-content: flex-start;
  }
}

@media (max-width: 700px) {
  .logic-data-grid {
    grid-template-columns: 1fr;
  }

  .logic-data-card {
    grid-template-columns: 118px minmax(0, 1fr);
    min-height: 212px;
  }
}

/* Evaluation logic v7: compact native SVG illustrations. */
.logic-data-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

.logic-data-card {
  grid-template-columns: 124px minmax(0, 1fr);
  grid-template-rows: auto;
  gap: 13px;
  min-height: 202px;
  padding: 13px 14px;
}

.logic-visual {
  min-height: 174px;
  overflow: hidden;
  border: 1px solid rgba(75, 126, 190, .08);
  border-radius: 13px;
  box-shadow: inset 0 1px rgba(255,255,255,.72);
}

.logic-visual::after {
  display: none;
}

.logic-visual .logic-illustration {
  visibility: visible;
  min-height: 174px;
  filter: none;
}

.shape-visual { background: linear-gradient(155deg, #edf5ff, #dcecff); }
.function-visual { background: linear-gradient(155deg, #eafafb, #d8f3f6); }
.fitness-visual { background: linear-gradient(155deg, #fff8e8, #ffedbd); }
.skill-visual { background: linear-gradient(155deg, #f5f1ff, #e9e1ff); }

.logic-card-top {
  justify-content: flex-start;
  text-align: left;
}

.logic-card-content > p {
  min-height: 0;
  text-align: left;
}

.logic-tags {
  justify-content: flex-start;
}

.logic-card-foot {
  align-items: center;
  flex-direction: row;
}

.logic-card-foot button {
  width: auto;
}

.logic-output-grid article {
  grid-template-columns: 1fr auto;
  grid-template-rows: auto 104px auto auto auto auto;
  min-height: 326px;
}

.logic-output-grid article .output-visual {
  background-image: none;
  background-blend-mode: normal;
}

.logic-output-grid article .output-visual svg {
  visibility: visible;
}

.logic-output-grid article .output-growth {
  background: linear-gradient(145deg, #edfbfc, #e2f7f8);
}

.logic-output-grid article .output-movement {
  background: linear-gradient(145deg, #f5f1ff, #ede7ff);
}

.logic-output-grid article .output-exam {
  background: linear-gradient(145deg, #fff8e8, #fff2d3);
}

@media (max-width: 700px) {
  .logic-data-grid {
    grid-template-columns: 1fr;
  }

  .logic-data-card {
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 198px;
  }
}

/* Final output-card compaction; must follow all earlier illustration rules. */
.logic-output-grid article {
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: auto auto auto auto auto;
  min-height: 232px;
  padding: 13px;
}

.logic-output-grid article .output-number {
  grid-column: 2;
  grid-row: 1;
}

.logic-output-grid h5 {
  grid-column: 2;
  grid-row: 1;
  padding-right: 32px;
}

.logic-output-grid article .output-visual {
  grid-column: 1;
  grid-row: 1 / 3;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  background-image: none;
  box-shadow: none;
}

.logic-output-grid article .output-visual svg {
  display: none;
}

.logic-output-grid article .output-visual::before {
  font-size: 22px;
  font-weight: 800;
}

.logic-output-grid article .output-growth::before { content: "↗"; color: #249fa8; }
.logic-output-grid article .output-movement::before { content: "⌁"; color: #7958ca; }
.logic-output-grid article .output-exam::before { content: "◎"; color: #d58b00; }

.logic-output-grid .logic-inputs,
.logic-output-grid .logic-focus,
.logic-output-grid .logic-outputs,
.logic-output-grid button {
  grid-column: 1 / -1;
}

.logic-output-grid .logic-inputs { grid-row: 2; }
.logic-output-grid .logic-focus { grid-row: 3; }
.logic-output-grid .logic-outputs { grid-row: 4; }
.logic-output-grid button { grid-row: 5; }

/* Evaluation logic v12: override legacy fixed illustration dimensions. */
.logic-data-card {
  grid-template-columns: 52px minmax(0, 1fr);
  grid-template-rows: auto;
  align-items: start;
  gap: 11px;
  min-height: 0;
  padding: 13px 14px;
}

.logic-visual {
  align-self: start;
  width: 48px;
  height: 48px;
  min-height: 48px;
  margin-top: 18px;
  overflow: visible;
  border: 0;
  border-radius: 14px;
  box-shadow: none;
}

.logic-visual .logic-illustration,
.logic-visual::after {
  display: none;
}

.logic-visual::before {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  font-size: 24px;
  line-height: 1;
  box-shadow: 0 5px 12px rgba(41,82,133,.07);
}

.shape-visual::before { content: "↕"; color: #397bd0; }
.function-visual::before { content: "≈"; color: #2d96a2; }
.fitness-visual::before { content: "◇"; color: #b27c12; }
.skill-visual::before { content: "◎"; color: #765ec4; }

.logic-card-content { gap: 7px; }
.logic-card-top { justify-content: flex-start; text-align: left; }
.logic-card-top small { font-size: 11px; }
.logic-card-top h4 { margin-top: 2px; font-size: 18px; }
.logic-card-content > p {
  min-height: 0;
  text-align: left;
  font-size: 12px;
  line-height: 1.55;
}
.logic-tags { justify-content: flex-start; gap: 5px; }
.logic-tags span { padding: 4px 7px; font-size: 10px; }
.logic-card-foot {
  margin-top: 2px;
  align-items: center;
  flex-direction: row;
  gap: 7px;
  padding-top: 8px;
}
.logic-card-foot > span { font-size: 11px; }
.logic-card-foot button {
  width: auto;
  min-height: 30px;
  padding-inline: 10px;
  font-size: 11px;
}

.logic-output-head > p { display: none; }
.logic-output-head h4 { font-size: 21px; }
.logic-output-head small { font-size: 11px; }

.logic-output-grid article {
  grid-template-columns: 40px minmax(0, 1fr);
  grid-template-rows: auto auto auto auto auto;
  align-content: start;
  column-gap: 8px;
  row-gap: 7px;
  min-height: 0;
  padding: 14px;
}
.logic-output-grid article .output-number {
  grid-column: 2;
  grid-row: 1;
  font-size: 18px;
}
.logic-output-grid h5 {
  grid-column: 2;
  grid-row: 1;
  padding-right: 32px;
  font-size: 17px;
}
.logic-output-grid article .output-visual {
  grid-column: 1;
  grid-row: 1;
  width: 38px;
  height: 38px;
  min-width: 38px;
  min-height: 38px;
  border: 0;
  border-radius: 11px;
  background-image: none;
  box-shadow: none;
}
.logic-output-grid article .output-visual svg { display: none; }
.logic-output-grid article .output-visual::after { display: none; }
.logic-output-grid article .output-visual::before {
  font-size: 19px;
  font-weight: 800;
}
.logic-output-grid article .output-growth::before { content: "↗"; color: #249fa8; }
.logic-output-grid article .output-movement::before { content: "⌁"; color: #7958ca; }
.logic-output-grid article .output-exam::before { content: "◎"; color: #d58b00; }
.logic-output-grid .logic-inputs,
.logic-output-grid .logic-focus,
.logic-output-grid .logic-outputs,
.logic-output-grid button { grid-column: 1 / -1; }
.logic-output-grid .logic-inputs { grid-row: 2; }
.logic-output-grid .logic-focus { grid-row: 3; }
.logic-output-grid .logic-outputs { grid-row: 4; }
.logic-output-grid button { grid-row: 5; }
.logic-output-grid .logic-inputs,
.logic-output-grid .logic-focus,
.logic-output-grid .logic-outputs { gap: 5px; }
.logic-output-grid .logic-inputs small,
.logic-output-grid .logic-focus small,
.logic-output-grid .logic-outputs small { font-size: 10px; }
.logic-output-grid .logic-inputs span,
.logic-output-grid .logic-focus span,
.logic-output-grid .logic-outputs span {
  padding: 4px 7px;
  font-size: 10px;
}
.logic-output-grid button {
  min-height: 30px;
  padding-inline: 10px;
  font-size: 11px;
}

/* Evaluation logic v13: content-only cards and matched layer headers. */
.logic-data-card {
  padding-block: 11px;
}

.logic-visual {
  margin-top: 8px;
}

.logic-card-content {
  gap: 6px;
}

.logic-card-foot {
  justify-content: flex-end;
  margin-top: 0;
  padding-top: 2px;
  border-top: 0;
}

.logic-output {
  padding: 0;
  background: transparent;
}

.logic-output-head.logic-layer-label {
  display: flex;
  min-height: 34px;
  margin: 0 0 9px;
  padding: 0 13px;
  border-radius: 10px;
  background: linear-gradient(90deg, #eee9ff, rgba(255,255,255,.55));
}

.logic-output-head.logic-layer-label > div {
  display: flex;
  align-items: baseline;
  gap: 3px;
}

.logic-output-head.logic-layer-label small,
.logic-output-head.logic-layer-label h4 {
  margin: 0;
  color: #7159c1;
  font-size: 12px;
  font-weight: 800;
}

.logic-output-head.logic-layer-label > span {
  color: #8091a7;
  font-size: 10px;
}

.logic-output-grid article {
  grid-template-rows: auto auto auto;
  row-gap: 8px;
  padding: 13px 14px;
}

.logic-output-grid article .output-visual {
  grid-column: 1;
  grid-row: 1;
  overflow: hidden;
}

.logic-output-grid article .output-visual::after {
  content: none !important;
  display: none !important;
}

.logic-output-grid .logic-focus {
  grid-column: 1 / -1;
  grid-row: 2;
}

.logic-output-grid button {
  grid-column: 1 / -1;
  grid-row: 3;
  justify-self: end;
}

.logic-output-grid .logic-inputs,
.logic-output-grid .logic-outputs {
  display: none;
}

/* Evaluation logic v14: align the output label and improve flow legibility. */
.logic-output-head.logic-layer-label {
  margin-top: 10px;
  margin-bottom: 4px;
}

.logic-output-head.logic-layer-label small {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.logic-main-flow em {
  transform: none;
  font-size: 15px;
  line-height: 1;
}

.logic-main-flow span b {
  font-size: 12px;
  line-height: 1.4;
}

.logic-main-flow span small {
  font-size: 10px;
  line-height: 1.5;
}

.logic-match-band > strong {
  font-size: 13px;
}

.logic-match-band > strong small {
  font-size: 10px;
}

.logic-match-band span em {
  font-size: 12px;
  line-height: 1.25;
}

.logic-match-band span small {
  font-size: 10px;
  line-height: 1.3;
}

.logic-match-band i {
  display: grid;
  min-width: 18px;
  place-items: center;
  align-self: center;
  font-size: 16px;
  line-height: 1;
  transform: none;
}

/* Evaluation logic v15: align evidence actions with metrics. */
.logic-card-content {
  position: relative;
  padding-right: 116px;
}

.logic-card-foot {
  position: absolute;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: 0;
}

.logic-output-head.logic-layer-label {
  margin-top: 18px;
  margin-bottom: 1px;
}

@media (max-width: 700px) {
  .logic-card-content {
    padding-right: 0;
  }

  .logic-card-foot {
    position: static;
    justify-content: flex-end;
    margin-top: 3px;
  }
}

/* Evaluation logic v16: swap output actions and sequence numbers. */
.logic-output-grid article {
  position: relative;
  grid-template-rows: auto auto;
  padding: 13px 14px 14px;
}

.logic-output-grid h5 {
  padding-right: 112px;
}

.logic-output-grid article .output-number {
  position: absolute;
  right: 14px;
  bottom: 14px;
  grid-column: auto;
  grid-row: auto;
  padding: 0;
  line-height: 1;
}

.logic-output-grid .logic-focus {
  grid-row: 2;
  padding-right: 34px;
}

.logic-output-grid button {
  position: absolute;
  top: 11px;
  right: 12px;
  grid-column: auto;
  grid-row: auto;
  justify-self: auto;
}

/* Evaluation logic v17: output sequence numbers removed. */
.logic-output-grid .logic-focus {
  padding-right: 0;
}

/* Evaluation logic v18: give the process nodes the reclaimed width. */
.logic-match-band {
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 12px;
}

.logic-match-band > strong {
  align-self: stretch;
  align-content: center;
  padding-right: 10px;
}

.logic-match-band > strong small {
  font-size: 11px;
}

.logic-process-track {
  gap: 8px !important;
}

.logic-process-track .process-node {
  grid-template-columns: 32px minmax(0, 1fr);
  column-gap: 9px;
  padding: 8px 10px;
}

.logic-process-track .process-node > b {
  width: 32px;
  height: 32px;
  font-size: 14px;
}

.logic-process-track .process-node em {
  font-size: 13px;
}

.logic-process-track .process-node small {
  font-size: 10px;
}

.logic-process-track > i {
  font-size: 17px;
}

/* Evaluation evidence modal: metric-level switching. */
.source-info-card {
  width: min(860px, 100%);
}

.source-info-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: -8px 0 16px;
  padding: 12px;
  border-radius: 14px;
  background: linear-gradient(90deg, #edf5ff, #f7f9ff);
}

.source-info-tabs[hidden] {
  display: none;
}

.source-info-tabs button {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid #d4e2f4;
  border-radius: 999px;
  color: #3e6494;
  background: #fff;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.source-info-tabs button:hover {
  border-color: #8eb6eb;
  color: #2868ba;
}

.source-info-tabs button.active {
  border-color: #367fd7;
  color: #fff;
  background: #367fd7;
  box-shadow: 0 7px 16px rgba(54, 127, 215, .2);
}

/* Evaluation logic v19: output layer follows the input layer structure. */
.logic-output {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

/* Evaluation logic v20: improve stage-rail readability and tighten output spacing. */
.logic-main-flow span i {
  font-size: 15px;
}

.logic-main-flow span b {
  font-size: 16px;
}

.logic-main-flow span small {
  font-size: 14px;
}

.logic-output {
  gap: 7px;
}

.logic-output-head.logic-layer-label {
  margin-bottom: 0;
}

/* Evaluation logic v21: remove the empty band before the output layer. */
.logic-output {
  margin-top: 0;
}

.logic-output-head.logic-layer-label {
  margin-top: 0;
}

/* Evaluation logic v22: align card actions with their primary headings. */
.logic-card-foot {
  top: 15px;
  bottom: auto;
}

.logic-output-grid button {
  top: 14px;
}

@media (max-width: 700px) {
  .logic-card-foot {
    position: static;
    margin-top: 3px;
  }
}

/* Evaluation logic v23: simplify input headings and normalize the stage axis. */
.logic-card-top h4 {
  margin-top: 0;
}

.logic-card-foot {
  top: 0;
}

.logic-main-flow {
  grid-template-rows: 1fr 24px 1fr 24px 1fr 24px 1fr;
}

.logic-main-flow::before {
  top: calc(12.5% + 3px);
  bottom: calc(12.5% + 3px);
  left: 45px;
}

.logic-main-flow > em {
  justify-self: start;
  margin-left: 36px;
}

@media (max-width: 700px) {
  .logic-card-foot {
    position: static;
  }
}

/* Evaluation logic v24: place the fitness emphasis in the title row and center the stage axis. */
.logic-fitness::after {
  top: 0;
  right: 220px;
}

.logic-main-flow::before {
  left: 35px;
}

.logic-main-flow > em {
  margin-left: 16px;
}

@media (max-width: 1050px) {
  .logic-fitness::after {
    right: 132px;
  }
}

/* Evaluation logic modal v25: visual rule systems for the three evaluation outputs. */
.logic-rule-system {
  display: grid;
  gap: 14px;
}

.logic-rule-heading {
  display: flex;
  align-items: center;
  gap: 10px;
}

.logic-rule-heading span {
  padding: 5px 10px;
  border-radius: 999px;
  color: #fff;
  background: #397fd5;
  font-size: 12px;
  font-weight: 800;
}

.logic-rule-heading b {
  color: #244f84;
  font-size: 16px;
}

.logic-rule-flow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr) 18px minmax(0, 1fr) 18px minmax(0, 1fr);
  align-items: stretch;
  gap: 6px;
  padding: 12px;
  border-radius: 15px;
  background: linear-gradient(90deg, #edf6ff, #f8f9ff 58%, #fff8e7);
}

.logic-rule-flow > div {
  display: grid;
  align-content: center;
  gap: 4px;
  min-height: 82px;
  padding: 10px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 6px 15px rgba(38, 82, 137, .07);
}

.logic-rule-flow i {
  color: #397fd5;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}

.logic-rule-flow b {
  color: #214f87;
  font-size: 14px;
}

.logic-rule-flow small {
  color: #72849b;
  font-size: 11px;
  line-height: 1.45;
}

.logic-rule-flow > em {
  align-self: center;
  color: #d69c25;
  font-size: 18px;
  font-style: normal;
  text-align: center;
}

.logic-rule-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 12px;
}

.logic-rule-grid article {
  padding: 14px 16px;
  border-radius: 14px;
  background: #f6f9fd;
}

.logic-rule-grid strong {
  color: #244f84;
  font-size: 14px;
}

.logic-rule-grid ul {
  margin: 9px 0 0;
  padding-left: 20px;
  color: #63758d;
  font-size: 12px;
  line-height: 1.7;
}

.logic-rule-grid p {
  margin: 10px 0 0;
  color: #73849a;
  font-size: 11px;
  line-height: 1.55;
}

.rule-output-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}

.rule-output-tags span {
  padding: 6px 10px;
  border-radius: 999px;
  color: #2c659f;
  background: #e8f2ff;
  font-size: 11px;
  font-weight: 800;
}

.logic-evidence-map,
.logic-reference-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  padding: 12px 14px;
  border-radius: 13px;
}

.logic-evidence-map {
  background: linear-gradient(90deg, #edf6ff, #fff8e7);
}

.logic-evidence-map b,
.logic-reference-box b {
  margin-right: 3px;
  color: #244f84;
  font-size: 12px;
}

.logic-evidence-map span,
.logic-reference-box span {
  padding: 5px 8px;
  border-radius: 8px;
  color: #536d8d;
  background: rgba(255, 255, 255, .85);
  font-size: 10px;
  line-height: 1.4;
}

.logic-reference-box {
  margin-top: 14px;
  background: #f7f8fb;
  box-shadow: inset 0 0 0 1px #e6ebf2;
}

.movement-pyramid {
  display: grid;
  justify-items: center;
  gap: 5px;
  padding: 12px;
  border-radius: 15px;
  background: linear-gradient(180deg, #f5f1ff, #fbfaff);
}

.movement-pyramid > div {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 38px;
  border-radius: 9px;
  color: #5d47a9;
  background: #fff;
}

.movement-pyramid > div:nth-child(1) { width: 48%; background: #e8e0ff; }
.movement-pyramid > div:nth-child(2) { width: 72%; background: #eee8ff; }
.movement-pyramid > div:nth-child(3) { width: 96%; background: #f3efff; }
.movement-pyramid small { font-size: 10px; font-weight: 800; opacity: .7; }
.movement-pyramid b { font-size: 12px; }

.exam-policy-gate {
  display: grid;
  grid-template-columns: 1fr 22px 1fr 22px 1fr;
  align-items: center;
  gap: 7px;
  padding: 12px;
  border-radius: 15px;
  background: #fff8e8;
}

.exam-policy-gate > div {
  display: grid;
  gap: 4px;
  min-height: 58px;
  align-content: center;
  padding: 10px 12px;
  border-radius: 11px;
  background: #fff;
}

.exam-policy-gate small { color: #b47b11; font-size: 10px; font-weight: 800; }
.exam-policy-gate b { color: #805814; font-size: 12px; }
.exam-policy-gate > i { color: #d69c25; font-size: 18px; font-style: normal; text-align: center; }

.exam-category-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.exam-category-grid span {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 2px 8px;
  align-items: center;
  padding: 10px;
  border-radius: 12px;
  background: #fffaf0;
  box-shadow: inset 0 0 0 1px #f1dfb7;
}

.exam-category-grid i {
  grid-row: 1 / 3;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #dfa329;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}

.exam-category-grid b { color: #845c13; font-size: 12px; }
.exam-category-grid small { color: #907a54; font-size: 9px; line-height: 1.35; }

@media (max-width: 760px) {
  .logic-rule-flow,
  .exam-policy-gate {
    grid-template-columns: 1fr;
  }

  .logic-rule-flow > em,
  .exam-policy-gate > i {
    transform: rotate(90deg);
  }

  .logic-rule-grid,
  .exam-category-grid {
    grid-template-columns: 1fr;
  }

  .movement-pyramid > div:nth-child(n) {
    width: 100%;
  }
}

/* Evaluation input cards v26: full-card interaction with directional affordance. */
.logic-data-card {
  --card-tint: rgba(67, 126, 211, .16);
  grid-template-columns: 132px minmax(0, 1fr);
  min-height: 148px;
  padding: 16px 18px;
  overflow: hidden;
  cursor: pointer;
  background: linear-gradient(270deg, rgba(255, 255, 255, 1), rgba(255, 255, 255, 1));
  transition: transform .2s ease, box-shadow .2s ease, background .28s ease;
}

.logic-shape { --card-tint: rgba(65, 126, 218, .18); }
.logic-function { --card-tint: rgba(53, 166, 177, .18); }
.logic-fitness { --card-tint: rgba(220, 161, 38, .19); }
.logic-skill { --card-tint: rgba(126, 91, 210, .18); }

.logic-data-card:hover,
.logic-data-card:focus-visible,
.logic-data-card:focus-within {
  transform: translateY(-2px);
  outline: none;
  background: linear-gradient(270deg, var(--card-tint) 0%, rgba(255, 255, 255, .96) 58%, #fff 100%);
  box-shadow: 0 14px 30px rgba(39, 81, 134, .15);
}

.logic-data-card:focus-visible {
  box-shadow: 0 0 0 3px rgba(58, 126, 215, .18), 0 14px 30px rgba(39, 81, 134, .15);
}

.logic-data-card .logic-visual {
  width: 100px;
  height: 100px;
  min-width: 100px;
  min-height: 100px;
  margin: 0;
  align-self: center;
  border-radius: 22px;
}

.logic-data-card .logic-visual::before {
  font-size: 34px;
}

.logic-data-card .logic-card-content {
  align-self: center;
  gap: 11px;
  padding-right: 64px;
}

.logic-data-card .logic-card-top h4 {
  font-size: 22px;
}

.logic-data-card .logic-tags {
  gap: 8px;
}

.logic-data-card .logic-tags span {
  padding: 6px 10px;
  font-size: 12px;
}

.logic-data-card .logic-card-foot {
  top: 50%;
  right: 4px;
  width: 42px;
  height: 42px;
  transform: translateY(-50%);
}

.logic-data-card .logic-card-foot button {
  position: relative;
  width: 42px;
  min-width: 42px;
  height: 42px;
  min-height: 42px;
  padding: 0;
  overflow: hidden;
  border-radius: 50%;
  color: transparent;
  background: transparent;
  box-shadow: none;
  font-size: 0;
}

.logic-data-card .logic-card-foot button::before {
  content: "›";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #377bd0;
  font-family: Arial, sans-serif;
  font-size: 38px;
  font-weight: 300;
  line-height: 1;
  transition: transform .2s ease, color .2s ease;
}

.logic-data-card:hover .logic-card-foot button::before,
.logic-data-card:focus-visible .logic-card-foot button::before {
  color: #1f68c2;
  transform: translateX(4px);
}

.logic-fitness::after {
  top: 10px;
  right: 72px;
  border-radius: 999px;
}

@media (max-width: 1050px) {
  .logic-data-card {
    grid-template-columns: 96px minmax(0, 1fr);
  }

  .logic-data-card .logic-visual {
    width: 78px;
    height: 78px;
    min-width: 78px;
    min-height: 78px;
  }
}

@media (max-width: 700px) {
  .logic-data-card {
    grid-template-columns: 72px minmax(0, 1fr);
    min-height: 126px;
    padding: 13px;
  }

  .logic-data-card .logic-visual {
    width: 60px;
    height: 60px;
    min-width: 60px;
    min-height: 60px;
    border-radius: 16px;
  }

  .logic-data-card .logic-card-content {
    padding-right: 42px;
  }

  .logic-data-card .logic-card-foot {
    position: absolute;
    top: 50%;
    right: 4px;
    margin: 0;
  }

  .logic-fitness::after {
    display: none;
  }
}

/* Evaluation input cards v27: retain the interaction while halving the previous enlargement. */
.logic-data-card {
  grid-template-columns: 100px minmax(0, 1fr);
  min-height: 132px;
  padding: 14px 16px;
}

.logic-data-card .logic-visual {
  width: 78px;
  height: 78px;
  min-width: 78px;
  min-height: 78px;
  border-radius: 18px;
}

.logic-data-card .logic-visual::before {
  font-size: 28px;
}

.logic-data-card .logic-card-content {
  gap: 9px;
  padding-right: 54px;
}

.logic-data-card .logic-card-top h4 {
  font-size: 20px;
}

.logic-data-card .logic-tags {
  gap: 7px;
}

.logic-data-card .logic-tags span {
  padding: 5px 9px;
  font-size: 11px;
}

.logic-data-card .logic-card-foot,
.logic-data-card .logic-card-foot button {
  width: 36px;
  min-width: 36px;
  height: 36px;
  min-height: 36px;
}

.logic-data-card .logic-card-foot button::before {
  font-size: 32px;
}

.logic-fitness::after {
  right: 64px;
}

@media (max-width: 700px) {
  .logic-data-card {
    grid-template-columns: 68px minmax(0, 1fr);
    min-height: 118px;
    padding: 12px;
  }

  .logic-data-card .logic-visual {
    width: 56px;
    height: 56px;
    min-width: 56px;
    min-height: 56px;
  }
}

/* Evaluation output cards v28: match the full-card interaction used by the input layer. */
.logic-output-grid article {
  --output-tint: rgba(63, 170, 177, .18);
  position: relative;
  grid-template-columns: 72px minmax(0, 1fr);
  grid-template-rows: auto auto;
  min-height: 132px;
  padding: 15px 16px;
  column-gap: 12px;
  row-gap: 10px;
  overflow: hidden;
  cursor: pointer;
  background: linear-gradient(270deg, #fff, #fff);
  transition: transform .2s ease, box-shadow .2s ease, background .28s ease;
}

.logic-output-grid article:nth-child(1) { --output-tint: rgba(54, 175, 181, .18); }
.logic-output-grid article:nth-child(2) { --output-tint: rgba(121, 88, 201, .18); }
.logic-output-grid article:nth-child(3) { --output-tint: rgba(220, 157, 31, .2); }

.logic-output-grid article:hover,
.logic-output-grid article:focus-visible,
.logic-output-grid article:focus-within {
  transform: translateY(-2px);
  outline: none;
  background: linear-gradient(270deg, var(--output-tint) 0%, rgba(255, 255, 255, .96) 58%, #fff 100%);
  box-shadow: 0 14px 30px rgba(39, 81, 134, .15);
}

.logic-output-grid article:focus-visible {
  box-shadow: 0 0 0 3px rgba(58, 126, 215, .18), 0 14px 30px rgba(39, 81, 134, .15);
}

.logic-output-grid article .output-visual {
  grid-column: 1;
  grid-row: 1 / 3;
  width: 58px;
  height: 58px;
  min-width: 58px;
  min-height: 58px;
  align-self: center;
  border-radius: 18px;
}

.logic-output-grid article .output-visual::before {
  font-size: 28px;
}

.logic-output-grid h5 {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  margin: 0;
  padding-right: 48px;
  font-size: 20px;
}

.logic-output-grid .logic-focus {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  gap: 7px;
  padding-right: 48px;
}

.logic-output-grid .logic-focus small {
  font-size: 11px;
}

.logic-output-grid .logic-focus span {
  padding: 5px 9px;
  font-size: 11px;
}

.logic-output-grid button {
  position: absolute;
  top: 50%;
  right: 14px;
  width: 36px;
  min-width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0;
  overflow: hidden;
  border-radius: 50%;
  color: transparent;
  background: transparent;
  box-shadow: none;
  font-size: 0;
  transform: translateY(-50%);
}

.logic-output-grid button::before {
  content: "›";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #377bd0;
  font-family: Arial, sans-serif;
  font-size: 32px;
  font-weight: 300;
  line-height: 1;
  transition: transform .2s ease, color .2s ease;
}

.logic-output-grid article:hover button::before,
.logic-output-grid article:focus-visible button::before {
  color: #1f68c2;
  transform: translateX(4px);
}

@media (max-width: 700px) {
  .logic-output-grid article {
    grid-template-columns: 58px minmax(0, 1fr);
    min-height: 118px;
    padding: 12px;
  }

  .logic-output-grid article .output-visual {
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    border-radius: 15px;
  }

  .logic-output-grid h5,
  .logic-output-grid .logic-focus {
    padding-right: 40px;
  }
}

/* Evaluation input illustrations v29: user-provided artwork with soft background blending. */
.logic-data-card .logic-visual {
  background-position: center;
  background-repeat: no-repeat;
  background-size: 118%;
  background-blend-mode: normal;
  filter: saturate(1.28) contrast(1.45) brightness(1);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .34), 0 8px 18px rgba(32, 67, 112, .12);
}

.logic-data-card .logic-visual::before {
  content: none;
  display: none;
}

.logic-shape .logic-visual {
  background-color: #dce9ff;
  background-image: url("../images/logic/shape-custom.png");
}

.logic-function .logic-visual {
  background-color: #d8f1f3;
  background-image: url("../images/logic/function-custom.png");
}

.logic-fitness .logic-visual {
  background-color: #ffe9b7;
  background-image: url("../images/logic/fitness-custom.png?v=2");
}

.logic-skill .logic-visual {
  background-color: #e5dcff;
  background-image: url("../images/logic/skill-custom.png");
}

/* Evaluation input illustrations v32: enlarge only the artwork and strengthen its contrast. */
.logic-data-card {
  grid-template-columns: 116px minmax(0, 1fr);
}

.logic-data-card .logic-visual {
  width: 96px;
  height: 96px;
  min-width: 96px;
  min-height: 96px;
  border-radius: 20px;
}

@media (max-width: 1050px) {
  .logic-data-card {
    grid-template-columns: 94px minmax(0, 1fr);
  }

  .logic-data-card .logic-visual {
    width: 76px;
    height: 76px;
    min-width: 76px;
    min-height: 76px;
  }
}

@media (max-width: 700px) {
  .logic-data-card {
    grid-template-columns: 72px minmax(0, 1fr);
  }

  .logic-data-card .logic-visual {
    width: 60px;
    height: 60px;
    min-width: 60px;
    min-height: 60px;
  }
}

/* Evaluation output illustrations v35: user-provided artwork. */
.logic-output-grid article .output-visual {
  width: 66px;
  height: 66px;
  min-width: 66px;
  min-height: 66px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 112%;
  background-blend-mode: normal;
  filter: saturate(1.2) contrast(1.28);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .32), 0 8px 18px rgba(32, 67, 112, .11);
}

.logic-output-grid article .output-visual svg,
.logic-output-grid article .output-visual::before {
  display: none;
}

.logic-output-grid article .output-growth {
  background-color: #dff3f4;
  background-image: url("../images/logic/growth-custom.png?v=1");
}

.logic-output-grid article .output-movement {
  background-color: #e8e2fb;
  background-image: url("../images/logic/movement-custom.png?v=1");
}

.logic-output-grid article .output-exam {
  background-color: #fff7e7;
  background-image: url("../images/logic/exam-custom.png?v=1");
}

@media (max-width: 700px) {
  .logic-output-grid article .output-visual {
    width: 52px;
    height: 52px;
    min-width: 52px;
    min-height: 52px;
  }
}

/* Evaluation illustrations v36: consistent 90% brightness across all seven custom images. */
.logic-data-card .logic-visual {
  background-size: 100%;
  filter: saturate(1.06) contrast(1.08) brightness(1);
  image-rendering: auto;
}

.logic-output-grid article .output-visual {
  background-size: 100%;
  filter: saturate(1.06) contrast(1.08) brightness(1);
  image-rendering: auto;
}

.logic-shape .logic-visual {
  background-image:
    url("../images/logic/shape-custom.png?v=2"),
    radial-gradient(circle at 50% 44%, #737b86 0%, #4b5058 72%, #41454c 100%);
}

.logic-function .logic-visual {
  background-image:
    url("../images/logic/function-custom.png"),
    radial-gradient(circle at 50% 44%, #748184 0%, #4c5557 72%, #42494b 100%);
}

.logic-fitness .logic-visual {
  background-image:
    url("../images/logic/fitness-custom.png?v=2"),
    radial-gradient(circle at 50% 44%, #82796b 0%, #57514a 72%, #47423d 100%);
}

.logic-skill .logic-visual {
  background-image:
    url("../images/logic/skill-custom.png"),
    radial-gradient(circle at 50% 44%, #777383 0%, #504d59 72%, #45424d 100%);
}

.logic-output-grid article .output-growth {
  background-image:
    url("../images/logic/growth-custom.png?v=1"),
    radial-gradient(circle at 50% 44%, #667b7c 0%, #455254 72%, #3d4648 100%);
}

.logic-output-grid article .output-movement {
  background-image:
    url("../images/logic/movement-custom.png?v=1"),
    radial-gradient(circle at 50% 44%, #747584 0%, #4d4f5a 72%, #42444d 100%);
}

.logic-output-grid article .output-exam {
  background-image:
    url("../images/logic/exam-custom.png?v=1"),
    radial-gradient(circle at 50% 44%, #eef4fb 0%, #dce7f3 100%);
}

/* Evaluation illustrations v40: remove the added gray backing layers. */
.logic-shape .logic-visual {
  background-image: url("../images/logic/shape-custom.png?v=2");
}

.logic-function .logic-visual {
  background-image: url("../images/logic/function-custom.png");
}

.logic-fitness .logic-visual {
  background-image: url("../images/logic/fitness-custom.png?v=2");
}

.logic-skill .logic-visual {
  background-image: url("../images/logic/skill-custom.png");
}

.logic-output-grid article .output-growth {
  background-image: url("../images/logic/growth-custom.png?v=1");
}

.logic-output-grid article .output-movement {
  background-image: url("../images/logic/movement-custom.png?v=1");
}

.logic-output-grid article .output-exam {
  background-image: url("../images/logic/exam-custom.png?v=1");
}

/* Evaluation illustrations v41: latest user-provided replacements. */
.logic-function .logic-visual {
  background-image: url("../images/logic/function-custom.png?v=3");
}

.logic-fitness .logic-visual {
  background-image: url("../images/logic/fitness-custom.png?v=3");
}

.logic-skill .logic-visual {
  background-image: url("../images/logic/skill-custom.png?v=3");
}

.logic-output-grid article .output-growth {
  background-image: url("../images/logic/growth-custom.png?v=2");
}

.logic-output-grid article .output-movement {
  background-image: url("../images/logic/movement-custom.png?v=2");
}

.logic-output-grid article .output-exam {
  background-image: url("../images/logic/exam-custom.png?v=2");
}

/* Evaluation input cards v42: keep all four measurement cards at one compact height. */
.logic-data-card {
  box-sizing: border-box;
  height: 132px;
  min-height: 132px;
}

@media (max-width: 700px) {
  .logic-data-card {
    height: auto;
    min-height: 118px;
  }
}

/* Evaluation input cards v43: reduce card and artwork size by about one quarter. */
.logic-data-card {
  grid-template-columns: 88px minmax(0, 1fr);
  height: 99px;
  min-height: 99px;
  gap: 10px;
  padding: 10px 14px;
}

.logic-data-card .logic-visual {
  width: 72px;
  height: 72px;
  min-width: 72px;
  min-height: 72px;
}

.logic-data-card .logic-card-content {
  gap: 6px;
}

@media (max-width: 700px) {
  .logic-data-card {
    grid-template-columns: 58px minmax(0, 1fr);
    height: auto;
    min-height: 94px;
    padding: 10px;
  }

  .logic-data-card .logic-visual {
    width: 52px;
    height: 52px;
    min-width: 52px;
    min-height: 52px;
  }
}

/* Evaluation logic v47-effective: expanded view keeps the stage rail on the left. */
.home-panel .evaluation-logic-details:not([hidden]) {
  display: grid;
  grid-template-columns: 178px minmax(0, 1fr);
  column-gap: 22px;
  row-gap: 11px;
  padding: 22px 24px 20px;
}

.evaluation-logic-details > .evaluation-logic-head { grid-column: 1 / -1; grid-row: 1; }
.evaluation-logic-details > .logic-main-flow { grid-column: 1; grid-row: 2 / 6; }
.evaluation-logic-details > .logic-data-grid { grid-column: 2; grid-row: 2; }
.evaluation-logic-details > .logic-match-band { grid-column: 2; grid-row: 3; }
.evaluation-logic-details > .logic-output { grid-column: 2; grid-row: 4; }
.evaluation-logic-details > .logic-advice-end { grid-column: 2; grid-row: 5; }

@media (max-width: 760px) {
  .home-panel .evaluation-logic-details:not([hidden]) {
    grid-template-columns: 1fr;
    padding: 18px 14px;
  }

  .evaluation-logic-details > .evaluation-logic-head { grid-column: 1; grid-row: 1; }
  .evaluation-logic-details > .logic-main-flow { grid-column: 1; grid-row: 2; }
  .evaluation-logic-details > .logic-data-grid { grid-column: 1; grid-row: 3; }
  .evaluation-logic-details > .logic-match-band { grid-column: 1; grid-row: 4; }
  .evaluation-logic-details > .logic-output { grid-column: 1; grid-row: 5; }
  .evaluation-logic-details > .logic-advice-end { grid-column: 1; grid-row: 6; }
}

/* Evaluation logic v48-effective: icon-only controls, placed after legacy rules. */
.home-panel .evaluation-logic-summary-cue {
  display: grid !important;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(66, 123, 203, .22);
  border-radius: 50%;
  color: #3977ca;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 6px 16px rgba(44, 89, 148, .10);
  transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.home-panel .evaluation-logic-summary-cue i,
.home-panel .evaluation-logic-collapse span {
  display: block;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
}

.home-panel .evaluation-logic-summary-cue i {
  transform: translateY(-2px) rotate(45deg);
}

.home-panel .evaluation-logic-summary:hover .evaluation-logic-summary-cue,
.home-panel .evaluation-logic-summary:focus-visible .evaluation-logic-summary-cue {
  background: #fff;
  box-shadow: 0 8px 20px rgba(44, 89, 148, .17);
  transform: translateY(2px);
}

.home-panel .evaluation-logic-collapse {
  display: grid !important;
  width: 38px;
  height: 38px;
  min-height: 38px;
  flex: 0 0 38px;
  padding: 0;
  place-items: center;
  border-radius: 50%;
  cursor: pointer;
  position: relative;
  z-index: 20;
}

.home-panel .evaluation-logic-collapse span {
  transform: translateY(2px) rotate(225deg);
}

/* Height and weight evidence: visual reference rules shown only in the source dialog. */
.growth-rule-panel {
  display: grid;
  gap: 16px;
}

.growth-rule-route {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  gap: 10px;
}

.growth-rule-route > b {
  grid-column: 1 / -1;
  color: #234d83;
  font-size: 15px;
}

.growth-rule-route > span {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-content: center;
  gap: 3px 10px;
  padding: 13px 15px;
  border-radius: 14px;
  background: linear-gradient(135deg, #edf5ff, #f7faff);
}

.growth-rule-route > span i {
  grid-row: 1 / 3;
  align-self: center;
  padding: 5px 8px;
  border-radius: 999px;
  color: #fff;
  background: #4c83d4;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.growth-rule-route > span strong {
  color: #1d477e;
}

.growth-rule-route > span small {
  color: #718199;
  line-height: 1.45;
}

.growth-rule-route > em {
  align-self: center;
  color: #d9a431;
  font-size: 22px;
  font-style: normal;
}

.growth-rule-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.growth-rule-grid article {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 16px;
  border: 1px solid #dfe8f4;
  border-radius: 16px;
  background: #fbfdff;
}

.growth-rule-grid header {
  display: flex;
  align-items: center;
  gap: 10px;
}

.growth-rule-grid header span {
  padding: 5px 9px;
  border-radius: 999px;
  color: #3975c8;
  background: #e7f1ff;
  font-size: 12px;
  font-weight: 900;
}

.growth-rule-grid header b {
  color: #173f77;
}

.growth-rule-grid article > p,
.growth-rule-grid article > small {
  margin: 0;
  color: #687a92;
  line-height: 1.65;
}

.growth-rule-grid article > small {
  padding-top: 8px;
  border-top: 1px solid #e4ebf4;
  font-size: 12px;
}

.growth-scale {
  display: grid;
  gap: 4px;
}

.growth-scale span {
  display: grid;
  grid-template-columns: 105px minmax(0, 1fr);
  align-items: center;
  min-height: 34px;
  overflow: hidden;
  border-radius: 8px;
  background: #eef3f9;
}

.growth-scale i {
  align-self: stretch;
  display: grid;
  place-items: center;
  color: #fff;
  background: #7892b4;
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.growth-scale b {
  padding: 0 10px;
  color: #365373;
  font-size: 13px;
}

.growth-scale-height span:nth-child(1) i,
.growth-scale-weight span:nth-child(1) i { background: #d45f62; }
.growth-scale-height span:nth-child(2) i,
.growth-scale-weight span:nth-child(2) i { background: #e79a4f; }
.growth-scale-height span:nth-child(3) i,
.growth-scale-weight span:nth-child(3) i { background: #58a68d; }
.growth-scale-height span:nth-child(4) i { background: #5d8ed2; }

.growth-percentile-rule {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  padding: 13px 15px;
  border-radius: 14px;
  background: #fff8e8;
}

.growth-percentile-rule > b {
  width: 100%;
  color: #70521d;
  font-size: 14px;
}

.growth-percentile-rule > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 9px;
  border-radius: 999px;
  color: #7e622c;
  background: rgba(255, 255, 255, .82);
  font-size: 12px;
  font-weight: 800;
}

.growth-percentile-rule i {
  color: #b57a10;
  font-style: normal;
}

@media (max-width: 720px) {
  .growth-rule-route,
  .growth-rule-grid {
    grid-template-columns: 1fr;
  }

  .growth-rule-route > em {
    justify-self: center;
    transform: rotate(90deg);
  }
}

/* Evaluation logic v50: one persistent title/process bar controls both states. */
.home-panel .evaluation-logic-summary {
  cursor: pointer;
}

.home-panel .evaluation-logic-summary > .evaluation-logic-summary-title {
  display: block;
  flex: 0 0 232px;
  color: #173f78;
  text-align: left;
  white-space: nowrap;
  font-size: 21px;
  font-weight: 900;
}

.home-panel .evaluation-logic-summary > span:nth-of-type(2) i { color: #397bd1; }
.home-panel .evaluation-logic-summary > span:nth-of-type(3) i { color: #43a2aa; }
.home-panel .evaluation-logic-summary > span:nth-of-type(4) i { color: #7d65cf; }
.home-panel .evaluation-logic-summary > span:nth-of-type(5) i { color: #b77b13; }

.home-panel .evaluation-logic-summary[aria-expanded="true"] .evaluation-logic-summary-cue i {
  transform: translateY(2px) rotate(225deg);
}

.home-panel .evaluation-logic-summary[aria-expanded="true"] {
  border-radius: 22px 22px 0 0;
}

.home-panel .evaluation-logic-details:not([hidden]) {
  grid-template-columns: 178px minmax(0, 1fr);
  padding-top: 10px;
}

.evaluation-logic-details > .logic-main-flow { grid-column: 1; grid-row: 1 / 5; }
.evaluation-logic-details > .logic-data-grid { grid-column: 2; grid-row: 1; }
.evaluation-logic-details > .logic-match-band { grid-column: 2; grid-row: 2; }
.evaluation-logic-details > .logic-output { grid-column: 2; grid-row: 3; }
.evaluation-logic-details > .logic-advice-end { grid-column: 2; grid-row: 4; }

@media (max-width: 1100px) {
  .home-panel .evaluation-logic-summary > .evaluation-logic-summary-title {
    flex-basis: 190px;
    font-size: 18px;
  }
}

@media (max-width: 820px) {
  .home-panel .evaluation-logic-summary > .evaluation-logic-summary-title {
    grid-column: 1 / -1;
    flex-basis: 100%;
    text-align: center;
  }
}

/* Evaluation logic v46-final: collapsed mode occupies only the horizontal process bar. */
.home-panel .evaluation-logic {
  display: block !important;
  grid-template-columns: none !important;
  min-height: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

#evaluationLogicDetails[hidden],
.evaluation-logic-summary[hidden] {
  display: none !important;
}

.home-panel .evaluation-logic-summary {
  display: flex !important;
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  min-height: 96px;
  margin: 0 !important;
  padding: 18px 24px;
  align-items: center;
  gap: 12px;
}

.home-panel .evaluation-logic-summary > span {
  display: flex;
  min-width: 0;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.home-panel .evaluation-logic-summary > em,
.home-panel .evaluation-logic-summary > strong {
  flex: 0 0 auto;
}

@media (max-width: 820px) {
  .home-panel .evaluation-logic-summary {
    min-height: 84px;
    padding: 14px 12px;
    gap: 5px;
  }

  .home-panel .evaluation-logic-summary > span {
    gap: 4px;
  }

  .home-panel .evaluation-logic-summary > span i {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
    font-size: 12px;
  }

  .home-panel .evaluation-logic-summary > span b {
    font-size: 13px;
  }

  .home-panel .evaluation-logic-summary > strong {
    display: none;
  }
}

@media (max-width: 560px) {
  .home-panel .evaluation-logic-summary {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr;
    row-gap: 10px;
  }

  .home-panel .evaluation-logic-summary > span:nth-of-type(3) {
    grid-column: 1;
  }

  .home-panel .evaluation-logic-summary > em:nth-of-type(2) {
    display: none;
  }
}
/* 30秒单摇：录入反馈与依据弹窗 */
.entry-skill-input-layout {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(320px, 1.2fr);
  gap: 16px;
  align-items: stretch;
}

.entry-skill-input-layout label {
  margin: 0;
}

.entry-skill-input-layout label small {
  display: block;
  margin: 6px 0 10px;
  color: #8090aa;
  font-size: 13px;
  font-weight: 500;
}

.rope-speed-feedback {
  display: grid;
  align-content: center;
  gap: 6px;
  min-height: 108px;
  padding: 16px 20px;
  border-radius: 16px;
  background: linear-gradient(135deg, #eef5ff, #f8fbff);
  border: 1px solid #dce8f8;
}

.rope-speed-feedback span {
  color: #4c7fd7;
  font-size: 13px;
  font-weight: 800;
}

.rope-speed-feedback strong {
  color: #173d79;
  font-size: 22px;
}

.rope-speed-feedback p {
  margin: 0;
  color: #667892;
  line-height: 1.55;
}

.rope-speed-feedback.is-measured {
  background: linear-gradient(135deg, #eaf3ff, #fff8e8);
}

.rope-speed-feedback.is-invalid {
  border-color: #efaaa1;
  background: #fff4f2;
}

.rope-speed-scale {
  display: grid;
  grid-template-columns: repeat(8, minmax(62px, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.rope-speed-scale > span {
  display: grid;
  gap: 3px;
  place-items: center;
  min-height: 54px;
  border-radius: 12px;
  color: #71819a;
  background: #f3f6fa;
  border: 1px solid transparent;
}

.rope-speed-scale b {
  font-size: 14px;
}

.rope-speed-scale small {
  font-size: 12px;
}

.rope-speed-scale .is-reached {
  color: #2057a5;
  background: #eaf2ff;
}

.rope-speed-scale .is-current {
  color: #fff;
  background: linear-gradient(135deg, #4e86e2, #2f68c8);
  box-shadow: 0 8px 18px rgba(47, 104, 200, 0.22);
}

.rope-speed-scale .is-next {
  border-color: #e3ad39;
  box-shadow: inset 0 0 0 1px rgba(227, 173, 57, 0.2);
}

.rope-skill-boundary {
  margin-top: 12px;
  padding: 11px 14px;
  border-radius: 12px;
  background: #fff9ec;
  color: #78612d;
}

.jump-rope-rule-system {
  display: grid;
  gap: 20px;
}

.jump-rope-summary,
.jump-rope-boundary {
  padding: 18px 20px;
  border-radius: 16px;
}

.jump-rope-summary {
  background: linear-gradient(135deg, #edf5ff, #f8fbff);
  border: 1px solid #dce8f7;
}

.jump-rope-summary h4,
.jump-rope-boundary h4 {
  margin: 0 0 8px;
  color: #173d79;
}

.jump-rope-summary p,
.jump-rope-boundary p {
  margin: 0;
  line-height: 1.7;
}

.jump-rope-speed-scale {
  display: grid;
  grid-template-columns: repeat(9, minmax(72px, 1fr));
  gap: 6px;
}

.jump-rope-speed-scale article,
.jump-rope-training-grid article {
  padding: 9px 10px;
  border-radius: 11px;
  border: 1px solid #dfe8f5;
  background: #fff;
}

.jump-rope-speed-scale article strong {
  display: block;
  margin: 2px 0 3px;
  color: #245cac;
  font-size: 15px;
}

.jump-rope-speed-scale article small,
.jump-rope-speed-scale article span {
  display: block;
  line-height: 1.35;
}

.jump-rope-speed-scale article small {
  font-size: 12px;
  font-weight: 700;
}

.jump-rope-speed-scale article span {
  color: #637691;
  font-size: 11px;
}

.jump-rope-training-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.jump-rope-level-intro {
  margin: -6px 0 0;
  padding: 12px 14px;
  border-left: 4px solid #4f84dc;
  border-radius: 0 12px 12px 0;
  color: #5e718e;
  background: #f4f8fe;
  line-height: 1.65;
}

.jump-rope-level-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.jump-rope-level-grid article {
  overflow: hidden;
  border: 1px solid #dce6f4;
  border-radius: 16px;
  background: #fff;
}

.jump-rope-level-grid header {
  display: grid;
  grid-template-columns: auto 1fr auto 18px;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  background: linear-gradient(90deg, #edf4ff, #f8fbff);
  cursor: pointer;
  user-select: none;
}

.jump-rope-level-grid header::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid #6680a3;
  border-bottom: 2px solid #6680a3;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 0.18s ease;
}

.jump-rope-level-grid article.is-open header::after {
  transform: rotate(225deg) translate(-2px, -2px);
}

.jump-rope-level-grid article:not(.is-open) > ul,
.jump-rope-level-grid article:not(.is-open) > ol {
  display: none;
}

.jump-rope-level-grid article.is-open header {
  border-bottom: 1px solid #dce6f4;
}

.jump-rope-level-grid header:focus-visible {
  outline: 3px solid rgba(47, 125, 225, 0.28);
  outline-offset: -3px;
}

.jump-rope-level-grid header b {
  display: grid;
  place-items: center;
  width: 42px;
  height: 32px;
  border-radius: 10px;
  color: #fff;
  background: #4d81d8;
}

.jump-rope-level-grid header span {
  color: #173d79;
  font-weight: 800;
}

.jump-rope-level-grid header small {
  color: #627795;
  font-weight: 700;
}

.jump-rope-level-grid ul,
.jump-rope-level-grid ol {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 14px 18px 16px 35px;
  color: #526781;
  line-height: 1.55;
}

.jump-rope-level-grid .is-combination {
  border-color: #e7d6a5;
}

.jump-rope-level-grid .is-combination header {
  background: linear-gradient(90deg, #fff7dd, #fffdf5);
}

.jump-rope-level-grid .is-combination header b {
  background: #dca834;
}

.jump-rope-level-grid .is-routine {
  border-color: #ddcef6;
}

.jump-rope-level-grid .is-routine header {
  background: linear-gradient(90deg, #f2ebff, #fcfaff);
}

.jump-rope-level-grid .is-routine header b {
  background: #7d63ce;
}

.jump-rope-level-grid .needs-verification {
  color: #956719;
  background: #fff9e8;
  border-radius: 8px;
  padding: 6px 8px;
}

.jump-rope-training-grid article h5 {
  margin: 0 0 7px;
  color: #21477e;
}

.jump-rope-training-grid article p {
  margin: 0;
  line-height: 1.65;
}

.jump-rope-boundary {
  background: #fff9eb;
  border: 1px solid #f0d99d;
  color: #6f5a29;
}

@media (max-width: 900px) {
  .entry-skill-input-layout {
    grid-template-columns: 1fr;
  }

  .rope-speed-scale,
  .jump-rope-speed-scale {
    grid-template-columns: repeat(3, minmax(86px, 1fr));
  }

  .jump-rope-training-grid {
    grid-template-columns: 1fr;
  }

  .jump-rope-level-grid {
    grid-template-columns: 1fr;
  }
}
/* 身体结构：低成本姿态观察录入 */
.posture-screening {
  margin: 18px 0 0;
  padding: 16px;
  border: 0;
  border-radius: 16px;
  background: linear-gradient(135deg, #f3f7ff, #fbfdff 62%, #fffaf0);
}

.posture-screening legend {
  padding: 0 8px;
  color: #173c77;
  font-weight: 800;
}

.posture-screening > .hint {
  margin: 0 0 12px;
}

.posture-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.posture-grid label {
  display: grid;
  gap: 7px;
  color: #254575;
  font-weight: 700;
}

.posture-grid select,
.posture-grid input {
  width: 100%;
  min-height: 44px;
  border: 1px solid #d6e2f3;
  border-radius: 12px;
  background: #fff;
  color: #243a5d;
  padding: 0 12px;
}

.posture-note {
  grid-column: span 2;
}

.rule-step-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.rule-step-grid article {
  padding: 14px 16px;
  border-radius: 14px;
  background: #f6f9fe;
  border: 1px solid #dbe6f6;
}

.rule-step-grid article b {
  color: #24518f;
}

.rule-step-grid article p {
  margin: 7px 0 0;
}

@media (max-width: 900px) {
  .posture-grid,
  .rule-step-grid {
    grid-template-columns: 1fr;
  }

  .posture-note {
    grid-column: auto;
  }
}

/* Final stage-rail alignment override. */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 761px) {
    .home-panel .evaluation-logic-details:not([hidden]) > .logic-main-flow {
      grid-row: 1 / 5;
      grid-template-rows: subgrid;
      row-gap: 11px;
    }

    .home-panel .logic-main-flow span:nth-of-type(1) { grid-row: 1; }
    .home-panel .logic-main-flow span:nth-of-type(2) { grid-row: 2; }
    .home-panel .logic-main-flow span:nth-of-type(3) { grid-row: 3; }
    .home-panel .logic-main-flow span:nth-of-type(4) { grid-row: 4; }
    .home-panel .logic-main-flow em:nth-of-type(1) { grid-row: 1; }
    .home-panel .logic-main-flow em:nth-of-type(2) { grid-row: 2; }
    .home-panel .logic-main-flow em:nth-of-type(3) { grid-row: 3; }

    .home-panel .evaluation-logic-details:not([hidden]) > .logic-main-flow {
      position: relative;
    }

    .home-panel .evaluation-logic-details:not([hidden]) > .logic-main-flow::before {
      top: 34px;
      bottom: 34px;
      left: 35px;
      z-index: 0;
      border-radius: 999px;
    }

    .home-panel .logic-main-flow > em {
      display: none;
    }

    .home-panel .logic-main-flow span {
      position: relative;
      z-index: 1;
      background: transparent;
      box-shadow: none;
    }

    .home-panel .logic-main-flow span i {
      position: relative;
      z-index: 2;
      background: #fff;
    }
  }
}

/* Keep the original home illustration as the final visual layer. */
.home-panel .landing-hero.landing-overview-card {
  background:
    linear-gradient(90deg, #fff 0%, #fff 37%, rgba(255,255,255,.96) 46%, rgba(255,255,255,.32) 64%, rgba(244,249,255,.05) 100%),
    url("../images/home-health-archive-scene.png") right center / 59% auto no-repeat !important;
}

.home-panel .landing-hero.landing-overview-card .landing-overview-main {
  background: transparent !important;
}

@media (max-width: 1180px) {
  .home-panel .landing-hero.landing-overview-card {
    background:
      linear-gradient(90deg, #fff 0%, #fff 43%, rgba(255,255,255,.90) 58%, rgba(244,249,255,.12) 100%),
      url("../images/home-health-archive-scene.png") right center / 68% auto no-repeat !important;
  }
}

@media (max-width: 820px) {
  .home-panel .landing-hero.landing-overview-card {
    background:
      linear-gradient(180deg, rgba(255,255,255,.91), rgba(255,255,255,.98)),
      url("../images/home-health-archive-scene.png") 76% top / auto 300px no-repeat !important;
  }
}

/* Taller restored home hero; keep its two primary actions visually prominent. */
@media (min-width: 861px) {
  .home-panel .landing-hero:not(.landing-overview-card) {
    min-height: 380px;
    padding: 64px 72px;
    background-position: right center;
  }
}

/* Larger home title and unified primary navigation cards. */
@media (min-width: 861px) {
  .home-panel .landing-copy h2 {
    max-width: 760px;
    margin-bottom: 20px;
    font-size: clamp(52px, 3vw, 64px);
    line-height: 1.12;
    letter-spacing: -.035em;
  }

  .home-panel .landing-copy p {
    max-width: 690px;
    font-size: 17px;
    line-height: 1.8;
  }

  .home-panel .landing-actions {
    margin-top: 30px;
  }
}

.home-panel .landing-feature-grid {
  gap: 22px;
}

.home-panel .landing-feature-grid .feature-entry-card {
  box-sizing: border-box;
  min-height: 190px;
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: 22px;
  row-gap: 8px;
  align-items: center;
  padding: 30px 32px;
  border: 1px solid #dce6f3;
  border-radius: 22px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 16px 38px rgba(38, 76, 126, .09);
}

.home-panel .landing-feature-grid .feature-entry-card:hover {
  border-color: #cbdced;
  background: #fff;
  box-shadow: 0 20px 44px rgba(38, 76, 126, .13);
}

.home-panel .landing-feature-grid .feature-icon {
  grid-column: 1;
  grid-row: 1 / 3;
  width: 70px;
  height: 70px;
  align-self: center;
  border-radius: 20px;
  box-shadow: 0 12px 26px rgba(49, 92, 150, .10);
}

.home-panel .landing-feature-grid .feature-entry-card h3 {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  margin: 0;
  color: #183f78;
  font-size: 27px;
  line-height: 1.2;
}

.home-panel .landing-feature-grid .feature-entry-card p {
  grid-column: 2 / 4;
  grid-row: 2;
  align-self: start;
  max-width: 410px;
  margin: 0;
  color: #6c7e96;
  font-size: 16px;
  line-height: 1.65;
}

.home-panel .landing-feature-grid .feature-entry-card > button {
  grid-column: 3;
  grid-row: 1;
  align-self: center;
  justify-self: end;
  min-width: 116px;
  min-height: 46px;
  margin: 0;
  padding: 9px 18px;
  color: #3975cd;
  background: rgba(255,255,255,.92);
  border: 1px solid #bfd3ec;
  border-radius: 9px;
  box-shadow: none;
  font-size: 15px;
  font-weight: 800;
}

.home-panel .landing-feature-grid .feature-entry-card > button:hover {
  color: #fff;
  background: #3f7ed8;
  border-color: #3f7ed8;
}

.home-panel .landing-feature-grid .feature-blue .entry-person-plus-icon {
  background: linear-gradient(145deg, #eef5ff, #e4efff);
}

.home-panel .landing-feature-grid .feature-blue .entry-person-plus-icon::before {
  inset: 14px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%234c7fdf' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='17' cy='15' r='6'/%3E%3Cpath d='M7 34c2.4-7.2 17.6-7.2 20 0'/%3E%3Cpath d='M33 12v14M26 19h14'/%3E%3C/g%3E%3C/svg%3E");
}

.home-panel .landing-feature-grid .feature-gold .archive-file-icon {
  background: linear-gradient(145deg, #eefaf7, #e2f5ef);
}

.home-panel .landing-feature-grid .feature-gold .archive-file-icon::before {
  inset: 14px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%2354ad98' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7h15l7 7v23H12z'/%3E%3Cpath d='M27 7v8h8'/%3E%3Cpath d='M18 22h11M18 28h14M18 34h9'/%3E%3C/g%3E%3C/svg%3E");
}

.home-panel .landing-feature-grid .feature-slate .settings-gear-icon {
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #7865d5;
  background: linear-gradient(145deg, #f5f1ff, #ebe6ff);
}

.home-panel .landing-feature-grid .feature-slate .settings-gear-icon::before {
  content: "⚙";
  position: static;
  width: auto;
  height: auto;
  display: block;
  color: #7865d5;
  background: none;
  font-size: 38px;
  line-height: 1;
}

.home-panel .landing-feature-grid .feature-slate .settings-gear-icon::after {
  display: none;
}

@media (max-width: 1080px) {
  .home-panel .landing-feature-grid .feature-entry-card {
    grid-template-columns: 64px minmax(0, 1fr);
    padding: 26px;
  }

  .home-panel .landing-feature-grid .feature-entry-card > button {
    grid-column: 2;
    grid-row: 3;
    justify-self: start;
    margin-top: 8px;
  }

  .home-panel .landing-feature-grid .feature-entry-card p {
    grid-column: 2;
  }
}

/* Final homepage rhythm and hierarchy balance. */
.home-panel .landing-page {
  row-gap: 28px;
}

@media (min-width: 861px) {
  .home-panel .landing-copy h2 {
    font-size: clamp(48px, 2.8vw, 59px);
  }
}

.home-panel .landing-feature-grid .feature-entry-card {
  min-height: 168px;
  grid-template-columns: 78px minmax(0, 1fr) 116px;
  column-gap: 20px;
  padding: 24px 28px;
}

.home-panel .landing-feature-grid .feature-icon {
  width: 76px;
  height: 76px;
  border-radius: 21px;
}

.home-panel .landing-feature-grid .feature-entry-card h3 {
  font-size: 25px;
}

.home-panel .landing-feature-grid .feature-entry-card p {
  grid-column: 2;
  font-size: 15px;
  line-height: 1.6;
}

.home-panel .landing-feature-grid .feature-entry-card > button {
  grid-column: 3;
  grid-row: 1 / 3;
  align-self: center;
  min-width: 108px;
}

.home-panel .evaluation-logic {
  border-color: #cbdced;
  box-shadow: 0 14px 34px rgba(38, 78, 132, .08);
}

.home-panel .evaluation-logic-summary {
  min-height: 100px;
  background: linear-gradient(90deg, #eaf4ff 0%, #f6f8ff 55%, #fff7de 100%);
}

.home-panel .evaluation-logic-summary > .evaluation-logic-summary-title {
  color: #163f79;
  font-size: 22px;
  font-weight: 900;
}

@media (max-width: 1700px) and (min-width: 1081px) {
  .home-panel .landing-feature-grid .feature-entry-card {
    grid-template-columns: 76px minmax(0, 1fr) auto;
  }

  .home-panel .landing-feature-grid .feature-entry-card p {
    grid-column: 2 / 4;
  }

  .home-panel .landing-feature-grid .feature-entry-card > button {
    grid-row: 1;
  }
}

@media (max-width: 1080px) {
  .home-panel .landing-feature-grid .feature-entry-card {
    min-height: 174px;
    grid-template-columns: 64px minmax(0, 1fr);
    padding: 24px;
  }

  .home-panel .landing-feature-grid .feature-entry-card p {
    grid-column: 2;
  }

  .home-panel .landing-feature-grid .feature-entry-card > button {
    grid-column: 2;
    grid-row: 3;
    justify-self: start;
  }
}

/* Only widen the title-to-description spacing. */
@media (min-width: 1081px) {
  .home-panel .landing-feature-grid .feature-entry-card {
    row-gap: 18px;
  }
}

/* Horizontal report: concise KPIs and in-context fitness detail. */
.horizontal-report .horizontal-kpi-grid article {
  min-height: 88px;
  align-content: start;
  gap: 9px;
}

.horizontal-ability-detail {
  margin: 14px 0 18px;
  overflow-x: auto;
  border: 1px solid #dfe9f6;
  border-radius: 14px;
  background: #f9fbfe;
  padding: 14px 16px 16px;
}

.horizontal-ability-detail h4 {
  margin: 0;
  color: var(--report-deep);
  font-size: 1rem;
}

.horizontal-ability-detail .appendix-table {
  min-width: 720px;
  margin-top: 10px;
  background: #fff;
}

.horizontal-ability-table th:nth-child(1) { width: 22%; }
.horizontal-ability-table th:nth-child(2) { width: 46%; }
.horizontal-ability-table th:nth-child(3) { width: 32%; }

@media print {
  .horizontal-report .horizontal-kpi-grid article {
    min-height: 17mm;
  }

  .horizontal-ability-detail {
    margin: 2mm 0 3mm;
    overflow: visible;
    break-inside: avoid;
    padding: 2.5mm;
  }

  .horizontal-ability-detail .appendix-table {
    min-width: 0;
    font-size: 7pt;
  }
}
/* Assessment mode switch: student archive vs. trial-class horizontal assessment. */
.entry-mode-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin: 0 0 20px;
  padding: 18px 26px 18px 24px;
  border: 1px solid #cfe0f7;
  border-left: 6px solid #4c83df;
  border-radius: 18px;
  background: linear-gradient(105deg, #f5f9ff, #ffffff 64%, #fff9e9);
  box-shadow: 0 14px 34px rgba(44, 87, 145, .08);
}
.entry-mode-banner > div {
  min-width: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: 14px;
  row-gap: 7px;
}
.entry-mode-banner span {
  align-self: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: #edf4ff;
  color: #5c77a1;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}
.entry-mode-banner strong {
  color: #173d7a;
  font-size: 26px;
  line-height: 1.15;
  letter-spacing: -.02em;
}
.entry-mode-banner p {
  grid-column: 2 / -1;
  margin: 0;
  color: #6c7d95;
  font-size: 16px;
  line-height: 1.55;
}
.entry-mode-banner[data-mode="trial"] { border-left-color: #e5aa35; background: linear-gradient(105deg, #fffaf0, #fff 64%, #eef7ff); }
.entry-mode-banner[data-mode="trial"] span { background: #fff1cf; color: #9b6810; }
.entry-mode-banner[data-mode="trial"] strong { color: #9b6810; }
.entry-mode-banner button {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 190px;
  align-self: center;
  padding: 13px 20px;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 800;
}
.rope-current-level { min-width: 220px; }
.trial-project-settings { margin-top: 22px; padding-top: 20px; border-top: 1px dashed #cedcf0; }
.trial-metric-groups { display: grid; gap: 14px; margin-top: 14px; }
.trial-metric-row { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 16px; align-items: start; padding: 16px; border: 1px solid #dbe7f5; border-radius: 16px; background: #fbfdff; }
.trial-metric-row > header { display: grid; gap: 5px; padding: 7px 4px; }
.trial-metric-row > header strong { color: #1c4d8f; font-size: 18px; }
.trial-metric-row > header small { color: #7a8da8; font-size: 12px; line-height: 1.45; }
.trial-metric-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.trial-metric-grid label { min-height: 40px; gap: 6px; padding: 7px 10px; font-size: 14px; line-height: 1.2; }
.trial-metric-grid label > span { min-width: 0; }
.trial-metric-grid .required-metric { background: #edf5ff; box-shadow: inset 0 0 0 1px #c8dcf6; }
.trial-metric-grid .required-metric em { margin-left: 4px; padding: 2px 5px; border-radius: 999px; background: #dceaff; color: #3475cc; font-size: 10px; font-style: normal; font-weight: 700; white-space: nowrap; }
.trial-metric-grid input:disabled { opacity: .72; cursor: not-allowed; }
@media (max-width: 1100px) {
  .trial-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .trial-metric-row { grid-template-columns: 1fr; gap: 8px; }
  .trial-metric-row > header { padding-bottom: 0; }
}
@media (max-width: 720px) {
  .entry-mode-banner { flex-direction: column; align-items: flex-start; }
  .entry-mode-banner > div { grid-template-columns: 1fr; }
  .entry-mode-banner p { grid-column: 1; }
  .trial-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Final homepage CTA sizing — deliberately prominent primary entrances. */
.home-panel .landing-actions { gap: 44px !important; }
.home-panel .landing-actions button {
  width: 240px !important;
  min-width: 240px !important;
  min-height: 64px !important;
  padding: 0 34px !important;
  border-radius: 12px !important;
  font-size: 18px !important;
  font-weight: 800 !important;
}
@media (max-width: 700px) {
  .home-panel .landing-actions { gap: 16px !important; }
  .home-panel .landing-actions button { width: 170px !important; min-width: 170px !important; min-height: 52px !important; padding: 0 20px !important; font-size: 15px !important; }
}

/* Project settings dialogs: pin close control to the actual card corner. */
.test-project-dialog-card { position: relative !important; }
.test-project-dialog-head { padding-right: 92px !important; }
.test-project-dialog-head > button[data-close-project-dialog] {
  position: absolute !important;
  top: 20px !important;
  right: 20px !important;
  z-index: 2 !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  line-height: 1 !important;
}

/* Evidence sources are actionable document buttons. */
.source-reference-list .source-reference-button {
  width: 100%;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  border: 1px solid #d7e4f3;
  border-radius: 15px;
  background: #fff;
  color: inherit;
  text-align: left;
  text-decoration: none;
  box-shadow: 0 5px 14px rgba(43, 79, 126, .05);
}
.source-reference-list .source-reference-button.has-attachment { cursor: pointer; }
.source-reference-list .source-reference-button.has-attachment:hover { border-color: #78a7e6; background: #f7fbff; transform: translateY(-1px); box-shadow: 0 10px 22px rgba(43, 91, 156, .11); }
.source-reference-list .source-reference-button.missing-attachment { opacity: .7; cursor: not-allowed; }
.source-reference-list .source-reference-button > i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #edf4ff; color: #397bd4; font-style: normal; font-weight: 800; }
.source-reference-list .source-reference-button > .source-reference-main {
  min-width: 0;
  display: grid;
  gap: 8px;
}
.source-reference-list .source-reference-titleline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  min-width: 0;
}
.source-reference-list .source-reference-titleline span {
  flex: 0 0 auto;
  padding: 4px 10px;
  border-radius: 999px;
  background: #edf4ff;
  color: #2f6fca;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}
.source-reference-list .source-reference-titleline b {
  min-width: 240px;
  flex: 1 1 360px;
  color: #183d72;
  font-size: 15px;
  line-height: 1.45;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.source-reference-list .source-reference-button code {
  justify-self: start;
  max-width: 100%;
  padding: 4px 9px;
  border-radius: 9px;
  color: #7d5a16;
  background: #fff4d7;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.source-reference-list .source-reference-button p { margin: 0; }
.source-reference-list .source-reference-button > em { padding: 8px 12px; border-radius: 999px; background: #e9f3ff; color: #3476ce; font-size: 12px; font-style: normal; font-weight: 800; white-space: nowrap; }
.source-reference-list .source-reference-button.missing-attachment > em { background: #f1f3f6; color: #7f8b9c; }
.score-table-fold {
  border: 1px solid #d9e5f4;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}
.score-table-fold + .score-table-fold {
  margin-top: 10px;
}
.score-table-fold summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 16px;
  color: #173d79;
  font-weight: 900;
  cursor: pointer;
  list-style: none;
  background: linear-gradient(135deg, #f6faff, #fffaf0);
}
.score-table-fold summary::-webkit-details-marker {
  display: none;
}
.score-table-fold summary::after {
  content: "⌄";
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #edf4ff;
  color: #397bd4;
  font-size: 18px;
  line-height: 1;
}
.score-table-fold[open] summary::after {
  content: "⌃";
}
.score-table-fold summary small {
  color: #6f819d;
  font-size: 12px;
  font-weight: 700;
}
.score-table-fold .source-rule-table-wrap {
  margin: 0;
  border-width: 1px 0 0;
  border-radius: 0;
}
@media (max-width: 760px) {
  .source-reference-list .source-reference-button { grid-template-columns: 38px minmax(0, 1fr); }
  .source-reference-list .source-reference-button > em { grid-column: 2; justify-self: start; }
  .source-reference-list .source-reference-titleline b { min-width: 0; flex-basis: 100%; }
}
/* Indicator and rule configuration center */
.metric-config-center-card{border-top:4px solid #7b61d1;background:linear-gradient(135deg,#fff 0%,#fbf9ff 100%)}
.metric-config-center-card .settings-section-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px}
.metric-config-center-card .settings-section-head p{max-width:760px}
.metric-config-center-card #openMetricConfigCenterBtn{width:auto;min-width:220px;max-width:260px;height:56px;justify-self:end;padding:0 26px;border-radius:12px;font-size:18px;font-weight:800;box-shadow:0 10px 22px rgba(54,111,205,.18)}
.metric-config-ready{background:#eee9ff!important;color:#6f52c5!important}
.metric-config-center-summary{display:flex;align-items:center;gap:28px;margin-top:18px;padding:18px 22px;border:1px solid #e1e7f1;border-radius:16px;background:#f8faff;color:#64748b}
.metric-config-center-summary>span:first-child{color:#173d7a;font-weight:700}.metric-config-center-summary b{font-size:28px;color:#6d54c7}.metric-config-center-summary>div{display:flex;gap:10px;margin-left:auto}
.metric-config-dialog{position:fixed;inset:0;z-index:10020;display:grid;place-items:center;padding:3vh 3vw;background:rgba(25,43,72,.48);backdrop-filter:blur(5px)}
.metric-config-dialog[hidden]{display:none}.metric-config-dialog-card{width:min(1520px,94vw);height:min(920px,94vh);display:flex;flex-direction:column;overflow:hidden;border-radius:24px;background:#fff;box-shadow:0 30px 80px rgba(22,45,83,.28)}
.metric-config-dialog-card>header{display:flex;align-items:flex-start;justify-content:space-between;padding:26px 30px 20px;border-bottom:1px solid #dfe7f2;background:linear-gradient(110deg,#f7fbff,#faf8ff)}
.metric-config-dialog-card>header span{color:#497fdb;font-weight:700}.metric-config-dialog-card>header h2{margin:7px 0 5px;color:#173d7a;font-size:29px}.metric-config-dialog-card>header p{margin:0;color:#718198}
.metric-config-dialog-card>header>button{flex:0 0 auto;width:48px;height:48px;margin-top:0;border:0;border-radius:50%;background:#edf2f9;color:#5f7189;font-size:28px;line-height:1;display:grid;place-items:center}
.metric-config-layout{display:grid;grid-template-columns:310px 1fr;min-height:0;flex:1}.metric-config-layout>aside{display:flex;flex-direction:column;min-height:0;padding:22px;border-right:1px solid #dfe7f2;background:#f5f8fc}.metric-config-layout>main{min-width:0;overflow:auto;padding:24px 30px 30px}
.metric-config-list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;color:#173d7a}.metric-config-list-head>strong{white-space:nowrap}.metric-config-list-head>button{padding:9px 13px}.metric-config-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.metric-config-filters button{padding:8px 6px;border:1px solid #d7e2f1;border-radius:10px;background:#fff;color:#506b91;font-weight:700}.metric-config-filters button.active{border-color:#4f82dd;background:#edf5ff;color:#2458a2}.metric-config-category-filter{width:100%;height:40px;margin-bottom:13px;padding:0 10px;border:1px solid #d7e2f1;border-radius:10px;background:#fff;color:#38557f;font-weight:700}.metric-config-list{display:flex;flex-direction:column;gap:9px;overflow:auto}.metric-config-list>button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:14px;border:1px solid #dce5f1;border-radius:14px;background:#fff;text-align:left}.metric-config-list>button.active{border-color:#5689e2;background:#edf5ff;box-shadow:0 0 0 2px rgba(86,137,226,.12)}
.metric-config-list>button span{display:flex;flex-direction:column;gap:4px}.metric-config-list>button strong{color:#173d7a;font-size:16px}.metric-config-list>button small{color:#7d8ca1}.metric-config-list>button em{font-style:normal;font-size:12px;white-space:nowrap;color:#63748a}.metric-config-list>button em[data-status=published]{color:#288663}.metric-config-list>button em[data-status=disabled]{color:#c45b4a}.metric-config-empty{padding:20px 10px;color:#7d8ca1;line-height:1.7}
.metric-wizard-bar{display:grid;grid-template-columns:1fr repeat(3,minmax(170px,220px));gap:12px;align-items:stretch;padding:16px 18px;border:1px solid #dbe6f4;border-radius:16px;background:linear-gradient(135deg,#f6faff,#fffaf0)}
.metric-wizard-bar>div:first-child{display:flex;flex-direction:column;justify-content:center;gap:4px}.metric-wizard-bar strong{color:#173d7a}.metric-wizard-bar small{color:#75859b}.metric-create-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:14px 16px;border:1px solid #d7e2f1;border-radius:14px;background:#fff;color:#173d7a;text-align:left}.metric-create-card b{font-size:17px}.metric-create-card.active{border-color:#4f82dd;background:#edf5ff;box-shadow:0 0 0 2px rgba(79,130,221,.12)}.metric-create-panel{grid-column:1/-1;display:grid;grid-template-columns:minmax(260px,420px) auto;gap:12px;align-items:end;padding-top:4px}.metric-create-panel[hidden]{display:none}.metric-create-panel label{display:flex;flex-direction:column;gap:6px;color:#38557f;font-weight:700}.metric-create-panel select{height:42px;padding:0 12px;border:1px solid #ccd9ea;border-radius:10px;background:#fff;color:#203b68}
.metric-config-form{display:flex;flex-direction:column;gap:18px}.metric-editor-section{padding:20px;border:1px solid #dce5f1;border-radius:18px;background:#fff}.metric-editor-title{display:flex;align-items:center;gap:12px;margin-bottom:17px}.metric-editor-title>i{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#edf4ff;color:#427bd8;font-style:normal;font-weight:800}.metric-editor-title>div{display:flex;flex-direction:column;gap:2px}.metric-editor-title strong{color:#173d7a;font-size:19px}.metric-editor-title small{color:#7d8ca1}.metric-editor-title>button{margin-left:auto}
.metric-config-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-core-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.metric-config-grid label,.metric-copy-grid label{display:flex;flex-direction:column;gap:7px;color:#38557f;font-weight:700}.metric-config-grid input,.metric-config-grid select,.metric-copy-grid textarea{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #ccd9ea;border-radius:10px;background:#fbfdff;color:#203b68}.metric-config-grid label small{color:#8795a8;font-weight:400}.metric-advanced-fields{margin-top:14px}.metric-advanced-fields summary{cursor:pointer;color:#497fdb;font-weight:800}.metric-advanced-fields[open] summary{margin-bottom:13px}.metric-placement-row{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:17px;padding:13px 15px;border-radius:12px;background:#f5f8fc;color:#425d84}.metric-placement-row strong{color:#173d7a}.metric-placement-row label{display:flex;align-items:center;gap:6px}
.metric-threshold-table{overflow:auto;border:1px solid #dbe4f0;border-radius:13px}.metric-threshold-head,.metric-threshold-row{display:grid;grid-template-columns:78px 88px 88px 110px 96px 96px 82px 120px 125px 42px;gap:7px;align-items:center;min-width:1040px;padding:9px 12px}.metric-threshold-head{background:#edf4fc;color:#38557f;font-weight:700}.metric-threshold-row{border-top:1px solid #e5ebf3}.metric-threshold-row input,.metric-threshold-row select{min-width:0;padding:9px;border:1px solid #cfdaea;border-radius:9px}.metric-threshold-row button{border:0;background:#fff0ed;color:#c95645;font-size:19px}.metric-form-help{margin:10px 0 0;color:#7d8ca1}.metric-copy-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.metric-copy-grid textarea{resize:vertical;line-height:1.55}.evidence-grid{grid-template-columns:1fr 2fr}
.metric-preview-box{display:grid;grid-template-columns:minmax(180px,220px) 150px 130px 130px 160px 104px minmax(220px,1fr);gap:12px;align-items:end;margin-top:14px;padding:16px;border-radius:14px;background:#f7faff;border:1px solid #dce7f4}
.metric-preview-box>div{display:flex;flex-direction:column;gap:3px}.metric-preview-box strong{color:#173d7a}.metric-preview-box small{color:#7d8ca1}.metric-preview-box label{display:flex;flex-direction:column;gap:5px;color:#38557f;font-size:13px;font-weight:700}.metric-preview-box input,.metric-preview-box select{height:38px;padding:0 10px;border:1px solid #cdd9ea;border-radius:9px;background:#fff}.metric-preview-box button{height:40px;min-width:96px;white-space:nowrap}.metric-preview-box output{min-height:40px;display:flex;align-items:center;padding:8px 14px;border-radius:10px;background:#fff;color:#31527d;line-height:1.45}
.metric-config-form>footer{position:sticky;bottom:-30px;z-index:3;display:flex;align-items:center;gap:10px;margin:8px -30px -30px;padding:14px 30px;background:rgba(255,255,255,.96);border-top:1px solid #dfe7f2;box-shadow:0 -14px 32px rgba(42,73,115,.08)}.metric-config-form>footer>div{display:flex;flex-direction:column;gap:3px;min-width:240px}.metric-config-form>footer>div strong{color:#173d7a}.metric-config-form>footer span{flex:1}.metric-config-status{min-height:18px;color:#5d6f87}.metric-config-status[data-type=success]{color:#21845f}.metric-config-status[data-type=error]{color:#c4463a}
@media(max-width:1200px){.metric-wizard-bar,.metric-preview-box{grid-template-columns:1fr 1fr}.metric-preview-box output{grid-column:1/-1}}
@media(max-width:1000px){.metric-config-layout{grid-template-columns:1fr}.metric-config-layout>aside{max-height:190px;border-right:0;border-bottom:1px solid #dfe7f2}.metric-config-grid{grid-template-columns:1fr 1fr}.metric-config-center-summary{align-items:flex-start;flex-direction:column}.metric-config-center-summary>div{margin-left:0}}
@media(max-width:650px){.metric-config-dialog{padding:0}.metric-config-dialog-card{width:100vw;height:100vh;border-radius:0}.metric-config-dialog-card>header{padding:18px}.metric-config-layout>main{padding:16px}.metric-config-grid,.metric-copy-grid,.evidence-grid,.metric-wizard-bar,.metric-preview-box{grid-template-columns:1fr}.metric-placement-row{align-items:flex-start;flex-direction:column}.metric-config-form>footer{flex-wrap:wrap}.metric-config-form>footer span{display:none}}
.custom-metric-entry-fields{display:flex;flex-direction:column;gap:14px;margin-top:18px}.custom-metric-entry-fields>section{padding:16px;border:1px dashed #cfdcec;border-radius:14px;background:#f9fbfe}.custom-metric-entry-fields h4{display:flex;align-items:center;gap:10px;margin:0 0 13px;color:#244b84}.custom-metric-entry-fields h4 small{padding:3px 8px;border-radius:999px;background:#eee9ff;color:#7156c5;font-weight:600}
.custom-metric-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.custom-metric-report-card{padding:19px;border:1px solid #d8e3f0;border-radius:16px;background:linear-gradient(145deg,#fff,#f8fbff)}.custom-metric-report-card header{display:flex;justify-content:space-between;color:#5d79a3}.custom-metric-report-card header em{font-style:normal}.custom-metric-report-card h4{margin:10px 0 5px;color:#173d7a;font-size:20px}.custom-metric-report-card>strong{display:block;margin-bottom:12px;color:#2458a2;font-size:22px}.custom-metric-report-card p{margin:8px 0;color:#566b87;line-height:1.6}.custom-metric-report-card small{display:block;margin-top:12px;padding-top:10px;border-top:1px solid #e4eaf2;color:#78879b}
@media(max-width:900px){.custom-metric-report-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.custom-metric-report-grid{grid-template-columns:1fr}}
@media print{.custom-metric-report-card{break-inside:avoid}.metric-config-center-card,.metric-config-dialog{display:none!important}}

/* 场馆看板作为健康档案页内独立页面展示，不能再保留学员详情页的左右栏结构。 */
.step-panel[data-panel="manage"][data-archive-state="venue"] .management-layout {
  grid-template-columns: 1fr !important;
}

.step-panel[data-panel="manage"][data-archive-state="venue"] .management-side {
  display: none !important;
}

.step-panel[data-panel="manage"][data-archive-state="venue"] .management-main {
  min-width: 0;
}


/* Batch import repair dialog. */
.batch-repair-dialog{position:fixed;inset:0;z-index:10040;display:grid;place-items:center;padding:28px;background:rgba(24,47,82,.52);backdrop-filter:blur(5px)}
.batch-repair-dialog[hidden]{display:none}.batch-repair-card{width:min(1180px,94vw);max-height:88vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid #d8e5f4;border-radius:22px;background:#fff;box-shadow:0 30px 80px rgba(21,47,84,.25)}
.batch-repair-card>header{display:flex;justify-content:space-between;gap:18px;padding:24px 28px 18px;border-bottom:1px solid #e3ebf5;background:linear-gradient(110deg,#f7fbff,#fff)}
.batch-repair-card>header span{color:#4b82d4;font-size:13px;font-weight:800}.batch-repair-card h3{margin:4px 0;color:#173f78;font-size:26px}.batch-repair-card p{margin:0;color:#6f8098;line-height:1.55}.batch-repair-card>header>button{width:42px;height:42px;border:0;border-radius:50%;background:#eef4fb;color:#58718f;font-size:25px;line-height:1}.batch-repair-list{display:grid;gap:14px;min-height:0;overflow:auto;padding:22px 28px;background:#fbfdff}.batch-repair-row{border:1px solid #dce8f6;border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(43,82,135,.06);overflow:hidden}.batch-repair-row>header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid #edf3fa}.batch-repair-row strong{color:#173f78;font-size:18px}.batch-repair-row small{color:#8190a7;font-weight:700}.batch-repair-fields{display:grid;gap:12px;padding:14px 16px}.batch-repair-field{display:grid;grid-template-columns:150px minmax(120px,.8fr) minmax(220px,1.2fr) minmax(220px,1fr);gap:12px;align-items:center}.batch-repair-field b{color:#173f78}.batch-repair-field code{padding:8px 10px;border-radius:10px;background:#f3f6fb;color:#d07a2b;white-space:normal;word-break:break-word}.batch-repair-field input{width:100%;min-height:42px;border:1px solid #c9d9ee;border-radius:12px;padding:0 12px;color:#173f78;font-weight:700}.batch-repair-field em{font-style:normal;color:#75859a;line-height:1.45}.batch-repair-field[data-required="true"] b::after{content:" 必填";margin-left:6px;color:#d0635b;font-size:12px}.batch-repair-card>footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 28px;border-top:1px solid #e3ebf5;background:#fff}.batch-repair-card>footer button{min-width:130px}.batch-repair-empty{padding:24px;border:1px dashed #bfd2ec;border-radius:16px;color:#6d7d93;background:#f7fbff}
@media(max-width:820px){.batch-repair-dialog{padding:10px}.batch-repair-card{width:100%;max-height:94vh}.batch-repair-field{grid-template-columns:1fr}.batch-repair-card>footer{flex-wrap:wrap}.batch-repair-card>footer button{flex:1 1 160px}}


/* Global drag-and-drop batch import. */
body.drag-import-active .app-header,body.drag-import-active .app-shell,body.drag-import-active .launch-gate{filter:blur(4px);opacity:.28;transition:filter .16s ease,opacity .16s ease}.global-drop-import-overlay{position:fixed;inset:0;z-index:10060;display:grid;place-items:center;padding:28px;background:rgba(248,251,255,.72);backdrop-filter:blur(8px)}.global-drop-import-overlay[hidden]{display:none}.global-drop-import-card{width:min(720px,90vw);min-height:360px;display:grid;place-items:center;align-content:center;gap:18px;text-align:center;border:1px solid rgba(184,207,238,.78);border-radius:28px;background:rgba(255,255,255,.9);box-shadow:0 34px 90px rgba(25,55,96,.18)}.global-drop-import-card h2{margin:0;color:#142f5d;font-size:38px;letter-spacing:0}.global-drop-import-card p{max-width:520px;margin:0;color:#5f718b;font-size:20px;line-height:1.6}.drop-import-icon{position:relative;width:138px;height:118px}.drop-import-icon span,.drop-import-icon i,.drop-import-icon b{position:absolute;border-radius:18px;box-shadow:0 14px 30px rgba(69,112,216,.18)}.drop-import-icon span{left:10px;top:28px;width:68px;height:82px;background:linear-gradient(145deg,#dce6ff,#8fa7ff);transform:rotate(-15deg)}.drop-import-icon i{right:10px;top:0;width:66px;height:88px;background:linear-gradient(145deg,#6d7bff,#4766df);transform:rotate(14deg)}.drop-import-icon i::before{content:"";position:absolute;left:17px;right:14px;top:22px;height:7px;border-radius:999px;background:#fff;box-shadow:0 17px 0 #fff,0 34px 0 rgba(255,255,255,.72)}.drop-import-icon b{left:34px;bottom:0;width:78px;height:72px;background:linear-gradient(145deg,#4b62ff,#2f43e9)}.drop-import-icon b::before{content:"";position:absolute;left:17px;right:17px;bottom:18px;height:28px;border-left:8px solid #fff;border-bottom:8px solid #fff;transform:skew(-18deg) rotate(-8deg);border-radius:5px}.drop-import-icon b::after{content:"";position:absolute;right:19px;top:17px;width:15px;height:15px;border-radius:50%;background:#fff}
@media(max-width:720px){.global-drop-import-card{min-height:300px}.global-drop-import-card h2{font-size:28px}.global-drop-import-card p{font-size:16px}}

/* Login and standalone account management pages. */
.auth-page{min-height:100vh;margin:0;color:#1b2f55;background:linear-gradient(120deg,rgba(225,237,252,.95),rgba(247,250,255,.98) 52%,rgba(255,248,219,.62)),#f6f9fe;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif}.auth-shell{width:min(1240px,calc(100vw - 48px));min-height:100vh;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);align-items:center;gap:40px;padding:48px 0}.auth-brand-panel{min-height:560px;padding:64px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(112,145,188,.2);border-radius:8px;background:rgba(255,255,255,.72);box-shadow:0 24px 70px rgba(38,73,124,.12)}.auth-kicker{margin:0 0 14px;font-size:14px;font-weight:700;color:#497fd7;letter-spacing:0}.auth-brand-panel h1,.account-admin-header h1{margin:0;font-size:42px;line-height:1.22;color:#163c7c}.auth-brand-panel p:not(.auth-kicker){max-width:560px;margin:18px 0 0;font-size:17px;line-height:1.8;color:#647693}.auth-feature-list{display:grid;gap:16px;margin:40px 0 0;padding:0;list-style:none}.auth-feature-list li{display:grid;grid-template-columns:92px 1fr;gap:18px;padding:18px 0;border-top:1px solid rgba(116,147,188,.22)}.auth-feature-list strong{color:#183d78;font-size:18px}.auth-feature-list span{color:#718098;line-height:1.7}.auth-card,.account-form-card,.account-list-card{border:1px solid #d9e5f5;border-radius:8px;background:rgba(255,255,255,.96);box-shadow:0 18px 46px rgba(36,71,117,.13)}.auth-card{padding:44px}.auth-card-head,.account-admin-header{display:flex;align-items:center;justify-content:space-between;gap:24px}.auth-card h2,.account-form-card h2,.account-list-card h2{margin:0;font-size:28px;color:#173b78}.auth-card-head a,.account-admin-header a,.account-admin-header button,.account-table button,.account-admin-link,.logout-button{color:#356fd2;text-decoration:none}.auth-form,.account-form-card{display:grid;gap:18px}.auth-form{margin-top:28px}.auth-form label,.account-form-card label{display:grid;gap:8px;font-weight:700;color:#25446f}.auth-form input,.auth-form select,.account-form-card input,.account-form-card select{width:100%;min-height:48px;box-sizing:border-box;border:1px solid #cddcf0;border-radius:8px;padding:0 14px;color:#1b2f55;background:#fbfdff;font:inherit}.auth-form input:focus,.auth-form select:focus,.account-form-card input:focus,.account-form-card select:focus{outline:2px solid rgba(64,123,219,.22);border-color:#6a9ae6}.auth-primary{min-height:52px;border:0;border-radius:8px;color:#fff;background:#3976dd;box-shadow:0 14px 28px rgba(57,118,221,.24);font:inherit;font-weight:800;cursor:pointer}.auth-message{min-height:22px;margin:0;color:#6c7890;font-size:14px}.auth-message[data-tone=error]{color:#b42318}.auth-message[data-tone=success]{color:#16794c}.auth-default-note{margin:22px 0 0;padding:16px;border-radius:8px;color:#60728e;background:#f1f6fd;line-height:1.7}.account-admin-shell{width:min(1280px,calc(100vw - 48px));margin:0 auto;padding:44px 0}.account-admin-header{margin-bottom:28px}.account-admin-header h1{font-size:32px}.account-admin-header nav{display:flex;align-items:center;gap:12px}.account-admin-header a,.account-admin-header button,.account-table button{border:1px solid #cddcf0;border-radius:8px;background:#fff;padding:10px 14px;font:inherit;font-weight:700;cursor:pointer}.account-admin-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:24px;align-items:start}.account-form-card,.account-list-card{padding:24px}.account-table-wrap{margin-top:18px;overflow-x:auto}.account-table{width:100%;border-collapse:collapse;min-width:760px}.account-table th,.account-table td{padding:14px 12px;border-bottom:1px solid #e4edf8;text-align:left;vertical-align:middle}.account-table th{color:#49617f;background:#f3f7fd}.account-table td{color:#21395d}.account-status{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;color:#146c43;background:#e8f7ef;font-weight:700}.account-status[data-status=disabled]{color:#9a3412;background:#fff1e8}@media(max-width:860px){.auth-shell,.account-admin-shell{width:min(100% - 28px,680px)}.auth-shell,.account-admin-grid{grid-template-columns:1fr}.auth-brand-panel{min-height:0;padding:28px}.auth-brand-panel h1,.account-admin-header h1{font-size:30px}.auth-card{padding:28px}.auth-feature-list li{grid-template-columns:1fr;gap:6px}.account-admin-header{align-items:flex-start;flex-direction:column}}
.top-nav .account-admin-link,.top-nav .logout-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 18px;border:1px solid #d4e1f2;border-radius:8px;background:#fff;color:#183f78;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.top-nav .logout-button{color:#6a7890;background:#f8fbff}
