:root {
  color-scheme: light;
  --bg: #f3f5f8;
  --panel: #ffffff;
  --text: #162033;
  --muted: #657184;
  --line: #d9e0ea;
  --soft-line: #edf1f6;
  --accent: #1466d8;
  --accent-dark: #0f54b3;
  --success: #147a4d;
  --warning: #9a5b00;
  --danger: #c43232;
  --danger-bg: #fff1f1;
  --focus: rgba(20, 102, 216, 0.18);
  --shadow: 0 12px 32px rgba(22, 32, 51, 0.08);
}

/* AI strategy is available only from a server-owned quick-match snapshot. */
.quick-ai-launch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 16px 0;
  padding: 15px 18px;
  border: 1px solid #9ed9c6;
  border-radius: 8px;
  background: #f2fbf7;
}

.quick-ai-launch div { min-width: 0; }
.quick-ai-launch strong,
.quick-ai-launch span { display: block; }
.quick-ai-launch strong { color: #075f49; font-size: 17px; }
.quick-ai-launch span { margin-top: 3px; color: #45635b; font-size: 14px; overflow-wrap: anywhere; }

.ai-strategy-shell { min-width: 0; }
.ai-strategy-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 18px;
  padding-bottom: 20px;
  border-bottom: 1px solid #dbe4ef;
}
.ai-strategy-hero h2 { margin: 2px 0 6px; font-size: 26px; }
.ai-strategy-hero p { margin: 0; color: var(--muted); overflow-wrap: anywhere; }
.ai-strategy-eyebrow { color: #06705a !important; font-size: 13px; font-weight: 750; }
.ai-strategy-context { display: grid; gap: 7px; max-width: 900px; margin-top: 20px; font-weight: 700; }
.ai-strategy-context textarea { min-height: 78px; resize: vertical; font: inherit; font-weight: 400; }
.ai-strategy-context small { color: var(--muted); font-weight: 400; }
.ai-strategy-status { margin: 18px 0; padding: 12px 14px; border-left: 4px solid #87a4c6; background: #f4f7fb; color: #29425f; }
.ai-strategy-status.is-warning { border-color: #d49524; background: #fff8e8; color: #79500b; }
.ai-strategy-status.is-error { border-color: #d94a4a; background: #fff1f1; color: #8a2525; }
.ai-strategy-status.is-success { border-color: #279468; background: #effaf5; color: #116747; }
.ai-strategy-status.is-loading { border-color: #1466d8; background: #eef5ff; color: #164f9b; }
.ai-strategy-content,
.ai-strategy-content * { min-width: 0; }
.ai-strategy-empty { display: grid; justify-items: start; gap: 8px; padding: 28px 20px; border: 1px dashed #b8c7d9; background: #f9fbfd; }
.ai-strategy-empty p { margin: 0; color: var(--muted); }
.ai-strategy-empty-inline { margin: 0; color: var(--muted); }
.ai-strategy-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; border: 1px solid #dce5ef; background: #dce5ef; }
.ai-strategy-overview > div { padding: 18px; background: #fff; }
.ai-strategy-overview h3,
.ai-strategy-programs > header h3 { margin: 0 0 8px; font-size: 19px; }
.ai-strategy-overview p { margin: 0; line-height: 1.65; white-space: pre-wrap; }
.ai-strategy-overview ul,
.ai-strategy-program ul { margin: 0; padding-left: 21px; line-height: 1.6; }
.ai-strategy-programs { margin-top: 24px; }
.ai-strategy-programs > header { margin-bottom: 12px; }
.ai-strategy-programs > header p { margin: 0; color: var(--muted); }
.ai-strategy-program { padding: 18px 0; border-top: 1px solid #dce5ef; }
.ai-strategy-program > header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 12px; }
.ai-strategy-program h4 { margin: 0; font-size: 18px; overflow-wrap: anywhere; }
.ai-strategy-program header p { margin: 4px 0 0; color: var(--muted); overflow-wrap: anywhere; }
.ai-strategy-priority,
.ai-strategy-tier { padding: 5px 8px; border-radius: 4px; font-size: 13px; font-weight: 750; white-space: nowrap; }
.ai-strategy-priority { background: #eaf2ff; color: #1256aa; }
.ai-strategy-tier { background: #eef8f3; color: #1a7653; }
.ai-strategy-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 14px 0; border: 1px solid #dce5ef; }
.ai-strategy-facts div { padding: 11px; border-right: 1px solid #dce5ef; }
.ai-strategy-facts div:last-child { border-right: 0; }
.ai-strategy-facts dt { color: var(--muted); font-size: 13px; }
.ai-strategy-facts dd { margin: 4px 0 0; font-weight: 700; overflow-wrap: anywhere; }
.ai-strategy-rationale,
.ai-strategy-risk { display: grid; grid-template-columns: 130px minmax(0, 1fr) auto; gap: 10px; margin: 10px 0; }
.ai-strategy-rationale p,
.ai-strategy-risk p { margin: 0; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.ai-strategy-risk span { color: #a33333; font-size: 13px; font-weight: 750; }
.ai-strategy-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 14px 0; }
.ai-strategy-columns section { padding: 13px; background: #f6f8fb; }
.ai-strategy-columns h5 { margin: 0 0 7px; font-size: 15px; }

@media (max-width: 720px) {
  .quick-ai-launch { align-items: stretch; flex-direction: column; }
  .quick-ai-launch .primary-button { min-height: 44px; }
  .ai-strategy-hero { grid-template-columns: 1fr; }
  .ai-strategy-hero .primary-button,
  .ai-strategy-hero .ghost-button { min-height: 44px; }
  .ai-strategy-overview,
  .ai-strategy-columns { grid-template-columns: 1fr; }
  .ai-strategy-program > header { grid-template-columns: auto minmax(0, 1fr); }
  .ai-strategy-tier { grid-column: 2; justify-self: start; }
  .ai-strategy-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-strategy-facts div:nth-child(2) { border-right: 0; }
  .ai-strategy-facts div:nth-child(-n+2) { border-bottom: 1px solid #dce5ef; }
  .ai-strategy-rationale,
  .ai-strategy-risk { grid-template-columns: 1fr; }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-width: 0;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 17px;
  line-height: 1.5;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

h1,
h2,
p {
  margin: 0;
}

h1 {
  font-size: 30px;
  line-height: 1.2;
}

h2 {
  font-size: 22px;
  line-height: 1.35;
}

.app-shell {
  width: min(1440px, calc(100% - 32px));
  min-width: 0;
  margin: 24px auto 40px;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}

.topbar p,
.section-head p {
  margin-top: 6px;
  color: var(--muted);
  font-size: 16px;
}

.topbar-actions,
.inline-control,
.row-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.filter-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
  flex: 1;
  max-width: 980px;
}

.filter-bar label {
  min-width: 160px;
}

.case-head-actions,
.segmented-control {
  display: flex;
  align-items: center;
  gap: 8px;
}

.segmented-control {
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f7f9fc;
}

.segmented-control button {
  min-height: 32px;
  padding: 0 12px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--muted);
}

.segmented-control button.active {
  background: #fff;
  color: var(--accent);
  box-shadow: 0 1px 4px rgb(31 63 109 / 12%);
  font-weight: 700;
}

.case-filter-band {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--line);
  background: #fbfcfe;
}

.case-filter-band[hidden] {
  display: none;
}

.case-filter-band .filter-bar {
  width: 100%;
  max-width: none;
}

.case-filter-band .filter-bar label {
  min-width: 130px;
}

.case-filter-band .filter-bar label:last-of-type {
  min-width: 190px;
}

.virtual-case-topik {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 9px;
  border: 1px solid #80cbbd;
  border-radius: 5px;
  background: #f5fbf9;
  color: #086c5d;
  font-weight: 750;
}

.virtual-case-student-name {
  color: var(--text);
  font-size: 15px;
  font-weight: 800;
}

.virtual-case-code {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0;
}

.more-filters-panel {
  flex: 1 0 100%;
  width: 100%;
  max-width: none;
  margin-top: 2px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.more-filters-panel[hidden] {
  display: none;
}

.tabs {
  display: flex;
  gap: 6px;
  padding: 6px;
  margin-bottom: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  overflow-x: auto;
}

.tab {
  height: 38px;
  padding: 0 14px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  white-space: nowrap;
}

.tab.active {
  background: var(--accent);
  color: #fff;
}

.view {
  display: none;
  min-width: 0;
}

.view.active {
  display: block;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}

.metric {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.metric span {
  color: var(--muted);
  font-size: 15px;
}

.metric strong {
  display: block;
  margin-top: 8px;
  font-size: 32px;
}

.panel {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.split-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  padding: 22px;
}

.check-list,
.flow-list {
  margin: 14px 0 0;
  padding-left: 22px;
  color: #334058;
  line-height: 1.9;
}

.section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px;
  border-bottom: 1px solid var(--line);
}

.primary-button,
.ghost-button,
.icon-button,
.danger-button,
.ghost-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 36px;
  border: 1px solid transparent;
  border-radius: 6px;
  text-decoration: none;
  white-space: nowrap;
}

.primary-button {
  min-width: 92px;
  padding: 0 14px;
  background: var(--accent);
  color: #fff;
}

.primary-button:hover {
  background: var(--accent-dark);
}

.ghost-button,
.ghost-link {
  min-width: 72px;
  padding: 0 12px;
  border-color: var(--line);
  background: #fff;
  color: var(--text);
}

.ghost-button:hover,
.ghost-link:hover {
  background: #f7f9fc;
}

.icon-button {
  width: 36px;
  padding: 0;
  border-color: var(--line);
  background: #fff;
  color: var(--text);
  font-size: 20px;
}

.danger-button {
  min-width: 58px;
  padding: 0 10px;
  border-color: #ffd2d2;
  background: var(--danger-bg);
  color: var(--danger);
}

.wide-button {
  width: 100%;
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  outline: none;
}

input,
select {
  height: 38px;
  padding: 0 10px;
}

textarea {
  resize: vertical;
  padding: 10px;
}

input:focus,
select:focus,
textarea:focus,
button:focus-visible,
a:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--focus);
}

.checkbox-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.checkbox-group legend {
  padding: 0 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.checkbox-group label {
  display: inline-flex;
  min-width: 0;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  color: var(--text);
}

.checkbox-group input {
  width: auto;
}

.category-program-editor {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.category-program-editor legend {
  padding: 0 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.add-option-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.inline-checkbox-group {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.category-program-row {
  padding: 10px;
  border: 1px solid var(--soft-line);
  border-radius: 8px;
  background: #fbfcfe;
}

.stage-program-panel,
.program-choice-panel {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--soft-line);
  border-radius: 8px;
  background: #fbfcfe;
}

.stage-program-panel h3,
.program-choice-panel strong {
  margin: 0;
  font-size: 14px;
}

.stage-requirement-card {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--soft-line);
  border-radius: 8px;
  background: #fff;
}

.stage-requirement-card strong {
  font-size: 13px;
}

.requirement-score-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.category-program-row > span {
  font-weight: 700;
}

.hidden {
  display: none !important;
}

.table-wrap {
  overflow-x: visible;
}

#universitiesView .table-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: visible;
}

#universitiesView table {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  table-layout: fixed;
}

table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
}

th,
td {
  padding: 13px 16px;
  border-bottom: 1px solid var(--soft-line);
  text-align: left;
  vertical-align: top;
  font-size: 14px;
  overflow-wrap: anywhere;
  word-break: break-word;
}

th {
  background: #fbfcfe;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
}

.location-column {
  min-width: 170px;
}

tr:last-child td {
  border-bottom: 0;
}

.subtext {
  display: inline-block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
}

.school-official-link,
.school-official-sub-link {
  color: inherit;
  text-decoration: none;
}

.school-official-link:hover,
.school-official-sub-link:hover {
  color: var(--accent);
  text-decoration: underline;
}

.location-header {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.city-header-filter {
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
  white-space: nowrap;
}

.city-header-filter select {
  width: 96px;
  height: 30px;
  min-width: 96px;
  padding: 0 8px;
  font-size: 13px;
}

#universitiesView th,
#universitiesView td,
#programsView th,
#programsView td {
  padding: 12px 14px;
}

#programsView th:nth-child(1),
#programsView td:nth-child(1) {
  width: 28%;
}

#programsView th:nth-child(2),
#programsView td:nth-child(2) {
  width: 20%;
}

#programsView th:nth-child(3),
#programsView td:nth-child(3) {
  width: 17%;
}

#programsView th:nth-child(4),
#programsView td:nth-child(4) {
  width: 21%;
}

#programsView th:nth-child(5),
#programsView td:nth-child(5) {
  width: 14%;
}

.requirement-cell {
  display: grid;
  gap: 8px;
  width: auto;
  color: #334058;
  font-size: 12px;
  line-height: 1.55;
}

.requirement-cell > div {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 8px;
}

.requirement-cell strong {
  color: var(--text);
  font-weight: 700;
}

.requirement-cell span {
  white-space: pre-line;
}

.bilingual-requirement {
  display: grid;
  gap: 6px;
}

.requirement-lang-label {
  display: inline-flex;
  width: fit-content;
  min-height: 22px;
  align-items: center;
  padding: 0 8px;
  border-radius: 6px;
  background: #eef5ff;
  color: #285f9f;
  font-size: 12px;
  font-weight: 700;
  white-space: normal;
}

.requirement-source-label {
  gap: 6px;
  border: 1px solid #9dc4f8;
  background: #e8f2ff;
  box-shadow: 0 1px 0 rgba(23, 87, 168, 0.08);
  text-decoration: none;
  cursor: pointer;
}

.requirement-source-label::after {
  content: "↗";
  font-size: 11px;
  line-height: 1;
}

.requirement-source-label:hover {
  border-color: #5e9df0;
  background: #d8eaff;
  color: #174f8c;
  box-shadow: 0 2px 8px rgba(23, 87, 168, 0.14);
  transform: translateY(-1px);
}

.requirement-source-label:active {
  box-shadow: 0 1px 2px rgba(23, 87, 168, 0.12);
  transform: translateY(0);
}

.requirement-lang-text {
  display: block;
  color: #334058;
}

.muted-requirement-text {
  color: var(--muted);
}

.program-requirement-cell {
  width: auto;
}

.programs-column {
  min-width: 0;
}

#universitiesView .column-school {
  width: 14%;
}

#universitiesView .column-location {
  width: 14%;
}

#universitiesView .column-cost,
#universitiesView .column-semesterTuition {
  width: 10%;
}

#universitiesView .column-qsRank,
#universitiesView .column-usNewsRank {
  width: 6%;
}

.school-qs-inline {
  margin-left: 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}

#universitiesView .column-koreaLanguage,
#universitiesView .column-usTests,
#universitiesView .column-australiaPathway {
  width: 10%;
}

