:root {
  --v2-paper: #fffced;
  --v2-paper-soft: #fffef7;
  --v2-paper-deep: #f7efd9;
  --v2-line: #c8bb94;
  --v2-line-soft: #d9ceb0;
  --v2-green: #607d57;
  --v2-green-deep: #3f5b43;
  --v2-shadow: rgba(76, 72, 46, .12);
}

html { background: #e5d9b4 !important; }
html body,
body,
body[data-xmu-theme] {
  background-color: #e5d9b4 !important;
  background-image: linear-gradient(rgba(246,241,222,.74), rgba(246,241,222,.74)), url("../assets/v2-forest-adventure-map.png") !important;
  background-size: cover !important;
  background-position: center top !important;
  background-attachment: fixed !important;
  background-repeat: no-repeat !important;
  color: #314534 !important;
}
main { background: transparent !important; }

main > section,
main > article,
main > aside,
main > .notice,
main > .filter-panel,
main > .howto,
main > .legend,
main > .section,
main > .section-card,
main > .site-search,
main > .panel,
main .section-card,
main .panel,
main .policy-intro-section,
main .calculator-section {
  position: relative !important;
  border: 1px solid var(--v2-line) !important;
  border-top: 3px solid var(--v2-green) !important;
  border-radius: 20px !important;
  background: var(--v2-paper) !important;
  background-image: none !important;
  box-shadow: inset 0 1px rgba(255,255,255,.84), inset 0 0 0 1px rgba(151,132,83,.08), 0 7px 0 rgba(137,107,63,.07), 0 12px 24px var(--v2-shadow) !important;
}

main > .notice,
main > .filter-panel,
main > .howto,
main > .legend,
main > .site-search { margin-bottom: 18px !important; }

main .card,
main .plan-card,
main .site-card,
main .academy-card,
main .profile,
main .project,
main .award,
main .stat-card,
main .prep-card,
main .howto-card,
main .legend-item,
main .mini,
main .algorithm,
main .policy-result,
main .timeline-item,
main .campus-card,
main .bus-route-card,
main .flow-box,
main .route-item,
main .link-card,
main .calc-panel,
main .calc-result,
main .reform > .card,
main .grid > .card {
  border: 1px solid var(--v2-line-soft) !important;
  border-radius: 16px !important;
  background: linear-gradient(145deg, var(--v2-paper-soft), var(--v2-paper-deep)) !important;
  background-color: var(--v2-paper-soft) !important;
  background-image: none !important;
  box-shadow: inset 0 1px rgba(255,255,255,.76), 0 3px 9px rgba(89,77,46,.07) !important;
}

main .card:hover,
main .plan-card:hover,
main .site-card:hover,
main .academy-card:hover,
main .howto-card:hover,
main .mini:hover {
  border-color: #9eaa78 !important;
  box-shadow: inset 0 1px rgba(255,255,255,.82), 0 7px 14px rgba(89,77,46,.12) !important;
}

main .callout,
main .notice,
main .tip,
main .alert,
main .warning,
main .note,
main .flow-note,
main .source-note,
main .legend,
main .legend-item {
  border: 1px solid var(--v2-line-soft) !important;
  border-left: 4px solid var(--v2-green) !important;
  border-radius: 14px !important;
  background: #f8f0d9 !important;
  background-image: none !important;
  box-shadow: inset 0 1px rgba(255,255,255,.72) !important;
}
main .callout.warn,
main .alert.warn,
main .note.warn,
main .warning { border-left-color: #c08a42 !important; background: #fff3d8 !important; }
main .callout.danger,
main .alert.danger { border-left-color: #bd6c5c !important; background: #fae9df !important; }

main .table-wrap,
main .transport-table-wrap,
main .policy-table-wrap,
main .table-container,
main .course-table,
main .calc-panel,
main .policy-results,
main .project-grid,
main .academy-grid,
main .site-grid,
main .plan-grid {
  background: var(--v2-paper) !important;
  background-image: none !important;
  border-color: var(--v2-line) !important;
}
main .table-wrap,
main .transport-table-wrap,
main .policy-table-wrap,
main .table-container {
  border: 1px solid var(--v2-line) !important;
  border-radius: 16px !important;
  box-shadow: inset 0 1px rgba(255,255,255,.8), 0 4px 12px rgba(89,77,46,.07) !important;
}
main table { background: var(--v2-paper) !important; background-image: none !important; }
main th { background: #e5ead5 !important; color: var(--v2-green-deep) !important; border-bottom: 1px solid #b7c59b !important; }
main td { background: transparent !important; border-bottom-color: #e4dbc3 !important; }
main tbody tr:hover td { background: #f6f0de !important; }

main input,
main select,
main textarea,
main .search,
main .academy-search,
main .site-search input,
main .project-search input,
main .policy-search input {
  border: 1px solid #c8bd9e !important;
  border-radius: 12px !important;
  background: #fffdf2 !important;
  background-image: none !important;
  box-shadow: inset 0 1px 3px rgba(77,67,42,.06) !important;
}
main input:focus,
main select:focus,
main textarea:focus { border-color: #7f9b69 !important; box-shadow: 0 0 0 3px rgba(127,155,105,.16) !important; }

main h2,
main .section-title,
main .section-heading,
main .plan-index-heading { color: var(--v2-green-deep) !important; border-bottom-color: #c8bd98 !important; }
main a { color: #55734f !important; }
main .card-footer,
main .card-source,
main .block-source,
main .source-note { border-top-color: #d9ceb0 !important; }

/* 培养方案索引：来源按钮保持高对比度，状态标记统一尺寸与对齐。 */
main .source-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  min-height: 30px !important;
  padding: 7px 11px !important;
  color: #fffdf7 !important;
  font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", -apple-system, sans-serif !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  text-rendering: optimizeLegibility;
}
main .source-status {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 108px !important;
  min-height: 26px !important;
  margin: 8px 0 0 !important;
  padding: 4px 10px !important;
  line-height: 1.2 !important;
  text-align: center !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
}

@media(max-width:680px) {
  main > section, main > article, main > aside, main > .notice, main > .filter-panel, main > .howto, main > .legend, main > .section, main > .section-card, main > .site-search, main > .panel, main .section-card, main .panel { border-radius: 17px !important; }
}

/* 2.0 卡片精修：浅纸张底、细边界、轻阴影，避免卡片压过地图和正文。 */
main > section:not(.tab-panel),
main > article,
main > aside,
main > .filter-panel,
main > .howto,
main > .legend,
main > .section,
main > .section-card,
main > .site-search,
main > .panel,
main .section-card,
main .panel,
main .policy-intro-section,
main .calculator-section {
  border: 1px solid rgba(132,108,70,.28) !important;
  border-top: 2px solid rgba(104,127,83,.76) !important;
  border-radius: 18px !important;
  background-color: #fffaf0 !important;
  background-image: repeating-linear-gradient(90deg, rgba(126,102,63,.022) 0 1px, transparent 1px 8px), linear-gradient(180deg, rgba(255,253,244,.97), rgba(249,241,223,.96)) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.88), inset 0 0 0 1px rgba(151,132,83,.06), 0 4px 12px rgba(76,72,46,.08) !important;
}

main .card,
main .plan-card,
main .site-card,
main .academy-card,
main .profile,
main .project,
main .award,
main .stat-card,
main .prep-card,
main .howto-card,
main .legend-item,
main .mini,
main .algorithm,
main .policy-result,
main .timeline-item,
main .campus-card,
main .bus-route-card,
main .flow-box,
main .route-item,
main .link-card,
main .course-note,
main .calc-result,
main .entry-card,
main .project-card,
main .point-card,
main .compare-item,
main .guide-item,
main .exam-card,
main .time-item,
main .res-item {
  border: 1px solid rgba(151,128,88,.28) !important;
  border-radius: 13px !important;
  background-color: #fffdf5 !important;
  background-image: repeating-linear-gradient(0deg, rgba(126,102,63,.025) 0 1px, transparent 1px 5px), linear-gradient(180deg, rgba(255,254,247,.98), rgba(250,244,231,.96)) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.9), 0 2px 7px rgba(76,72,46,.065) !important;
}

main .toolbar {
  border: 1px solid rgba(132,108,70,.26) !important;
  border-radius: 14px !important;
  background-color: #fffaf0 !important;
  background-image: repeating-linear-gradient(90deg, rgba(126,102,63,.018) 0 1px, transparent 1px 8px), linear-gradient(180deg, rgba(255,253,244,.96), rgba(249,241,223,.94)) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.86), 0 3px 9px rgba(76,72,46,.06) !important;
}

main .callout,
main .notice,
main .tip,
main .alert,
main .warning,
main .note,
main .flow-note,
main .source-note {
  background-color: #fbf3df !important;
  background-image: repeating-linear-gradient(0deg, rgba(126,102,63,.022) 0 1px, transparent 1px 5px), linear-gradient(180deg, rgba(255,252,240,.96), rgba(248,238,214,.94)) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.86) !important;
}

main .card:hover,
main .plan-card:hover,
main .site-card:hover,
main .academy-card:hover,
main .howto-card:hover,
main .mini:hover,
main .entry-card:hover,
main .project-card:hover,
main .compare-item:hover {
  border-color: rgba(104,127,83,.58) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.94), 0 4px 10px rgba(76,72,46,.10) !important;
}
