/* ============================================================
   TZCC 鈥?澶╂动浜夐攱鍐犲啗鏉?路 瀹樻柟璧涗簨缃戠珯
   姝ｅ紡鐗堣瑙夎鑼冿細钘忛潚 / 绫崇櫧 / 鏈辩孩 / 閲?   ============================================================ */

:root {
  --primary: #9e1d2e;
  --primary-dark: #7c1322;
  --primary-ink: #8a1626;
  --gold: #a8863d;
  --gold-soft: #c9a45c;
  --navy: #0e1420;
  --navy-soft: #141b2c;
  --navy-card: #171f31;
  --paper: #f6f4ef;
  --paper-strong: #ffffff;
  --ink: #1f232e;
  --body-light: #4d5361;
  --muted-light: #8a8f9b;
  --text-dark: #e9ebf1;
  --body-dark: #b6bcc9;
  --muted-dark: #7e8494;
  --line-dark: #232b3e;
  --line-light: #dfd9cd;
  --canvas: var(--navy);
  --canvas-deep: #0b101a;
  --surface: var(--navy-card);
  --surface-strong: #1c2538;
  --light: #ffffff;
  --light-soft: #f6f4ef;
  --line: var(--line-dark);
  --line-light: #dfd9cd;
  --max: 1280px;

  --font-serif: "Noto Serif SC", "Source Han Serif SC", "Source Han Serif CN",
    "Songti SC", "STSong", SimSun, Georgia, serif;
  --font-sans: Inter, "PingFang SC", "Microsoft YaHei", system-ui, -apple-system,
    sans-serif;

  /* 鍔ㄦ晥 token锛圓pple 寮忔墜鎰燂細蹇嚭缂撴敹 / 杞诲井鍥炲脊 / 缁熶竴鑺傚锛?*/
  --ease-ios: cubic-bezier(0.32, 0.72, 0, 1);
  --ease-spring: cubic-bezier(0.34, 1.3, 0.64, 1);
  --ease-out-soft: cubic-bezier(0.22, 1, 0.36, 1);
  --dur-1: 0.18s;
  --dur-2: 0.28s;
  --dur-3: 0.5s;
}

* {
  box-sizing: border-box;
}

/* 淇濊瘉 HTML hidden 灞炴€ф案杩滅敓鏁堬紙闃叉琚?display 澹版槑瑕嗙洊锛屼緥濡傜敤鎴疯彍鍗?鐧诲綍寮圭獥瀛楁锛?*/
[hidden] {
  display: none !important;
}

html {
  scroll-behavior: smooth;
  /* 椤甸潰杞満涓庡洖寮规椂鐨勫厹搴曞簳鑹诧細娣辫壊锛岄伩鍏嶈烦杞灛闂撮湶鍑虹櫧鑹?*/
  background: var(--canvas-deep);
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

body::selection {
  background: var(--primary);
  color: #fff;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
h3 {
  font-family: var(--font-serif);
  font-weight: 700;
}

h1 {
  max-width: 900px;
  margin-bottom: 20px;
  font-size: 58px;
  line-height: 1.12;
  letter-spacing: 0.02em;
}

h2 {
  margin-bottom: 0;
  font-size: 38px;
  line-height: 1.25;
  letter-spacing: 0.02em;
}

h3 {
  font-size: 19px;
  line-height: 1.35;
  font-weight: 700;
}

/* ------------------------------------------------------------
   瀹樻柟椤舵爮
   ------------------------------------------------------------ */

.topbar {
  position: fixed;
  z-index: 30;
  top: 0;
  left: 0;
  width: 100%;
  height: 36px;
  background: var(--navy);
  border-bottom: 1px solid var(--line-dark);
  color: var(--body-dark);
  font-size: 11px;
  letter-spacing: 0.06em;
}

.topbar-inner {
  width: min(100%, var(--max));
  height: 100%;
  margin: 0 auto;
  padding: 0 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.topbar-official {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--gold-soft);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.topbar-official::before {
  content: "";
  width: 6px;
  height: 6px;
  background: var(--gold);
}

.topbar-meta {
  display: inline-flex;
  align-items: center;
  gap: 22px;
  white-space: nowrap;
}

.topbar-meta a:hover {
  color: var(--gold-soft);
}

/* ------------------------------------------------------------
   绔欑偣椤靛ご锛堜富瀵艰埅锛?   ------------------------------------------------------------ */

.site-header {
  position: fixed;
  z-index: 20;
  top: 36px;
  left: 0;
  width: 100%;
  height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 48px;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--line-light);
  backdrop-filter: blur(12px);
}

.brand {
  width: 156px;
  height: 44px;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.brand img {
  width: 100%;
  height: 100%;
  object-fit: contain; /* logo 鑷姩閫傞厤锛屽畬鏁存樉绀轰笉瑁佸垏 */
  object-position: center;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 34px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}

.site-nav a {
  position: relative;
  min-height: 68px;
  display: inline-flex;
  align-items: center;
  color: var(--body-light);
  letter-spacing: 0.04em;
}

.site-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 14px;
  height: 2px;
  background: var(--primary);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

.site-nav a:hover,
.site-nav a:focus-visible {
  color: var(--primary);
}

.site-nav a:hover::after,
.site-nav a:focus-visible::after {
  transform: scaleX(1);
}

.nav-toggle,
.nav-button {
  display: none;
}

/* ------------------------------------------------------------
   鎸夐挳
   ------------------------------------------------------------ */

.button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 26px;
  border: 1px solid transparent;
  border-radius: 2px;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: center;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.button.primary {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.18);
}

.button.primary:hover,
.button.primary:focus-visible {
  background: var(--primary-dark);
  border-color: var(--primary-dark);
}

.button.ghost {
  border-color: currentColor;
  background: transparent;
  color: inherit;
}

.button.ghost:hover,
.button.ghost:focus-visible {
  border-color: var(--primary);
  color: var(--primary);
}

.button.outline-dark {
  border-color: var(--ink);
  color: var(--ink);
}

.button.outline-dark:hover,
.button.outline-dark:focus-visible {
  border-color: var(--primary);
  color: var(--primary);
}

.light-on-red {
  background: #fff;
  color: var(--primary);
  border-color: #fff;
}

.light-on-red:hover,
.light-on-red:focus-visible {
  background: #f3ece2;
  border-color: #f3ece2;
}

.compact-button {
  min-height: 38px;
  padding: 9px 14px;
  font-size: 12px;
}

/* ------------------------------------------------------------
   Hero
   ------------------------------------------------------------ */

.hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--canvas-deep);
  border-bottom: 3px solid var(--gold);
}

.hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-hero > img {
  object-position: center;
}

.schedule-hero > img {
  object-position: center;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(11, 16, 26, 0.42) 8%, rgba(11, 16, 26, 0.88) 88%),
    linear-gradient(90deg, rgba(11, 16, 26, 0.9), rgba(11, 16, 26, 0.35) 55%, rgba(11, 16, 26, 0.72));
}

.hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 36px;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(201, 164, 92, 0.55), transparent);
}

.hero-content {
  position: relative;
  z-index: 2;
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: 176px 48px 88px;
}

.hero h1 {
  color: #fff;
  font-size: 62px;
  letter-spacing: 0.04em;
}

.hero-copy {
  max-width: 680px;
  margin-bottom: 30px;
  color: var(--body-dark);
  font-size: 17px;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.hero-actions .button.ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.72);
}

.hero-actions .button.ghost:hover {
  border-color: var(--gold-soft);
  color: var(--gold-soft);
}

/* 鍊掕鏃讹紙姝ｅ紡鏍峰紡锛?*/

.countdown {
  margin-top: 44px;
  padding: 24px 30px;
  background: rgba(11, 16, 26, 0.68);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-left: 3px solid var(--gold);
  backdrop-filter: blur(8px);
  display: inline-flex;
  flex-direction: column;
  gap: 6px;
}

.countdown-label {
  color: var(--gold-soft);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.countdown-race {
  color: #fff;
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 4px;
}

.countdown-timer {
  display: flex;
  align-items: center;
  gap: 4px;
}

.countdown-unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 56px;
}