#universitiesView .university-language-cell {
  display: grid;
  gap: 4px;
  min-width: 0;
}

#universitiesView .university-tuition-cell {
  display: grid;
  gap: 5px;
  min-width: 0;
}

#universitiesView .university-tuition-disclosure > summary {
  display: grid;
  gap: 5px;
  min-width: 0;
  cursor: pointer;
  list-style: none;
}

#universitiesView .university-tuition-disclosure > summary::-webkit-details-marker,
#universitiesView .university-guide-more > summary::-webkit-details-marker {
  display: none;
}

#universitiesView .university-tuition-summary {
  display: block;
  line-height: 1.45;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
}

#universitiesView .university-tuition-action {
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
}

#universitiesView .university-tuition-action::after {
  content: " +";
}

#universitiesView .university-tuition-disclosure[open] .university-tuition-action::after {
  content: " −";
}

#universitiesView .university-tuition-more {
  display: grid;
  gap: 6px;
  margin-top: 7px;
  padding-top: 7px;
  border-top: 1px solid var(--line);
}

#universitiesView .university-tuition-more p {
  margin: 0;
  overflow-wrap: anywhere;
}

#universitiesView .university-language-disclosure > summary {
  display: grid;
  gap: 4px;
  min-width: 0;
  cursor: pointer;
  list-style: none;
}

#universitiesView .university-language-disclosure > summary::-webkit-details-marker {
  display: none;
}

#universitiesView .university-language-summary {
  display: -webkit-box;
  overflow: hidden;
  color: var(--text);
  font-weight: 650;
  line-height: 1.45;
  overflow-wrap: normal;
  word-break: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

#universitiesView .university-language-source,
#universitiesView .university-language-action {
  display: block;
  line-height: 1.35;
}

#universitiesView .university-language-action {
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
}

#universitiesView .university-language-action::after {
  content: " +";
}

#universitiesView .university-language-disclosure[open] .university-language-action::after {
  content: " −";
}

#universitiesView .university-language-full {
  margin-top: 6px;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--soft-panel, #f8fafc);
  color: var(--text);
  font-size: 12px;
  line-height: 1.65;
}

#universitiesView .university-language-full p {
  margin: 4px 0 0;
}

#universitiesView .university-language-summary-mobile {
  display: none;
}

#universitiesView .university-language-full-meta {
  color: var(--muted);
}

@media (min-width: 1181px) {
  #universitiesView .university-language-source {
    display: none;
  }
}

@media (max-width: 1180px) {
  #universitiesView .university-language-summary-desktop {
    display: none;
  }

  #universitiesView .university-language-summary-mobile {
    display: -webkit-box;
  }
}

#universitiesView .column-programs {
  width: 20%;
}

#universitiesView .column-requirements {
  width: 23%;
}

#universitiesView .column-admissionGuides {
  width: 9%;
}

#universitiesView .university-guide-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

#universitiesView .university-guide-button {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

#universitiesView .university-guide-more {
  width: 100%;
  min-width: 0;
}

#universitiesView .university-guide-more > summary {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  cursor: pointer;
  list-style: none;
  text-align: center;
}

#universitiesView .university-guide-more-list {
  display: grid;
  gap: 6px;
  margin-top: 6px;
}

@media (max-width: 768px) {
  body.mobile-ios-enabled #universitiesView .university-guide-button {
    min-height: 44px;
  }
}

#universitiesView .university-requirement-cell {
  gap: 5px;
}

#universitiesView .university-requirement-row {
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 6px;
}

#universitiesView .university-requirement-row span {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.program-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-start;
  max-width: 100%;
}

.program-jump-button,
.program-pill {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  max-width: 100%;
  min-height: 34px;
  padding: 6px 9px;
  border: 1px solid #d6e1ee;
  border-radius: 8px;
  background: #f8fbff;
  color: var(--text);
  font: inherit;
  line-height: 1.3;
  text-align: left;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.program-jump-button {
  cursor: pointer;
}

.program-jump-button:hover {
  border-color: var(--accent);
  color: var(--accent);
}

.program-jump-button.program-advantage {
  border-color: #8fd6b2;
  background: #f0fdf7;
  color: #0f5f3d;
}

.program-jump-button.program-advantage:hover {
  border-color: var(--success);
  color: var(--success);
}

.program-jump-button.program-advantage small {
  color: #3b755b;
}

.program-jump-button small {
  display: block;
  color: var(--muted);
  overflow-wrap: anywhere;
  word-break: break-word;
}

.program-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.program-jump-button em {
  display: inline-flex;
  padding: 1px 6px;
  border-radius: 999px;
  background: #eaf3ff;
  color: var(--accent);
  font-size: 11px;
  font-style: normal;
}

.program-jump-button em.program-stage-label {
  background: #eef4fb;
  color: #52657d;
}

.program-jump-button em.advantage-label {
  background: #dcfce7;
  color: var(--success);
}

.program-jump-button em.conditional-match-label,
.conditional-match-label {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 4px;
  padding: 2px 6px;
  border: 1px solid #e9c46a;
  border-radius: 4px;
  background: #fff8e6;
  color: #7a4b00;
  font-size: 11px;
  font-style: normal;
}

.conditional-match-label.is-compact {
  white-space: normal;
}

.program-jump-button em.manual-modification-label,
.manual-modification-label {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 4px;
  padding: 2px 6px;
  border: 1px solid #c95678;
  border-radius: 4px;
  background: #fff0f4;
  color: #861b3d;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}

.manual-modification-notice {
  display: grid;
  gap: 5px;
  margin: 10px 0;
  padding: 10px 12px;
  border: 1px solid #c95678;
  border-radius: 6px;
  background: #fff4f7;
  color: #68152f;
  text-align: left;
  overflow-wrap: anywhere;
}

.manual-modification-notice strong,
.manual-modification-notice span,
.manual-modification-notice small {
  display: block;
}

.manual-modification-notice.is-compact {
  gap: 3px;
  margin: 6px 0 0;
  padding: 7px 8px;
  font-size: 11px;
  line-height: 1.45;
}

.program-name-primary,
.quick-program-title-line {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
}

.program-intent-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  margin: 0 0 14px;
  padding: 10px 12px;
  border: 1px solid #cfd9e8;
  background: #f7f9fc;
  color: #243a57;
  font-size: 14px;
}

.program-intent-summary[hidden] { display: none; }
.program-intent-summary strong { color: #0b3568; }
.program-intent-summary small { color: #63738a; }

.program-intent-match {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin-top: 7px;
  min-width: 0;
}

.program-intent-badge,
.mi-library-intent-match > strong,
.miqm-intent-match > strong {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  border: 1px solid #a9c8ed;
  background: #edf5ff;
  color: #145ca8;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.program-intent-match.is-related .program-intent-badge,
.mi-library-intent-match.is-related > strong,
.miqm-intent-match.is-related > strong { border-color: #9bcfc0; background: #effaf6; color: #187458; }
.program-intent-match.is-cross .program-intent-badge,
.mi-library-intent-match.is-cross > strong,
.miqm-intent-match.is-cross > strong { border-color: #e3c27f; background: #fff8e8; color: #8a5a00; }

.program-intent-reason {
  color: #5f6f84;
  font-size: 13px;
  overflow-wrap: anywhere;
}

.program-intent-match.is-compact { margin: 5px 0 0; }

.program-name-secondary {
  display: block;
}

.manual-modification-toggle {
  display: inline-block;
  width: auto;
  margin-left: 2px;
  vertical-align: super;
}

.manual-modification-toggle > summary {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 1px solid #c95678;
  border-radius: 50%;
  background: #fff0f4;
  color: #861b3d;
  cursor: pointer;
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
  list-style: none;
}

.manual-modification-toggle > summary::-webkit-details-marker {
  display: none;
}

.manual-modification-toggle > summary:hover,
.manual-modification-toggle > summary:focus-visible,
.manual-modification-toggle[open] > summary {
  border-color: #861b3d;
  background: #ffe1ea;
  outline: none;
}

.manual-modification-toggle[open] {
  display: block;
  width: 100%;
  margin: 6px 0 0;
  vertical-align: initial;
}

.manual-modification-toggle .manual-modification-notice {
  width: 100%;
  margin: 6px 0 0;
}

.program-requirement-notice-toggle {
  justify-self: start;
  margin: 0;
  vertical-align: initial;
}

.program-requirement-notice-toggle > summary,
.program-requirement-inline-notice {
  display: inline-grid;
  place-items: center;
  width: 32px;
  min-width: 32px;
  height: 32px;
  margin-left: 6px;
  padding: 0;
  border: 1px solid #c95678;
  border-radius: 50%;
  background: #fff0f4;
  color: #861b3d;
  cursor: pointer;
  font: inherit;
  font-size: 17px;
  font-weight: 800;
  line-height: 1;
  vertical-align: middle;
}

.program-requirement-inline-notice:hover,
.program-requirement-inline-notice:focus-visible,
.program-requirement-inline-notice[aria-expanded="true"] {
  border-color: #861b3d;
  background: #ffe1ea;
  outline: 2px solid color-mix(in srgb, #c95678 28%, transparent);
  outline-offset: 2px;
}

@media (max-width: 720px) {
  .program-requirement-notice-toggle > summary,
  .program-requirement-inline-notice {
    width: 40px;
    min-width: 40px;
    height: 40px;
  }
}

.requirement-cell .program-notice-toggle-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  width: 100%;
  min-width: 0;
  margin-top: 6px;
}

.requirement-cell .program-notice-toggle-body .manual-modification-notice,
.requirement-cell .program-notice-toggle-body .conditional-transfer-disclosure-body,
.requirement-cell .program-notice-toggle-body .conditional-preserved-facts {
  grid-template-columns: minmax(0, 1fr);
}

.requirement-cell .program-notice-toggle-body span {
  white-space: normal;
}

.program-jump-button em.teaching-location-label,
.teaching-location-label {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  margin-top: 4px;
  padding: 2px 6px;
  border: 1px solid #8ca7a0;
  border-radius: 4px;
  background: #edf7f4;
  color: #24594e;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  white-space: normal;
  overflow-wrap: anywhere;
}

.teaching-location-detail {
  display: grid;
  grid-template-columns: minmax(92px, auto) minmax(0, 1fr);
  gap: 4px 10px;
  margin: 8px 0;
  padding: 8px 10px;
  border: 1px solid #b8d1ca;
  border-radius: 6px;
  background: #f4faf8;
  color: #214b42;
}

.teaching-location-detail small {
  grid-column: 2;
  overflow-wrap: anywhere;
}

.conditional-transfer-disclosure {
  margin: 10px 0;
  border: 1px solid #e1b04b;
  border-radius: 10px;
  background: #fff8e8;
  color: #653d00;
  text-align: left;
}

.conditional-transfer-disclosure > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 40px;
  padding: 10px 36px 10px 12px;
  cursor: pointer;
  list-style: none;
  position: relative;
}

.conditional-transfer-disclosure > summary::-webkit-details-marker {
  display: none;
}

.conditional-transfer-disclosure > summary::after {
  content: "▾";
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  line-height: 1;
  transition: transform 160ms ease;
}

.conditional-transfer-disclosure[open] > summary::after {
  transform: translateY(-50%) rotate(180deg);
}

.conditional-transfer-toggle-label {
  color: #7a5a22;
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
}

.conditional-transfer-disclosure[open] .conditional-transfer-toggle-label {
  font-size: 0;
}

.conditional-transfer-disclosure[open] .conditional-transfer-toggle-label::after {
  content: "点击收起";
  font-size: 11px;
}

.conditional-transfer-disclosure-body {
  display: grid;
  gap: 8px;
  padding: 0 12px 12px;
  border-top: 1px solid rgba(225, 176, 75, 0.45);
}

.conditional-transfer-disclosure-body > p,
.conditional-transfer-disclosure-body ol {
  margin: 0;
}

.conditional-transfer-disclosure-body > p {
  padding-top: 10px;
}

.conditional-transfer-disclosure-body ol {
  display: grid;
  gap: 8px;
  padding-left: 22px;
}

.conditional-transfer-disclosure li,
.conditional-preserved-facts {
  display: grid;
  gap: 3px;
}

.conditional-transfer-disclosure a {
  color: var(--accent-dark);
}

.conditional-transfer-disclosure.is-compact {
  margin: 6px 0 0;
  font-size: 11px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.conditional-transfer-disclosure.is-compact > summary {
  min-height: 34px;
  padding: 7px 32px 7px 8px;
}

.conditional-transfer-disclosure.is-compact > summary::after {
  right: 9px;
}

.conditional-transfer-disclosure.is-compact .conditional-transfer-disclosure-body {
  gap: 4px;
  padding: 0 8px 8px;
}

.program-jump-item {
  display: grid;
  gap: 0;
  position: relative;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.program-jump-item > .program-jump-button {
  width: 100%;
}

.program-jump-item.has-manual-modification > .program-jump-button {
  padding-right: 36px;
}

.program-jump-item > .manual-modification-toggle {
  position: absolute;
  top: 7px;
  right: 7px;
  margin: 0;
}

.program-jump-item > .manual-modification-toggle[open] {
  position: static;
  width: 100%;
  margin-top: 6px;
}

.matching-status-conditional {
  display: grid;
  gap: 4px;
  margin-bottom: 10px;
  padding: 10px 12px;
  border-left: 3px solid #c78412;
  background: #fff8e6;
  color: #633f00;
}

.program-pager {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  color: var(--muted);
  font-size: 12px;
}

.table-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 18px 4px;
  color: var(--muted);
  font-size: 13px;
}

.pagination-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pagination-summary {
  overflow-wrap: anywhere;
}

#casesView .table-pagination {
  padding-bottom: 12px;
}

@media (max-width: 900px) {
  .case-head-actions,
  .case-filter-band {
    align-items: stretch;
    flex-direction: column;
  }

  .case-head-actions .primary-button,
  .segmented-control,
  .segmented-control button {
    width: 100%;
  }

}

.ranking-source-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
}

.compact-button {
  height: 30px;
  min-width: 64px;
  padding: 0 10px;
  font-size: 13px;
}

.detail-page {
  min-width: 0;
  padding: 18px;
}

.program-detail-shell {
  display: grid;
  min-width: 0;
  gap: 16px;
  color: #17243a;
  font-size: 15px;
  line-height: 1.65;
}

.program-detail-hero {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  min-width: 0;
  padding: 4px 2px 16px;
  border-bottom: 1px solid #dfe6f0;
}

.program-detail-hero-logo {
  display: grid;
  width: 72px;
  height: 72px;
  place-items: center;
  overflow: hidden;
  border: 1px solid #dfe5ee;
  border-radius: 50%;
  background: #fff;
  color: #1b4f91;
  font-size: 26px;
  font-weight: 800;
}

.program-detail-hero-logo img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 8px;
  object-fit: contain;
}

.program-detail-hero-copy {
  min-width: 0;
}

.program-detail-university-name,
.program-detail-university-en,
.program-detail-program-aliases,
.program-detail-affiliation {
  margin: 0;
  overflow-wrap: anywhere;
}

.program-detail-university-name {
  color: #184f93;
  font-size: 18px;
  font-weight: 800;
}

.program-detail-university-en,
.program-detail-program-aliases,
.program-detail-affiliation {
  color: #59677b;
}

.program-detail-university-en {
  font-size: 14px;
}

.program-detail-hero h3 {
  margin: 7px 0 3px;
  font-size: 25px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.program-detail-status-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}

.program-detail-status-list span {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 3px 9px;
  border: 1px solid #cdd9ea;
  border-radius: 999px;
  background: #f5f8fc;
  color: #34445b;
  font-size: 13px;
  font-weight: 700;
}

.program-detail-status-list .is-matchable,
.program-detail-status-list .is-verified {
  border-color: #9ccdb2;
  background: #edf8f1;
  color: #247046;
}

.program-detail-status-list .is-conditional {
  border-color: #e0bd75;
  background: #fff8e6;
  color: #7a5100;
}

.program-detail-status-list .is-blocked {
  border-color: #e6adb3;
  background: #fff1f2;
  color: #a52b38;
}

.program-detail-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  overflow: hidden;
  border: 1px solid #cddceb;
  border-radius: 6px;
  background: #f8fbfe;
}

.program-detail-summary-item {
  min-width: 0;
  padding: 12px 14px;
  border-right: 1px solid #dfe7f0;
  border-bottom: 1px solid #dfe7f0;
}

.program-detail-summary-item:nth-child(3n) {
  border-right: 0;
}

.program-detail-summary-item:nth-last-child(-n + 3) {
  border-bottom: 0;
}

.program-detail-summary dt,
.program-detail-section dt {
  color: #5f6e82;
  font-size: 13px;
  font-weight: 750;
}

.program-detail-summary dd {
  margin: 0;
  min-width: 0;
  color: #192b43;
  font-size: 15px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.program-detail-summary dd small {
  display: block;
  margin-top: 2px;
  color: #68778c;
  font-size: 13px;
  font-weight: 500;
}

.program-detail-section {
  min-width: 0;
  padding: 16px 0 0;
  border-top: 1px solid #e2e8f0;
}

.program-detail-section > h3 {
  margin: 0 0 12px;
  color: #152a47;
  font-size: 20px;
  line-height: 1.4;
}

.program-detail-identity-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 28px;
}

.program-detail-identity-grid dl {
  display: grid;
  grid-template-columns: minmax(100px, 132px) minmax(0, 1fr);
  gap: 9px 12px;
  align-content: start;
  margin: 0;
  min-width: 0;
}

.program-detail-identity-grid dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.program-requirement-groups {
  display: grid;
  min-width: 0;
  gap: 14px;
}

.program-requirement-group {
  min-width: 0;
  padding: 14px 0 0;
  border-top: 1px solid #e3e9f1;
}

.program-requirement-group.is-primary {
  padding-top: 0;
  border-top: 0;
}

.program-requirement-group h4 {
  margin: 0 0 8px;
  color: #23558f;
  font-size: 17px;
  line-height: 1.45;
}

.detail-requirements .program-requirement-cell {
  width: auto;
  font-size: 15px;
}

.detail-requirements .program-requirement-cell > div,
.detail-requirements .guide-reference-row {
  grid-template-columns: minmax(124px, 164px) minmax(0, 1fr);
  align-items: start;
  min-width: 0;
  gap: 10px 14px;
}

.detail-requirements .program-requirement-cell > div > strong,
.detail-requirements .program-requirement-cell > div > span,
.detail-requirements .guide-reference-row > strong,
.detail-requirements .guide-reference-row > span {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.program-detail-sources .ghost-link,
.program-detail-sources a {
  overflow-wrap: anywhere;
  word-break: break-all;
}

.program-scholarship-compact {
  display: grid;
  gap: 3px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed #c9d9e8;
  color: #315b48;
  font-size: 13px;
  line-height: 1.45;
}

.program-scholarship-compact strong {
  color: #17653f;
}

.program-scholarship-compact-tiers {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.program-scholarship-compact-tiers li {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-items: baseline;
}

.program-scholarship-tier-name {
  color: #17653f;
  font-weight: 700;
}

.program-scholarship-tier-benefit {
  color: #243f33;
  white-space: nowrap;
}

.program-scholarship-more,
.program-scholarship-detail-more {
  min-width: 0;
}

.program-scholarship-more > summary,
.program-scholarship-detail-more > summary {
  width: fit-content;
  color: #17653f;
  cursor: pointer;
  font-weight: 700;
}

.program-scholarship-more[open] > summary,
.program-scholarship-detail-more[open] > summary {
  margin-bottom: 6px;
}

.mi-library-scholarship-summary {
  display: block;
  margin-top: 3px;
  color: #17653f;
}

.program-scholarship-detail {
  border-top-color: #bdddc9;
}

.program-scholarship-summary,
.program-scholarship-unpublished {
  margin: 0 0 10px;
  color: #264c3a;
  line-height: 1.65;
}

.program-scholarship-tiers {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.program-scholarship-detail-more {
  grid-column: 1 / -1;
  padding-top: 2px;
}

.program-scholarship-detail-more > .program-scholarship-tiers {
  margin-top: 10px;
}

.program-scholarship-tier {
  min-width: 0;
  padding: 12px;
  border: 1px solid #cfe4d6;
  border-radius: 8px;
  background: #f6fbf8;
}

.program-scholarship-tier h5 {
  margin: 0 0 8px;
  color: #17653f;
  font-size: 15px;
}

.program-scholarship-tier dl {
  display: grid;
  gap: 6px;
  margin: 0;
}

.program-scholarship-tier dl > div {
  display: grid;
  grid-template-columns: minmax(82px, 104px) minmax(0, 1fr);
  gap: 8px;
}

.program-scholarship-tier dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.program-scholarship-source {
  display: inline-flex;
  margin-top: 10px;
}

.program-detail-shell :focus-visible {
  outline: 3px solid rgba(20, 102, 216, 0.35);
  outline-offset: 2px;
}

.topik-model-detail {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #80cbbd;
  border-radius: 6px;
  background: #f5fbf9;
}

.topik-model-detail summary {
  display: grid;
  grid-template-columns: minmax(112px, auto) minmax(88px, auto) minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 44px;
  padding: 8px 12px;
  color: #174f47;
  cursor: pointer;
}

.topik-model-detail summary::marker {
  color: #167c6c;
}

.topik-model-detail summary strong {
  color: #086c5d;
  font-size: 14px;
}

.topik-model-compact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  min-width: 0;
  min-height: 44px;
  padding: 8px 12px;
  overflow: hidden;
  border: 1px solid #80cbbd;
  border-radius: 6px;
  background: #f5fbf9;
  color: #174f47;
}

.topik-model-compact strong {
  color: #086c5d;
  font-size: 14px;
  white-space: nowrap;
}

.topik-model-compact--program {
  margin-top: 10px;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  padding: 8px 10px;
}

.topik-model-compact--program .topik-model-stage {
  grid-column: auto;
  text-align: left;
}

.topik-model-compact--program .topik-model-label,
.topik-model-compact--program strong {
  white-space: nowrap;
}

.topik-model-compact--quick {
  margin: 10px 0 12px;
}

.suggested-admission-condition {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #b8d5ee;
  border-radius: 6px;
  background: #f5f9fd;
  color: #365572;
}

.suggested-admission-condition > span {
  color: #173d68;
  font-weight: 750;
}

.suggested-admission-condition strong {
  color: #0b5d9b;
  font-size: 14px;
  overflow-wrap: anywhere;
}

.suggested-admission-condition small {
  color: #6b7f93;
  line-height: 1.5;
}

.topik-model-label {
  color: var(--text);
  font-weight: 750;
  white-space: normal;
}

.topik-model-stage {
  color: var(--muted);
  font-size: 12px;
  text-align: right;
  white-space: normal;
}

.requirement-cell .topik-model-body {
  display: block;
  padding: 12px;
  border-top: 1px solid #b7ded6;
  background: #fff;
}

.topik-model-body p {
  margin: 0;
  white-space: normal;
}

.requirement-cell .topik-model-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 9px;
}

.requirement-cell .topik-model-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2px;
  min-width: 0;
  padding: 8px;
  border: 1px solid #d4e5e1;
  border-radius: 4px;
  background: #f7f9f9;
  text-align: center;
}

.topik-model-row span,
.topik-model-row strong {
  white-space: normal;
}

.topik-model-note {
  margin-top: 10px !important;
  color: var(--muted);
  font-size: 12px;
}

.detail-requirements .guide-reference-row {
  grid-template-columns: minmax(112px, 148px) minmax(0, 1fr);
  align-items: start;
}

.requirement-cell .guide-reference-list,
.requirement-cell .guide-reference-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
  white-space: normal;
}

.requirement-cell .guide-reference-list {
  row-gap: 10px;
}

.requirement-cell .guide-reference-item:not(:last-child)::after {
  width: 1px;
  height: 24px;
  margin-left: 2px;
  background: var(--line);
  content: "";
}

.requirement-cell .guide-reference-scope {
  color: var(--muted);
  font-weight: 650;
  white-space: nowrap;
}

.requirement-cell .guide-reference-item .ghost-link {
  height: 32px;
}

.chinese-guide-summary-link {
  border-color: #9ec5fe;
  color: #1459b8;
  font: inherit;
  white-space: nowrap;
}

.chinese-guide-summary {
  display: grid;
  gap: 18px;
}

.chinese-guide-summary-notice {
  display: grid;
  gap: 5px;
  padding: 14px 16px;
  border: 1px solid #b8d7ff;
  border-radius: 12px;
  background: #f3f8ff;
  color: #244365;
  line-height: 1.6;
}

.chinese-guide-summary-notice strong {
  color: #124e9e;
}

.chinese-guide-summary-identity {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 16px;
  margin: 0;
}

.chinese-guide-summary-identity > div {
  display: grid;
  grid-template-columns: minmax(88px, 112px) minmax(0, 1fr);
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #f8fafc;
}

.chinese-guide-summary-identity dt {
  color: var(--muted);
  font-weight: 650;
}

.chinese-guide-summary-identity dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.chinese-guide-summary-section h3 {
  margin: 0 0 10px;
  font-size: 18px;
}

.chinese-guide-summary-rows {
  display: grid;
  gap: 10px;
}

.chinese-guide-summary-row {
  display: grid;
  grid-template-columns: minmax(112px, 148px) minmax(0, 1fr);
  gap: 4px 14px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  line-height: 1.65;
}

.chinese-guide-summary-row > span {
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: pre-line;
}

.chinese-guide-summary-row small {
  grid-column: 2;
  color: var(--muted);
}

.chinese-guide-summary-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  color: var(--muted);
}