.countdown-unit span {
  font-family: var(--font-serif);
  font-size: 34px;
  line-height: 1.1;
  font-weight: 700;
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.countdown-unit em {
  margin-top: 4px;
  font-style: normal;
  font-size: 10px;
  font-weight: 800;
  color: var(--muted-dark);
  letter-spacing: 0.16em;
}

.countdown-sep {
  font-size: 28px;
  font-weight: 700;
  color: var(--gold);
  line-height: 1;
  padding-bottom: 16px;
}

.countdown.done .countdown-timer {
  display: none;
}

.countdown.done .countdown-race::after {
  content: " 鈥?姣旇禌宸插紑濮?;
  color: var(--muted-dark);
  font-weight: 400;
}

/* ------------------------------------------------------------
   缁勫浼氬叕鍛婃潯
   ------------------------------------------------------------ */

.notice-bar {
  background: var(--paper-strong);
  border-bottom: 1px solid var(--line-light);
}

.notice-inner {
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: 14px 48px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.notice-tag {
  flex: none;
  background: var(--primary);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  padding: 4px 10px;
  border-radius: 2px;
}

.notice-text {
  margin: 0;
  color: var(--body-light);
  font-size: 14px;
}

.notice-text a {
  color: var(--primary);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ------------------------------------------------------------
   閫氱敤鍖哄潡
   ------------------------------------------------------------ */

.section {
  padding: 88px 48px;
}

.section.dark {
  background: var(--navy);
  color: var(--text-dark);
}

.section.light {
  background: var(--paper);
  color: var(--ink);
}

.section-grid {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1fr);
  gap: 64px;
  align-items: start;
}

.section-grid.compact {
  align-items: end;
  grid-template-columns: minmax(0, 1fr) auto;
}

.section-heading {
  width: min(100%, var(--max));
  margin: 0 auto 44px;
}

.section-heading h2 {
  position: relative;
  padding-bottom: 18px;
}

.section-heading h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 56px;
  height: 3px;
  background: var(--gold);
}

.eyebrow {
  margin: 0 0 14px;
  color: var(--text-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.accent {
  color: var(--primary);
}

.section.light .eyebrow:not(.accent) {
  color: var(--muted-light);
}

.intro-copy {
  color: var(--body-light);
  font-size: 16.5px;
}

.section.dark .intro-copy {
  color: var(--body-dark);
}

.intro-copy p:last-child {
  margin-bottom: 0;
}

/* 璧涗簨鏁版嵁 */

.metric-band {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: var(--navy);
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line-dark);
}

.metric {
  min-height: 168px;
  padding: 40px 32px;
  border-right: 1px solid var(--line-dark);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.metric:last-child {
  border-right: 0;
}

.metric strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 54px;
  line-height: 1;
  font-weight: 700;
  color: var(--gold-soft);
  font-variant-numeric: tabular-nums;
}

.metric span {
  margin-top: 12px;
  color: var(--body-dark);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

/* 璧涗簨浣撶郴鍗＄墖 */

.series-grid {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.feature-card {
  background: var(--navy-card);
  border: 1px solid var(--line-dark);
  border-top: 3px solid var(--gold);
  transition: transform 0.2s ease, border-color 0.2s ease;
}

.feature-card:hover {
  transform: translateY(-4px);
  border-color: rgba(201, 164, 92, 0.5);
}

.feature-card h3 {
  margin: 24px 24px 12px;
  color: var(--text-dark);
}

.feature-card p {
  margin: 0 24px 28px;
  color: var(--body-dark);
  font-size: 14.5px;
}

.card-image {
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--canvas-deep);
}

.card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.red-plate {
  background: var(--primary);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.red-plate span,
.outline-plate span {
  font-family: var(--font-serif);
  font-size: 52px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.red-plate span {
  color: #fff;
}

.outline-plate {
  border-bottom: 1px solid var(--primary);
}

.outline-plate span {
  color: var(--gold-soft);
}

.photo-plate img {
  filter: contrast(1.02);
}

/* 璧涚▼棰勮锛堟祬鑹诧級 */

.schedule-preview .section-grid {
  margin-bottom: 36px;
}

.race-list {
  width: min(100%, var(--max));
  margin: 0 auto;
  border-top: 2px solid var(--ink);
}

.race-row {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr) 140px;
  gap: 24px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid var(--line-light);
}

.race-row time {
  color: var(--primary);
  font-family: var(--font-serif);
  font-size: 30px;
  line-height: 1.1;
  font-weight: 700;
}

.race-row h3 {
  margin-bottom: 4px;
}

.race-row p {
  margin-bottom: 0;
  color: var(--body-light);
  font-size: 14px;
}

.race-row span {
  font-size: 13px;
  font-weight: 700;
  text-align: right;
  color: var(--primary);
}

/* 鍔炶禌鏍囧噯 */

.standards-grid {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line-dark);
  border: 1px solid var(--line-dark);
}

.standards-grid article {
  min-height: 240px;
  padding: 32px;
  background: var(--navy-card);
  border-top: 2px solid transparent;
  transition: border-color 0.2s ease;
}

.standards-grid article:hover {
  border-top-color: var(--gold);
}

.standards-grid span {
  color: var(--gold-soft);
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.standards-grid h3 {
  margin: 34px 0 14px;
  color: var(--text-dark);
}

.standards-grid p {
  color: var(--body-dark);
  font-size: 14px;
}

/* 姣旇禌鏃ユ祦绋?*/

.timeline {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 2px solid var(--gold);
}

.timeline article {
  padding: 30px 28px 0 0;
  border-right: 1px solid var(--line-dark);
}

.timeline article:last-child {
  border-right: 0;
}

.timeline time {
  color: var(--gold-soft);
  font-family: var(--font-serif);
  font-size: 36px;
  line-height: 1.1;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.timeline h3 {
  margin: 26px 0 12px;
  color: var(--text-dark);
}

.timeline p {
  color: var(--body-dark);
  font-size: 14px;
}

/* CTA 妯箙 */

.cta-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 48px;
  align-items: center;
  padding: 76px 48px;
  background: var(--primary);
  color: #fff;
  border-top: 3px solid var(--gold);
}

.cta-band > div {
  width: min(100%, 920px);
}

.cta-band h2 {
  margin-bottom: 14px;
  color: #fff;
}

.cta-band p:last-child {
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: 16px;
}

/* ------------------------------------------------------------
   琛ㄦ牸
   ------------------------------------------------------------ */

.table-wrap {
  width: min(100%, var(--max));
  margin: 48px auto 0;
  overflow-x: auto;
  border: 1px solid var(--line-light);
  background: var(--paper-strong);
  box-shadow: 0 1px 2px rgba(31, 35, 46, 0.04);
}

.schedule-table {
  width: 100%;
  min-width: 860px;
  border-collapse: collapse;
  background: var(--paper-strong);
}

.schedule-table th,
.schedule-table td {
  padding: 16px 18px;
  border-bottom: 1px solid var(--line-light);
  text-align: left;
  white-space: nowrap;
}

.schedule-table thead th {
  background: var(--navy);
  color: var(--text-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  border-bottom: 2px solid var(--gold);
}

.schedule-table tbody tr:last-child td {
  border-bottom: 0;
}

.schedule-table td {
  color: var(--ink);
  font-size: 14.5px;
}

.schedule-table tbody tr:hover td {
  background: #fbf7ef;
}

/* 鐘舵€佸窘绔?*/

.status {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 3px 10px;
  border: 1px solid currentColor;
  border-radius: 2px;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.status.open {
  color: var(--primary);
}

.status.pending {
  color: #8a6d1f;
}

.status.soon {
  color: #6a707c;
}

.status.final {
  color: #838895;
}

.status.finished,
.status.approved {
  color: #1f6e43;
}

.status.appeal {
  color: #9a5b00;
}

.status.rejected {
  color: var(--primary);
}

/* 琛ㄥ唴閾炬帴涓庢搷浣?*/

.table-action,
.driver-link,
.race-title-link {
  border: 0;
  background: transparent;
  color: var(--primary);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.race-title-link {
  padding: 0;
  color: var(--ink);
  text-align: left;
}

.race-title-link:hover,
.race-title-link:focus-visible {
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.clickable-race-row {
  cursor: pointer;
}

.clickable-race-row:hover td {
  background: #fbf5ea;
}

.muted-action {
  color: var(--muted-light);
}

.selected-row td {
  background: #fdf1ef;
}

/* ------------------------------------------------------------
   姣旇禌璇︽儏椤电粍浠?   ------------------------------------------------------------ */

.race-results-section {
  padding-top: 56px;
}

.results-meta,
.results-empty {
  margin: 12px 0 0;
  color: var(--body-light);
  font-size: 15px;
}

.results-layout {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  align-items: start;
}

.race-detail-empty {
  width: min(100%, var(--max));
  margin: 0 auto 28px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line-light);
  border: 1px solid var(--line-light);
}

.race-detail-empty article {
  min-height: 88px;
  padding: 20px;
  background: var(--paper-strong);
}

.race-detail-empty span {
  display: block;
  margin-bottom: 8px;
  color: var(--muted-light);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.race-detail-empty strong {
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 700;
}

.race-state-heading {
  margin-top: 32px;
}

.race-state-heading .button {
  margin-top: 20px;
}

.race-entry-table-wrap {
  margin-top: 24px;
}

.race-entry-table {
  min-width: 860px;
}

.results-table-wrap {
  margin-top: 0;
}

.results-table {
  min-width: 1120px;
}

.driver-detail-panel,
.penalty-board {
  border: 1px solid var(--line-light);
  background: var(--paper-strong);
  color: var(--ink);
}

.driver-detail-panel {
  padding: 24px;
}

.driver-detail-panel h3 {
  margin-bottom: 18px;
}

.driver-stats {
  display: grid;
  gap: 10px;
  margin: 0 0 20px;
}

.driver-stats div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-light);
}

.driver-stats dt {
  color: var(--body-light);
  font-size: 12px;
  font-weight: 800;
}

.driver-stats dd {
  margin: 0;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.lap-list {
  display: grid;
  gap: 8px;
}

.lap-list div {
  min-height: 36px;
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--line-light);
  font-size: 13px;
}

.lap-list span,
.lap-list em {
  color: var(--muted-light);
  font-style: normal;
  font-size: 12px;
}

.lap-list strong {
  font-variant-numeric: tabular-nums;
}

.penalty-board {
  width: min(100%, var(--max));
  margin: 24px auto 0;
  padding: 24px;
}

.penalty-board h3 {
  margin-bottom: 16px;
}

.penalty-board article,
.penalty-list article {
  display: grid;
  grid-template-columns: minmax(140px, 0.4fr) 80px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 14px 0;
  border-top: 1px solid var(--line-light);
}

.penalty-board article p,
.penalty-list article p {
  margin-bottom: 0;
  color: var(--body-light);
}

/* ------------------------------------------------------------
   鍚庡彴绠＄悊绯荤粺
   ------------------------------------------------------------ */

.admin-page {
  min-height: 100vh;
  background: var(--paper);
}

.admin-main-page {
  min-height: 100vh;
  background: var(--paper);
}

.admin-hero {
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: 168px 48px 48px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 48px;
  align-items: end;
  border-bottom: 1px solid var(--line-light);
}

.admin-hero h1 {
  margin-bottom: 16px;
  font-size: 44px;
}

.admin-hero p:last-child {
  max-width: 720px;
  margin-bottom: 0;
  color: var(--body-light);
  font-size: 16px;
}

.admin-hero-compact {
  padding-bottom: 36px;
}

.admin-layout {
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: 48px 48px 88px;
  display: grid;
  grid-template-columns: 380px minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}

.single-form-layout {
  grid-template-columns: minmax(0, 1fr);
  justify-content: center;
}

.single-form-layout .admin-form {
  position: static;
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}

.single-form-layout .admin-panel {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}

.admin-dashboard {
  width: 100%;
  margin: 0;
  padding: 0 48px 88px;
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

.admin-sidebar {
  position: sticky;
  top: 122px;
  border: 1px solid var(--line-light);
  background: var(--paper-strong);
  box-shadow: 0 1px 2px rgba(31, 35, 46, 0.04);
}

.admin-sidebar-title {
  padding: 22px;
  border-bottom: 1px solid var(--line-light);
}

.admin-sidebar-title span {
  display: block;
  margin-bottom: 8px;
  color: var(--primary);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.admin-sidebar-title strong {
  display: block;
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 700;
}

.admin-workspace {
  width: 100%;
  min-width: 0;
  display: grid;
  gap: 24px;
}

.admin-tabs {
  width: min(100%, var(--max));
  margin: 0 auto 32px;
  padding: 0 48px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.admin-tab {
  min-height: 42px;
  padding: 10px 16px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper-strong);
  color: var(--body-light);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.admin-tab.active,
.admin-tab:hover,
.admin-tab:focus-visible {
  border-color: var(--primary);
  background: var(--primary);
  color: #fff;
}

.admin-sidebar .admin-tabs {
  width: 100%;
  margin: 0;
  padding: 12px;
  display: grid;
  gap: 8px;
}

.admin-sidebar .admin-tab {
  width: 100%;
  min-height: 66px;
  display: grid;
  gap: 4px;
  align-content: center;
  justify-items: start;
  padding: 12px 14px;
  text-align: left;
  border-radius: 0;
  border-left: 3px solid transparent;
}

.admin-sidebar .admin-tab span {
  color: inherit;
  font-size: 15px;
  font-weight: 800;
}

.admin-sidebar .admin-tab small {
  color: inherit;
  opacity: 0.72;
  font-size: 12px;
  line-height: 1.35;
}

.admin-sidebar .admin-tab.active,
.admin-sidebar .admin-tab:hover,
.admin-sidebar .admin-tab:focus-visible {
  border-left-color: var(--gold);
}

.admin-tab-panel {
  display: none;
}

.admin-tab-panel.active {
  display: grid;
}

.admin-workspace .admin-tab-panel {
  width: 100%;
  margin: 0;
  padding: 0;
  display: none;
  grid-template-columns: 1fr;
  gap: 24px;
}

.admin-workspace .admin-tab-panel.active {
  display: grid;
}

.span-all {
  grid-column: 1 / -1;
}

.admin-module-head {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: end;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line-light);
}

.admin-module-head h2 {
  font-size: 30px;
}

.admin-module-head p:last-child {
  max-width: 420px;
  margin: 0;
  color: var(--body-light);
  font-size: 14px;
}

.admin-two-column {
  display: grid;
  grid-template-columns: 380px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.admin-stack {
  min-width: 0;
  display: grid;
  gap: 24px;
}

.admin-form,
.admin-panel {
  border: 1px solid var(--line-light);
  background: var(--paper-strong);
  box-shadow: 0 1px 2px rgba(31, 35, 46, 0.04);
}

.admin-form {
  position: sticky;
  top: 122px;
  padding: 28px;
  display: grid;
  gap: 18px;
}

.admin-workspace .admin-form {
  position: sticky;
  top: 122px;
  width: 100%;
}

.admin-form-head,
.admin-panel-head {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
}

.admin-form h2,
.admin-panel h2 {
  font-size: 26px;
}

.admin-panel {
  padding: 28px;
  overflow: hidden;
}

.admin-card {
  border: 1px solid var(--line-light);
  background: var(--paper-strong);
}

.admin-form label,
.result-import-form label,
.registration-edit-form label,
.penalty-form label {
  display: grid;
  gap: 8px;
  color: var(--body-light);
  font-size: 13px;
  font-weight: 700;
}

.admin-form input,
.admin-form select,
.result-import-form input,
.result-import-form select,
.registration-edit-form input,
.registration-edit-form select,
.penalty-form input,
.penalty-form select {
  width: 100%;
  height: 44px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper);
  color: var(--ink);
  padding: 0 14px;
  font-family: var(--font-sans);
  font: inherit;
  transition: border-color 0.2s ease;
}

.admin-form input:focus,
.admin-form select:focus,
.result-import-form input:focus,
.result-import-form select:focus,
.registration-edit-form input:focus,
.registration-edit-form select:focus,
.penalty-form input:focus,
.penalty-form select:focus {
  outline: 2px solid var(--primary);
  outline-offset: 0;
  border-color: var(--primary);
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.text-button {
  border: 0;
  background: transparent;
  color: var(--primary);
  font-family: var(--font-sans);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.admin-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.left-actions {
  justify-content: flex-start;
}

.file-button {
  position: relative;
  overflow: hidden;
}

.file-button input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.admin-help {
  margin: 18px 0 0;
  color: var(--muted-light);
  font-size: 13px;
}

.admin-table-wrap {
  width: 100%;
  margin-top: 28px;
}

.admin-table {
  min-width: 980px;
}

.admin-table th:last-child,
.admin-table td:last-child {
  width: 132px;
}

.row-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.row-actions button,
.small-file-action,
.penalty-list button {
  min-height: 32px;
  padding: 6px 12px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper-strong);
  color: var(--ink);
  font-family: var(--font-sans);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease;
}

.row-actions button:hover,
.row-actions button:focus-visible,
.penalty-list button:hover {
  border-color: var(--primary);
  color: var(--primary);
}

.small-file-action {
  position: relative;
  display: inline-flex;
  align-items: center;
  overflow: hidden;
}

.small-file-action input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.admin-row-actions {
  flex-wrap: wrap;
  min-width: 260px;
}

.admin-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: 22px;
  background: var(--line-light);
  border: 1px solid var(--line-light);
}

.admin-detail-grid article {
  min-height: 92px;
  padding: 18px;
  background: var(--paper-strong);
}

.admin-detail-grid span {
  display: block;
  margin-bottom: 8px;
  color: var(--muted-light);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.admin-detail-grid strong {
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 700;
}

.admin-mini-list {
  display: grid;
  gap: 10px;
  margin-top: 20px;
}

.admin-mini-list h3 {
  margin: 10px 0 0;
  font-size: 16px;
}

.admin-mini-list div {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 0;
  border-top: 1px solid var(--line-light);
  color: var(--body-light);
  font-size: 14px;
}

.admin-mini-list div strong {
  color: var(--ink);
}

.result-import-form,
.registration-edit-form {
  display: grid;
  gap: 16px;
  margin-top: 20px;
}

.result-import-form {
  grid-template-columns: minmax(260px, 1fr) auto;
  align-items: end;
}

.result-file-button {
  min-height: 44px;
}

/* ------------------------------------------------------------
   椤佃剼
   ------------------------------------------------------------ */

.site-footer {
  background: var(--navy);
  color: var(--body-dark);
  padding: 56px 48px 0;
  border-top: 3px solid var(--gold);
}

.footer-grid {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(140px, 1fr));
  gap: 40px;
}

.footer-brand img {
  width: 168px;
  height: 52px;
  object-fit: contain; /* logo 鑷姩閫傞厤锛屽畬鏁存樉绀轰笉瑁佸垏 */
  object-position: left center;
  margin-bottom: 14px;
}

.footer-brand p {
  margin-bottom: 0;
  color: var(--muted-dark);
  font-size: 13px;
  line-height: 1.8;
}

.footer-brand .footer-en {
  color: var(--gold-soft);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-top: 10px;
}

.footer-col h4 {
  margin: 4px 0 18px;
  color: var(--text-dark);
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 700;
}

.footer-col h4::after {
  content: "";
  display: block;
  width: 26px;
  height: 2px;
  margin-top: 10px;
  background: var(--gold);
}

.footer-col a {
  display: block;
  padding: 5px 0;
  color: var(--body-dark);
  font-size: 13px;
  transition: color 0.2s ease;
}

.footer-col a:hover {
  color: var(--gold-soft);
}

.footer-bottom {
  width: min(100%, var(--max));
  margin: 40px auto 0;
  padding: 18px 0 22px;
  border-top: 1px solid var(--line-dark);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  color: var(--muted-dark);
  font-size: 12px;
}

/* ------------------------------------------------------------
   鍝嶅簲寮?   ------------------------------------------------------------ */

@media (max-width: 1100px) {
  .admin-dashboard {
    grid-template-columns: 1fr;
  }

  .admin-sidebar {
    position: static;
  }

  .admin-sidebar .admin-tabs {
    grid-template-columns: repeat(3, 1fr);
  }

  .admin-two-column {
    grid-template-columns: 1fr;
  }

  .admin-workspace .admin-form {
    position: static;
  }
}

@media (max-width: 980px) {
  .topbar-inner {
    padding: 0 24px;
  }

  .topbar-meta span {
    display: none;
  }

  .site-header {
    padding: 0 24px;
  }

  .nav-button {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
  }

  .nav-button span,
  .nav-button span::before,
  .nav-button span::after {
    width: 24px;
    height: 2px;
    display: block;
    background: var(--ink);
    content: "";
  }

  .nav-button span {
    position: relative;
  }

  .nav-button span::before,
  .nav-button span::after {
    position: absolute;
    left: 0;
  }

  .nav-button span::before {
    top: -8px;
  }

  .nav-button span::after {
    top: 8px;
  }

  .site-nav {
    position: fixed;
    top: 104px;
    left: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 16px 24px 24px;
    background: var(--paper-strong);
    border-bottom: 1px solid var(--line-light);
    box-shadow: 0 8px 24px rgba(14, 20, 32, 0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    pointer-events: none;
    transition: opacity 0.28s ease, transform 0.28s ease, visibility 0.28s;
  }

  .site-nav a {
    min-height: 48px;
    border-bottom: 1px solid var(--line-light);
  }

  .site-nav a::after {
    display: none;
  }

  .nav-toggle:checked ~ .site-nav {
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
  }

  h1 {
    font-size: 44px;
  }

  h2 {
    font-size: 32px;
  }

  .section-grid,
  .section-grid.compact {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .series-grid,
  .standards-grid,
  .timeline {
    grid-template-columns: repeat(2, 1fr);
  }

  .metric-band {
    grid-template-columns: repeat(2, 1fr);
  }

  .race-row {
    grid-template-columns: 112px minmax(0, 1fr);
  }

  .race-row span {
    grid-column: 2;
    text-align: left;
  }

  .cta-band,
  .admin-hero,
  .admin-layout {
    grid-template-columns: 1fr;
  }

  .admin-layout {
    gap: 24px;
  }

  .results-layout {
    grid-template-columns: 1fr;
  }

  .driver-detail-panel {
    position: static;
  }

  .penalty-board article,
  .penalty-list article {
    grid-template-columns: 1fr auto;
  }

  .penalty-board article p,
  .penalty-list article p {
    grid-column: 1 / -1;
  }

  .admin-form {
    position: static;
  }

  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 720px) {
  .admin-dashboard {
    padding-left: 20px;
    padding-right: 20px;
  }

  .admin-module-head,
  .admin-panel-head {
    display: grid;
    align-items: start;
  }

  .admin-sidebar .admin-tabs {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .topbar-inner,
  .site-header,
  .section,
  .hero-content,
  .notice-inner,
  .admin-hero,
  .admin-layout,
  .admin-tabs,
  .cta-band,
  .site-footer {
    padding-left: 20px;
    padding-right: 20px;
  }

  .brand {
    width: 118px;
  }

  .brand img {
    width: 118px;
    height: 40px;
  }

  .hero {
    min-height: 86vh;
  }

  .hero-content {
    padding-top: 150px;
    padding-bottom: 64px;
  }

  h1 {
    font-size: 34px;
  }

  h2 {
    font-size: 27px;
  }

  .hero-copy {
    font-size: 15.5px;
  }

  .button {
    width: 100%;
  }

  .metric-band,
  .series-grid,
  .standards-grid,
  .timeline {
    grid-template-columns: 1fr;
  }

  .metric {
    min-height: 136px;
    border-right: 0;
    border-bottom: 1px solid var(--line-dark);
  }

  .metric:last-child {
    border-bottom: 0;
  }

  .race-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .race-row span {
    grid-column: auto;
  }

  .timeline article {
    padding: 26px 0;
    border-right: 0;
    border-bottom: 1px solid var(--line-dark);
  }

  .timeline article:last-child {
    border-bottom: 0;
  }

  .admin-hero {
    padding-top: 148px;
    padding-bottom: 36px;
  }

  .admin-layout {
    padding-bottom: 64px;
  }

  .admin-form,
  .admin-panel {
    padding: 20px;
  }

  .admin-form-head,
  .admin-panel-head,
  .admin-actions,
  .form-grid,
  .admin-detail-grid,
  .result-import-form {
    display: grid;
    grid-template-columns: 1fr;
  }

  .admin-actions {
    justify-content: stretch;
  }

  .lap-list div {
    grid-template-columns: 36px 1fr;
  }

  .lap-list em {
    grid-column: 2;
  }

  .penalty-board,
  .driver-detail-panel {
    padding: 20px;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .footer-bottom {
    display: grid;
  }
}

/* ============================================================
   鍔ㄦ晥绯荤粺锛圱ZCC Motion锛?   椤甸潰杩囨浮 / 棣栧睆鍏ュ満 / 婊氬姩鏄剧幇 / 鏁板瓧閫掑 / 寰氦浜?   ============================================================ */

/* ---- 椤甸潰绾ц繃娓★細杩涘叆娣″叆銆佺寮€娣″嚭涓婄Щ ---- */

html.js-anim body {
  opacity: 0;
  transition: opacity 0.34s ease, transform 0.34s ease;
}

html.js-anim body.page-ready {
  opacity: 1;
}

html.js-anim body.page-exit {
  opacity: 0;
  transform: translateY(-14px);
}

/* 閿氱偣瀹氫綅琛ュ伩锛堝浐瀹氬弻灞傞〉澶达級 */

section[id],
aside[id] {
  scroll-margin-top: 120px;
}

/* ---- 棣栧睆鍐呭鍏ュ満锛氶€愮骇涓婃诞 ---- */

html.js-anim .hero-content > *,
html.js-anim .admin-hero > * {
  animation: tz-rise 0.72s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

html.js-anim .hero-content > *:nth-child(2) {
  animation-delay: 0.1s;
}

html.js-anim .hero-content > *:nth-child(3) {
  animation-delay: 0.18s;
}

html.js-anim .hero-content > *:nth-child(4) {
  animation-delay: 0.26s;
}

html.js-anim .hero-content > *:nth-child(5) {
  animation-delay: 0.34s;
}

html.js-anim .admin-hero > *:nth-child(2) {
  animation-delay: 0.12s;
}

@keyframes tz-rise {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* ---- 婊氬姩鏄剧幇锛氳繘鍏ヨ鍙ｆ椂娣″叆涓婄Щ ---- */

html.js-anim .reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}

html.js-anim .reveal.in {
  opacity: 1;
  transform: none;
}

/* 鍖哄潡鏍囬鐨勯噾鑹蹭笅鍒掔嚎闅忔樉鐜板睍寮€ */

html.js-anim .section-heading h2::after {
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1) 0.12s;
}

html.js-anim .section-heading.in h2::after {
  transform: scaleX(1);
}

/* ---- 寰氦浜掑寮?---- */

.button {
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease,
    transform 0.2s ease, box-shadow 0.2s ease;
}

.button.primary:hover,
.button.primary:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(158, 29, 46, 0.28);
}

.button.ghost:hover,
.button.ghost:focus-visible {
  transform: translateY(-2px);
}

.card-image img {
  transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.feature-card:hover .card-image img {
  transform: scale(1.05);
}

.race-row {
  transition: background-color 0.3s ease;
}

.race-row:hover {
  background-color: #fdfaf3;
}

.footer-col a {
  transition: color 0.2s ease, padding-left 0.25s ease;
}

.footer-col a:hover {
  padding-left: 6px;
}

.site-header {
  transition: box-shadow 0.3s ease;
}

.site-header.scrolled {
  box-shadow: 0 2px 18px rgba(14, 20, 32, 0.14);
}

/* ---- 鍑忓皯鍔ㄦ€佹晥鏋滃亸濂?---- */

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  html.js-anim body {
    opacity: 1;
    transition: none;
  }

  html.js-anim .hero-content > *,
  html.js-anim .admin-hero > *,
  html.js-anim .reveal,
  html.js-anim .section-heading h2::after {
    animation: none;
    opacity: 1;
    transform: none;
    transition: none;
  }

  .button,
  .feature-card,
  .race-row,
  .footer-col a,
  .site-header,
  .auth-menu {
    transition: none;
  }
}

/* ============================================================
   杞﹂槦宸＄ぜ / 鍥炴斁 / 娑傝
   ============================================================ */

.team-grid {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.team-card {
  background: var(--paper-strong);
  border: 1px solid var(--line-light);
  border-top: 3px solid var(--team-color, var(--gold));
  box-shadow: 0 1px 2px rgba(31, 35, 46, 0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.team-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(31, 35, 46, 0.1);
}

.team-card-media {
  height: 168px;
  background: var(--light-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-bottom: 1px solid var(--line-light);
}

.team-card-body {
  padding: 20px 22px 24px;
}

.team-card-head {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 12px;
}

.team-code {
  background: var(--team-color, var(--primary));
  color: var(--team-code-color, #fff);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.1em;
  padding: 3px 9px;
  border-radius: 2px;
}

.team-platform {
  border: 1px solid var(--line-light);
  color: var(--body-light);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 3px 9px;
  border-radius: 2px;
}

.team-card h3 {
  margin: 0 0 6px;
}

.team-captain {
  color: var(--primary);
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 10px;
}

.team-intro {
  color: var(--body-light);
  font-size: 14px;
  line-height: 1.7;
}

.team-members {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line-light);
  display: grid;
  gap: 3px;
}

.team-members strong {
  color: var(--muted-light);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.team-members span {
  color: var(--body-light);
  font-size: 13px;
}

/* 娑傝缂╃暐鍥?*/

.livery-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.livery-empty {
  color: var(--muted-light);
  font-size: 12px;
  letter-spacing: 0.14em;
}

.livery-cell {
  width: 96px;
}

.livery-cell img {
  width: 84px;
  height: 56px;
  object-fit: cover;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  display: block;
}

.livery-placeholder {
  color: var(--muted-light);
  font-size: 12px;
}

.livery-thumb-slot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  height: 56px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--light-soft);
  color: var(--muted-light);
  font-size: 12px;
  overflow: hidden;
}

.livery-thumb-slot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 濯掍綋鍒楄〃锛堝洖鏀?/ 娑傝锛?*/

.media-list {
  display: grid;
  gap: 0;
}

.media-group-title {
  margin: 18px 0 4px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line-light);
  color: var(--ink);
  font-size: 16px;
}

.media-group-title:first-child {
  margin-top: 0;
}

.media-row {
  display: grid;
  grid-template-columns: minmax(180px, 0.9fr) minmax(120px, 0.6fr) minmax(120px, 0.6fr) auto auto;
  gap: 16px;
  align-items: center;
  padding: 13px 0;
  border-top: 1px solid var(--line-light);
  font-size: 14px;
}

.media-row strong {
  color: var(--ink);
}

.media-row span {
  color: var(--body-light);
  font-size: 13px;
}

.media-row button {
  min-height: 32px;
  padding: 6px 12px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper-strong);
  color: var(--ink);
  font-family: var(--font-sans);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease;
}

.media-row button:hover {
  border-color: var(--primary);
  color: var(--primary);
}

.livery-row {
  grid-template-columns: 84px minmax(140px, 1fr) auto auto;
}

/* 鍓嶅彴姣旇禌璇︽儏锛氬洖鏀惧尯鍧?*/

.replay-board {
  width: min(100%, var(--max));
  margin: 24px auto 0;
  padding: 24px;
}

.replay-board h3 {
  margin-bottom: 4px;
}

.replay-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 90px 160px auto;
  gap: 16px;
  align-items: center;
  padding: 13px 0;
  border-top: 1px solid var(--line-light);
}

.replay-row strong {
  color: var(--ink);
  font-size: 14px;
}

.replay-row span {
  color: var(--body-light);
  font-size: 12.5px;
}

.replay-download {
  min-height: 32px;
  padding: 6px 14px;
  border: 1px solid var(--primary);
  border-radius: 2px;
  background: transparent;
  color: var(--primary);
  font-family: var(--font-sans);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.replay-download:hover {
  background: var(--primary);
  color: #fff;
}

/* 鍚庡彴琛ㄥ崟澶氳鏂囨湰 */

.admin-form textarea,
.result-import-form textarea,
.registration-edit-form textarea,
.penalty-form textarea {
  width: 100%;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper);
  color: var(--ink);
  padding: 10px 14px;
  font-family: var(--font-sans);
  font: inherit;
  line-height: 1.6;
  resize: vertical;
}

.admin-form textarea:focus {
  outline: 2px solid var(--primary);
  outline-offset: 0;
  border-color: var(--primary);
}

@media (max-width: 1100px) {
  .team-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .media-row {
    grid-template-columns: minmax(160px, 1fr) auto auto;
  }

  .media-row span:nth-of-type(2) {
    display: none;
  }
}

@media (max-width: 640px) {
  .team-grid {
    grid-template-columns: 1fr;
  }

  .media-row,
  .livery-row,
  .replay-row {
    grid-template-columns: 1fr auto;
    gap: 8px;
  }

  .media-row span,
  .replay-row span {
    display: none;
  }
}

/* ============================================================
   鐧诲綍绯荤粺锛堥《鏍?/ 寮圭獥 / 绠＄悊鍛樺畧鍗級
   ============================================================ */

.auth-area {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.auth-btn {
  border: 1px solid rgba(201, 164, 92, 0.55);
  background: transparent;
  color: var(--gold-soft);
  font-family: var(--font-sans);
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding: 4px 12px;
  border-radius: 2px;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.auth-btn:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: #0e1420;
}

.auth-user {
  position: relative;
  display: inline-flex;
}

.auth-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 150px;
  padding: 8px 0;
  background: var(--paper-strong);
  border: 1px solid var(--line-light);
  border-top: 3px solid var(--gold);
  box-shadow: 0 12px 28px rgba(14, 20, 32, 0.16);
  display: grid;
  z-index: 40;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
}

.auth-menu.open {
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
}

.auth-menu-item {
  display: block;
  padding: 9px 16px;
  color: var(--body-light);
  font-size: 13px;
  font-weight: 700;
  text-align: left;
  border: 0;
  background: transparent;
  font-family: var(--font-sans);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.auth-menu-item:hover {
  background: var(--light-soft);
  color: var(--primary);
}

/* 鐧诲綍寮圭獥 */

.auth-overlay {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(11, 16, 26, 0.62);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: tz-fade 0.25s ease both;
}

@keyframes tz-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

.auth-dialog {
  position: relative;
  width: min(100%, 420px);
  max-height: 92vh;
  overflow-y: auto;
  padding: 34px 34px 26px;
  background: var(--paper-strong);
  border: 1px solid var(--line-light);
  border-top: 3px solid var(--gold);
  box-shadow: 0 24px 60px rgba(11, 16, 26, 0.35);
  animation: tz-rise 0.35s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.auth-dialog h3 {
  margin-bottom: 18px;
  font-size: 24px;
}

.auth-close {
  position: absolute;
  top: 10px;
  right: 14px;
  border: 0;
  background: transparent;
  color: var(--muted-light);
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
}

.auth-close:hover {
  color: var(--primary);
}

.auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--line-light);
}

.auth-tab {
  border: 0;
  background: transparent;
  color: var(--muted-light);
  font-family: var(--font-sans);
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  padding: 10px 0 12px;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.auth-tab.active {
  color: var(--primary);
  border-bottom-color: var(--primary);
}

.auth-form {
  display: grid;
  gap: 14px;
}

.auth-field {
  display: grid;
  gap: 7px;
  color: var(--body-light);
  font-size: 13px;
  font-weight: 700;
}

.auth-field input,
.auth-field select,
.auth-field textarea {
  width: 100%;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper);
  color: var(--ink);
  padding: 10px 14px;
  font-family: var(--font-sans);
  font: inherit;
  transition: border-color 0.2s ease;
}

.auth-field textarea {
  resize: vertical;
  line-height: 1.6;
}

.auth-field input:focus,
.auth-field select:focus,
.auth-field textarea:focus {
  outline: 2px solid var(--primary);
  outline-offset: 0;
  border-color: var(--primary);
}

.auth-error {
  margin: 0;
  color: var(--primary);
  font-size: 13px;
  font-weight: 700;
}

.auth-submit {
  width: 100%;
  margin-top: 4px;
}

.auth-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 20px 0 14px;
  color: var(--muted-light);
  font-size: 12px;
}

.auth-divider::before,
.auth-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--line-light);
}

.auth-providers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.auth-provider {
  min-height: 44px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper-strong);
  font-family: var(--font-sans);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease;
}

.auth-provider.qq {
  color: #1670c0;
}

.auth-provider.qq:hover {
  border-color: #1670c0;
}

.auth-provider.wechat {
  color: #07a63e;
}

.auth-provider.wechat:hover {
  border-color: #07a63e;
}

.auth-foot {
  margin: 18px 0 0;
  color: var(--muted-light);
  font-size: 11.5px;
  line-height: 1.7;
}

/* 杞绘彁绀?*/

.auth-toast {
  position: fixed;
  left: 50%;
  bottom: 40px;
  z-index: 120;
  transform: translate(-50%, 16px);
  background: var(--navy);
  color: var(--text-dark);
  border: 1px solid var(--line-dark);
  border-left: 3px solid var(--gold);
  padding: 12px 20px;
  font-size: 13px;
  box-shadow: 0 14px 34px rgba(11, 16, 26, 0.4);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
  max-width: min(88vw, 520px);
}

.auth-toast.show {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

/* 绠＄悊鍛樺畧鍗?*/

.local-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  padding: 10px 20px;
  background: var(--navy);
  border-bottom: 1px solid var(--line-dark);
  color: var(--body-dark);
  font-size: 12.5px;
}

.local-banner-tag {
  flex: none;
  background: var(--gold);
  color: var(--navy);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  padding: 3px 10px;
  border-radius: 2px;
}

.local-banner-text code {
  color: var(--gold-soft);
  font-size: 12px;
}

.local-banner-close {
  margin-left: auto;
  border: 0;
  background: transparent;
  color: var(--muted-dark);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  padding: 2px 6px;
}

.local-banner-close:hover {
  color: var(--gold-soft);
}

.admin-gate {
  position: fixed;
  inset: 0;
  z-index: 90;
  background: var(--paper);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.admin-gate-card {
  width: min(100%, 520px);
  padding: 44px 40px;
  background: var(--paper-strong);
  border: 1px solid var(--line-light);
  border-top: 3px solid var(--gold);
  box-shadow: 0 24px 60px rgba(11, 16, 26, 0.18);
  text-align: center;
  display: grid;
  gap: 14px;
  justify-items: center;
}

.admin-gate-card h2 {
  font-size: 26px;
}

.admin-gate-text {
  margin: 0;
  color: var(--body-light);
  font-size: 14px;
  line-height: 1.8;
}

.admin-gate-text code {
  display: inline-block;
  margin: 8px 0;
  padding: 6px 12px;
  background: var(--navy);
  color: var(--gold-soft);
  font-size: 13px;
  border-radius: 2px;
}

.admin-gate-card .button {
  min-width: 200px;
}

/* 鐧诲綍璺宠浆椤?*/

.login-page {
  min-height: 100vh;
}

.login-main {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 140px 24px 80px;
}

.login-card {
  width: min(100%, 520px);
  padding: 44px 40px;
  background: var(--paper-strong);
  border: 1px solid var(--line-light);
  border-top: 3px solid var(--gold);
  box-shadow: 0 24px 60px rgba(11, 16, 26, 0.12);
  text-align: center;
  display: grid;
  gap: 16px;
  justify-items: center;
}

.login-card h1 {
  font-size: 30px;
  margin-bottom: 0;
}

.login-card p:last-of-type {
  margin-bottom: 8px;
  color: var(--body-light);
  font-size: 14px;
}

/* 杞﹂槦鑷姪寮圭獥 */

.team-dialog {
  width: min(100%, 560px);
}

.team-livery-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.team-card-foot {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line-light);
}

.team-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

/* ============================================================
   Apple-smooth Motion 鈥斺€?鍔ㄦ晥绮捐皟灞傦紙缃簬鏈熬瑕嗙洊鍩虹鍔ㄦ晥锛?   鍘熷垯锛氬揩鍑虹紦鏀躲€佽交寰洖寮广€佸彧鍔?transform/opacity銆佸彲鎵撴柇
   ============================================================ */

/* ---- 椤甸潰杩囨浮锛氬垎灞傛贰鍏?+ 杞诲井涓婃诞缂╂斁 ---- */

html.js-anim body {
  transition: opacity var(--dur-2) var(--ease-ios), transform var(--dur-2) var(--ease-ios);
}

html.js-anim body.page-exit {
  opacity: 0;
  transform: translateY(-10px) scale(0.995);
}

html.js-anim body.page-ready {
  opacity: 1;
}

/* ---- 棣栧睆鍏ュ満锛氬揩鍑虹紦鏀?---- */

html.js-anim .hero-content > *,
html.js-anim .admin-hero > * {
  animation: tz-rise 0.55s var(--ease-ios) both;
}

html.js-anim .hero-content > *:nth-child(2) { animation-delay: 0.08s; }
html.js-anim .hero-content > *:nth-child(3) { animation-delay: 0.15s; }
html.js-anim .hero-content > *:nth-child(4) { animation-delay: 0.22s; }
html.js-anim .hero-content > *:nth-child(5) { animation-delay: 0.29s; }
html.js-anim .admin-hero > *:nth-child(2) { animation-delay: 0.1s; }

/* ---- 婊氬姩鏄剧幇锛氳交寰缉鏀?+ 涓婃诞 ---- */

html.js-anim .reveal {
  transform: translateY(18px) scale(0.99);
  transition: opacity 0.6s var(--ease-ios), transform 0.6s var(--ease-ios);
}

html.js-anim .reveal.in {
  transform: none;
}

html.js-anim .section-heading h2::after {
  transition: transform 0.5s var(--ease-ios) 0.1s;
}

/* ---- 寮圭獥涓庤彍鍗?---- */

.auth-overlay {
  animation: tz-fade 0.28s var(--ease-ios) both;
}

.auth-dialog {
  animation: tz-pop 0.36s var(--ease-spring) both;
}

@keyframes tz-pop {
  from {
    opacity: 0;
    transform: translateY(14px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.auth-menu {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(16px) saturate(1.1);
  -webkit-backdrop-filter: blur(16px) saturate(1.1);
  box-shadow: 0 18px 44px rgba(14, 20, 32, 0.2), 0 2px 8px rgba(14, 20, 32, 0.08);
  transform: translateY(-10px);
  transition: opacity 0.24s var(--ease-ios), transform 0.24s var(--ease-ios),
    visibility 0.24s;
}

.auth-menu.open {
  transform: none;
}

.auth-toast {
  transition: opacity 0.24s var(--ease-ios), transform 0.3s var(--ease-spring),
    visibility 0.24s;
}

/* ---- 浜や簰鍏冪礌锛氱粺涓€鑺傚 + 鎸夊帇鍙嶉 ---- */

.button {
  transition: background var(--dur-1) var(--ease-ios), border-color var(--dur-1) var(--ease-ios),
    color var(--dur-1) var(--ease-ios), transform var(--dur-1) var(--ease-ios),
    box-shadow var(--dur-1) var(--ease-ios);
}

.button:active {
  transform: scale(0.97);
}

.auth-btn,
.auth-tab,
.auth-provider,
.admin-tab {
  transition-timing-function: var(--ease-ios);
  transition-duration: var(--dur-1);
}

.auth-btn:active,
.admin-tab:active {
  transform: scale(0.96);
}

.site-nav a::after {
  transition: transform 0.24s var(--ease-ios);
}

.site-header {
  transition: box-shadow 0.3s var(--ease-ios);
}

.feature-card,
.team-card {
  transition: transform 0.32s var(--ease-ios), border-color 0.32s var(--ease-ios),
    box-shadow 0.32s var(--ease-ios);
}

.feature-card:hover,
.team-card:hover {
  transform: translateY(-4px);
}

.card-image img {
  transition: transform 0.55s var(--ease-out-soft);
}

.race-row {
  transition: background-color 0.24s var(--ease-ios);
}

.footer-col a {
  transition: color var(--dur-1) var(--ease-ios), padding-left 0.22s var(--ease-ios);
}

.row-actions button,
.small-file-action,
.penalty-list button,
.media-row button,
.replay-download,
.auth-menu-item,
.local-banner-close {
  transition-timing-function: var(--ease-ios);
  transition-duration: var(--dur-1);
}

/* ---- 绉诲姩绔鑸?---- */

.site-nav {
  transition: opacity 0.26s var(--ease-ios), transform 0.26s var(--ease-ios),
    visibility 0.26s;
}

/* ---- 浼橀泤闄嶇骇锛氬噺灏戝姩鎬佹晥鏋?---- */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ============================================================
   椤甸潰鍔犺浇鍔ㄧ敾锛堟參鍔犺浇鏃惰嚜鍔ㄥ嚭鐜帮紝蹇姞杞藉畬鍏ㄦ棤鎰燂級
   ============================================================ */
.page-loader {
  position: fixed;
  inset: 0;
  z-index: 300;
  background: var(--canvas-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.26s var(--ease-ios), visibility 0.26s;
}

html.page-loading .page-loader {
  opacity: 1;
  visibility: visible;
}

.page-loader-ring {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.14);
  border-top-color: var(--gold-soft);
  animation: tz-spin 0.9s cubic-bezier(0.55, 0.15, 0.45, 0.85) infinite;
}

@keyframes tz-spin {
  to {
    transform: rotate(360deg);
  }
}

.page-loader::after {
  content: "TZCC";
  position: absolute;
  margin-top: 88px;
  color: var(--muted-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.3em;
}

/* ============================================================
   缁嗚妭鎵撶（灞?鈥斺€?婊氬姩鏉?/ 琛ㄥ崟鎺т欢 / 鐒︾偣 / 鍙嶉
   ============================================================ */

/* ---- 绮捐嚧婊氬姩鏉?---- */

::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: #c6bfb2;
  border-radius: 8px;
  border: 2px solid var(--paper);
}

::-webkit-scrollbar-thumb:hover {
  background: #a9a294;
}

.site-footer::-webkit-scrollbar-thumb,
.section.dark::-webkit-scrollbar-thumb {
  border-color: var(--canvas-deep);
}

/* ---- 鍘熺敓涓嬫媺妗嗭細鍘婚櫎榛樿绠ご锛屾敼绮捐嚧鐨勫皬灏栬 ---- */

select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238a8f9b'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 34px;
}

/* ---- 缁熶竴閿洏鐒︾偣 ---- */

:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

/* ---- 绗笁鏂圭櫥褰曟寜閽細鍝佺墝鑹插渾鐐?---- */

.auth-provider {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.auth-provider::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex: none;
}

.auth-provider.qq::before {
  background: #1670c0;
}

.auth-provider.wechat::before {
  background: #07a63e;
}

/* ---- 鎶ュ悕鎴愬姛闈㈡澘锛氬洖寮瑰叆鍦?---- */

#success-panel {
  animation: tz-pop 0.42s var(--ease-spring) both;
}

/* ---- 琛ㄥ崟閿欒鎻愮ず锛氭贰鍏?---- */

.auth-error,
#form-error {
  animation: tz-fade 0.22s var(--ease-ios) both;
}

/* ---- 绉诲姩绔《鏍忥細鏀剁獎鏂囧瓧锛岄伩鍏嶆孩鍑?---- */

@media (max-width: 640px) {
  .topbar {
    font-size: 10px;
  }

  .topbar-inner {
    gap: 10px;
  }

  .topbar-meta {
    gap: 0;
  }

  .topbar-meta a {
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* ============================================================
   鍚堜綔浼欎即涓庤禐鍔╁晢
   ============================================================ */

.sponsor-grid {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.sponsor-card {
  min-height: 168px;
  padding: 28px 26px;
  background: var(--paper-strong);
  border: 1px solid var(--line-light);
  border-top: 3px solid var(--muted-light);
  display: grid;
  align-content: space-between;
  gap: 14px;
  transition: transform 0.32s var(--ease-ios), border-color 0.32s var(--ease-ios),
    box-shadow 0.32s var(--ease-ios);
}

.sponsor-card:hover {
  transform: translateY(-4px);
  border-top-color: var(--gold);
  box-shadow: 0 14px 28px rgba(31, 35, 46, 0.1);
}

.sponsor-slot {
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--muted-light);
  text-transform: uppercase;
}

.sponsor-card p {
  margin-bottom: 0;
  color: var(--body-light);
  font-size: 13.5px;
}

.sponsor-cta {
  border-top-color: var(--gold);
  background: linear-gradient(160deg, var(--paper-strong), #f3ecdf);
}

.sponsor-cta .sponsor-slot {
  color: var(--primary);
}

@media (max-width: 980px) {
  .sponsor-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .sponsor-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   鐩稿唽锛堝墠鍙版爡鏍?+ Lightbox + 鍚庡彴绠＄悊锛?   ============================================================ */

.gallery-grid {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.gallery-card {
  margin: 0;
  background: var(--paper-strong);
  border: 1px solid var(--line-light);
  overflow: hidden;
  cursor: zoom-in;
  transition: transform 0.32s var(--ease-ios), box-shadow 0.32s var(--ease-ios);
}

.gallery-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(31, 35, 46, 0.12);
}

.gallery-card img {
  width: 100%;
  height: 240px;
  object-fit: cover;
  display: block;
}

.gallery-card figcaption {
  padding: 14px 16px 16px;
  display: grid;
  gap: 4px;
}

.gallery-card figcaption strong {
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: 15px;
}

.gallery-card figcaption span {
  color: var(--body-light);
  font-size: 12.5px;
}

/* Lightbox */

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(11, 16, 26, 0.94);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: tz-fade 0.25s var(--ease-ios) both;
}

.lightbox img {
  max-width: min(86vw, 1200px);
  max-height: 82vh;
  object-fit: contain;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.lightbox-caption {
  position: absolute;
  bottom: 26px;
  left: 0;
  right: 0;
  text-align: center;
  color: var(--body-dark);
  font-size: 14px;
  padding: 0 24px;
}

.lightbox-close {
  position: absolute;
  top: 16px;
  right: 20px;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 40px;
  line-height: 1;
  cursor: pointer;
  opacity: 0.8;
}

.lightbox-close:hover {
  opacity: 1;
}

.lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s var(--ease-ios);
}

.lightbox-nav:hover {
  background: rgba(255, 255, 255, 0.16);
}

.lightbox-nav.prev {
  left: 22px;
}

.lightbox-nav.next {
  right: 22px;
}

/* 鍚庡彴鐩稿唽绠＄悊琛?*/

.gallery-admin-list {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.gallery-admin-row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) 150px auto;
  gap: 14px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--line-light);
  background: var(--light-soft);
}

.gallery-admin-thumb {
  width: 96px;
  height: 64px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper-strong);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: var(--muted-light);
  font-size: 11px;
}

.gallery-admin-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallery-admin-fields {
  display: grid;
  gap: 8px;
}

.gallery-admin-fields input {
  width: 100%;
  height: 38px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper-strong);
  color: var(--ink);
  padding: 0 12px;
  font-family: var(--font-sans);
  font: inherit;
}

.gallery-admin-fields input:focus {
  outline: 2px solid var(--primary);
  outline-offset: 0;
}

.gallery-admin-meta {
  color: var(--muted-light);
  font-size: 12px;
}

@media (max-width: 980px) {
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery-admin-row {
    grid-template-columns: 80px minmax(0, 1fr) auto;
  }

  .gallery-admin-meta {
    display: none;
  }
}

@media (max-width: 640px) {
  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .gallery-card img {
    height: 200px;
  }

  .gallery-admin-row {
    grid-template-columns: 1fr;
  }

  .lightbox-nav.prev {
    left: 8px;
  }

  .lightbox-nav.next {
    right: 8px;
  }
}

/* 璧炲姪鍟?logo 鍥撅紙鍗″唴锛?*/

.sponsor-logo {
  width: 100%;
  height: 56px;
  object-fit: contain;
  object-position: left center;
}

.sponsor-cta .sponsor-logo {
  max-width: 70%;
}

/* 娣辫壊鑳屾櫙鑷姩鍒囨崲鐧借壊鏂囧瓧 */

.sponsor-card.sponsor-dark .sponsor-slot {
  color: rgba(255, 255, 255, 0.92);
}

.sponsor-card.sponsor-dark p {
  color: rgba(255, 255, 255, 0.78);
}

/* ============================================================
   涓汉涓績锛堝ご鍍?/ 璧勬枡椤?/ 鍙傝禌璁板綍锛?   ============================================================ */

.auth-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid rgba(201, 164, 92, 0.6);
  background: var(--navy);
  background-size: cover;
  background-position: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-soft);
  font-size: 12px;
  font-weight: 800;
  margin-right: 8px;
  flex: none;
}

.auth-user-btn {
  display: inline-flex;
  align-items: center;
}

.auth-user-name {
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-gate {
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 140px 20px 60px;
}

.profile-gate .admin-gate-card {
  max-width: 480px;
}

.profile-hero {
  border-bottom: 1px solid var(--line-light);
}

.profile-id {
  display: flex;
  align-items: center;
  gap: 22px;
}

.profile-avatar {
  width: 84px;
  height: 84px;
  font-size: 34px;
  border: 2px solid var(--gold);
  background-size: cover;
  background-position: center;
  background-color: var(--navy);
  color: var(--gold-soft);
}

.profile-hero h1 {
  margin-bottom: 8px;
  font-size: 40px;
}

.profile-stats {
  margin-bottom: 24px;
}

.profile-stats .metric {
  background: var(--paper-strong);
  border: 1px solid var(--line-light);
  border-right: 1px solid var(--line-light);
  border-top: 3px solid var(--gold);
  min-height: 130px;
  transition: transform 0.28s var(--ease-ios);
}

.profile-stats .metric:hover {
  transform: translateY(-3px);
}

.profile-panel {
  margin-bottom: 24px;
}

.profile-entries,
.profile-teams {
  margin-top: 14px;
  min-height: 60px;
}

.profile-entry-row {
  grid-template-columns: minmax(0, 1fr) minmax(180px, 0.8fr) auto auto;
}

.profile-avatar-small {
  width: 48px;
  height: 48px;
  font-size: 20px;
  border-color: var(--gold);
}

/* ============================================================
   鍚庡彴缇庡寲澧炲己
   ============================================================ */

.admin-main-page .admin-hero {
  position: relative;
  overflow: hidden;
}

.admin-main-page .admin-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), transparent 70%);
}

.admin-sidebar .admin-tab {
  position: relative;
  padding-left: 18px;
  border-left: 3px solid transparent;
}

.admin-sidebar .admin-tab::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--muted-light);
  transition: background 0.2s var(--ease-ios), transform 0.2s var(--ease-ios);
}