.chinese-guide-full-translation {
  max-width: 100%;
  margin: 0;
  padding: 16px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fbfcfe;
  color: var(--text);
  font: inherit;
  line-height: 1.7;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border: 1px solid #cfe0f7;
  border-radius: 999px;
  background: #f2f7ff;
  color: #1757a8;
  font-size: 12px;
}

.tone-S {
  border-color: #ffd0d0;
  background: #fff1f1;
  color: var(--danger);
}

.tone-A {
  border-color: #f7dfac;
  background: #fff8e9;
  color: var(--warning);
}

.center-cell {
  text-align: center;
}

.muted-cell {
  color: var(--muted);
}

dialog {
  width: min(1180px, calc(100% - 32px));
  max-height: min(86vh, 820px);
  border: 0;
  border-radius: 8px;
  padding: 0;
  box-shadow: 0 28px 80px rgba(15, 28, 50, 0.25);
}

dialog::backdrop {
  background: rgba(15, 23, 42, 0.42);
}

.dialog-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px;
  border-bottom: 1px solid var(--line);
}

.dialog-subtitle {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  max-height: calc(86vh - 170px);
  overflow-y: auto;
  padding: 18px;
}

.wizard-shell {
  display: grid;
  gap: 16px;
  max-height: calc(86vh - 170px);
  overflow-y: auto;
  padding: 18px;
}

.wizard-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.wizard-steps li {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--muted);
}

.wizard-steps span {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #eef3fb;
  color: var(--muted);
  font-weight: 800;
}

.wizard-steps strong {
  min-width: 0;
  overflow: hidden;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wizard-steps li.active {
  border-color: #9fc2f4;
  background: #f3f8ff;
  color: var(--accent);
}

.wizard-steps li.active span,
.wizard-steps li.done span {
  background: var(--accent);
  color: #fff;
}

.wizard-panel {
  display: none;
  gap: 14px;
}

.wizard-panel.active {
  display: grid;
}

.wizard-panel-head {
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid var(--soft-line);
  border-radius: 8px;
  background: #fbfcfe;
}

.wizard-panel-head h3 {
  margin: 0;
  font-size: 16px;
}

.wizard-panel-head p {
  color: var(--muted);
  font-size: 13px;
}

.wizard-panel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.config-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  padding: 18px;
}

.help-text {
  color: var(--muted);
  font-size: 12px;
}

.field-help {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.config-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
}

.topik-config-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.topik-config-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(190px, 260px) minmax(260px, 1fr);
  align-items: end;
  gap: 14px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.topik-config-summary {
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  text-align: right;
}

.topik-config-algorithm {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 24px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  background: #f7f9fc;
}

.topik-config-algorithm p {
  margin: 0;
  color: #334058;
  font-size: 13px;
  line-height: 1.65;
}

.topik-config-algorithm strong {
  display: block;
  margin-bottom: 2px;
  color: var(--text);
}

.topik-config-groups {
  min-height: 180px;
}

.topik-config-model-group {
  border-bottom: 1px solid var(--line);
}

.topik-config-model-group:last-child {
  border-bottom: 0;
}

.topik-config-model-group > summary {
  display: grid;
  grid-template-columns: 18px minmax(170px, auto) minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: 52px;
  padding: 10px 18px;
  cursor: pointer;
  list-style: none;
  background: #fbfcfe;
}

.topik-config-model-group > summary::-webkit-details-marker {
  display: none;
}

.topik-config-model-group > summary::before {
  content: "▶";
  grid-column: 1;
  grid-row: 1;
  color: var(--muted);
  font-size: 11px;
}

.topik-config-model-group[open] > summary::before {
  content: "▼";
}

.topik-config-model-title {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  font-weight: 700;
  color: var(--text);
}

.topik-config-model-note {
  color: #08735e;
  font-size: 11px;
  font-weight: 600;
}

.topik-config-model-description {
  grid-column: 3;
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.topik-config-model-count {
  grid-column: 4;
  color: var(--accent-dark);
  font-size: 12px;
  white-space: nowrap;
}

.topik-config-model-settings {
  padding: 14px 18px 16px;
  border-top: 1px solid var(--line);
  background: #f7fafc;
}

.topik-config-model-settings.is-dirty {
  background: #fffaf0;
}

.topik-config-model-settings-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.topik-config-model-settings-head strong,
.topik-config-model-settings-head span {
  display: block;
}

.topik-config-model-settings-head span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.topik-config-model-settings-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr)) repeat(2, minmax(145px, 1fr)) auto;
  align-items: end;
  gap: 10px;
}

.topik-config-model-settings-grid label {
  font-size: 12px;
}

.topik-config-model-settings-grid label > span {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.topik-config-model-note-field {
  grid-column: 1 / -1;
}

.topik-config-model-note-input {
  width: 100%;
  height: 34px;
  padding: 0 8px;
  border-color: #9bb4d3;
  color: #075f50;
}

.topik-config-model-range-input,
.topik-config-model-number-input,
.topik-config-model-floor-select {
  width: 100%;
  height: 34px;
  padding: 0 8px;
  border-color: #9bb4d3;
  color: #075f50;
  font-weight: 700;
}

.topik-config-model-reset-button {
  min-width: 116px;
  padding-inline: 10px;
}

.topik-config-probability-settings {
  margin-top: 12px;
  border-top: 1px dashed #cbd5e1;
}

.topik-config-probability-settings > summary {
  padding-top: 12px;
  color: #1559a6;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.topik-config-probability-settings > p {
  margin: 7px 0 10px;
  color: var(--muted);
  font-size: 11px;
}

.topik-config-probability-stages {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.topik-config-probability-stage {
  min-width: 0;
}

.topik-config-probability-stage > strong {
  display: block;
  margin-bottom: 7px;
  font-size: 12px;
}

.topik-config-probability-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(72px, 1fr));
  gap: 7px;
}

.topik-config-probability-grid label {
  font-size: 10px;
}

.topik-config-model-probability-input {
  width: 100%;
  height: 32px;
  padding: 0 7px;
  color: #075f50;
  font-size: 11px;
  font-weight: 700;
}

.topik-config-table-wrap {
  width: 100%;
  overflow-x: auto;
}

.topik-config-table {
  width: 100%;
  min-width: 1180px;
  border-collapse: collapse;
  table-layout: fixed;
}

.topik-config-table th,
.topik-config-table td {
  padding: 12px 14px;
  border-top: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
}

.topik-config-table th {
  color: var(--muted);
  background: #fff;
  font-size: 12px;
  font-weight: 600;
}

.topik-config-table th:first-child,
.topik-config-table td:first-child {
  width: 230px;
}

.topik-config-table th:last-child,
.topik-config-table td:last-child {
  width: 112px;
}

.topik-config-school-name {
  display: block;
  color: var(--text);
  font-size: 14px;
  line-height: 1.5;
}

.topik-config-school-en {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
}

.topik-config-school-model-label {
  margin-top: 9px;
  color: var(--muted);
  font-size: 10px;
}

.topik-config-school-model-select {
  width: 100%;
  min-width: 0;
  height: 32px;
  padding: 0 7px;
  color: #24324a;
  font-size: 11px;
}

.topik-config-original-model {
  display: block;
  margin-top: 5px;
  color: #9a5a00;
  font-size: 10px;
}

.topik-config-manual-badge {
  display: inline-block;
  margin-top: 7px;
  padding: 2px 6px;
  border: 1px solid #8fcfc1;
  border-radius: 4px;
  background: #f0fbf8;
  color: #08735e;
  font-size: 11px;
}

.topik-config-stage-cell {
  display: grid;
  gap: 8px;
}

.topik-config-range-input {
  width: 92px;
  height: 34px;
  padding: 0 9px;
  border-color: #9bb4d3;
  font-weight: 700;
  color: #075f50;
}

.topik-config-range-input[aria-invalid="true"] {
  border-color: #d33c45;
  background: #fff5f5;
  color: #a20f1b;
}

.topik-config-model-range {
  color: var(--muted);
  font-size: 11px;
}

.topik-config-stage-reference {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-items: center;
}

.topik-config-official-range {
  color: #08735e;
  font-size: 11px;
  font-weight: 700;
}

.topik-config-guide-list {
  display: grid;
  gap: 5px;
}

.topik-config-guide-link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 6px;
  min-width: 0;
  color: #1559a6;
  font-size: 11px;
  line-height: 1.35;
  text-decoration: none;
}

.topik-config-guide-link:hover {
  text-decoration: underline;
}

.topik-config-guide-language {
  min-width: 30px;
  color: #08735e;
  font-weight: 700;
}

.topik-config-guide-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.topik-config-no-guide {
  color: var(--muted);
  font-size: 11px;
}

.topik-config-row.is-dirty {
  background: #fffaf0;
}

.topik-config-row.is-invalid {
  background: #fff6f6;
}

.topik-config-reset-button {
  width: 100%;
  min-width: 0;
  padding: 0 8px;
}

label {
  display: grid;
  gap: 6px;
  color: #334058;
  font-size: 13px;
}

.full-row {
  grid-column: 1 / -1;
}

.form-error {
  min-height: 20px;
  padding: 0 18px;
  color: var(--danger);
  font-size: 13px;
}

.dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 14px 18px 18px;
}