.admin-sidebar .admin-tab:hover::before,
.admin-sidebar .admin-tab.active::before {
  background: var(--gold-soft);
  transform: translateY(-50%) scale(1.35);
}

.admin-module-head {
  position: relative;
}

.admin-module-head::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 64px;
  height: 2px;
  background: var(--gold);
}

.admin-module-head h2 {
  position: relative;
}

.admin-panel,
.admin-form {
  position: relative;
}

.admin-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 2px;
  pointer-events: none;
  box-shadow: 0 1px 2px rgba(31, 35, 46, 0.05);
}

.admin-card {
  transition: border-color 0.24s var(--ease-ios), box-shadow 0.24s var(--ease-ios);
}

.admin-card:hover {
  border-color: #d3c8b4;
  box-shadow: 0 6px 18px rgba(31, 35, 46, 0.07);
}

.headline-grid {
  display: grid;
  gap: 18px;
}

.admin-two-column .admin-form .admin-form-head h2::after {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  margin-top: 12px;
  background: var(--gold);
}

@media (max-width: 980px) {
  .profile-entry-row {
    grid-template-columns: 1fr auto;
  }

  .profile-entry-row span:nth-of-type(2) {
    display: none;
  }
}

.brand-visual-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 18px;
}

.brand-visual-item {
  display: grid;
  gap: 10px;
}