.match-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  gap: 18px;
  padding: 18px;
}

.recommendation-list {
  display: grid;
  gap: 12px;
  min-height: 420px;
}

.recommendation {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.quick-match-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(160px, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.quick-match-grid label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-weight: 700;
}

.quick-match-grid label[hidden] {
  display: none;
}

.quick-checkbox-control {
  display: flex;
  align-items: center;
  min-height: 42px;
  gap: 9px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  font-weight: 600;
}

.quick-checkbox-control input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--primary);
}

.quick-selected-programs-field .quick-checkbox-control {
  justify-content: flex-start;
  width: 100%;
  height: 42px;
  min-height: 42px;
  box-sizing: border-box;
  padding-block: 0;
  cursor: pointer;
}

.quick-selected-programs-field .quick-checkbox-control:has(input:checked) {
  border-color: var(--primary);
  background: #eef6ff;
  color: var(--primary);
}

.quick-selected-programs-field .quick-checkbox-control:has(input:disabled) {
  cursor: default;
  opacity: 0.58;
}

.quick-selected-programs-field .quick-checkbox-control small {
  display: inline-grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  margin-left: auto;
  padding: 0 7px;
  border-radius: 999px;
  background: #e4edf8;
  color: currentColor;
  font-size: 12px;
  font-style: normal;
}

.quick-match-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}

.quick-match-results {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.quick-school-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbff;
}

.quick-school-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.quick-school-head strong {
  display: block;
}

.quick-school-head span {
  color: var(--muted);
  font-size: 13px;
}

.quick-school-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.quick-school-search {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: min(280px, 100%);
  padding: 0 12px;
  border: 1px solid #ccd8e7;
  background: #fff;
}

.quick-school-search input {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
}

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

.quick-school-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  min-width: 0;
  border: 1px solid #d9e2ee;
  background: #fff;
}

.quick-school-option.is-selected {
  border-color: #79a9e8;
  background: #f7faff;
}

.quick-school-option .quick-school-chip {
  border: 0;
  border-radius: 0;
}

.quick-school-program-toggle {
  min-width: 112px;
  padding: 8px 12px;
  border: 0;
  border-left: 1px solid #d9e2ee;
  background: transparent;
  color: #145fb8;
  font-weight: 700;
}

.quick-school-program-toggle:disabled {
  color: #8b98a9;
  cursor: default;
}

.quick-school-programs {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  max-height: 260px;
  overflow-y: auto;
  padding: 10px;
  border-top: 1px solid #d9e2ee;
}

.quick-school-programs[hidden] { display: none; }

.quick-school-program {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 8px;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid #dce4ef;
  background: #fff;
  color: #243b5a;
  text-align: left;
}

.quick-school-program span,
.quick-school-program small { min-width: 0; overflow-wrap: anywhere; }
.quick-school-program small { color: #718096; font-size: 13px; }
.quick-school-program i { grid-column: 2; grid-row: 1 / 3; align-self: center; opacity: 0; }
.quick-school-program.is-selected { border-color: #1670d2; background: #eef6ff; color: #0759ad; }
.quick-school-program.is-selected i { opacity: 1; }
.quick-school-programs-empty { grid-column: 1 / -1; color: #718096; }

.quick-tier-accordion {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.quick-tier-explanation {
  margin: 0;
  color: #63738a;
  font-size: 14px;
}

.quick-tier-group {
  min-width: 0;
  border: 1px solid #d7e0ec;
  border-left: 4px solid #1466d8;
  background: #fff;
}

.quick-tier-group.is-reach { border-left-color: #e24a4a; }
.quick-tier-group.is-safe { border-left-color: #2f9c58; }

.quick-tier-toggle {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 18px;
  width: 100%;
  min-height: 62px;
  padding: 10px 16px;
  border: 0;
  background: transparent;
  color: #17365d;
  text-align: left;
}

.quick-tier-toggle:hover,
.quick-tier-toggle:focus-visible { background: #f5f8fc; }

.quick-tier-title,
.quick-tier-count { display: flex; align-items: center; gap: 8px; min-width: 0; }
.quick-tier-title i { font-size: 22px; }
.quick-tier-title strong { font-size: 19px; }
.quick-tier-title small,
.quick-tier-count small { color: #6d7f96; }
.quick-tier-count { flex-direction: column; align-items: flex-end; gap: 0; }
.quick-tier-indicator { min-width: 42px; color: #526881; font-weight: 700; }
.quick-tier-body { min-width: 0; padding: 0 12px 12px; border-top: 1px solid #e2e8f0; }
.quick-tier-body[hidden] { display: none; }

.quick-school-chip {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
  min-height: 100px;
  padding: 14px 15px;
  border: 1px solid #bad3f7;
  border-radius: 12px;
  background: #fff;
  color: var(--text);
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease, background-color 160ms ease;
}

.quick-school-chip:hover {
  border-color: var(--primary);
  box-shadow: 0 4px 12px rgba(29, 111, 216, 0.12);
  transform: translateY(-1px);
}

.quick-school-logo {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  overflow: hidden;
  border: 1px solid #d9e4f2;
  border-radius: 12px;
  background: #fff;
}

.quick-school-logo img {
  width: 42px;
  height: 42px;
  object-fit: contain;
}

.quick-school-logo--fallback {
  background: #edf4fd;
  color: var(--primary);
  font-size: 25px;
}

.quick-school-copy {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.quick-school-name {
  color: #102c52;
  font-size: 17px;
  font-weight: 750;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.quick-school-campus {
  width: fit-content;
  max-width: 100%;
  color: #285b96;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.quick-school-copy small {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.quick-school-selected-mark {
  align-self: start;
  color: #a7b8cd;
  font-size: 19px;
  line-height: 1;
}

.quick-school-chip.is-selected {
  border-color: var(--primary);
  background: #eaf3ff;
  box-shadow: inset 0 0 0 1px var(--primary);
}

.quick-school-chip.is-selected .quick-school-selected-mark {
  color: var(--primary);
}

.quick-school-chip.is-confirmed:not(.is-selected) {
  opacity: 0.55;
}

.quick-school-chip:disabled {
  cursor: default;
}

@media (max-width: 1080px) {
  .quick-school-chips {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .quick-school-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .quick-school-actions {
    justify-content: flex-start;
  }

  .quick-school-chips {
    grid-template-columns: minmax(0, 1fr);
  }
}

.quick-match-card {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.quick-result-school-search {
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid #d8e4f2;
  border-radius: 8px;
  background: #f8fbff;
}

.quick-result-school-search__row {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.quick-result-school-search__row > label {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid #c9d9ec;
  border-radius: 8px;
  background: #fff;
  color: #5d718b;
}

.quick-result-school-search__row input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
}

.quick-result-school-search__row > span,
.quick-result-school-search__active {
  color: #5c708a;
  font-size: 13px;
}

.quick-result-school-search__suggestions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
}

.quick-result-school-search__suggestions > button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 18px;
  align-items: center;
  gap: 8px;
  min-width: 0;
  min-height: 50px;
  padding: 9px 11px;
  border: 1px solid #d5e1ef;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.quick-result-school-search__suggestions > button:hover,
.quick-result-school-search__suggestions > button:focus-visible {
  border-color: #8fb7e8;
  background: #eef6ff;
}

.quick-result-school-search__suggestions span,
.quick-result-school-search__suggestions strong,
.quick-result-school-search__suggestions small,
.quick-result-school-search__suggestions em {
  min-width: 0;
  overflow-wrap: anywhere;
}

.quick-result-school-search__suggestions span {
  display: grid;
  gap: 2px;
}

.quick-result-school-search__suggestions small,
.quick-result-school-search__suggestions em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.quick-result-school-search__suggestions > p {
  grid-column: 1 / -1;
  margin: 0;
  padding: 12px;
  color: var(--muted);
  text-align: center;
}

.quick-result-school-search__active {
  margin: 0;
  padding: 7px 10px;
  border-radius: 6px;
  background: #eaf4ff;
  color: #285d99;
}

.quick-match-school-result-group {
  display: grid;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.quick-match-school-result-toggle {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px 14px;
  width: 100%;
  min-width: 0;
  padding: 12px 14px;
  border: 0;
  background: #f8fbff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.quick-match-school-result-toggle:hover,
.quick-match-school-result-toggle:focus-visible {
  background: #eef6ff;
}

.quick-match-school-result-title {
  min-width: 0;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.quick-match-school-result-summary,
.quick-match-school-result-indicator {
  color: var(--muted);
  font-size: 13px;
  white-space: nowrap;
}

.quick-match-school-result-body {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 12px;
}

.quick-match-school-result-body[hidden] {
  display: none;
}

.quick-match-school-result-actions,
.quick-match-card-filter-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.quick-match-school-result-actions {
  padding: 8px 10px;
  border: 1px solid #dce7f4;
  border-radius: 8px;
  background: #f8fbff;
  color: #61758d;
  font-size: 13px;
}

.quick-match-card-filter-action {
  justify-content: flex-end;
  margin-top: 10px;
}

.quick-match-card-filter-action button,
.quick-match-school-result-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.quick-match-card-filter-action button[aria-pressed="true"] {
  border-color: #16734a;
  background: #eaf8f1;
  color: #12633f;
}

.quick-match-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
  color: var(--muted);
  font-size: 13px;
}

.quick-match-meta span,
.quick-match-meta a {
  padding: 5px 8px;
  border: 1px solid #dbe5f2;
  border-radius: 8px;
  background: #f8fbff;
}

.quick-match-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
}

.recommendation-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 10px;
}

.quick-program-jump {
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.quick-program-jump:hover,
.quick-program-jump:focus-visible {
  color: var(--primary);
  text-decoration: underline;
}

.quick-program-title-line {
  align-items: center;
}

.quick-program-title-line .manual-modification-toggle[open] {
  flex-basis: 100%;
}

.recommendation-head p,
.academic-fit,
.reason-text,
.risk-text {
  margin-top: 6px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.academic-fit {
  padding: 8px 10px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #1e3a8a;
}

.academic-fit-strong,
.academic-fit-pass {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #166534;
}

.academic-fit-borderline,
.academic-fit-needs_review {
  border-color: #fde68a;
  background: #fffbeb;
  color: #92400e;
}

.academic-fit-below {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.risk-text {
  color: #8a3d1a;
}

.score-box {
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  border: 1px solid #cfe0f7;
  border-radius: 8px;
  background: #f2f7ff;
  color: #1757a8;
}

.score-box span {
  font-size: 24px;
  font-weight: 750;
  line-height: 1;
}

.score-box small {
  font-size: 12px;
}

.score-box.is-admission-probability span {
  font-size: 14px;
  letter-spacing: -0.35px;
  white-space: nowrap;
}

.score-box.is-admission-probability small {
  margin-top: 2px;
  font-size: 10px;
  white-space: nowrap;
}

.score-box.is-admission-probability {
  --probability-color: #2f78c8;
  --probability-background: #f5f9ff;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 6px;
  padding: 7px;
  border-color: var(--probability-color);
  background: var(--probability-background);
  color: var(--probability-color);
  text-align: center;
}

.score-box.is-probability-low {
  --probability-color: #d64b4b;
  --probability-background: #fff8f8;
}

.score-box.is-probability-medium {
  --probability-color: #2f78c8;
  --probability-background: #f5f9ff;
}

.score-box.is-probability-high {
  --probability-color: #238b63;
  --probability-background: #f4fbf8;
}

.score-box.is-probability-unavailable {
  --probability-color: #8291a5;
  --probability-background: #f8fafc;
}

.case-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.case-strip span {
  padding: 5px 8px;
  border-radius: 6px;
  background: #f3f5f8;
  color: var(--muted);
  font-size: 12px;
}

.plan-builder {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfe;
}

.selected-items {
  display: grid;
  gap: 10px;
}

.selected-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 78px 36px;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.selected-item div {
  display: grid;
  gap: 4px;
}

.selected-item strong {
  font-size: 13px;
}

.selected-item span {
  color: var(--muted);
  font-size: 12px;
}

.selected-item textarea {
  grid-column: 1 / 3;
}

.empty-block,
.empty-inline {
  display: grid;
  place-items: center;
  min-height: 120px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  background: #fbfcfe;
  font-size: 14px;
}

.empty-inline {
  min-height: 64px;
}

.program-requirement-preview {
  margin-top: 8px;
  max-width: 360px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
  white-space: normal;
}

.compact-preview {
  display: grid;
  gap: 8px;
  max-width: 420px;
}

.compact-preview ul {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 18px;
}

.compact-preview li,
.compact-preview span {
  color: inherit;
}

.supervisor-intro-cell {
  max-width: 460px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.supervisor-output-cell {
  max-width: 480px;
  color: var(--text);
  font-size: 13px;
  line-height: 1.55;
}

.content-dialog {
  width: min(980px, calc(100% - 32px));
}

.content-dialog-body {
  display: grid;
  gap: 16px;
  max-height: calc(86vh - 86px);
  overflow-y: auto;
  padding: 18px;
}

.content-section {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfe;
}

.content-section h3 {
  margin: 0;
  font-size: 16px;
}

.content-section p {
  margin: 0;
  color: var(--text);
  line-height: 1.7;
}

.content-section ol {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 22px;
}

.content-section li {
  line-height: 1.55;
}

.content-source {
  margin: 0;
}

.compact-program-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  width: 100%;
  min-width: 0;
  max-height: 116px;
  overflow: hidden;
}

.compact-program-list.has-conditional-matches {
  grid-template-columns: minmax(0, 1fr);
  max-height: none;
}

.compact-program-list:has(.manual-modification-toggle[open]) {
  grid-template-columns: minmax(0, 1fr);
  max-height: none;
}

.compact-program-button {
  width: 100%;
  min-width: 0;
  max-width: none;
  min-height: 0;
  padding: 5px 8px;
  overflow: hidden;
}

.compact-program-button span,
.compact-program-button small {
  width: 100%;
  max-width: 100%;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.compact-program-button .program-card-meta,
.compact-program-button .advantage-label {
  display: none;
}

.program-source-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  max-height: 96px;
  overflow: hidden;
}

.program-source-chip {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 6px 8px;
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text);
  background: #f8fbff;
  text-decoration: none;
}

.program-source-chip span,
.program-source-chip small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.program-source-chip small {
  color: var(--muted);
  font-size: 11px;
}

.program-modal-summary {
  color: var(--muted);
  font-size: 13px;
}

.program-modal-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

/* The university library keeps every field visible without forcing page-level horizontal scrolling. */
#universitiesView,
#universitiesView .panel,
#universitiesView .section-head,
#universitiesView .filter-bar,
#universitiesView .table-wrap,
#universitiesView table,
#universitiesView thead,
#universitiesView tbody,
#universitiesView tr,
#universitiesView th,
#universitiesView td {
  min-width: 0;
}

#universitiesView .section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 14px 18px;
}

#universitiesView .section-head > div:first-child {
  min-width: 0;
}

#universitiesView .section-head > .filter-bar {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(5, minmax(130px, 1fr)) repeat(3, auto);
  align-items: end;
  width: 100%;
  max-width: none;
  min-width: 0;
}

#universitiesView .section-head > .more-filters-panel {
  grid-template-columns: repeat(3, minmax(170px, 1fr));
}

#universitiesView .section-head > .more-filters-panel[hidden] {
  display: none;
}

#universitiesView .filter-bar label,
#universitiesView .filter-bar input,
#universitiesView .filter-bar select,
#universitiesView .filter-bar button {
  min-width: 0;
}

#universitiesView .filter-bar label {
  width: 100%;
}

#universitiesView th,
#universitiesView td {
  width: auto;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

#universitiesView td {
  font-size: 17px;
}

#universitiesView th,
#universitiesView .requirement-cell,
#universitiesView .subtext {
  font-size: 15px;
}

#universitiesView .column-school {
  width: 15%;
}

#universitiesView .column-location {
  width: 12%;
}

#universitiesView .column-cost,
#universitiesView .column-semesterTuition {
  width: 12%;
}

#universitiesView .column-koreaLanguage,
#universitiesView .column-usTests,
#universitiesView .column-australiaPathway,
#universitiesView .column-usNewsRank,
#universitiesView .column-qsRank,
#universitiesView .column-strengths {
  width: 13%;
}

#universitiesView .column-programs {
  width: 22%;
}

#universitiesView .column-requirements {
  width: 24%;
}

#universitiesView .column-admissionGuides {
  width: 11%;
}

#universitiesView .location-header,
#universitiesView .city-header-filter {
  min-width: 0;
  flex-wrap: wrap;
  white-space: normal;
}

#universitiesView .city-header-filter select {
  width: min(100%, 112px);
  min-width: 0;
}

@media (max-width: 1180px) {
  #universitiesView .section-head > .filter-bar,
  #universitiesView .section-head > .more-filters-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #universitiesView .filter-bar button {
    width: 100%;
    min-height: 40px;
  }

  #universitiesView .table-wrap,
  #universitiesView table,
  #universitiesView tbody {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: visible;
  }

  #universitiesView thead {
    display: none;
  }

  #universitiesView tbody {
    padding: 12px;
  }

  #universitiesView tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    min-width: 0;
    overflow: visible;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
  }

  #universitiesView tbody tr + tr {
    margin-top: 12px;
  }

  #universitiesView tbody td,
  #universitiesView tbody td:first-child,
  #universitiesView tbody td:last-child {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
    padding: 38px 14px 14px;
    border-right: 0;
    border-bottom: 1px solid var(--soft-line);
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  #universitiesView tbody td[class*="column-"] {
    width: 100%;
    max-width: 100%;
  }

  #universitiesView tbody td::before {
    position: absolute;
    top: 10px;
    left: 14px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.35;
  }

  #universitiesView tbody .column-school::before { content: "学校"; }
  #universitiesView tbody .column-location::before { content: "国家/城市"; }
  #universitiesView tbody .column-cost::before,
  #universitiesView tbody .column-semesterTuition::before { content: "学费/年费用"; }
  #universitiesView tbody .column-koreaLanguage::before { content: "语言/TOPIK"; }
  #universitiesView tbody .column-usNewsRank::before { content: "US News"; }
  #universitiesView tbody .column-qsRank::before { content: "QS 世界排名"; }
  #universitiesView tbody .column-usTests::before { content: "标化/语言"; }
  #universitiesView tbody .column-australiaPathway::before { content: "澳洲路径"; }
  #universitiesView tbody .column-strengths::before { content: "优势专业关键词"; }
  #universitiesView tbody .column-programs::before { content: "专业"; }
  #universitiesView tbody .column-requirements::before { content: "申请要求"; }
  #universitiesView tbody .column-admissionGuides::before { content: "招生简章"; }

  #universitiesView tbody .column-programs,
  #universitiesView tbody .column-requirements,
  #universitiesView tbody td[colspan] {
    grid-column: 1 / -1;
  }

  #universitiesView tbody td[colspan] {
    min-height: 80px;
    padding-top: 28px;
    text-align: center;
  }

  #universitiesView tbody td[colspan]::before {
    content: none;
  }

  #universitiesView tbody td button,
  #universitiesView tbody td .ghost-link,
  #universitiesView tbody td .primary-button {
    min-height: 40px;
  }

  #universitiesView .table-pagination {
    flex-wrap: wrap;
  }
}