.brand-visual-preview {
  height: 64px;
  padding: 8px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.brand-visual-preview img {
  max-width: 100%;
  max-height: 48px;
  object-fit: contain;
}

.brand-visual-preview.wide {
  height: 96px;
}

.brand-visual-preview.wide img {
  max-height: 78px;
}

.brand-visual-item label {
  display: grid;
  gap: 8px;
  color: var(--body-light);
  font-size: 13px;
  font-weight: 700;
}

.brand-visual-controls {
  display: flex;
  gap: 8px;
  align-items: center;
}

.brand-visual-controls input[type="text"] {
  flex: 1;
  min-width: 0;
  height: 40px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper);
  color: var(--ink);
  padding: 0 12px;
  font-family: var(--font-sans);
  font: inherit;
}

.brand-visual-controls input[type="text"]:focus {
  outline: 2px solid var(--primary);
  outline-offset: 0;
}

.brand-visual-controls .file-button {
  flex: none;
}

@media (max-width: 1100px) {
  .brand-visual-grid {
    grid-template-columns: 1fr;
  }
}

.page-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 20px;
}

.page-standard-grid {
  display: grid;
  grid-template-columns: 90px 1fr 2fr;
  gap: 14px;
  margin-top: 20px;
}

.page-standard-grid .span-text {
  grid-column: span 2;
}

.page-content-list {
  display: grid;
  gap: 12px;
  margin-top: 20px;
}

.page-series-list {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.page-series-row {
  display: grid;
  grid-template-columns: 1.4fr auto 0.8fr 1fr 2fr;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line-light);
  background: var(--light-soft);
}

.page-series-row input {
  width: 100%;
  height: 40px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper-strong);
  color: var(--ink);
  padding: 0 12px;
  font-family: var(--font-sans);
  font: inherit;
}

.page-series-row input:focus {
  outline: 2px solid var(--primary);
  outline-offset: 0;
}

@media (max-width: 1100px) {
  .page-series-row {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .page-series-row {
    grid-template-columns: 1fr;
  }
}

.page-content-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line-light);
  background: var(--light-soft);
}

.page-content-row input {
  width: 100%;
  height: 40px;
  border: 1px solid var(--line-light);
  border-radius: 2px;
  background: var(--paper-strong);
  color: var(--ink);
  padding: 0 12px;
  font-family: var(--font-sans);
  font: inherit;
}

.page-content-row input[type="color"] {
  width: 52px;
  padding: 4px;
  cursor: pointer;
}

.page-content-row input:focus {
  outline: 2px solid var(--primary);
  outline-offset: 0;
}

.page-check-row {
  display: flex !important;
  flex-direction: row;
  align-items: center;
  gap: 10px !important;
  color: var(--body-light);
  font-size: 13px;
  font-weight: 700;
}

.page-check-row input {
  width: 18px;
  height: 18px;
}

@media (max-width: 1100px) {
  .page-metric-grid,
  .page-standard-grid {
    grid-template-columns: 1fr 1fr;
  }

  .page-standard-grid .span-text {
    grid-column: span 2;
  }

  .page-content-row {
    grid-template-columns: 1fr 1fr;
  }

  .page-content-row .file-button {
    width: auto;
  }
}

@media (max-width: 640px) {
  .page-metric-grid,
  .page-standard-grid,
  .page-content-row {
    grid-template-columns: 1fr;
  }

  .page-standard-grid .span-text {
    grid-column: auto;
  }
}

/* ============================================================
   瑙嗚绮句慨灞?鈥斺€?姘涘洿鍏?/ 閲戣壊缁嗚妭 / 鍏夊奖灞傛
   锛堢函瑙嗚澧炲己锛屼笉褰卞搷甯冨眬涓庡姛鑳斤級
   ============================================================ */

/* ---- Hero 姘涘洿鍏夛細鏈辩孩涓庨噾鑹茬殑鏌斿拰鍏夋枒 ---- */

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(52% 60% at 78% 18%, rgba(158, 29, 46, 0.28), transparent 70%),
    radial-gradient(40% 50% at 12% 82%, rgba(168, 134, 61, 0.18), transparent 72%);
}

.hero-content {
  z-index: 2;
}

.hero h1::after {
  content: "";
  display: block;
  width: 74px;
  height: 3px;
  margin-top: 22px;
  background: linear-gradient(90deg, var(--gold-soft), transparent);
}

.hero-copy {
  text-shadow: 0 1px 12px rgba(11, 16, 26, 0.5);
}

/* ---- 鐪夋爣锛氶噾鑹茬煭绾?---- */

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.eyebrow::before {
  content: "";
  width: 18px;
  height: 2px;
  background: var(--gold);
  flex: none;
}

/* ---- 涓绘寜閽細娓愬彉 + 椤堕儴楂樺厜 ---- */

.button.primary {
  background: linear-gradient(180deg, #b32236 0%, #9e1d2e 55%, #8a1626 100%);
  border: 1px solid #8a1626;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 2px 8px rgba(158, 29, 46, 0.25);
}

.button.primary:hover,
.button.primary:focus-visible {
  background: linear-gradient(180deg, #c02a3e 0%, #a81f31 55%, #93162a 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 8px 20px rgba(158, 29, 46, 0.35);
}

.button.ghost {
  backdrop-filter: blur(2px);
}

/* ---- 鍗＄墖锛氱粺涓€鍏夊奖涓庨噾杈?hover ---- */

.feature-card,
.team-card,
.sponsor-card,
.gallery-card,
.profile-stats .metric {
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.03), transparent 55%),
    var(--paper-strong);
}

.section.dark .feature-card {
  background:
    linear-gradient(170deg, rgba(201, 164, 92, 0.05), transparent 60%),
    var(--navy-card);
}

.feature-card {
  box-shadow: 0 1px 2px rgba(11, 16, 26, 0.06);
}

.feature-card:hover,
.team-card:hover {
  box-shadow: 0 18px 36px rgba(11, 16, 26, 0.16), 0 0 0 1px rgba(201, 164, 92, 0.22);
}

/* ---- 鏁版嵁鎸囨爣锛氶噾鑹叉笎鍙樻暟瀛?---- */

@supports (background-clip: text) or (-webkit-background-clip: text) {
  .metric strong {
    background: linear-gradient(135deg, #e8cf9a 0%, var(--gold-soft) 45%, #8f6f33 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
}

.metric {
  position: relative;
  overflow: hidden;
}

.metric::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--gold), transparent 80%);
}

/* ---- 琛ㄦ牸锛氬渾瑙掍笌灞傛 ---- */

.table-wrap {
  border-radius: 6px;
  box-shadow: 0 2px 10px rgba(11, 16, 26, 0.05), 0 10px 30px rgba(11, 16, 26, 0.04);
}

.schedule-table thead th:first-child {
  border-top-left-radius: 5px;
}

.schedule-table thead th:last-child {
  border-top-right-radius: 5px;
}

/* ---- 娣辫壊鍖哄潡锛氭瀬娣￠噾鑹茬汗鐞?---- */

.section.dark {
  position: relative;
  background:
    radial-gradient(70% 90% at 50% 0%, rgba(201, 164, 92, 0.04), transparent 60%),
    var(--navy);
}

.section.dark::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201, 164, 92, 0.5), transparent);
}

/* ---- CTA 妯甫锛氭湵绾㈡笎鍙?+ 鍏夋枒 ---- */

.cta-band {
  background:
    radial-gradient(60% 120% at 85% 20%, rgba(255, 255, 255, 0.14), transparent 55%),
    radial-gradient(50% 100% at 10% 90%, rgba(0, 0, 0, 0.18), transparent 60%),
    linear-gradient(120deg, #b32236, #9e1d2e);
  position: relative;
  overflow: hidden;
}

.cta-band::after {
  content: "";
  position: absolute;
  top: -40%;
  right: -10%;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.12), transparent 65%);
  pointer-events: none;
}

/* ---- 娴呰壊 Section 椤堕儴閲戠嚎 ---- */

.section.light {
  position: relative;
}

.section.light::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(168, 134, 61, 0.28), transparent);
}

/* ---- 琛ㄥ崟鐒︾偣鍏夋檿 ---- */

.admin-form input:focus,
.admin-form select:focus,
.auth-field input:focus,
.auth-field select:focus,
.auth-field textarea:focus,
.page-content-row input:focus,
.page-series-row input:focus,
.gallery-admin-fields input:focus {
  box-shadow: 0 0 0 3px rgba(158, 29, 46, 0.12);
}

/* ---- 椤佃剼锛氭洿娣辩殑灞傛 ---- */

.site-footer {
  background:
    radial-gradient(60% 100% at 50% 0%, rgba(201, 164, 92, 0.06), transparent 60%),
    var(--navy);
}

/* ---- 閲戠嚎鍒嗛殧鏍囬锛坰ection-heading 宸叉湁锛屽鍔犻暱搴﹀彉鍖栵級---- */

.section-heading h2::after {
  box-shadow: 0 0 12px rgba(201, 164, 92, 0.35);
}

/* ---- 椤舵爮涓庨〉澶达細寰珮鍏?---- */

.site-header {
  background: rgba(255, 255, 255, 0.97);
}

.topbar {
  background: linear-gradient(90deg, var(--navy), #121a2b 60%, var(--navy));
}

/* ---- 鐩稿唽鍗＄墖鍥剧墖 hover 杞诲井鏀惧ぇ ---- */

.gallery-card img {
  transition: transform 0.45s var(--ease-out-soft);
}

.gallery-card:hover img {
  transform: scale(1.04);
}

/* ---- 鍊掕鏃堕潰鏉匡細鐜荤拑楂樺厜 ---- */

.countdown {
  background: linear-gradient(170deg, rgba(16, 22, 36, 0.82), rgba(11, 16, 26, 0.66));
  box-shadow: 0 10px 30px rgba(11, 16, 26, 0.35);
}

/* ============================================================
   Apple 椋庡懗绮句慨灞傦紙涓婚鍖栵級鈥斺€?姣涚幓鐠?/ 澶у渾瑙?/ 鑳跺泭鎸夐挳 / 鍏夋檿
   鐢?<html class="theme-apple"> 婵€娲伙紱涓嶅甫姝?class 鍗充负銆屽畼鏂瑰師鐗堛€嶄富棰?   ============================================================ */

/* ---- 椤甸潰搴曞厜锛氭瀬娣＄殑閲戜笌绾㈠緞鍚戝厜鏅曪紝鍥哄畾浜庤鍙?---- */

html.theme-apple body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(46% 38% at 88% 4%, rgba(168, 134, 61, 0.05), transparent 70%),
    radial-gradient(40% 32% at 4% 36%, rgba(158, 29, 46, 0.04), transparent 70%);
}

/* ---- 椤靛ご锛氳嫻鏋滃紡姣涚幓鐠?---- */

html.theme-apple .site-header {
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(18px) saturate(1.4);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
  border-bottom: 1px solid rgba(31, 35, 46, 0.07);
}

html.theme-apple .site-header.scrolled {
  background: rgba(255, 255, 255, 0.85);
}

/* ---- 瀵艰埅椤癸細鑳跺泭 hover ---- */

html.theme-apple .site-nav a {
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  transition: background 0.22s var(--ease-ios), color 0.22s var(--ease-ios);
}

html.theme-apple .site-nav a:hover,
html.theme-apple .site-nav a:focus-visible {
  background: rgba(31, 35, 46, 0.06);
}

html.theme-apple .site-nav a::after {
  bottom: 8px;
}

/* ---- 鍗＄墖锛氬ぇ鍦嗚 + 鐜荤拑璐ㄦ劅锛堟洿鍦嗘鼎锛?---- */

html.theme-apple .feature-card,
html.theme-apple .team-card,
html.theme-apple .sponsor-card,
html.theme-apple .gallery-card,
html.theme-apple .profile-stats .metric,
html.theme-apple .admin-form,
html.theme-apple .admin-panel,
html.theme-apple .admin-card {
  border-radius: 18px;
}

html.theme-apple .feature-card,
html.theme-apple .team-card,
html.theme-apple .sponsor-card,
html.theme-apple .gallery-card {
  background: rgba(255, 255, 255, 0.88); /* 楂樹笉閫忔槑锛氭祬鑹查〉闈笂鐨勬枃瀛楀姣斿害浼樺厛 */
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(31, 35, 46, 0.08);
}

html.theme-apple .admin-form,
html.theme-apple .admin-panel,
html.theme-apple .admin-card {
  background: rgba(255, 255, 255, 0.94);
}

html.theme-apple .section.dark .feature-card {
  background: rgba(23, 31, 49, 0.72);
  border: 1px solid rgba(201, 164, 92, 0.14);
}

html.theme-apple .card-image,
html.theme-apple .gallery-card img {
  border-radius: 17px 17px 0 0;
}

html.theme-apple .team-card-media {
  border-radius: 17px 17px 0 0;
}

/* ---- 鎸夐挳锛氳兌鍥婂舰 ---- */

html.theme-apple .button {
  border-radius: 999px;
}

html.theme-apple .button.primary {
  border-radius: 999px;
}

html.theme-apple .compact-button {
  border-radius: 999px;
}

/* ---- 琛ㄦ牸瀹瑰櫒锛氭洿澶у渾瑙?---- */

html.theme-apple .table-wrap {
  border-radius: 16px;
  overflow: hidden;
}

/* ---- 寮圭獥涓庤彍鍗曪細鐜荤拑 ---- */

html.theme-apple .auth-overlay {
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

html.theme-apple .auth-dialog,
html.theme-apple .team-dialog,
html.theme-apple .admin-gate-card,
html.theme-apple .login-card {
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(22px) saturate(1.3);
  -webkit-backdrop-filter: blur(22px) saturate(1.3);
}

html.theme-apple .auth-menu {
  border-radius: 16px;
  overflow: hidden;
}

/* ---- 琛ㄥ崟鎺т欢鍦嗚 ---- */

html.theme-apple .admin-form input,
html.theme-apple .admin-form select,
html.theme-apple .auth-field input,
html.theme-apple .auth-field select,
html.theme-apple .auth-field textarea,
html.theme-apple .page-content-row input,
html.theme-apple .page-series-row input,
html.theme-apple .gallery-admin-fields input {
  border-radius: 12px;
}

/* ---- 寰界珷/鐘舵€?鍦嗚 ---- */

html.theme-apple .status {
  border-radius: 999px;
}

html.theme-apple .team-code,
html.theme-apple .team-platform,
html.theme-apple .admin-tab {
  border-radius: 10px;
}

/* ---- 鏍囬鎺掔増锛氭洿鏉惧紱鐨勮嫻鏋滃紡鐣欑櫧 ---- */

html.theme-apple h1 {
  letter-spacing: -0.012em;
}

html.theme-apple h2 {
  letter-spacing: -0.008em;
}

html.theme-apple .hero h1 {
  font-size: 66px;
}

html.theme-apple .hero-copy {
  color: rgba(233, 235, 241, 0.86);
}

/* ---- 鍊掕鏃朵笌閫氱煡鏉″渾瑙?---- */

html.theme-apple .countdown {
  border-radius: 16px;
}

html.theme-apple .notice-tag {
  border-radius: 999px;
}

/* ---- 绉诲姩绔鑸兌鍥婁慨姝?---- */

@media (max-width: 980px) {
  html.theme-apple .site-nav a {
    min-height: 48px;
    padding: 0 16px;
    border-radius: 12px;
    border-bottom: 0;
    margin-bottom: 2px;
  }

  html.theme-apple .hero h1 {
    font-size: 44px;
  }
}

@media (max-width: 640px) {
  html.theme-apple .hero h1 {
    font-size: 34px;
  }
}

/* ============================================================
   澶栬鍒囨崲锛堝師鐗?/ 鑻规灉椋庡懗锛?   ============================================================ */

.theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid rgba(201, 164, 92, 0.5);
  background: transparent;
  color: var(--gold-soft);
  font-family: var(--font-sans);
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  padding: 4px 12px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.2s var(--ease-ios), color 0.2s var(--ease-ios);
}