@media (max-width: 720px) {
  .quick-school-head { display: grid; grid-template-columns: minmax(0, 1fr); }
  .quick-school-search,
  .quick-school-actions { width: 100%; }
  .quick-school-option { grid-template-columns: minmax(0, 1fr); }
  .quick-school-program-toggle { border-left: 0; border-top: 1px solid #d9e2ee; }
  .quick-school-programs { grid-template-columns: minmax(0, 1fr); }
  .quick-tier-toggle { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  .quick-tier-title { flex-wrap: wrap; }
  .quick-tier-title small { width: 100%; padding-left: 30px; }
  .quick-tier-count { align-items: flex-end; }
  .quick-tier-indicator { grid-column: 2; min-width: 36px; }

  #universitiesView .section-head {
    grid-template-columns: minmax(0, 1fr);
  }

  #universitiesView .section-head > .filter-bar,
  #universitiesView .section-head > .more-filters-panel {
    grid-column: 1;
    width: 100%;
  }

  #universitiesView .section-head > .filter-bar,
  #universitiesView .section-head > .more-filters-panel {
    grid-template-columns: minmax(0, 1fr);
  }

  #universitiesView tbody {
    padding: 10px;
  }

  #universitiesView tbody tr {
    grid-template-columns: minmax(0, 1fr);
  }

  #universitiesView tbody .column-programs,
  #universitiesView tbody .column-requirements,
  #universitiesView tbody td[colspan] {
    grid-column: 1;
  }
}

.modal-program-button {
  width: 100%;
  justify-content: start;
  text-align: left;
}

.toast {
  position: fixed;
  z-index: 200;
  right: 24px;
  bottom: 24px;
  transform: translateY(18px);
  opacity: 0;
  pointer-events: none;
  min-width: 180px;
  padding: 12px 14px;
  border-radius: 8px;
  background: #102040;
  color: #fff;
  box-shadow: var(--shadow);
  transition: 0.2s ease;
}

.toast.visible {
  transform: translateY(0);
  opacity: 1;
}

@media (max-width: 768px) {
  body.mobile-ios-enabled .toast {
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50vw;
    width: max-content;
    max-width: calc(100vw - 48px);
    min-width: 220px;
    box-sizing: border-box;
    text-align: center;
    transform: translate(-50%, calc(-50% + 18px));
  }

  body.mobile-ios-enabled .toast.visible {
    transform: translate(-50%, -50%);
  }
}

@media (max-width: 980px) {
  .topbar,
  .section-head {
    align-items: stretch;
    flex-direction: column;
  }

  .metric-grid,
  .split-panel,
  .match-layout,
  .quick-match-grid,
  .form-grid,
  .wizard-steps,
  .wizard-panel-grid,
  .requirement-score-grid,
  .config-grid {
    grid-template-columns: 1fr;
  }

  .topik-config-toolbar,
  .topik-config-algorithm {
    grid-template-columns: 1fr;
  }

  .topik-config-model-settings-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .topik-config-probability-stages {
    grid-template-columns: 1fr;
  }

  .topik-config-summary {
    justify-content: flex-start;
    text-align: left;
  }

  .topik-config-model-group > summary {
    grid-template-columns: 18px minmax(0, 1fr) auto;
  }

  .topik-config-model-description {
    grid-column: 2 / -1;
  }

  .topik-config-model-title {
    grid-column: 2;
  }

  .topik-config-model-count {
    grid-column: 3;
  }

  .filter-bar {
    align-items: stretch;
    flex-direction: column;
    max-width: none;
  }

  .plan-builder {
    order: -1;
  }
}

@media (max-width: 640px) {
  .topik-config-model-settings {
    padding: 12px;
  }

  .topik-config-model-settings-head {
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
  }

  .topik-config-model-settings-grid,
  .topik-config-probability-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .topik-config-model-range-input,
  .topik-config-model-number-input,
  .topik-config-model-floor-select,
  .topik-config-model-probability-input,
  .topik-config-model-note-input,
  .topik-config-school-model-select,
  .topik-config-range-input,
  .topik-config-model-reset-button,
  .topik-config-reset-button {
    min-height: 44px;
  }

  .topik-config-model-reset-button {
    width: 100%;
  }

  .topik-config-table-wrap,
  .topik-config-table,
  .topik-config-table tbody {
    display: block;
    width: 100%;
    min-width: 0;
    overflow: visible;
  }

  .topik-config-table thead {
    display: none;
  }

  .topik-config-table tbody {
    display: grid;
    gap: 10px;
    padding: 10px;
  }

  .topik-config-table tbody tr {
    display: block;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
  }

  .topik-config-table tbody td,
  .topik-config-table tbody td:first-child,
  .topik-config-table tbody td:last-child {
    position: relative;
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: 12px 12px 12px 108px;
    border-top: 1px solid var(--line);
  }

  .topik-config-table tbody td:first-child {
    border-top: 0;
  }

  .topik-config-table tbody td::before {
    position: absolute;
    top: 14px;
    left: 12px;
    width: 84px;
    color: var(--muted);
    content: attr(data-label);
    font-size: 11px;
    font-weight: 700;
  }

  .topik-config-range-input {
    width: 100%;
  }

  .topik-model-detail summary {
    grid-template-columns: 1fr auto;
  }

  .topik-model-compact {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .topik-model-compact .topik-model-stage {
    grid-column: 1 / -1;
    text-align: left;
  }

  .topik-model-stage {
    grid-column: 1 / -1;
    text-align: left;
  }

  .requirement-cell .topik-model-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .detail-grid {
    grid-template-columns: 1fr;
  }

  .detail-page {
    padding: 12px 12px calc(104px + env(safe-area-inset-bottom, 0px));
  }

  .program-detail-shell {
    gap: 14px;
    font-size: 15px;
  }

  .program-detail-hero {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 11px;
    padding-bottom: 14px;
  }

  .program-detail-hero-logo {
    width: 56px;
    height: 56px;
    font-size: 21px;
  }

  .program-detail-hero-logo img {
    padding: 6px;
  }

  .program-detail-university-name {
    font-size: 16px;
  }

  .program-detail-hero h3 {
    font-size: 21px;
  }

  .program-detail-status-list span {
    min-height: 32px;
    font-size: 13px;
  }

  .program-detail-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .program-detail-summary-item,
  .program-detail-summary-item:nth-child(3n) {
    border-right: 1px solid #dfe7f0;
    border-bottom: 1px solid #dfe7f0;
  }

  .program-detail-summary-item:nth-child(2n) {
    border-right: 0;
  }

  .program-detail-summary-item:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .program-detail-summary-item.is-wide {
    grid-column: 1 / -1;
    border-right: 0;
  }

  .program-detail-identity-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .program-detail-identity-grid dl {
    grid-template-columns: minmax(94px, 118px) minmax(0, 1fr);
  }

  .program-detail-section > h3 {
    font-size: 20px;
  }

  .program-requirement-group h4 {
    font-size: 17px;
  }

  .program-scholarship-tiers {
    grid-template-columns: minmax(0, 1fr);
  }

  .detail-requirements .guide-reference-row {
    grid-template-columns: 1fr;
  }

  .detail-requirements .program-requirement-cell > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    padding: 9px 0;
  }

  .detail-requirements .program-requirement-cell > div > strong {
    font-size: 13px;
    line-height: 1.4;
  }

  .detail-requirements .guide-reference-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
  }

  .program-detail-sources .ghost-link,
  .program-detail-sources .requirement-source-label,
  .program-detail-sources .guide-reference-item {
    min-height: 44px;
    align-items: center;
  }

  .program-detail-sources .guide-reference-item,
  .program-detail-sources .guide-reference-item .ghost-link {
    width: 100%;
  }

  .program-detail-sources .guide-reference-item .ghost-link {
    justify-content: center;
    height: auto;
    min-height: 44px;
    white-space: normal;
  }

  .program-detail-sources .guide-reference-item:not(:last-child)::after {
    width: 100%;
    height: 1px;
    margin: 2px 0;
  }

  .chinese-guide-summary-identity {
    grid-template-columns: minmax(0, 1fr);
  }

  .chinese-guide-summary-identity > div,
  .chinese-guide-summary-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .chinese-guide-summary-row small {
    grid-column: 1;
  }

  .chinese-guide-summary-footer .ghost-link {
    width: 100%;
    min-height: 44px;
  }

  .more-filters-panel,
  .quick-match-school-result-group,
  .quick-match-school-result-toggle,
  .quick-match-school-result-body,
  .quick-match-card {
    min-width: 0;
    max-width: 100%;
  }

  .quick-match-school-result-toggle {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .quick-match-school-result-summary {
    grid-column: 1 / -1;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .quick-match-school-result-body,
  .quick-match-card {
    overflow-wrap: anywhere;
  }

  .quick-result-school-search__row,
  .quick-result-school-search__suggestions {
    grid-template-columns: minmax(0, 1fr);
  }

  .quick-result-school-search__row > span {
    order: 3;
  }

  .quick-result-school-search__row > button,
  .quick-match-school-result-actions button,
  .quick-match-card-filter-action button {
    width: 100%;
    min-height: 42px;
  }

  .quick-match-school-result-actions,
  .quick-match-card-filter-action {
    align-items: stretch;
    flex-direction: column;
  }

  #programsView .table-wrap,
  #programsView table,
  #programsView tbody {
    display: block;
    width: 100%;
  }

  #programsView thead {
    display: none;
  }

  #programsView tbody {
    display: grid;
    gap: 10px;
  }

  #programsView tbody tr {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    overflow: hidden;
    border: 1px solid var(--soft-line);
    border-radius: 6px;
    background: #fff;
  }

  #programsView tbody td {
    position: relative;
    display: block;
    box-sizing: border-box;
    width: 100% !important;
    min-width: 100%;
    max-width: none;
    flex: 0 0 auto;
    min-height: 42px;
    padding: 10px 12px 10px 110px;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  #programsView tbody td::before {
    position: absolute;
    top: 10px;
    left: 12px;
    width: 86px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 650;
  }

  #programsView tbody td:nth-child(1)::before { content: "专业"; }
  #programsView tbody td:nth-child(2)::before { content: "学校/地区"; }
  #programsView tbody td:nth-child(3)::before { content: "学费/奖学金"; }
  #programsView tbody td:nth-child(4)::before { content: "院校入学要求"; }
  #programsView tbody td:nth-child(5)::before { content: "建议入学条件"; }

  #programsView tbody td[colspan] {
    display: block;
    padding-left: 12px;
    text-align: center;
  }

  #programsView tbody td[colspan]::before {
    content: none;
  }
}