.theme-toggle:hover {
  background: var(--gold);
  color: var(--navy);
}

.theme-toggle-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex: none;
  background: currentColor;
}

.footer-theme {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
}

/* ============================================================
   Win11 椋庡懗瀵艰埅 鈥斺€?鎮诞姣涚幓鐠冭嵂涓告潯 / 灞呬腑瀵艰埅
   ============================================================ */

:root {
  --r-scale: 1;
  --glass-blur: 18px;
  --glass-alpha: 0.72;
}


.site-header {
  top: 46px;
  left: 50%;
  transform: translateX(-50%);
  width: min(calc(100% - 40px), var(--max));
  height: 64px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(16, 20, 32, 0.9); /* 楂樹笉閫忔槑搴︼細娴呰壊椤甸潰涓婃枃瀛楀姣斿害渚濈劧娓呮櫚 */
  backdrop-filter: blur(22px) saturate(1.5);
  -webkit-backdrop-filter: blur(22px) saturate(1.5);
  box-shadow: 0 10px 34px rgba(11, 16, 26, 0.22);
  padding: 0 20px;
}

.site-header.scrolled {
  background: rgba(14, 18, 30, 0.94);
}

.site-nav {
  margin: 0 auto;
}

.site-nav a {
  color: rgba(255, 255, 255, 0.94);
  letter-spacing: 0.03em;
}

.site-nav a:hover,
.site-nav a:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
}

.site-nav a::after {
  background: var(--gold-soft);
  bottom: 10px;
}

.nav-button span,
.nav-button span::before,
.nav-button span::after {
  background: rgba(255, 255, 255, 0.9);
}

/* 浜岀骇椤甸潰锛堝悗鍙?/ 璁剧疆 / 鎶ュ悕绛夛級锛氬鑸潯鏀逛负銆岃繑鍥炪€?*/

.site-nav.nav-return {
  margin-left: auto;
  margin-right: 0;
}

.site-nav.nav-return a, .page-sub .site-nav.nav-return a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-weight: 800;
}

.site-nav.nav-return a::before {
  content: "鈥?;
  font-size: 20px;
  line-height: 1;
  transform: translateY(-1px);
  color: var(--gold-soft);
}

@media (max-width: 980px) {
  .site-nav.nav-return {
    position: static;
    transform: none;
    width: auto;
    margin: 0 0 0 auto;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    display: flex;
  }

  .site-nav.nav-return a, .page-sub .site-nav.nav-return a {
    color: #fff;
  }
}

/* 绉诲姩绔彍鍗曪細娣辫壊姣涚幓鐠?*/

@media (max-width: 980px) {
  .site-header {
    left: 0;
    transform: none;
    width: 100%;
    border-radius: 0;
    top: 36px;
    padding: 0 24px;
  }

  .site-nav {
    position: fixed;
    top: 100px;
    left: 0;
    right: 0;
    width: auto;
    margin: 0 16px;
    border-radius: 16px;
    background: rgba(18, 23, 36, 0.9);
    backdrop-filter: blur(24px) saturate(1.5);
    -webkit-backdrop-filter: blur(24px) saturate(1.5);
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 20px 50px rgba(11, 16, 26, 0.4);
  }

  .site-nav a {
    color: rgba(255, 255, 255, 0.88);
  }

  .site-nav a:hover,
  .site-nav a:focus-visible {
    background: rgba(255, 255, 255, 0.12);
  }
}

/* ============================================================
   鐣岄潰鍦嗘鼎搴︼紙--r-scale 鍙皟锛変笌鍖哄潡杩囨浮鍏夊甫
   ============================================================ */

/* 鍗＄墖 / 闈㈡澘锛氶殢鍦嗘鼎搴︾缉鏀?*/

html.theme-apple .feature-card,
html.theme-apple .team-card,
html.theme-apple .sponsor-card,
html.theme-apple .gallery-card,
html.theme-apple .profile-stats .metric,
html.theme-apple .admin-form,
html.theme-apple .admin-panel,
html.theme-apple .admin-card {
  border-radius: calc(26px * var(--r-scale));
}

.feature-card,
.team-card,
.sponsor-card,
.gallery-card,
.profile-stats .metric,
.admin-form,
.admin-panel,
.admin-card {
  border-radius: calc(12px * var(--r-scale));
}

html.theme-apple .table-wrap {
  border-radius: calc(20px * var(--r-scale));
}

.table-wrap {
  border-radius: calc(12px * var(--r-scale));
}

html.theme-apple .auth-dialog,
html.theme-apple .team-dialog,
html.theme-apple .admin-gate-card,
html.theme-apple .login-card {
  border-radius: calc(26px * var(--r-scale));
}

.auth-dialog,
.team-dialog,
.admin-gate-card,
.login-card {
  border-radius: calc(14px * var(--r-scale));
}

html.theme-apple .auth-menu {
  border-radius: calc(20px * var(--r-scale));
}

.auth-menu {
  border-radius: calc(12px * var(--r-scale));
}

html.theme-apple .admin-form input,
html.theme-apple .auth-field input,
html.theme-apple .auth-field select,
html.theme-apple .auth-field textarea,
html.theme-apple .page-content-row input,
html.theme-apple .page-series-row input,
html.theme-apple .gallery-admin-fields input {
  border-radius: calc(14px * var(--r-scale));
}

.admin-form input,
.admin-form select,
.auth-field input,
.auth-field select,
.auth-field textarea,
.page-content-row input,
.page-series-row input,
.gallery-admin-fields input {
  border-radius: calc(8px * var(--r-scale));
}

/* 鍖哄潡琛旀帴锛氭笎鍙樺厜甯︼紙鏇夸唬鍗曠嚎锛?*/

.section.dark::before,
.section.light::before {
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(201, 164, 92, 0.55), transparent);
  box-shadow: 0 0 18px rgba(201, 164, 92, 0.18);
}

/* 鍏夋爣鍏夋晥璺熼殢鐐癸紙妗岄潰鎸囬拡璁惧锛?*/

@media (hover: hover) and (pointer: fine) {
  .cursor-glow {
    position: fixed;
    left: 0;
    top: 0;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(201, 164, 92, 0.09), transparent 62%);
    pointer-events: none;
    z-index: 0;
    mix-blend-mode: screen;
    opacity: 0;
    transition: opacity 0.6s ease;
  }

  .cursor-glow.on {
    opacity: 1;
  }

  @media (prefers-reduced-motion: reduce) {
    .cursor-glow {
      display: none;
    }
  }
}

/* 鍦嗘鼎搴﹁缃粦鍧?*/

.radius-setting {
  display: grid;
  gap: 10px;
}

.radius-setting input[type="range"] {
  width: 100%;
  accent-color: var(--primary);
}

.radius-setting .radius-value {
  color: var(--body-light);
  font-size: 13px;
  font-weight: 700;
}

/* ============================================================
   浜岀骇椤甸潰锛堣缃?鍚庡彴绛夛級鏋佺畝椤堕儴锛氬彧鐣欍€岃繑鍥為椤点€?   ============================================================ */

.page-sub .brand {
  display: none; /* 鍘绘帀 logo锛屽彧鐣欒繑鍥炴寜閽?*/
}

.page-sub .site-header {
  width: auto;
  min-width: 0;
  max-width: none;
  padding: 0 20px 0 8px;
  left: auto;
  right: 20px; /* 闈犲乏璐磋竟 */
  transform: none;
}

.page-sub .site-nav {
  margin: 0;
}

.page-sub .topbar-meta .auth-area,
.page-sub .topbar-meta .theme-toggle,
.page-sub .topbar-meta .fullscreen-toggle {
  display: none !important; /* 鍘绘帀鍙充笂瑙掑浘鏍囷紙璐﹀彿鑿滃崟/鍒囨崲澶栬/鍏ㄥ睆锛?*/
}

@media (max-width: 980px) {
  .page-sub .site-header {
    width: auto;
    padding: 0 16px 0 6px;
    border-radius: 16px;
    left: auto;
    right: 12px;
    transform: none;
  }
}

/* 椤佃剼澶栬鍒囨崲锛氭祬鐧介珮瀵规瘮鏂囧瓧 */

.footer-theme {
  color: rgba(233, 235, 241, 0.94);
}

.footer-theme .theme-toggle {
  color: var(--gold-soft);
  border-color: rgba(201, 164, 92, 0.65);
}

.footer-theme .theme-toggle:hover {
  color: var(--navy);
}

/* ============================================================
   涓婚鍒囨崲杩囨浮 / 鍏ㄥ睆娌夋蹈 / 鐢靛奖鎰熷姩鏁?   ============================================================ */

/* ---- 涓婚鍒囨崲杩囨浮鐢婚潰锛氭繁鑹查伄缃?+ 鍝佺墝瀛?---- */

/* theme-switch-overlay replaced by crystal unveil */





@keyframes tz-breathe {
  0%, 100% { opacity: 0.55; }
  50% { opacity: 1; }
}

/* ---- 鍏ㄥ睆鎸夐挳锛氣浂 鍥炬爣 ---- */

.fs-icon {
  position: relative;
  width: 11px;
  height: 11px;
  border: 1.6px solid currentColor;
  border-radius: 2px;
  flex: none;
  opacity: 0.9;
}

.fs-icon::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 3px;
  width: 6px;
  height: 6px;
  border-right: 1.6px solid currentColor;
  border-top: 1.6px solid currentColor;
}

/* ---- 鍏ㄥ睆鎬侊細椤舵爮鏀惰捣銆佸鑸潯璐撮《銆佸唴瀹规敹绱?---- */

html.page-fullscreen .topbar {
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.3s var(--ease-ios), opacity 0.3s var(--ease-ios);
}

html.page-fullscreen .site-header {
  top: 12px;
  box-shadow: 0 14px 40px rgba(11, 16, 26, 0.3);
}

html.page-fullscreen .admin-hero {
  padding-top: 128px;
}

html.page-fullscreen .login-main {
  padding-top: 120px;
}

/* ---- Hero 鐢靛奖鎰燂細杩涘叆鏃剁紦鎱㈠洖姝ｏ紙Ken Burns 鍑忓急鐗堬級 ---- */

.home-hero > img,
.schedule-hero > img {
  animation: hero-settle 20s var(--ease-out-soft) both;
  will-change: transform;
}

@keyframes hero-settle {
  from {
    transform: scale(1.07) translateY(-1.5%);
  }
  to {
    transform: scale(1);
  }
}

/* ---- Hero 标题：金色文字流光（进入时流光 + 周期性呼吸流光） ---- */

.hero h1 {
  position: relative;
  overflow: hidden;
}

.hero h1::before {
  content: attr(data-title);
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  font: inherit;
  letter-spacing: inherit;
  background: linear-gradient(
    110deg,
    transparent 0%,
    transparent 30%,
    rgba(255, 228, 168, 0.55) 46%,
    rgba(201, 164, 92, 0.95) 50%,
    rgba(255, 228, 168, 0.55) 54%,
    transparent 70%,
    transparent 100%
  );
  background-size: 260% 100%;
  background-position: 130% 0;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: hero-title-flow 2.2s var(--ease-out-soft) 0.6s both, hero-title-breathe 7s ease-in-out 3s infinite;
}

@keyframes hero-title-flow {
  0% {
    background-position: 130% 0;
  }
  100% {
    background-position: -130% 0;
  }
}

@keyframes hero-title-breathe {
  0%, 100% {
    background-position: -130% 0;
  }
  50% {
    background-position: 30% 0;
  }
}

/* ---- 鑷畾涔夋粴鍔ㄦ潯鍦ㄥ叏灞忔€佹洿缁嗚吇 ---- */

html.page-fullscreen ::-webkit-scrollbar {
  width: 8px;
}

/* ---- 鍑忓皯鍔ㄦ€佹晥鏋滄椂鍏抽棴鐢靛奖鎰熷姩鏁?---- */

@media (prefers-reduced-motion: reduce) {
  .home-hero > img,
  .schedule-hero > img,
  .hero h1::before {
    animation: none;
    transform: none;
  }

  
}

/* ------------------------------------------------------------------
   Dark-area text brighten (topbar / footer)
   ------------------------------------------------------------------ */

.topbar { color: rgba(233, 235, 241, 0.88); }
.topbar-meta a:not(.auth-menu-item) { color: rgba(233, 235, 241, 0.92); }
.topbar-meta a:hover { color: var(--gold-soft); }
.footer-bottom { color: rgba(233, 235, 241, 0.8); }
.footer-brand p { color: rgba(233, 235, 241, 0.78); }
.footer-col a { color: rgba(233, 235, 241, 0.82); }
.footer-col a:hover { color: var(--gold-soft); }
.footer-col h4 { color: #fff; }
.footer-brand .footer-en { color: var(--gold-soft); }
.local-banner { color: rgba(233, 235, 241, 0.92); }
/* ============================================================
   明暗两套模式（html.theme-dark）与苹果毛玻璃参数（--glass-*）
   ============================================================ */

/* ---- 暗夜模式：深色表面变量（白天/暗夜为独立维度，可与外观叠加） ---- */

html.theme-dark {
  --paper: #12161f;
  --paper-strong: #1a2030;
  --ink: #e9ebf1;
  --body-light: #b6bcc9;
  --muted-light: #7e8494;
  --line-light: #262f42;
  --light-soft: #1a2030;
}

html.theme-dark body {
  background: var(--paper);
  color: var(--ink);
}

/* ---- 暗夜微调：少量硬编码浅色的补丁 ---- */

html.theme-dark .schedule-table tbody tr:hover td,
html.theme-dark .clickable-race-row:hover td {
  background: rgba(255, 255, 255, 0.05);
}

html.theme-dark .selected-row td {
  background: rgba(158, 29, 46, 0.22);
}

html.theme-dark ::-webkit-scrollbar-thumb {
  background: #39435a;
}

html.theme-dark ::-webkit-scrollbar-thumb:hover {
  background: #4a566f;
}

html.theme-dark .status.soon {
  color: #9aa3b1;
}

html.theme-dark .status.final {
  color: #909aab;
}

html.theme-dark .auth-menu {
  background: rgba(23, 30, 46, 0.92);
  border: 1px solid var(--line-light);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.28);
}

/* ---- 苹果风味：全部表面统一使用 --glass-* 参数（毛玻璃可调） ---- */

html.theme-apple .site-header {
  background: rgba(255, 255, 255, var(--glass-alpha));
  border: 1px solid rgba(31, 35, 46, 0.08);
  backdrop-filter: blur(var(--glass-blur)) saturate(1.4);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(1.4);
}

html.theme-apple .site-header.scrolled {
  background: rgba(255, 255, 255, min(0.97, calc(var(--glass-alpha) + 0.13)));
}

html.theme-apple .feature-card,
html.theme-apple .team-card,
html.theme-apple .sponsor-card,
html.theme-apple .gallery-card,
html.theme-apple .profile-stats .metric,
html.theme-apple .admin-form,
html.theme-apple .admin-panel,
html.theme-apple .admin-card {
  background: rgba(255, 255, 255, var(--glass-alpha));
  backdrop-filter: blur(var(--glass-blur)) saturate(1.2);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(1.2);
  border: 1px solid rgba(31, 35, 46, 0.08);
}

html.theme-apple .section.dark .feature-card {
  background: rgba(23, 31, 49, var(--glass-alpha));
}

html.theme-apple .auth-dialog,
html.theme-apple .team-dialog,
html.theme-apple .admin-gate-card,
html.theme-apple .login-card {
  background: rgba(255, 255, 255, var(--glass-alpha));
  backdrop-filter: blur(calc(var(--glass-blur) * 1.4)) saturate(1.3);
  -webkit-backdrop-filter: blur(calc(var(--glass-blur) * 1.4)) saturate(1.3);
}

html.theme-apple .auth-menu {
  background: rgba(255, 255, 255, var(--glass-alpha));
  backdrop-filter: blur(var(--glass-blur)) saturate(1.1);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(1.1);
}

html.theme-apple .auth-overlay {
  backdrop-filter: blur(calc(var(--glass-blur) * 0.5));
  -webkit-backdrop-filter: blur(calc(var(--glass-blur) * 0.5));
}

html.theme-apple .countdown {
  background: rgba(11, 16, 26, var(--glass-alpha));
  backdrop-filter: blur(var(--glass-blur)) saturate(1.2);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(1.2);
}

@media (max-width: 980px) {
  html.theme-apple .site-nav {
    background: rgba(255, 255, 255, var(--glass-alpha));
    backdrop-filter: blur(var(--glass-blur)) saturate(1.4);
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(1.4);
    border: 1px solid rgba(31, 35, 46, 0.08);
  }

  html.theme-apple .site-nav a {
    color: rgba(31, 35, 46, 0.85);
  }

  html.theme-apple .site-nav a:hover,
  html.theme-apple .site-nav a:focus-visible {
    background: rgba(31, 35, 46, 0.06);
  }
}

/* ---- 暗夜 + 苹果：玻璃换深色调 ---- */

html.theme-dark.theme-apple .site-header {
  background: rgba(24, 31, 50, var(--glass-alpha));
  border: 1px solid rgba(233, 235, 241, 0.12);
}

html.theme-dark.theme-apple .site-header.scrolled {
  background: rgba(24, 31, 50, min(0.97, calc(var(--glass-alpha) + 0.12)));
}

html.theme-dark.theme-apple .feature-card,
html.theme-dark.theme-apple .team-card,
html.theme-dark.theme-apple .sponsor-card,
html.theme-dark.theme-apple .gallery-card,
html.theme-dark.theme-apple .profile-stats .metric,
html.theme-dark.theme-apple .admin-form,
html.theme-dark.theme-apple .admin-panel,
html.theme-dark.theme-apple .admin-card {
  background: rgba(24, 31, 50, var(--glass-alpha));
  border: 1px solid rgba(233, 235, 241, 0.08);
}

html.theme-dark.theme-apple .auth-dialog,
html.theme-dark.theme-apple .team-dialog,
html.theme-dark.theme-apple .admin-gate-card,
html.theme-dark.theme-apple .login-card {
  background: rgba(24, 31, 50, var(--glass-alpha));
}

html.theme-dark.theme-apple .auth-menu {
  background: rgba(24, 31, 50, var(--glass-alpha));
}

@media (max-width: 980px) {
  html.theme-dark.theme-apple .site-nav {
    background: rgba(24, 31, 50, var(--glass-alpha));
    border: 1px solid rgba(233, 235, 241, 0.1);
  }

  html.theme-dark.theme-apple .site-nav a {
    color: rgba(233, 235, 241, 0.85);
  }

  html.theme-dark.theme-apple .site-nav a:hover,
  html.theme-dark.theme-apple .site-nav a:focus-visible {
    background: rgba(233, 235, 241, 0.08);
  }

  html.theme-dark .site-nav {
    background: rgba(18, 23, 36, 0.94);
  }
}

/* ---- 设置面板：明暗切换行 + 玻璃参数（仅苹果风味显示） ---- */

.theme-mode-row {
  display: grid;
  gap: 10px;
}

.dark-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid rgba(201, 164, 92, 0.5);
  background: transparent;
  color: var(--gold-soft);
  font-family: var(--font-sans);
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  padding: 4px 12px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.2s var(--ease-ios), color 0.2s var(--ease-ios);
}

.dark-toggle:hover {
  background: var(--gold);
  color: var(--navy);
}

.dark-toggle span {
  font-size: 13px;
  line-height: 1;
}

/* 明暗切换图标：太阳 / 月亮（随暗夜状态切换） */
.dark-icon {
  position: relative;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex: none;
  background: currentColor;
  opacity: 0.9;
}

html.theme-dark .dark-icon {
  background: transparent;
  border: 1.6px solid currentColor;
  box-shadow: inset -4px -3px 0 0 currentColor;
}

.glass-setting {
  display: none;
}

html.theme-apple .glass-setting {
  display: grid;
  gap: 10px;
}

.glass-setting input[type="range"] {
  width: 100%;
  accent-color: var(--primary);
}

.glass-setting .glass-value {
  color: var(--body-light);
  font-size: 13px;
  font-weight: 700;
}

/* ---- 暗夜模式下的主体高亮控件微调 ---- */

html.theme-dark .theme-toggle {
  border-color: rgba(201, 164, 92, 0.65);
}


/* ---- 苹果风味（桌面）：浅色玻璃上的深色导航文字/按钮图标 ---- */

html.theme-apple .site-nav a {
  color: rgba(31, 35, 46, 0.85);
}

html.theme-apple .site-nav a:hover,
html.theme-apple .site-nav a:focus-visible {
  color: var(--primary);
  background: rgba(31, 35, 46, 0.06);
}

html.theme-apple .nav-button span,
html.theme-apple .nav-button span::before,
html.theme-apple .nav-button span::after {
  background: rgba(31, 35, 46, 0.9);
}

/* ---- 暗夜 + 苹果（桌面）：深色玻璃上的浅色导航文字/按钮图标 ---- */

html.theme-dark.theme-apple .site-nav a {
  color: rgba(233, 235, 241, 0.88);
}

html.theme-dark.theme-apple .site-nav a:hover,
html.theme-dark.theme-apple .site-nav a:focus-visible {
  color: #fff;
  background: rgba(233, 235, 241, 0.1);
}

html.theme-dark.theme-apple .nav-button span,
html.theme-dark.theme-apple .nav-button span::before,
html.theme-dark.theme-apple .nav-button span::after {
  background: rgba(255, 255, 255, 0.9);
}


/* ---- 二级页面返回按钮跟随玻璃明暗 ---- */

html.theme-apple .site-nav.nav-return a,
html.theme-apple .page-sub .site-nav.nav-return a {
  color: rgba(31, 35, 46, 0.92);
}

html.theme-dark.theme-apple .site-nav.nav-return a,
html.theme-dark.theme-apple .page-sub .site-nav.nav-return a {
  color: rgba(233, 235, 241, 0.95);
}


/* ============================================================
   修复：右上角用户菜单可读性（两种外观、明暗模式通用）
   —— 玻璃保底不透明 + 菜单项用 --ink 深色字
   ============================================================ */

.auth-menu {
  /* 菜单属于功能层：透明度不低于 0.92，避免毛玻璃滑块调低后看不清 */
  background: var(--paper-strong);
}

html.theme-apple .auth-menu {
  background: rgba(255, 255, 255, max(0.92, var(--glass-alpha)));
}

html.theme-dark .auth-menu {
  background: rgba(23, 30, 46, max(0.94, var(--glass-alpha)));
}

html.theme-dark.theme-apple .auth-menu {
  background: rgba(24, 31, 50, max(0.94, var(--glass-alpha)));
}

.auth-menu-item {
  color: var(--ink);
}

.auth-menu-item:hover {
  color: var(--primary);
  background: rgba(31, 35, 46, 0.06);
}

html.theme-dark .auth-menu-item:hover {
  background: rgba(233, 235, 241, 0.1);
  color: var(--gold-soft);
}

/* 顶栏用户按钮更醒目 */
.auth-btn {
  font-size: 12px;
  color: var(--gold-soft);
}

.auth-user-name {
  color: #ffd98a;
}

html.theme-dark .auth-user-name {
  color: #ffd98a;
}

/* ============================================================
   明暗切换动态过渡：从被点击的按钮位置圆形扩散
   ============================================================ */

.dark-morph {
  position: fixed;
  inset: 0;
  z-index: 410;
  pointer-events: none;
  clip-path: circle(0px at var(--mx, 50vw) var(--my, 50vh));
  transition: clip-path 0.72s var(--ease-out-soft);
  will-change: clip-path;
  opacity: 1;
}

/* 柔化扩散边缘：内圈渐变晕染 + 交界微光 */
.dark-morph::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle 120vmax at var(--mx, 50vw) var(--my, 50vh),
    transparent 0,
    transparent 62%,
    rgba(201, 164, 92, 0.04) 88%,
    transparent 100%
  );
  opacity: 0;
  transition: opacity 0.5s ease;
}

.dark-morph.grow::before {
  opacity: 1;
}

.dark-morph.to-dark {
  background: linear-gradient(155deg, #151b28 0%, #12161f 55%, #0f131c 100%);
}

.dark-morph.to-light {
  background: linear-gradient(155deg, #faf8f3 0%, #f6f4ef 55%, #efeadf 100%);
}

.dark-morph.grow {
  clip-path: circle(160vmax at var(--mx, 50vw) var(--my, 50vh));
}

/* 起手涟漪：按钮位置的小圆环扩散 */
.dark-morph-ring {
  position: fixed;
  z-index: 411;
  pointer-events: none;
  width: 12px;
  height: 12px;
  margin: -6px 0 0 -6px;
  border-radius: 50%;
  border: 2px solid var(--gold-soft);
  opacity: 0;
}

.dark-morph-ring.pulse {
  animation: dark-ring-pulse 0.5s ease-out both;
}

@keyframes dark-ring-pulse {
  from {
    opacity: 0.9;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(6);
  }
}

@media (prefers-reduced-motion: reduce) {
  .dark-morph,
  .dark-morph-ring {
    display: none;
  }
}


/* ============================================================
   修复：赛事体系 / 办赛标准 圆角跟随主题与圆润度
   ============================================================ */

/* ---- 赛事体系：图片区顶部圆角与卡片一致（避免直角图盖住圆角） ---- */

.card-image {
  border-radius: calc(12px * var(--r-scale)) calc(12px * var(--r-scale)) 0 0;
  overflow: hidden;
}

html.theme-apple .card-image {
  border-radius: calc(26px * var(--r-scale)) calc(26px * var(--r-scale)) 0 0;
}

/* 官方原版：卡片底部为直角（去掉残留圆角） */
.feature-card {
  border-radius: calc(12px * var(--r-scale)) calc(12px * var(--r-scale)) 0 0;
}

html.theme-apple .feature-card {
  border-radius: calc(26px * var(--r-scale));
}

/* ---- 办赛标准：四个格子跟随圆润度（原版方形/苹果圆润） ---- */

.standards-grid {
  border-radius: calc(12px * var(--r-scale));
  overflow: hidden;
}

html.theme-apple .standards-grid {
  border-radius: calc(20px * var(--r-scale));
}

.standards-grid article {
  border-radius: 0;
}

html.theme-apple .standards-grid article:first-child {
  border-top-left-radius: calc(20px * var(--r-scale));
}

html.theme-apple .standards-grid article:last-child {
  border-bottom-right-radius: calc(20px * var(--r-scale));
}


/* ---- 空状态提示：删光赛程后的提示文案 ---- */

.schedule-empty {
  text-align: center;
  color: var(--body-light);
  font-size: 14px;
  padding: 28px 16px !important;
}

.schedule-table .schedule-empty {
  text-align: center;
}

/* 减少动态效果时：标题流光关闭（保留原文字） */
@media (prefers-reduced-motion: reduce) {
  .hero h1::before {
    display: none;
  }
}

/* ---- 加入车队：申请按钮 + 队长审批列表 ---- */

.team-card-foot {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line-light);
}

.team-join-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.team-join-row > * {
  margin: 0;
}

.team-join-requests {
  margin-bottom: 18px;
}

.team-join-requests .admin-panel-head {
  margin-bottom: 8px;
}

button[data-team-join]:disabled {
  opacity: 0.55;
  cursor: default;
}


/* ---- 车队详情弹窗（点击卡片进入） ---- */

.team-card-clickable {
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.team-card-clickable:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(31, 35, 46, 0.1);
  border-color: var(--team-color, var(--gold));
}

.team-card-clickable .team-card-foot {
  border-top: 1px solid var(--line-light);
  margin-top: 14px;
  padding-top: 14px;
  display: flex;
  gap: 10px;
}

.team-detail-dialog {
  width: min(100%, 520px);
}

.team-detail-plate {
  margin: 16px 0 12px;
  padding: 16px 20px;
  border-radius: calc(12px * var(--r-scale));
  border-left: 4px solid var(--team-color, var(--gold));
  background: rgba(31, 35, 46, 0.04);
}

html.theme-dark .team-detail-plate {
  background: rgba(233, 235, 241, 0.05);
}

.team-detail-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.team-detail-captain {
  margin: 0;
  color: var(--body-light);
  font-size: 13.5px;
  font-weight: 700;
}

.team-detail-intro {
  margin: 0 0 12px;
  color: var(--body-light);
  font-size: 14px;
  line-height: 1.7;
}

.team-detail-members {
  padding: 12px 16px;
  border-radius: calc(10px * var(--r-scale));
  background: rgba(31, 35, 46, 0.04);
  margin-bottom: 16px;
}

html.theme-dark .team-detail-members {
  background: rgba(233, 235, 241, 0.05);
}

.team-detail-members strong {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
}

.team-detail-members p {
  margin: 0;
  color: var(--body-light);
  font-size: 13.5px;
  line-height: 1.7;
}

.team-detail-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 14px;
}

.team-detail-actions .team-detail-hint {
  color: var(--body-light);
  font-size: 13px;
  font-weight: 700;
  padding: 10px 0;
}

.team-detail-requests {
  margin-top: 4px;
}

/* ---- 队长通知条 ---- */

.team-request-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 20px;
  background: rgba(158, 29, 46, 0.92);
  color: #fff;
  font-size: 13px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.team-request-notice-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ffd98a;
  flex: none;
  animation: notice-blink 1.4s ease-in-out infinite;
}

@keyframes notice-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}

.team-request-notice a {
  color: #ffd98a;
  font-weight: 700;
  margin-left: auto;
}


/* ---- 后台新模块：统计卡片 / 用户表格 / 日志列表 ---- */

.admin-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 8px;
}

.admin-stat-card {
  padding: 24px 20px;
  border-radius: calc(12px * var(--r-scale));
  background: var(--paper-strong);
  border: 1px solid var(--line-light);
  border-top: 3px solid var(--gold);
  text-align: center;
}

.admin-stat-card strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 36px;
  line-height: 1;
  color: var(--gold-soft);
}

.admin-stat-card span {
  display: block;
  margin-top: 10px;
  color: var(--body-light);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

@media (max-width: 980px) {
  .admin-stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

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

.admin-row-actions select {
  padding: 4px 8px;
  border: 1px solid var(--line-light);
  border-radius: calc(8px * var(--r-scale));
  background: var(--paper-strong);
  color: var(--ink);
  font-size: 12px;
  font-family: var(--font-sans);
}


/* ---- 更新日志页面 ---- */

.changelog-list {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  gap: 18px;
}

.changelog-entry {
  padding: 24px 26px;
  background: var(--paper-strong);
  border: 1px solid var(--line-light);
  border-left: 4px solid var(--gold);
  border-radius: calc(12px * var(--r-scale));
  box-shadow: 0 1px 2px rgba(31, 35, 46, 0.04);
}

html.theme-apple .changelog-entry {
  background: rgba(255, 255, 255, var(--glass-alpha));
  backdrop-filter: blur(var(--glass-blur)) saturate(1.2);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(1.2);
  border-radius: calc(20px * var(--r-scale));
}

html.theme-dark.theme-apple .changelog-entry {
  background: rgba(24, 31, 50, var(--glass-alpha));
}

.changelog-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.changelog-meta time {
  color: var(--muted-light);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.changelog-version {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border: 1px solid var(--gold);
  color: var(--gold-soft);
  font-size: 12px;
  font-weight: 800;
  border-radius: 999px;
  letter-spacing: 0.06em;
}

.changelog-badge {
  margin-left: auto;
}

.changelog-entry h3 {
  margin-bottom: 12px;
  font-size: 20px;
}

.changelog-items {
  margin: 0;
  padding-left: 20px;
  display: grid;
  gap: 6px;
}

.changelog-items li {
  color: var(--body-light);
  font-size: 14.5px;
  line-height: 1.7;
}

.changelog-items li::marker {
  color: var(--gold);
}


/* ============================================================
   流畅度工程：水感统一（一次覆盖到位，放在文件末尾优先级最高）
   —— 全站交互统一 iOS 触感曲线，hover 带弹性，滚动显现柔和
   ============================================================ */

/* ---- 卡片 hover：弹性水感 ---- */

.feature-card,
.team-card,
.sponsor-card,
.gallery-card,
.admin-card {
  transition:
    transform 0.4s var(--ease-spring),
    box-shadow 0.4s var(--ease-ios),
    border-color 0.4s var(--ease-ios),
    background-color 0.4s var(--ease-ios);
}

.feature-card:hover,
.team-card:hover,
.gallery-card:hover {
  transform: translateY(-5px) scale(1.005);
}

.sponsor-card:hover {
  transform: translateY(-3px);
}

/* ---- 按钮 / 导航 / 控件：统一快曲线 ---- */

.button,
.compact-button,
.auth-btn,
.auth-tab,
.auth-menu-item,
.admin-tab,
.table-action,
.driver-link,
.race-title-link,
.muted-action,
.theme-toggle,
.dark-toggle {
  transition:
    background-color 0.22s var(--ease-ios),
    color 0.22s var(--ease-ios),
    border-color 0.22s var(--ease-ios),
    box-shadow 0.22s var(--ease-ios),
    transform 0.22s var(--ease-ios),
    opacity 0.22s var(--ease-ios),
    padding-left 0.22s var(--ease-ios) !important;
}

button,
.button,
.compact-button {
  -webkit-tap-highlight-color: transparent;
}

/* ---- 站点导航：下拉淡入 ---- */

.site-nav a {
  transition:
    color 0.22s var(--ease-ios),
    background-color 0.22s var(--ease-ios),
    transform 0.22s var(--ease-ios);
}

.site-nav a:hover {
  transform: translateY(-1px);
}

/* ---- 滚动显现：更柔更长，GPU 友好 ---- */

html.js-anim .reveal {
  opacity: 0;
  transform: translateY(22px) scale(0.992);
  transition:
    opacity 0.72s var(--ease-out-soft),
    transform 0.72s var(--ease-out-soft);
  will-change: transform;
}

html.js-anim .reveal.in {
  opacity: 1;
  transform: none;
  will-change: auto;
}

/* ---- 顶栏用户菜单：展开更顺 ---- */

.auth-menu {
  transition:
    opacity 0.26s var(--ease-ios),
    transform 0.26s var(--ease-ios),
    visibility 0.26s;
}

/* ---- 弹窗：更柔的弹簧 ---- */

.auth-dialog,
.team-dialog,
.admin-gate-card,
.login-card {
  animation: tz-pop 0.42s var(--ease-spring) both;
}

/* ---- 头部毛玻璃：滚动变化禁止过渡抖动（保持平滑稳定） ---- */

.site-header {
  transition: box-shadow 0.3s var(--ease-ios), background-color 0.3s var(--ease-ios);
}

/* ---- 数字 / 章节标题分隔线：细水长流 ---- */

.section-heading h2::after {
  transition: transform 0.6s var(--ease-out-soft) 0.12s;
}

/* ---- 页面进出场：整体如水面浮沉 ---- */

html.js-anim body {
  transition:
    opacity 0.34s var(--ease-ios),
    transform 0.34s var(--ease-ios);
}

html.js-anim body.page-exit {
  opacity: 0;
  transform: translateY(-14px) scale(0.997);
}

/* ---- 减小动态效果时全部回归静止 ---- */

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .hero-content > *,
  .admin-hero > *,
  .section-heading h2::after {
    transition: none !important;
    animation: none !important;
  }
}


/* ---- 流畅度补丁：reveal 完成后的卡片 hover 更快（避免 0.72s 迟缓感） ---- */

html.js-anim .reveal.in.feature-card,
html.js-anim .reveal.in.team-card,
html.js-anim .reveal.in.gallery-card,
html.js-anim .reveal.in.sponsor-card {
  transition:
    transform 0.4s var(--ease-spring),
    box-shadow 0.4s var(--ease-ios),
    border-color 0.4s var(--ease-ios);
}

html.js-anim .reveal.in.feature-card:hover,
html.js-anim .reveal.in.team-card:hover,
html.js-anim .reveal.in.gallery-card:hover,
html.js-anim .reveal.in.sponsor-card:hover {
  transform: translateY(-5px) scale(1.005);
}

/* ---- 浏览器原生输入/范围控件：平滑跟手 ---- */

input[type="range"] {
  transition: accent-color 0.22s var(--ease-ios);
  scrollbar-width: thin;
}

/* ---- 图片加载淡入（水感）：仅懒加载图处理 ---- */

img[data-src] {
  opacity: 0;
  transition: opacity 0.45s var(--ease-ios);
}

img[data-src].loaded {
  opacity: 1;
}


/* ============================================================
   主题切换：水晶揭幕（从点击点圆形扩散 + 双环 + 光带扫场）
   明暗切换：多层涟漪 + 光晕 + 全局微光脉冲
   ============================================================ */

/* ---- 水晶揭幕遮罩 ---- */

.theme-unveil {
  position: fixed;
  inset: 0;
  z-index: 420;
  pointer-events: none;
  clip-path: circle(0px at var(--ux, 50vw) var(--uy, 50vh));
  transition: clip-path 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: clip-path;
  overflow: hidden;
}

.theme-unveil.grow {
  clip-path: circle(160vmax at var(--ux, 50vw) var(--uy, 50vh));
}

/* 水晶三层渐变：深底 + 金银斜纹 + 顶部染光 */
.theme-unveil::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(58% 42% at 78% 16%, rgba(201, 164, 92, 0.16), transparent 65%),
    radial-gradient(46% 36% at 12% 82%, rgba(158, 29, 46, 0.1), transparent 70%),
    linear-gradient(158deg, #131a29 0%, #0e1420 52%, #1a2233 100%);
}

/* 斜向金银光带：缓慢扫过水晶面 */
.theme-unveil::after {
  content: "";
  position: absolute;
  inset: -30%;
  background: linear-gradient(
    115deg,
    transparent 40%,
    rgba(232, 207, 154, 0.06) 47%,
    rgba(255, 240, 200, 0.14) 50%,
    rgba(232, 207, 154, 0.06) 53%,
    transparent 60%
  );
  transform: translateX(-70%);
  transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.theme-unveil.grow::after {
  transform: translateX(70%);
}

/* 揭幕中央 TZCC 徽记（呼吸 + 折射） */
.theme-unveil-mark {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: var(--gold-soft);
  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
  text-shadow:
    0 0 26px rgba(201, 164, 92, 0.45),
    0 0 64px rgba(201, 164, 92, 0.2);
  opacity: 0;
  transition: opacity 0.4s ease;
}

.theme-unveil.grow .theme-unveil-mark {
  opacity: 0.9;
  animation: unveil-breathe 1.6s ease-in-out infinite;
}

@keyframes unveil-breathe {
  0%, 100% { text-shadow: 0 0 26px rgba(201, 164, 92, 0.45), 0 0 64px rgba(201, 164, 92, 0.2); }
  50% { text-shadow: 0 0 40px rgba(201, 164, 92, 0.65), 0 0 96px rgba(201, 164, 92, 0.3); }
}

/* ---- 揭幕收尾：整体淡出 ---- */

.theme-unveil.fadeout {
  opacity: 0;
  transition: opacity 0.5s var(--ease-ios);
}

/* ---- 明暗切换：多层涟漪 ---- */

.dark-morph-ring {
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  border: 2px solid var(--gold-soft);
  box-shadow: 0 0 18px rgba(201, 164, 92, 0.5);
}

.dark-morph-ring.ring-2 {
  border-color: rgba(255, 255, 255, 0.65);
  box-shadow: 0 0 22px rgba(255, 255, 255, 0.3);
  animation-delay: 0.06s;
}

.dark-morph-ring.ring-3 {
  border-color: rgba(201, 164, 92, 0.55);
  box-shadow: 0 0 26px rgba(201, 164, 92, 0.35);
  animation-delay: 0.12s;
}

/* 扩散交界：虹彩光晕 */
.dark-morph::before {
  background: radial-gradient(
    circle 120vmax at var(--mx, 50vw) var(--my, 50vh),
    transparent 0,
    transparent 58%,
    rgba(201, 164, 92, 0.07) 80%,
    rgba(255, 240, 200, 0.05) 90%,
    transparent 100%
  );
}

/* ---- 全局微光脉冲（切换完成的瞬间提亮再柔和落回） ---- */

html.theme-flash body {
  filter: brightness(1.12) saturate(1.06);
  transition: filter 0.35s var(--ease-ios);
}

body.theme-flash-down {
  filter: brightness(1);
  transition: filter 0.55s var(--ease-ios);
}

@media (prefers-reduced-motion: reduce) {
  .theme-unveil {
    display: none;
  }
}


/* ---- 车手测试 ---- */

.test-intro {
  display: grid;
  gap: 14px;
}

.test-form {
  display: grid;
  gap: 22px;
}

.test-question {
  padding: 18px 20px;
  border: 1px solid var(--line-light);
  border-radius: calc(12px * var(--r-scale));
  background: var(--paper-strong);
}

.test-question h4 {
  margin: 0 0 12px;
  font-size: 16px;
}

.test-options {
  display: grid;
  gap: 8px;
}

.test-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border: 1px solid var(--line-light);
  border-radius: calc(10px * var(--r-scale));
  cursor: pointer;
  transition: background-color 0.22s var(--ease-ios), border-color 0.22s var(--ease-ios);
}

.test-option:hover {
  background: rgba(158, 29, 46, 0.06);
  border-color: var(--primary);
}

.test-option input:checked + span {
  color: var(--primary);
  font-weight: 800;
}

.test-result {
  display: grid;
  gap: 12px;
  padding: 24px;
  border: 1px solid var(--line-light);
  border-radius: calc(12px * var(--r-scale));
  background: var(--paper-strong);
  text-align: center;
}

/* ---- 驾照分徽章 ---- */

.license-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: 999px;
  border: 1px solid currentColor;
  font-size: 12px;
  font-weight: 800;
}


/* ---- 赛历 ---- */

.calendar-wrap {
  width: min(100%, var(--max));
  margin: 0 auto;
}

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

.calendar-head h3 {
  margin: 0;
}

.calendar-grid {
  display: grid;
  gap: 1px;
  background: var(--line-light);
  border: 1px solid var(--line-light);
  border-radius: calc(12px * var(--r-scale));
  overflow: hidden;
}

.calendar-dow {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: var(--navy);
}

.calendar-dow span {
  padding: 10px 8px;
  text-align: center;
  color: var(--text-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.calendar-cell {
  min-height: 96px;
  padding: 8px;
  background: var(--paper-strong);
  position: relative;
}

.calendar-cell.empty {
  background: var(--light-soft);
}

.calendar-cell.has-race {
  background: rgba(201, 164, 92, 0.08);
}

.calendar-day {
  display: block;
  font-size: 13px;
  font-weight: 800;
  color: var(--body-light);
  margin-bottom: 6px;
}

.calendar-races {
  display: grid;
  gap: 4px;
}

.calendar-race {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 3px 6px;
  border-radius: 6px;
  background: rgba(158, 29, 46, 0.1);
  font-size: 11.5px;
  font-weight: 700;
  color: var(--ink);
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-race-status {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex: none;
  background: var(--muted-light);
}

.calendar-race-status.open { background: #1f6e43; }
.calendar-race-status.pending { background: #8a6d1f; }
.calendar-race-status.soon { background: var(--primary); }
.calendar-race-status.finished { background: #39435a; }

/* ---- 反应测试 ---- */

.reaction-stage {
  display: grid;
  gap: 18px;
  text-align: center;
  padding: 40px 20px;
  border: 1px solid var(--line-light);
  border-radius: calc(16px * var(--r-scale));
  background: var(--paper-strong);
}

.reaction-lights {
  display: flex;
  gap: 18px;
  justify-content: center;
  margin: 10px 0;
}

.reaction-light {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(31, 35, 46, 0.15);
  transition: background-color 0.08s ease, box-shadow 0.08s ease;
}

.reaction-light.on {
  background: #e8232c;
  box-shadow: 0 0 30px rgba(232, 35, 44, 0.6);
}

.reaction-ms {
  font-family: var(--font-serif);
  font-size: 56px;
  font-weight: 700;
  color: var(--gold-soft);
}

.reaction-mode-select {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}

.reaction-history {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  max-height: 220px;
  overflow-y: auto;
}


/* ---- 赛季卡片 ---- */

.season-list {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  gap: 16px;
}

.season-card {
  padding: 22px 26px;
  background: var(--paper-strong);
  border: 1px solid var(--line-light);
  border-left: 4px solid var(--gold);
  border-radius: calc(12px * var(--r-scale));
}

html.theme-apple .season-card {
  background: rgba(255, 255, 255, var(--glass-alpha));
  backdrop-filter: blur(var(--glass-blur)) saturate(1.2);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(1.2);
  border-radius: calc(20px * var(--r-scale));
}

html.theme-dark.theme-apple .season-card {
  background: rgba(24, 31, 50, var(--glass-alpha));
}

.season-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.season-card-head h3 {
  margin: 0;
}

.season-meta {
  margin: 6px 0 0;
  color: var(--muted-light);
  font-size: 12.5px;
  font-weight: 700;
}

.season-note {
  margin: 8px 0 0;
  color: var(--body-light);
  font-size: 14px;
}

.season-card .button {
  margin-top: 14px;
}

/* ---- 积分榜 ---- */

.standings-grid-wrap {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

@media (max-width: 980px) {
  .standings-grid-wrap {
    grid-template-columns: 1fr;
  }
}

/* ---- 悬浮举报按钮 ---- */

.report-float {
  position: fixed;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 60;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 10px 8px;
  border: 1px solid rgba(201, 164, 92, 0.45);
  border-radius: 999px;
  background: rgba(14, 20, 32, 0.82);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: var(--gold-soft);
  cursor: pointer;
  transition: background 0.22s var(--ease-ios), color 0.22s var(--ease-ios), transform 0.22s var(--ease-ios);
}

.report-float:hover {
  background: var(--gold);
  color: var(--navy);
  transform: translateY(-50%) scale(1.06);
}

.report-float-icon {
  font-size: 16px;
  line-height: 1;
}

.report-float-text {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

@media (max-width: 980px) {
  .report-float {
    right: 10px;
    top: auto;
    bottom: 88px;
    transform: none;
  }
  .report-float:hover {
    transform: scale(1.06);
  }
}


/* ---- 车队卡片可读性修复：徽章亮度自适应 + 名字固定深色 ---- */

.team-card h3 {
  color: var(--ink);
}

/* 亮色主题色（金色等）自动用深色徽章文字 */
.team-card[data-text-dark="1"] .team-code {
  color: #10141d;
}

html.theme-dark .team-card[data-text-dark="1"] .team-code {
  color: #0e1420;
}

/* 深色主题色用白色文字（默认） */


/* ---- 忘记密码 ---- */

.auth-forgot-btn {
  margin-top: 12px;
  font-size: 12px;
  color: var(--body-light);
  text-decoration: underline;
  text-underline-offset: 3px;
}
