:root {
  color-scheme: light;
  /* 方向 B 晨报 token */
  --paper: #F3F5F8;
  --paper-2: #E6EAEF;
  --ink: #15181D;
  --lead: #4E5660;
  --rule: #C7CDD4;
  --rule-strong: #8F98A3;
  --signal: #B3231C;
  --signal-soft: rgba(179, 35, 28, 0.08);
  --white: #FFFFFF;
  --serif: "Noto Serif SC", "Songti SC", "SimSun", "PingFang SC", "Microsoft YaHei", serif;
  --sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  --mono: "IBM Plex Mono", "SFMono-Regular", Menlo, Consolas, "PingFang SC", "Microsoft YaHei", monospace;
  /* 旧变量名 → 晨报色板(保证历史规则整体落到浅色) */
  --bg: var(--paper);
  --bg-elevated: var(--paper-2);
  --panel: var(--white);
  --panel-strong: var(--paper-2);
  --panel-soft: var(--paper-2);
  --line: var(--rule);
  --line-strong: var(--rule-strong);
  --text: var(--ink);
  --muted: var(--lead);
  --muted-strong: #2F353D;
  --accent: var(--ink);
  --accent-strong: #000000;
  --accent-soft: var(--paper-2);
  --live: var(--signal);
  --live-soft: var(--signal-soft);
  --lime: var(--ink);
  --success: var(--ink);
  --success-soft: var(--paper-2);
  --warning: var(--lead);
  --warning-soft: var(--paper-2);
  --danger: var(--signal);
  --danger-soft: var(--signal-soft);
  --info: var(--ink);
  --purple: var(--lead);
  --surface-glass: var(--paper);
  --surface-solid: var(--white);
  --surface-subtle: var(--paper-2);
  --surface-input: var(--white);
  --surface-deep: var(--ink);
  --border-strong: var(--rule-strong);
  --border-soft: var(--rule);
  --surface-card: var(--white);
  --text-primary: var(--ink);
  --text-secondary: var(--lead);
  --radius-sm: 0;
  --radius-md: 0;
  --radius-lg: 0;
  --shadow: none;
  --shadow-soft: none;
  --font-sans: var(--sans);
  --font-display: var(--serif);
  --font-mono: var(--mono);
}* {
  box-sizing: border-box;
}[hidden] {
  display: none !important;
}html {
  min-width: 320px;
  background: var(--bg);
  scroll-behavior: smooth;
}body {
  min-height: 100vh;
  margin: 0;
  color: var(--text);
  background: var(--panel);
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}button,
select {
  color: inherit;
  font: inherit;
}button,
select,
.match-card {
  -webkit-tap-highlight-color: transparent;
}button {
  border: 0;
}button:not(:disabled),
select:not(:disabled) {
  cursor: pointer;
}button:disabled,
select:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  transform: translateY(-160%);
  border-radius: 0;
  padding: 10px 14px;
  color: #06100f;
  background: var(--accent);
  font-weight: 750;
  transition: transform 160ms ease;
}.skip-link:focus {
  transform: translateY(0);
}.shell {
  width: min(100% - 28px, 1180px);
  margin-inline: auto;
}.site-header {
  position: sticky;
  z-index: 20;
  top: 0;
  padding-top: constant(safe-area-inset-top);
  padding-top: env(safe-area-inset-top);
  border-bottom: 1px solid var(--line);
  background: rgba(6, 16, 15, 0.88);
  
  
}@media (display-mode: standalone) {.site-header {
    padding-top: max(20px, env(safe-area-inset-top));
  }
}.header-row {
  display: flex;
  min-height: 72px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-block: 12px;
}.brand-block {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 12px;
}.brand-mark {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(124, 247, 187, 0.34);
  border-radius: 0;
  color: #082017;
  background: var(--panel);
  
  font-size: 20px;
  font-weight: 900;
}.eyebrow {
  margin: 0 0 2px;
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.13em;
  line-height: 1.35;
}h1,
h2,
h3,
p {
  margin-top: 0;
}h1 {
  overflow: hidden;
  margin-bottom: 0;
  font-size: clamp(17px, 4vw, 22px);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}.header-status {
  display: none;
  align-items: center;
  gap: 9px;
  color: var(--muted-strong);
  font-size: 14px;
  white-space: nowrap;
}.header-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 10px;
}.quota-panel-trigger {
  position: relative;
  z-index: 1;
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 7px;
  border: 1px solid rgba(112, 167, 255, 0.25);
  border-radius: 0;
  padding: 7px 10px;
  color: var(--muted-strong);
  background: rgba(17, 24, 39, 0.82);
  font-size: 14px;
  font-weight: 720;
  pointer-events: auto;
  touch-action: manipulation;
  white-space: nowrap;
}.quota-panel-trigger strong {
  color: var(--info);
  font-family: var(--font-mono);
  font-size: 14px;
}.quota-panel-trigger:hover {
  border-color: rgba(112, 167, 255, 0.46);
  color: var(--text);
}.live-dot {
  display: inline-block;
  flex: 0 0 auto;
  border-radius: 0;
  background: var(--accent-strong);
  
}.live-dot {
  width: 8px;
  height: 8px;
  animation: livePulse 2.2s ease-in-out infinite;
}@keyframes livePulse {
  50% {  }
}.page-shell {
  padding-block: 22px max(60px, env(safe-area-inset-bottom));
}.page-navigation {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin-bottom: 22px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 4px;
  background: rgba(10, 23, 21, 0.82);
}.page-navigation-button {
  min-height: 42px;
  border-radius: 0;
  padding: 8px 10px;
  color: var(--muted);
  background: transparent;
  font-size: 14px;
  font-weight: 760;
}.page-navigation-button:hover {
  color: var(--text);
}.page-navigation-button.is-active {
  color: #06110e;
  background: var(--panel);
  
}.page-view[hidden] {
  display: none !important;
}.view-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  padding: 6px 0 18px;
}.view-heading h2 {
  margin-bottom: 3px;
  font-size: clamp(25px, 7vw, 38px);
  letter-spacing: -0.04em;
  line-height: 1.14;
}.view-heading p:last-child {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 14px;
}.live-heading-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
}.live-favorite-filter-button {
  min-height: 38px;
  border: 1px solid var(--line);
}.view-status-strip {
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 9px 12px;
  color: var(--muted);
  background: rgba(7, 19, 16, 0.76);
  font-size: 14px;
}.view-status-strip > span:first-child {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}.view-status-strip > span:last-child {
  flex: 0 0 auto;
  font-family: var(--font-mono);
}.date-panel {
  display: grid;
  gap: 20px;
  padding-bottom: 20px;
}.date-copy h2 {
  margin-bottom: 2px;
  font-size: clamp(25px, 7vw, 38px);
  font-weight: 850;
  letter-spacing: -0.04em;
  line-height: 1.14;
}.date-copy > p:last-child {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 14px;
}.date-switch {
  display: flex;
  min-width: 0;
  gap: 6px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(10, 23, 21, 0.82);
  scroll-padding-inline: calc(50% - 35px);
  scroll-snap-type: x proximity;
  scrollbar-color: rgba(124, 247, 187, 0.34) transparent;
  scrollbar-width: thin;
  touch-action: pan-x;
  -webkit-overflow-scrolling: touch;
}.date-switch::-webkit-scrollbar {
  height: 4px;
}.date-switch::-webkit-scrollbar-thumb {
  border-radius: 0;
  background: rgba(124, 247, 187, 0.34);
}.date-button {
  display: grid;
  min-width: 70px;
  min-height: 56px;
  flex: 0 0 70px;
  place-items: center;
  gap: 0;
  border-radius: 0;
  color: var(--muted);
  background: transparent;
  scroll-snap-align: center;
  transition: color 160ms ease, background 160ms ease, transform 160ms ease;
}.date-button:hover {
  color: var(--text);
  background: rgba(255, 255, 255, 0.035);
}.date-button:active {
  transform: scale(0.98);
}.date-button span {
  font-size: 14px;
  font-weight: 750;
}.date-button small {
  font-family: var(--font-mono);
  font-size: 14px;
}.date-button.is-active {
  color: #06110e;
  background: var(--panel);
  
}.toolbar {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  overflow-x: auto;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(13, 30, 27, 0.86);
  scrollbar-width: none;
}.toolbar::-webkit-scrollbar,
.detail-tabs::-webkit-scrollbar {
  display: none;
}.filter-cluster,
.league-select-wrap {
  display: grid;
  flex: 0 0 auto;
  gap: 6px;
}.filter-label {
  color: var(--muted);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
}.segmented {
  display: flex;
  min-height: 38px;
  gap: 3px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(3, 12, 10, 0.36);
}.segment {
  display: inline-flex;
  min-width: 54px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border-radius: 0;
  padding: 7px 10px;
  color: var(--muted);
  background: transparent;
  font-size: 14px;
  font-weight: 700;
  transition: color 150ms ease, background 150ms ease;
}.segment:hover {
  color: var(--text);
}.segment.is-active {
  color: var(--text);
  background: var(--panel-soft);
  
}.favorite-filter-button {
  min-width: 112px;
}.favorite-filter-button.is-active {
  color: var(--warning);
  background: var(--warning-soft);
  
}.favorite-filter-star {
  font-size: 16px;
  line-height: 1;
}.favorite-filter-count {
  display: inline-grid;
  min-width: 18px;
  height: 18px;
  place-items: center;
  border-radius: 0;
  padding-inline: 5px;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.07);
  font-family: var(--font-mono);
  font-size: 14px;
}.favorite-filter-button.is-active .favorite-filter-count {
  color: #211404;
  background: var(--warning);
}.select-shell {
  position: relative;
  display: flex;
  min-height: 38px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(3, 12, 10, 0.36);
}.select-shell select {
  min-width: 144px;
  max-width: 220px;
  height: 36px;
  appearance: none;
  border: 0;
  outline: 0;
  padding: 0 34px 0 11px;
  color: var(--muted-strong);
  background: transparent;
  font-size: 14px;
  font-weight: 650;
}.select-shell > span {
  position: absolute;
  right: 11px;
  color: var(--muted);
  pointer-events: none;
}.refresh-button {
  display: inline-flex;
  min-height: 38px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  padding: 8px 12px;
  color: var(--muted-strong);
  background: transparent;
  font-size: 14px;
  font-weight: 700;
}.refresh-button:hover {
  color: var(--accent);
  border-color: rgba(124, 247, 187, 0.4);
}.refresh-button.is-loading .refresh-icon {
  animation: spin 850ms linear infinite;
}@keyframes spin {
  to { transform: rotate(360deg); }
}.sync-strip {
  display: flex;
  min-height: 40px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid var(--line);
  border-top: 0;
  border-radius: 0;
  padding: 9px 14px;
  color: var(--muted);
  background: rgba(7, 19, 16, 0.76);
  font-size: 14px;
}.sync-primary,
.sync-meta {
  display: flex;
  align-items: center;
  gap: 7px;
}.sync-primary {
  min-width: 0;
}#sync-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}.sync-meta {
  flex: 0 0 auto;
}.sync-indicator {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 0;
  background: var(--muted);
}.sync-indicator.is-warning { background: var(--warning); }.notice-region:not(:empty) {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}.notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 11px 13px;
  color: var(--muted-strong);
  background: var(--panel);
  font-size: 14px;
}.notice-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  margin-top: 5px;
  border-radius: 0;
  background: var(--info);
}.notice.is-warning {
  border-color: rgba(255, 200, 107, 0.22);
  background: var(--warning-soft);
}.notice.is-warning .notice-dot { background: var(--warning); }.match-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}.league-section {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(10, 23, 21, 0.72);
  
}.league-header {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--line);
  padding: 11px 13px;
  background: rgba(16, 37, 32, 0.66);
}.league-identity,
.league-count {
  display: flex;
  align-items: center;
}.league-identity {
  min-width: 0;
  gap: 10px;
}.league-logo,
.team-logo {
  object-fit: contain;
  background: rgba(255, 255, 255, 0.94);
}.league-logo {
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  border-radius: 0;
  padding: 4px;
}.image-fallback {
  display: grid;
  place-items: center;
  color: var(--muted-strong);
  background: var(--panel-soft);
  font-weight: 800;
}.league-title {
  overflow: hidden;
}.league-title h3 {
  overflow: hidden;
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 760;
  text-overflow: ellipsis;
  white-space: nowrap;
}.league-title p {
  overflow: hidden;
  margin-bottom: 0;
  color: var(--muted);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.league-count {
  flex: 0 0 auto;
  gap: 6px;
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: 14px;
}.league-count .live-count {
  color: var(--accent);
}.match-cards {
  display: grid;
}.match-card {
  position: relative;
  display: grid;
  width: 100%;
  grid-template-columns: minmax(0, 1fr) 44px;
  align-items: stretch;
  border-bottom: 1px solid var(--line);
  background: transparent;
  transition: background 160ms ease, box-shadow 160ms ease;
}.match-card-open {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: 60px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 13px 4px 13px 13px;
  text-align: left;
  background: transparent;
}.match-card:last-child {
  border-bottom: 0;
}.match-card:hover {
  background: rgba(124, 247, 187, 0.035);
}.match-card-open:active {
  background: rgba(124, 247, 187, 0.06);
}.match-card.is-favorite {
  background: rgba(255, 200, 107, 0.035);
  
}.favorite-button {
  display: grid;
  min-width: 44px;
  align-self: stretch;
  place-items: center;
  color: var(--muted);
  background: transparent;
  font-size: 23px;
  line-height: 1;
  transition: color 150ms ease, background 150ms ease, transform 150ms ease;
}.favorite-button:hover {
  color: var(--warning);
  background: rgba(255, 200, 107, 0.06);
}.favorite-button:active {
  transform: scale(0.92);
}.favorite-button.is-active {
  color: var(--warning);
  
}.match-time {
  display: grid;
  justify-items: start;
  gap: 4px;
}.match-time strong {
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 700;
}.status-badge,
.coverage-badge,
.stale-badge {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}.status-badge {
  min-height: 19px;
  padding: 4px 7px;
  color: var(--muted-strong);
  background: rgba(197, 210, 205, 0.08);
}.status-badge.is-live {
  color: #07140f;
  background: var(--accent);
}.status-badge.is-finished {
  color: var(--muted);
  background: rgba(159, 178, 171, 0.08);
}.status-badge.is-delayed {
  color: var(--warning);
  background: var(--warning-soft);
}.teams {
  display: grid;
  min-width: 0;
  gap: 7px;
}.match-league-label {
  overflow: hidden;
  color: var(--muted);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-overflow: ellipsis;
  white-space: nowrap;
}.match-penalty-score {
  width: fit-content;
  border: 1px solid rgba(242, 184, 75, 0.26);
  border-radius: 0;
  padding: 3px 7px;
  color: var(--lead);
  background: rgba(242, 184, 75, 0.08);
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 760;
}.match-penalty-score.is-pending {
  color: var(--muted-strong);
  border-color: var(--line);
  background: var(--panel-soft);
}.match-ace-summary {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 3px 8px;
  border-top: 1px solid rgba(242, 184, 75, 0.18);
  padding-top: 6px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.35;
}.match-ace-summary span,
.match-ace-summary strong {
  overflow-wrap: anywhere;
}.match-ace-summary .match-ace-summary-label {
  color: var(--warning);
  font-weight: 700;
}.match-ace-summary strong {
  color: var(--lead);
  font-weight: 700;
}.match-ace-summary.is-dynamic {
  border-top-color: rgba(124, 247, 187, 0.2);
}.match-ace-summary.is-dynamic .match-ace-summary-label,
.match-ace-summary.is-dynamic strong {
  color: var(--accent);
}.match-analysis-entry {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 3px 10px;
  border-top: 1px solid rgba(124, 247, 187, 0.1);
  padding-top: 6px;
  font-size: 14px;
  line-height: 1.35;
}.match-analysis-state {
  color: var(--muted);
  overflow-wrap: anywhere;
}.match-history-entry {
  color: var(--accent);
  font-weight: 720;
  white-space: nowrap;
}.match-history-entry.is-waiting {
  color: var(--muted);
  font-weight: 620;
}.team-row {
  display: grid;
  min-width: 0;
  grid-template-columns: 25px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 8px;
}.team-logo {
  width: 25px;
  height: 25px;
  border-radius: 0;
  padding: 3px;
}.team-name {
  overflow: hidden;
  font-size: 14px;
  font-weight: 670;
  text-overflow: ellipsis;
  white-space: nowrap;
}.team-score {
  justify-self: end;
  font-family: var(--font-mono);
  font-size: 18px;
  font-weight: 850;
  line-height: 1;
}.match-card.is-live .team-score {
  color: var(--lime);
}.match-tail {
  display: grid;
  min-width: 22px;
  justify-items: end;
  gap: 6px;
}.updated-label {
  display: none;
  color: var(--muted);
  font-size: 14px;
  white-space: nowrap;
}.match-arrow {
  color: var(--muted);
  font-size: 18px;
  line-height: 1;
}.stale-badge,
.coverage-badge {
  padding: 4px 6px;
}.stale-badge {
  color: var(--warning);
  background: var(--warning-soft);
}.coverage-badge {
  color: var(--danger);
  background: var(--danger-soft);
}.empty-state,
.error-state {
  display: grid;
  min-height: 260px;
  place-items: center;
  gap: 10px;
  border: 1px dashed var(--line-strong);
  border-radius: 0;
  padding: 32px 20px;
  text-align: center;
  background: rgba(10, 23, 21, 0.55);
}.state-icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 0;
  color: var(--accent);
  background: var(--accent-soft);
  font-family: var(--font-mono);
  font-size: 20px;
  font-weight: 800;
}.error-state .state-icon {
  color: var(--danger);
  background: var(--danger-soft);
}.empty-state h3,
.error-state h3 {
  margin: 0;
  font-size: 16px;
}.empty-state p,
.error-state p {
  max-width: 410px;
  margin-bottom: 0;
  color: var(--muted);
  font-size: 14px;
}.state-action {
  margin-top: 6px;
  border-radius: 0;
  padding: 9px 14px;
  color: #06110e;
  background: var(--accent);
  font-size: 14px;
  font-weight: 800;
}.skeleton-stack {
  display: grid;
  gap: 9px;
}.skeleton-league,
.skeleton-card,
.detail-skeleton-shapes > div {
  overflow: hidden;
  border-radius: 0;
  background: rgba(213, 235, 226, 0.07);
}.skeleton-league::after,
.skeleton-card::after,
.detail-skeleton-shapes > div::after {
  display: block;
  width: 55%;
  height: 100%;
  transform: translateX(-120%);
  background: var(--panel);
  animation: shimmer 1.35s ease-in-out infinite;
  content: "";
}.skeleton-league { height: 48px; }.skeleton-card { height: 94px; }.skeleton-loading-copy {
  margin: 0;
  border: 1px solid rgba(124, 247, 187, 0.24);
  border-radius: 0;
  padding: 10px 12px;
  color: var(--accent);
  background: rgba(124, 247, 187, 0.1);
  font-size: 14px;
  font-weight: 760;
  text-align: center;
}@keyframes shimmer {
  to { transform: translateX(220%); }
}.match-dialog {
  width: 100%;
  max-width: none;
  height: min(92dvh, 860px);
  max-height: none;
  margin: auto 0 0;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  padding: 0;
  color: var(--text);
  background: var(--bg-elevated);
  
}.match-dialog[open] {
  animation: dialogUp 190ms ease-out;
}.match-dialog::backdrop {
  background: rgba(0, 5, 4, 0.75);
  
  
}.quota-dialog {
  width: min(100%, 620px);
  max-width: none;
  max-height: min(88dvh, 760px);
  margin: auto 0 0;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  padding: 0;
  color: var(--text);
  background: var(--bg-elevated);
  
}.quota-dialog[open] {
  animation: dialogUp 190ms ease-out;
}.quota-dialog::backdrop {
  background: rgba(3, 7, 14, 0.8);
  
  
}.quota-dialog-surface {
  display: grid;
  max-height: min(88dvh, 760px);
  grid-template-rows: auto auto minmax(0, 1fr);
}.quota-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--line);
  padding: 17px 16px 13px;
}.quota-dialog-header h2 {
  margin: 0;
  font-size: 18px;
  letter-spacing: -0.02em;
}.quota-period-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  margin: 12px 16px 0;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 4px;
  background: transparent;
}.quota-period-button {
  min-height: 36px;
  border-radius: 0;
  color: var(--muted);
  background: transparent;
  font-size: 14px;
  font-weight: 760;
}.quota-period-button.is-active {
  color: var(--text);
  background: var(--accent-soft);
  
}.quota-panel-content {
  min-height: 220px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 14px 16px calc(22px + env(safe-area-inset-bottom));
}.quota-panel-placeholder {
  margin: 0;
  border: 1px dashed var(--line-strong);
  border-radius: 0;
  padding: 28px 18px;
  color: var(--muted);
  text-align: center;
}.quota-summary {
  display: grid;
  gap: 12px;
}.quota-summary-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}.quota-summary-head > div {
  display: grid;
  gap: 2px;
}.quota-summary-head span,
.quota-summary-head small,
.quota-summary-note,
.quota-task-meta {
  color: var(--muted);
  font-size: 14px;
}.quota-summary-head strong {
  font-family: var(--font-mono);
  font-size: clamp(24px, 8vw, 34px);
  line-height: 1;
}.quota-summary-head b {
  color: var(--muted-strong);
  font-family: var(--font-mono);
  font-size: 14px;
}.quota-progress {
  height: 9px;
  overflow: hidden;
  border-radius: 0;
  background: rgba(131, 145, 167, 0.15);
}.quota-progress > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: 0;
  background: var(--panel);
}.quota-summary.is-warning .quota-progress > span {
  background: var(--panel);
}.quota-summary.is-danger .quota-progress > span {
  background: var(--panel);
}.quota-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}.quota-summary-item {
  display: grid;
  min-width: 0;
  gap: 3px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 9px;
  background: rgba(17, 24, 39, 0.68);
}.quota-summary-item span {
  color: var(--muted);
  font-size: 14px;
}.quota-summary-item strong {
  overflow: hidden;
  font-family: var(--font-mono);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.quota-summary-note {
  margin: 0;
  line-height: 1.55;
}.quota-task-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 18px 0 8px;
}.quota-task-heading h3 {
  margin: 0;
  font-size: 14px;
}.quota-task-heading span {
  color: var(--muted);
  font-size: 14px;
}.quota-task-list {
  display: grid;
  gap: 7px;
}.quota-task-row {
  display: grid;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 10px 11px;
  background: rgba(17, 24, 39, 0.62);
}.quota-task-row-head,
.quota-task-meta {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}.quota-task-title {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
}.quota-task-title strong {
  overflow: hidden;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.quota-attribution-badge {
  flex: 0 0 auto;
  border-radius: 0;
  padding: 2px 6px;
  color: var(--ink);
  background: var(--accent-soft);
  font-size: 14px;
  font-weight: 780;
}.quota-attribution-badge.is-legacy {
  color: var(--lead);
  background: var(--warning-soft);
}.quota-task-count {
  flex: 0 0 auto;
  font-family: var(--font-mono);
  font-size: 14px;
}.quota-task-bar {
  height: 4px;
  overflow: hidden;
  border-radius: 0;
  background: rgba(131, 145, 167, 0.12);
}.quota-task-bar > span {
  display: block;
  height: 100%;
  border-radius: 0;
  background: var(--accent);
}@media (min-width: 620px) {.quota-dialog {
    margin: auto;
    border-radius: 0;
  }.quota-dialog-header,
  .quota-panel-content {
    padding-right: 22px;
    padding-left: 22px;
  }.quota-period-switch {
    margin-right: 22px;
    margin-left: 22px;
  }
}@media (max-width: 420px) {.quota-panel-trigger span {
    display: none;
  }.quota-panel-trigger {
    min-width: 48px;
    justify-content: center;
  }.quota-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}@keyframes dialogUp {
  from { transform: translateY(24px); opacity: 0; }
}.dialog-surface {
  display: grid;
  height: 100%;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
}.dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--line);
  padding: 17px 16px 13px;
}.dialog-header h2 {
  margin-bottom: 0;
  font-size: 17px;
  letter-spacing: -0.02em;
}.icon-button {
  display: grid;
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 0;
  color: var(--muted-strong);
  background: var(--panel);
  font-size: 24px;
  line-height: 1;
}.icon-button:hover {
  color: var(--text);
  border-color: var(--line-strong);
}.dialog-score {
  min-height: 142px;
  border-bottom: 1px solid var(--line);
  padding: 17px 16px;
  background: var(--panel);
}.score-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}.score-team {
  display: grid;
  min-width: 0;
  justify-items: center;
  gap: 6px;
  text-align: center;
}.score-team .team-logo {
  width: 44px;
  height: 44px;
  padding: 5px;
}.score-team strong {
  overflow: hidden;
  width: 100%;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.score-centre {
  display: grid;
  min-width: 82px;
  justify-items: center;
  gap: 5px;
}.score-numbers {
  font-family: var(--font-mono);
  font-size: clamp(26px, 8vw, 40px);
  font-weight: 900;
  letter-spacing: -0.08em;
  line-height: 1;
}.score-extra {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 14px;
}.detail-tabs {
  display: flex;
  min-height: 47px;
  gap: 2px;
  overflow-x: auto;
  border-bottom: 1px solid var(--line);
  padding: 0 10px;
  background: rgba(7, 19, 16, 0.86);
  scrollbar-width: none;
}.detail-tab {
  position: relative;
  flex: 0 0 auto;
  padding: 0 12px;
  color: var(--muted);
  background: transparent;
  font-size: 14px;
  font-weight: 700;
}.detail-tab::after {
  position: absolute;
  right: 12px;
  bottom: 0;
  left: 12px;
  height: 2px;
  border-radius: 0;
  background: transparent;
  content: "";
}.detail-tab.is-active {
  color: var(--text);
}.detail-tab.is-active::after {
  background: var(--accent);
}.detail-content {
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 16px;
}.detail-content > * + * {
  margin-top: 12px;
}.detail-skeleton {
  display: grid;
  gap: 10px;
}.detail-skeleton-shapes {
  display: grid;
  gap: 10px;
}.detail-skeleton-shapes > div:nth-child(1) { height: 88px; }.detail-skeleton-shapes > div:nth-child(2) { height: 160px; }.detail-skeleton-shapes > div:nth-child(3) { height: 110px; }.dialog-footer {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  border-top: 1px solid var(--line);
  padding: 11px 16px calc(11px + env(safe-area-inset-bottom));
  color: var(--muted);
  background: #071210;
  font-size: 14px;
}.dialog-footer p {
  margin-bottom: 0;
}.shield-mark {
  display: grid;
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(124, 247, 187, 0.36);
  border-radius: 0;
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 800;
}.detail-grid {
  display: grid;
  gap: 12px;
}.detail-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--panel);
}.detail-card-header {
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--line);
  padding: 10px 12px;
}.detail-card-header h3 {
  margin: 0;
  font-size: 14px;
}.detail-card-header span,
.detail-card-note {
  color: var(--muted);
  font-size: 14px;
}.detail-card-body {
  padding: 12px;
}.prematch-context-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  padding: 0;
  background: var(--line);
}.prematch-context-item {
  display: grid;
  min-width: 0;
  gap: 4px;
  padding: 9px 10px;
  background: var(--panel);
}.prematch-context-item span {
  color: var(--muted);
  font-size: 14px;
}.prematch-context-item strong {
  overflow-wrap: anywhere;
  color: var(--muted-strong);
  font-size: 14px;
  line-height: 1.5;
}.prematch-context-note {
  grid-column: 1 / -1;
  margin: 0;
  padding: 8px 10px;
  color: var(--muted);
  background: var(--panel);
  font-size: 14px;
  line-height: 1.5;
}.market-movement-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}.market-movement-item {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 9px;
  background: rgba(255, 255, 255, 0.018);
}.market-movement-title {
  display: block;
  margin-bottom: 7px;
  color: var(--text);
  font-size: 14px;
}.market-movement-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
}.market-movement-points span {
  overflow: hidden;
  border-radius: 0;
  padding: 4px 5px;
  color: var(--muted-strong);
  background: var(--panel-soft);
  font-family: var(--font-mono);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.market-movement-copy,
.market-movement-note {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}.market-movement-note {
  grid-column: 1 / -1;
  margin-top: 0;
}.facts-list {
  display: grid;
  margin: 0;
}.fact-row {
  display: grid;
  grid-template-columns: minmax(90px, 0.7fr) minmax(0, 1.3fr);
  gap: 12px;
  border-bottom: 1px solid var(--line);
  padding: 9px 0;
}.fact-row:first-child { padding-top: 0; }.fact-row:last-child { border-bottom: 0; padding-bottom: 0; }.fact-row dt {
  color: var(--muted);
  font-size: 14px;
}.fact-row dd {
  overflow-wrap: anywhere;
  margin: 0;
  text-align: right;
  font-size: 14px;
  font-weight: 680;
}.prediction-headline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}.prediction-headline strong {
  font-size: 15px;
}.prediction-source {
  color: var(--muted);
  font-size: 14px;
  text-align: right;
}.probability-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
}.probability-item {
  display: grid;
  gap: 5px;
  border-radius: 0;
  padding: 9px;
  background: rgba(255, 255, 255, 0.025);
}.probability-item span {
  color: var(--muted);
  font-size: 14px;
}.probability-item strong {
  font-family: var(--font-mono);
  font-size: 14px;
}.probability-bar {
  height: 3px;
  overflow: hidden;
  border-radius: 0;
  background: rgba(255, 255, 255, 0.08);
}.probability-bar span {
  display: block;
  height: 100%;
  border-radius: 0;
  background: var(--accent);
}.shadow-model {
  display: grid;
  gap: 12px;
}.model-coverage-badge {
  width: fit-content;
  border: 1px solid rgba(124, 247, 187, 0.28);
  border-radius: 0;
  padding: 5px 8px;
  color: var(--accent);
  background: rgba(124, 247, 187, 0.08);
  font-size: 14px;
  font-weight: 760;
}.model-coverage-badge.is-low-evidence {
  border-color: rgba(255, 190, 92, 0.35);
  color: var(--lead);
  background: rgba(255, 190, 92, 0.08);
}.model-selection-panel {
  overflow: hidden;
  border: 1px solid rgba(124, 247, 187, 0.34);
  border-radius: 0;
  background: var(--panel);
}.model-selection-panel.is-blocked {
  border-color: rgba(255, 190, 92, 0.34);
  background: rgba(255, 190, 92, 0.07);
}.model-selection-panel.is-frozen {
  border-color: rgba(242, 184, 75, 0.34);
  background: var(--panel);
}.model-selection-panel.is-frozen .model-selection-header span {
  color: var(--warning);
}.model-frozen-note {
  margin: 0;
  border-top: 1px solid rgba(242, 184, 75, 0.16);
  padding: 8px 10px;
  color: var(--muted);
  font-size: 14px;
}.model-selection-header {
  display: flex;
  min-height: 36px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--line);
  padding: 8px 10px;
}.model-selection-header h4 {
  margin: 0;
  font-size: 14px;
}.model-selection-header span {
  color: var(--accent);
  font-size: 14px;
  font-weight: 760;
}.model-selection-panel.is-blocked .model-selection-header span {
  color: var(--warning);
}.model-selection-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}.model-selection-item {
  display: grid;
  min-width: 0;
  gap: 5px;
  padding: 10px;
}.model-selection-item + .model-selection-item {
  border-left: 1px solid var(--line);
}.model-selection-item span {
  color: var(--muted);
  font-size: 14px;
}.model-selection-item strong {
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 14px;
}.model-selection-item.is-preferred {
  background: rgba(124, 247, 187, 0.1);
}.model-selection-item.is-tendency {
  background: rgba(99, 89, 224, 0.08);
}.model-selection-item.is-tendency strong {
  color: var(--ink);
}.model-selection-item.is-preferred strong {
  color: var(--accent);
  font-size: 14px;
}.model-selection-blocked {
  margin: 0;
  padding: 11px;
  color: var(--warning);
  font-size: 14px;
  line-height: 1.55;
}.local-live-list,
.ledger-list {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}.local-live-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(10, 23, 21, 0.82);
  
}.local-live-card.is-interactive {
  cursor: pointer;
}.local-live-card.is-interactive:hover {
  border-color: rgba(124, 247, 187, 0.28);
  background: rgba(13, 30, 27, 0.9);
}.local-live-card-header {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--line);
  padding: 7px 10px;
  background: rgba(16, 37, 32, 0.64);
}.local-live-identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
}.local-live-favorite {
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 0;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.025);
  font-size: 19px;
  line-height: 1;
}.local-live-favorite:hover,
.local-live-favorite.is-active {
  border-color: rgba(242, 184, 75, 0.34);
  color: var(--warning);
  background: var(--warning-soft);
}.local-live-league-meta {
  display: grid;
  min-width: 0;
  gap: 1px;
}.local-live-league {
  overflow: hidden;
  min-width: 0;
  color: var(--muted-strong);
  font-size: 14px;
  font-weight: 740;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-kickoff {
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}.local-live-timing {
  display: grid;
  width: 13em;
  flex: 0 0 13em;
  grid-template-areas:
    "freshness stage clock"
    ". . delay";
  grid-template-columns: 7px 1em 8.5ch;
  align-items: center;
  justify-content: end;
  column-gap: 3px;
  row-gap: 2px;
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: 14px;
}.local-live-timing.has-extra {
  grid-template-areas:
    "freshness stage clock extra"
    ". . delay delay";
  grid-template-columns: 7px 1em 8.5ch 4.4em;
}.local-live-timing.is-interrupted {
  grid-template-columns: 7px 4.8em 5.5em;
}.local-live-timing.is-interrupted.has-extra {
  grid-template-columns: 7px 4.8em 5.5em 4.4em;
}.local-live-timing > strong {
  color: var(--success);
  font-weight: 800;
}.local-live-freshness-dot {
  grid-area: freshness;
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 0;
}.local-live-freshness-dot.is-fresh {
  background: var(--success);
  
  animation: localLiveFreshBreath 2s steps(1, end) infinite;
}.local-live-freshness-dot.is-stale {
  background: var(--warning);
  
  animation: none;
}@keyframes localLiveFreshBreath {
  0%,
  49.999% {
    opacity: 1;
    
  }

  50%,
  100% {
    opacity: 0.08;
    
  }
}.local-live-stage {
  display: inline-block;
  overflow: hidden;
  min-width: 0;
  height: auto;
  grid-area: stage;
  border-radius: 0;
  color: var(--muted-strong);
  background: transparent;
  
  font-family: var(--font-sans);
  font-weight: 900;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-extra {
  box-sizing: border-box;
  width: 100%;
  grid-area: extra;
  border-radius: 0;
  padding: 3px 6px;
  color: var(--success);
  background: var(--success-soft);
  font-size: 14px;
  font-weight: 800;
  text-align: center;
  white-space: nowrap;
}.local-live-clock-value {
  display: block;
  width: 100%;
  min-width: 0;
  grid-area: clock;
  font-variant-numeric: tabular-nums lining-nums;
  text-align: left;
  white-space: nowrap;
}.local-live-timing.has-extra .local-live-clock-value {
  text-align: right;
}.local-live-clock-delay {
  grid-area: delay;
  justify-self: end;
  border: 1px solid rgba(242, 184, 75, 0.28);
  border-radius: 0;
  padding: 2px 5px;
  color: var(--warning);
  background: rgba(242, 184, 75, 0.07);
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 760;
  white-space: nowrap;
}.local-live-clock-delay[hidden],
.local-live-extra[hidden] {
  display: none;
}.local-live-card.is-clock-delayed .local-live-clock-value {
  color: var(--warning);
}.local-live-scoreboard {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
}.local-live-team {
  overflow: hidden;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-team.is-away {
  text-align: right;
}.local-live-score {
  color: var(--lime);
  font-family: var(--font-mono);
  font-size: clamp(23px, 6vw, 30px);
  font-weight: 900;
  letter-spacing: -0.06em;
  line-height: 1;
  white-space: nowrap;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  padding: 6px 10px;
  background: rgba(27, 38, 58, 0.82);
  
}.local-live-markets,
.local-live-frozen-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}.local-live-context {
  display: flex;
  min-height: 30px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-top: 1px solid rgba(153, 171, 199, 0.08);
  padding: 5px 10px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.016);
  font-size: 14px;
}.local-live-context strong {
  color: var(--muted-strong);
  font-family: var(--font-display);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}.local-live-context i {
  color: var(--line-strong);
  font-style: normal;
}.local-live-section-head {
  display: flex;
  min-height: 34px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--line);
  padding: 7px 10px;
}.local-live-section-head strong {
  color: var(--muted-strong);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
}.local-live-section-head span {
  overflow: hidden;
  color: var(--muted);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-stats {
  border-top: 1px solid var(--line);
  background: transparent;
}.local-live-stats[hidden] {
  display: none;
}.local-live-events {
  border-top: 1px solid var(--line);
  background: transparent;
}.local-live-event-head {
  min-height: 27px;
  padding-block: 4px;
}.local-live-events .event-lane-axis {
  min-height: 18px;
  padding-inline: 8px;
  font-size: 14px;
}.local-live-events .event-lane-row {
  min-height: 27px;
  padding: 3px 8px;
}.local-live-events .event-lane-entry {
  gap: 5px;
}.local-live-events .event-lane-icon {
  width: 20px;
  height: 20px;
  border-radius: 0;
  font-size: 14px;
}.local-live-events .event-lane-copy {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: 4px;
}.local-live-events .event-lane-copy strong {
  flex: 0 0 auto;
  font-size: 14px;
}.local-live-events .event-lane-player {
  min-width: 0;
  font-size: 14px;
}.local-live-events .event-lane-meta {
  display: none;
}.local-live-events .event-lane-time {
  font-size: 14px;
}.local-live-event-expanded {
  display: none;
}.local-live-card.is-stats-expanded .local-live-event-preview {
  display: none;
}.local-live-card.is-stats-expanded .local-live-event-expanded {
  display: grid;
  max-height: 172px;
  overflow-y: auto;
}.local-live-card.is-stats-expanded .local-live-events .event-lane-row {
  min-height: 34px;
  padding-block: 5px;
}.local-live-card.is-stats-expanded .local-live-events .event-lane-copy {
  display: grid;
}.local-live-card.is-stats-expanded .local-live-events .event-lane-meta {
  display: block;
}.local-live-event-more {
  margin: 0;
  padding: 7px 8px;
  color: var(--muted);
  font-size: 14px;
  text-align: center;
}.local-live-quick-stats {
  border-top: 1px solid var(--line);
  background: transparent;
}.local-live-quick-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(56px, 1fr));
  gap: 5px;
  padding: 7px 8px;
}.local-live-quick-stat {
  display: grid;
  min-width: 0;
  gap: 2px;
  border: 1px solid rgba(153, 171, 199, 0.09);
  border-radius: 0;
  padding: 5px 4px;
  background: rgba(255, 255, 255, 0.018);
  text-align: center;
}.local-live-quick-stat span {
  color: var(--muted);
  font-size: 14px;
}.local-live-quick-stat strong {
  overflow: hidden;
  color: var(--text);
  font-family: var(--font-display);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-card.is-stats-expanded .local-live-quick-stats {
  display: none;
}.local-live-observation {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  border-bottom: 1px solid var(--line);
  padding: 8px 10px;
  background: rgba(76, 141, 255, 0.055);
}.local-live-observation span {
  border-radius: 0;
  padding: 3px 6px;
  color: var(--ink);
  background: rgba(76, 141, 255, 0.13);
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}.local-live-observation strong {
  overflow: hidden;
  color: var(--muted-strong);
  font-size: 14px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-stats-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 98px;
  align-items: center;
  gap: 12px;
  padding: 10px;
}.local-live-stat-list {
  display: grid;
  gap: 7px;
}.local-live-stat-row {
  display: grid;
  grid-template-columns: 20px minmax(24px, 1fr) 34px minmax(24px, 1fr) 20px;
  align-items: center;
  gap: 5px;
}.local-live-stat-value {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}.local-live-stat-value.is-home {
  text-align: right;
}.local-live-stat-label {
  color: var(--muted);
  font-size: 14px;
  text-align: center;
  white-space: nowrap;
}.local-live-stat-track {
  display: flex;
  height: 5px;
  overflow: hidden;
  border-radius: 0;
  background: rgba(131, 145, 167, 0.11);
}.local-live-stat-track.is-home {
  justify-content: flex-end;
}.local-live-stat-track i {
  display: block;
  height: 100%;
  border-radius: 0;
  background: #86aef3;
}.local-live-stat-track.is-away i {
  background: #58718f;
}.local-live-stat-row.is-warning .local-live-stat-track i {
  background: var(--warning);
}.local-live-possession {
  display: grid;
  gap: 5px;
  border-left: 1px solid var(--line);
  padding-left: 12px;
  text-align: center;
}.local-live-possession > span:first-child {
  color: var(--muted);
  font-size: 14px;
}.local-live-possession strong {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}.local-live-possession-bar {
  display: block;
  height: 6px;
  overflow: hidden;
  border-radius: 0;
  background: #58718f;
}.local-live-possession-bar i {
  display: block;
  height: 100%;
  border-radius: 0;
  background: #86aef3;
}.local-live-markets {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
}.local-live-market-head {
  grid-column: 1 / -1;
}.local-live-odds-feed-notice {
  display: flex;
  min-width: 0;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid rgba(242, 184, 75, 0.18);
  padding: 6px 8px;
  color: var(--warning);
  background: rgba(242, 184, 75, 0.065);
  font-size: 14px;
}.local-live-odds-feed-notice strong {
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 800;
}.local-live-odds-feed-notice span {
  overflow: hidden;
  color: var(--muted-strong);
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-markets .local-live-fact.is-current-market {
  border-bottom: 1px solid var(--line);
}.local-live-markets .local-live-fact.is-market-right {
  border-right: 0;
}.local-live-markets .local-live-fact.is-handicap strong {
  min-height: 2.7em;
  white-space: pre-line;
  font-size: 14px;
  line-height: 1.35;
}.local-live-market-divider {
  grid-column: 1 / -1;
  border-top: 1px solid rgba(142, 240, 193, 0.16);
  border-bottom: 1px solid rgba(142, 240, 193, 0.16);
  background: rgba(142, 240, 193, 0.035);
  color: var(--muted);
  font-size: 14px;
  letter-spacing: 0.04em;
}.local-live-half-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 10px;
  padding: 6px 8px 7px;
}.local-live-half-summary strong {
  grid-column: 1 / -1;
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
}.local-live-half-summary span {
  overflow: hidden;
  color: var(--muted-strong);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-card:not(.is-stats-expanded) .local-live-markets .local-live-fact.is-first-half {
  display: none;
}.local-live-card:not(.is-stats-expanded) .local-live-half-summary,
.local-live-card:not(.is-stats-expanded) .local-live-event-head,
.local-live-card:not(.is-stats-expanded) .local-live-market-head,
.local-live-card:not(.is-stats-expanded) .local-live-frozen-head {
  display: none;
}.local-live-card:not(.is-stats-expanded) .local-live-frozen-values {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}.local-live-card:not(.is-stats-expanded) .local-live-frozen-values .local-live-frozen-primary {
  min-height: 36px;
  align-content: center;
  border-right: 1px solid var(--line);
  padding-block: 6px;
}.local-live-markets .local-live-fact.is-first-half {
  background: rgba(142, 240, 193, 0.018);
}.local-live-fact {
  display: grid;
  min-width: 0;
  gap: 3px;
  padding: 8px;
  border-right: 1px solid var(--line);
}.local-live-fact:last-child {
  border-right: 0;
}.local-live-fact span {
  color: var(--muted);
  font-size: 14px;
}.local-live-fact strong {
  overflow-wrap: anywhere;
  color: var(--muted-strong);
  font-size: 14px;
}.local-live-ace-analysis {
  border-top: 1px solid rgba(124, 247, 187, 0.18);
  background: var(--panel);
  color: var(--muted-strong);
}.local-live-ace-analysis.is-observing {
  border-top-color: rgba(157, 170, 194, 0.2);
  background: var(--panel);
}.local-live-ace-head {
  display: flex;
  min-height: 28px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid rgba(124, 247, 187, 0.12);
  padding: 5px 8px;
}.local-live-ace-title,
.local-live-ace-source {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-ace-title {
  color: var(--accent);
  font-size: 14px;
  font-weight: 800;
}.local-live-ace-source {
  color: var(--muted);
  font-size: 14px;
}.local-live-ace-market-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
  border-bottom: 1px solid var(--line);
}.local-live-ace-market {
  display: grid;
  min-width: 0;
  gap: 2px;
  padding: 7px 8px;
}.local-live-ace-market + .local-live-ace-market {
  border-left: 1px solid var(--line);
}.local-live-ace-market > span,
.local-live-ace-market > small {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.25;
}.local-live-ace-market > span {
  font-weight: 760;
}.local-live-ace-market > strong {
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 14px;
  line-height: 1.25;
}.local-live-ace-market.is-total-experiment {
  
  background: rgba(124, 247, 187, 0.025);
}.local-live-ace-market.is-total-experiment > span {
  color: var(--accent);
}.local-live-ace-market.is-asian-observation > strong {
  color: var(--muted-strong);
}.local-live-ace-disabled-markets {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
}.local-live-ace-disabled-market {
  display: grid;
  min-width: 0;
  gap: 1px;
  padding: 5px 7px;
}.local-live-ace-disabled-market + .local-live-ace-disabled-market {
  border-left: 1px solid var(--line);
}.local-live-ace-disabled-market strong {
  color: var(--muted-strong);
  font-size: 14px;
}.local-live-ace-disabled-market small {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.25;
}.local-live-ace-freshness {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.012);
}.local-live-ace-freshness-item {
  display: grid;
  min-width: 0;
  gap: 1px;
  padding: 5px 7px;
}.local-live-ace-freshness-item + .local-live-ace-freshness-item {
  border-left: 1px solid var(--line);
}.local-live-ace-freshness-item small {
  color: var(--muted);
  font-size: 14px;
}.local-live-ace-freshness-item strong {
  overflow: hidden;
  color: var(--muted-strong);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-ace-freshness-item.is-missing strong {
  color: var(--warning);
}.local-live-ace-blocker {
  margin: 0;
  padding: 5px 8px 6px;
  overflow-wrap: anywhere;
  color: var(--warning);
  font-size: 14px;
  line-height: 1.35;
}.local-live-ace-blocker.is-clear {
  color: var(--muted-strong);
}.local-live-frozen {
  border-top: 1px solid rgba(255, 200, 107, 0.2);
  background: rgba(255, 200, 107, 0.045);
}.local-live-frozen-head {
  display: flex;
  min-height: 30px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid rgba(242, 184, 75, 0.16);
  padding: 5px 8px;
}.local-live-frozen-head > span:last-child {
  overflow: hidden;
  color: var(--muted);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-frozen-title {
  display: block;
  padding: 0;
  color: var(--warning);
  font-size: 14px;
  font-weight: 820;
  letter-spacing: 0.04em;
}.local-live-frozen-primary {
  gap: 3px;
  border-bottom: 0;
  padding: 8px;
}.local-live-frozen-primary span {
  color: var(--warning);
  font-size: 14px;
  font-weight: 600;
}.local-live-frozen-primary strong {
  color: var(--lead);
  font-size: 14px;
  font-weight: 700;
}.local-live-frozen-values {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}.local-live-freeze-missing {
  margin: 0;
  padding: 10px;
  color: var(--warning);
  font-size: 14px;
  line-height: 1.55;
}.local-live-frozen-evidence,
.local-live-model-reference-note {
  margin: 0;
  border-top: 1px solid var(--line);
  padding: 6px 8px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}.local-live-model-reference {
  border-top: 1px solid rgba(139, 132, 255, 0.28);
  background: rgba(99, 89, 224, 0.035);
}.local-live-model-reference-head {
  display: flex;
  min-height: 28px;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  padding: 5px 8px;
}.local-live-model-reference-head strong {
  color: var(--muted-strong);
  font-size: 14px;
}.local-live-model-reference-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
}.local-live-model-reference-values .local-live-fact.is-tendency {
  border-right: 0;
  background: rgba(99, 89, 224, 0.07);
}.local-live-model-reference-values .local-live-fact.is-tendency strong {
  color: var(--ink);
}.local-live-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  border-top: 1px solid var(--line);
  background: transparent;
}.local-live-expand-button,
.local-live-detail-link {
  min-height: 40px;
  padding: 8px 10px;
  color: var(--muted);
  background: transparent;
  font-size: 14px;
  font-weight: 600;
}.local-live-expand-button {
  border-right: 1px solid var(--line);
  text-align: left;
}.local-live-expand-button:hover,
.local-live-detail-link:hover {
  color: var(--info);
  background: var(--accent-soft);
}.local-live-expand-button:focus-visible,
.local-live-detail-link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -3px;
}.local-live-detail-link {
  width: 100%;
  text-align: right;
}.ledger-toolbar {
  display: flex;
  min-height: 64px;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 10px 12px;
  background: rgba(7, 19, 16, 0.76);
}.ledger-summary {
  align-self: center;
  color: var(--muted);
  font-size: 14px;
}.ledger-entry {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(10, 23, 21, 0.76);
}.ledger-entry-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  border-bottom: 1px solid var(--line);
  padding: 9px 11px;
  color: var(--muted);
  font-size: 14px;
}.ledger-entry-league {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}.ledger-result {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 0;
  font-size: 14px;
  font-weight: 900;
}.ledger-result.is-correct {
  color: #06110e;
  background: var(--accent);
}.ledger-result.is-wrong {
  color: #220906;
  background: var(--danger);
}.ledger-result.is-push {
  color: #261703;
  background: var(--warning);
}.ledger-result.is-live {
  width: 34px;
  border: 1px solid currentColor;
  font-size: 14px;
}.ledger-result.is-live {
  color: var(--success);
  background: rgba(64, 211, 142, 0.09);
}.ledger-result.is-pending {
  color: var(--muted-strong);
  background: var(--panel-soft);
}.ledger-result.is-rechecking {
  color: var(--ink);
  background: transparent;
}.ledger-result.is-excluded {
  color: var(--muted-strong);
  background: transparent;
}.ledger-entry-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 5px 12px;
  padding: 11px;
}.ledger-match {
  overflow: hidden;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.ledger-score {
  color: var(--lime);
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 820;
}.ledger-selection {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}.ledger-state-note {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted-strong);
  font-size: 14px;
}.model-score-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}.model-score-strip span {
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 5px 8px;
  color: var(--muted-strong);
  background: var(--panel-soft);
  font-family: var(--font-mono);
  font-size: 14px;
}.model-markets {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}.model-market-box {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.018);
}.model-market-box h4 {
  margin: 0;
  border-bottom: 1px solid var(--line);
  padding: 8px 9px;
  font-size: 14px;
}.model-settlement-row {
  display: grid;
  gap: 3px;
  padding: 8px 9px;
}.model-settlement-row + .model-settlement-row {
  border-top: 1px solid var(--line);
}.model-settlement-row strong {
  font-size: 14px;
}.model-settlement-row span {
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: 14px;
  line-height: 1.5;
}.blocked-box,
.no-data-box {
  border: 1px dashed var(--line-strong);
  border-radius: 0;
  padding: 18px 14px;
  color: var(--muted);
  text-align: center;
  background: rgba(255, 255, 255, 0.018);
  font-size: 14px;
}.blocked-box {
  color: var(--warning);
  border-color: rgba(255, 200, 107, 0.25);
  background: var(--warning-soft);
}.similarity-root,
.similarity-root > *,
.similarity-example-card,
.similarity-example-card > * {
  min-width: 0;
  max-width: 100%;
}.similarity-target-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}.similarity-target-item {
  display: grid;
  min-width: 0;
  gap: 5px;
  border: 1px solid rgba(124, 247, 187, 0.12);
  border-radius: 0;
  padding: 10px;
  background: rgba(124, 247, 187, 0.035);
}.similarity-target-item span,
.similarity-summary-item span,
.similarity-example-markets span,
.similarity-example-results span {
  color: var(--muted);
  font-size: 14px;
}.similarity-target-item strong {
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 14px;
  line-height: 1.45;
}.similarity-evidence-tags,
.similarity-score-facts,
.similarity-score-strip {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 6px;
}.similarity-evidence-tags span,
.similarity-score-facts span,
.similarity-score-strip span {
  max-width: 100%;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 5px 8px;
  color: var(--muted-strong);
  background: var(--panel-soft);
  font-family: var(--font-mono);
  font-size: 14px;
  overflow-wrap: anywhere;
}.similarity-evidence-tags span:first-child {
  border-color: rgba(124, 247, 187, 0.25);
  color: var(--accent);
  background: rgba(124, 247, 187, 0.07);
}.similarity-summary-grid {
  display: grid;
  min-width: 0;
  gap: 6px;
}.similarity-summary-grid.is-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}.similarity-summary-grid.is-five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}.similarity-summary-item {
  display: grid;
  min-width: 0;
  gap: 5px;
  border-radius: 0;
  padding: 9px 7px;
  background: rgba(255, 255, 255, 0.022);
  text-align: center;
}.similarity-summary-item strong {
  overflow-wrap: anywhere;
  color: var(--muted-strong);
  font-family: var(--font-mono);
  font-size: 14px;
  line-height: 1.35;
}.similarity-summary-item.is-positive {
  background: rgba(124, 247, 187, 0.055);
}.similarity-summary-item.is-positive strong {
  color: var(--accent);
}.similarity-summary-item.is-negative {
  background: rgba(255, 139, 123, 0.05);
}.similarity-summary-item.is-negative strong {
  color: var(--signal);
}.similarity-score-body {
  display: grid;
  min-width: 0;
  gap: 10px;
}.similarity-current-grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}.similarity-current-item {
  display: grid;
  min-width: 0;
  gap: 5px;
  border-radius: 0;
  padding: 9px 7px;
  background: rgba(124, 247, 187, 0.045);
  text-align: center;
}.similarity-current-item span {
  color: var(--muted);
  font-size: 14px;
}.similarity-current-item strong {
  overflow-wrap: anywhere;
  color: var(--text);
  font-family: var(--font-mono);
  font-size: 14px;
  line-height: 1.4;
}.similarity-conclusion {
  margin: 0;
  color: var(--muted-strong);
  font-size: 14px;
  line-height: 1.7;
}.similarity-score-strip span.is-empty {
  border-style: dashed;
  color: var(--muted);
}.similarity-example-list {
  display: grid;
  min-width: 0;
  gap: 8px;
}.similarity-example-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.018);
}.similarity-example-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  border-bottom: 1px solid var(--line);
  padding: 7px 9px;
  color: var(--muted);
  font-size: 14px;
}.similarity-example-header strong {
  overflow: hidden;
  color: var(--muted-strong);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.similarity-example-header span {
  color: var(--accent);
  font-family: var(--font-mono);
}.similarity-example-match {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 10px 9px 8px;
  font-size: 14px;
}.similarity-example-match span {
  min-width: 0;
  overflow-wrap: anywhere;
}.similarity-example-match span:last-child {
  text-align: right;
}.similarity-example-match strong {
  border: 1px solid var(--line-strong);
  border-radius: 0;
  padding: 4px 7px;
  color: var(--lime);
  background: rgba(255, 255, 255, 0.025);
  font-family: var(--font-mono);
  font-size: 14px;
  white-space: nowrap;
}.similarity-example-source {
  margin: 0;
  border-top: 1px solid var(--line);
  padding: 6px 9px;
  overflow-wrap: anywhere;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.012);
  font-size: 14px;
  line-height: 1.45;
}.similarity-example-markets,
.similarity-example-results {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
  border-top: 1px solid var(--line);
}.similarity-example-markets > div,
.similarity-example-results > div {
  display: grid;
  min-width: 0;
  gap: 3px;
  padding: 7px 8px;
}.similarity-example-markets > div + div,
.similarity-example-results > div + div {
  border-left: 1px solid var(--line);
}.similarity-example-markets strong,
.similarity-example-results strong {
  overflow-wrap: anywhere;
  color: var(--muted-strong);
  font-size: 14px;
  line-height: 1.4;
}.similarity-example-results {
  background: rgba(124, 247, 187, 0.025);
}.similarity-example-results strong {
  color: var(--text);
}.similarity-disclaimer {
  margin: 0;
  border-left: 2px solid rgba(124, 247, 187, 0.34);
  padding: 8px 10px;
  color: var(--muted);
  background: rgba(124, 247, 187, 0.035);
  font-size: 14px;
  line-height: 1.55;
}@media (max-width: 620px) {.market-movement-grid {
    grid-template-columns: 1fr;
  }.market-movement-note {
    grid-column: auto;
  }.local-live-ace-analysis {
    font-size: 14px;
  }.local-live-ace-market-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  }.local-live-ace-market,
  .local-live-ace-disabled-market,
  .local-live-ace-freshness-item {
    padding-inline: 6px;
  }.local-live-ace-disabled-market small {
    line-height: 1.15;
  }.local-live-ace-freshness {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.local-live-ace-freshness-item:nth-child(3) {
    border-left: 0;
  }.local-live-ace-freshness-item:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }.model-markets {
    grid-template-columns: 1fr;
  }.model-selection-grid {
    grid-template-columns: 1fr;
  }.model-selection-item + .model-selection-item {
    border-top: 1px solid var(--line);
    border-left: 0;
  }.view-heading {
    align-items: flex-start;
  }.live-heading-actions {
    flex-direction: column;
    align-items: stretch;
  }.live-favorite-filter-button {
    min-width: 104px;
  }.view-heading .refresh-button {
    padding-inline: 10px;
  }.ledger-toolbar {
    align-items: center;
  }.similarity-target-grid {
    grid-template-columns: 1fr;
  }.similarity-current-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.similarity-summary-grid.is-five {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.similarity-summary-grid.is-five .similarity-summary-item:last-child {
    grid-column: 1 / -1;
  }.similarity-example-header {
    grid-template-columns: minmax(0, 1fr) auto;
  }.similarity-example-header strong {
    grid-column: 1 / -1;
    grid-row: 2;
  }.similarity-example-markets {
    grid-template-columns: 1fr;
  }.similarity-example-markets > div + div {
    border-top: 1px solid var(--line);
    border-left: 0;
  }
}/* v0.12 — complete research predictions are visually isolated from the old
   formal/reference ledgers. Colour never carries source or settlement alone. */
.source-badge.is-research {
  border-color: rgba(112, 167, 255, 0.58);
  color: var(--ink);
  background: rgba(76, 141, 255, 0.12);
}.prediction-basis-badge,
.prediction-edge-badge {
  display: inline-flex;
  min-height: 18px;
  align-items: center;
  border-radius: 0;
  padding: 2px 6px;
  font-size: 14px;
  font-weight: 760;
  line-height: 1;
}.prediction-basis-badge.is-real {
  color: var(--lead);
  background: rgba(242, 184, 75, 0.1);
}.prediction-basis-badge.is-reference {
  color: var(--ink);
  background: rgba(139, 132, 255, 0.1);
}.prediction-edge-badge {
  color: var(--muted-strong);
  background: rgba(197, 210, 205, 0.07);
}.match-decision-stack {
  display: grid;
  min-width: 0;
  gap: 6px;
}.match-t5-decision,
.match-model-reference {
  display: grid;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 0;
}.match-t5-decision.is-frozen {
  border-color: rgba(242, 184, 75, 0.28);
  background: rgba(242, 184, 75, 0.045);
}.match-t5-decision.is-missing {
  border-style: dashed;
  border-color: rgba(242, 184, 75, 0.22);
  background: rgba(242, 184, 75, 0.025);
}.match-t5-decision-head,
.match-model-reference-head {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 7px;
  padding: 6px 7px;
}.match-t5-decision-head strong,
.match-model-reference-head strong {
  min-width: 0;
  color: var(--muted-strong);
  font-size: 14px;
  overflow-wrap: anywhere;
}.match-t5-decision-grid,
.match-model-reference-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
}.match-t5-decision-grid > span,
.match-model-reference-grid > span {
  display: grid;
  min-width: 0;
  gap: 2px;
  padding: 6px 7px;
}.match-t5-decision-grid > span + span,
.match-model-reference-grid > span + span {
  border-left: 1px solid var(--line);
}.match-t5-decision-grid small,
.match-model-reference-grid small {
  color: var(--muted);
  font-size: 14px;
}.match-t5-decision-grid strong,
.match-model-reference-grid strong {
  overflow: hidden;
  color: var(--text);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.match-t5-decision-grid .is-preferred {
  background: rgba(242, 184, 75, 0.08);
}.match-t5-decision-grid .is-preferred strong {
  color: var(--lead);
}.match-t5-decision-meta,
.match-t5-decision-missing,
.match-model-reference-note {
  margin: 0;
  border-top: 1px solid var(--line);
  padding: 5px 7px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}.match-t5-decision-missing {
  color: var(--warning);
}.match-model-reference {
  border-color: rgba(139, 132, 255, 0.23);
  background: rgba(99, 89, 224, 0.035);
}.match-model-reference-grid .is-tendency {
  background: rgba(99, 89, 224, 0.07);
}.match-model-reference-grid .is-tendency strong {
  color: var(--ink);
}.full-prediction-detail {
  display: grid;
  gap: 12px;
}.full-prediction-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  border: 1px solid rgba(112, 167, 255, 0.3);
  border-radius: 0;
  padding: 16px;
  background: var(--panel);
}.full-prediction-hero-copy {
  display: grid;
  min-width: 0;
  gap: 7px;
}.full-prediction-hero-copy h3,
.full-prediction-hero-copy p,
.full-prediction-audit p {
  margin: 0;
}.full-prediction-hero-copy h3 {
  color: var(--ink);
  font-size: clamp(16px, 3vw, 22px);
  overflow-wrap: anywhere;
}.full-prediction-hero-copy p,
.full-prediction-audit p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}.full-prediction-hero-meta {
  display: grid;
  justify-items: end;
  gap: 6px;
}.full-prediction-hero-meta > strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 16px;
}.full-xg-layout,
.full-market-detail,
.full-prediction-audit {
  display: grid;
  gap: 10px;
}.full-xg-grid,
.full-grade-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border-radius: 0;
  background: var(--line);
}.full-xg-item,
.full-grade-item {
  display: grid;
  min-width: 0;
  gap: 4px;
  padding: 10px;
  background: var(--panel-soft);
}.full-xg-item span,
.full-grade-item span {
  color: var(--muted);
  font-size: 14px;
}.full-xg-item strong {
  color: var(--info);
  font-family: var(--font-display);
  font-size: 19px;
}.full-grade-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}.full-grade-item strong {
  font-size: 14px;
}.full-market-direction {
  color: var(--ink);
  font-size: 14px;
  overflow-wrap: anywhere;
}.full-five-state-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
}.full-five-state-item {
  display: grid;
  min-width: 0;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 8px;
  background: var(--panel-soft);
}.full-five-state-item span {
  color: var(--muted);
  font-size: 14px;
}.full-five-state-item strong {
  font-family: var(--font-display);
  font-size: 14px;
}.full-five-state-bar {
  display: block;
  height: 3px;
  overflow: hidden;
  border-radius: 0;
  background: rgba(197, 210, 205, 0.08);
}.full-five-state-bar b {
  display: block;
  height: 100%;
  border-radius: 0;
  background: var(--info);
}.full-market-foot {
  margin: 0;
  border-left: 2px solid var(--line-strong);
  padding-left: 8px;
  color: var(--muted);
  font-size: 14px;
}.full-market-foot.is-correct { border-color: var(--success); }.full-market-foot.is-wrong { border-color: var(--danger); }.full-market-foot.is-push { border-color: var(--warning); }.research-ledger-options .ledger-source-button.is-active,
.ledger-system-filter .ledger-source-button.is-active {
  border-color: rgba(112, 167, 255, 0.55);
  color: var(--ink);
  background: rgba(76, 141, 255, 0.14);
}.ledger-stat-card.is-research,
.ledger-entry.is-research {
  border-color: rgba(112, 167, 255, 0.26);
  background: rgba(25, 36, 58, 0.68);
}.ledger-league-performance-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}.ledger-league-performance-card {
  display: grid;
  gap: 12px;
  min-width: 0;
  width: 100%;
  border: 1px solid rgba(112, 167, 255, 0.28);
  border-radius: 0;
  padding: 14px;
  color: inherit;
  background: var(--panel);
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, transform 160ms ease, background 160ms ease;
}.ledger-league-performance-card:hover,
.ledger-league-performance-card:focus-visible {
  border-color: rgba(112, 167, 255, 0.62);
  background: var(--panel);
  transform: translateY(-1px);
  outline: none;
}.ledger-league-performance-card.is-small-sample {
  border-color: rgba(235, 184, 92, 0.3);
  background: var(--panel);
}.ledger-league-performance-card-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  min-width: 0;
}.ledger-league-rank-number {
  border-radius: 0;
  padding: 3px 7px;
  color: var(--ink);
  background: rgba(76, 141, 255, 0.18);
  font-size: 14px;
  font-weight: 820;
}.ledger-league-rank-number.is-small-sample {
  color: var(--lead);
  background: rgba(235, 184, 92, 0.14);
}.ledger-league-performance-card-header strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.ledger-league-performance-rate {
  color: var(--success);
  font-size: 14px;
  font-weight: 820;
  white-space: nowrap;
}.ledger-league-performance-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}.ledger-league-performance-metric {
  display: grid;
  gap: 3px;
  min-width: 0;
  border: 1px solid rgba(112, 167, 255, 0.13);
  border-radius: 0;
  padding: 8px;
  background: rgba(7, 14, 27, 0.35);
}.ledger-league-performance-metric small,
.ledger-league-detail-copy span,
.ledger-league-detail-copy small {
  color: var(--muted);
  font-size: 14px;
}.ledger-league-performance-metric strong {
  color: var(--ink);
  font-size: 14px;
  overflow-wrap: anywhere;
}.ledger-league-detail-copy small {
  overflow-wrap: anywhere;
}.ledger-league-performance-card-foot {
  justify-self: end;
  color: var(--ink);
  font-size: 14px;
  font-weight: 760;
}.ledger-league-detail-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid rgba(112, 167, 255, 0.3);
  border-radius: 0;
  padding: 12px 14px;
  background: rgba(25, 36, 58, 0.72);
}.ledger-league-detail-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}.ledger-league-detail-copy strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.ledger-league-detail-back {
  flex: 0 0 auto;
  border: 1px solid rgba(112, 167, 255, 0.34);
  border-radius: 0;
  padding: 7px 10px;
  color: var(--ink);
  background: rgba(76, 141, 255, 0.14);
  font-size: 14px;
  font-weight: 760;
  cursor: pointer;
}.ledger-entry.is-research .ledger-result {
  width: auto;
  min-width: 34px;
  padding-inline: 6px;
  border-radius: 0;
  font-size: 14px;
  white-space: nowrap;
}.research-ledger-selection {
  color: var(--ink);
  font-weight: 720;
}.inactive-full-prediction-detail {
  display: grid;
  gap: 12px;
}.full-prediction-hero.is-inactive-audit {
  border-color: rgba(242, 184, 75, 0.3);
  background: var(--panel);
}.research-inactive-audit-grid {
  display: grid;
  grid-column: 1 / -1;
  width: 100%;
  overflow: hidden;
  border: 1px solid rgba(112, 167, 255, 0.18);
  border-radius: 0;
  background: rgba(8, 15, 29, 0.34);
}.research-inactive-audit-row {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 8px 9px;
  border-bottom: 1px solid rgba(112, 167, 255, 0.1);
}.research-inactive-audit-row:last-child {
  border-bottom: 0;
}.research-inactive-audit-market {
  color: var(--ink);
  font-size: 14px;
  font-weight: 760;
}.research-inactive-audit-direction {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--ink);
  font-size: 14px;
}.research-inactive-audit-settlement {
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: 14px;
  text-align: right;
  white-space: nowrap;
}.research-inactive-audit-settlement.is-correct { color: var(--success); }.research-inactive-audit-settlement.is-wrong { color: var(--danger); }.research-inactive-audit-settlement.is-push { color: var(--warning); }.ledger-source-notice.is-research {
  color: var(--ink);
}.research-counterfactuals {
  grid-column: 1 / -1;
  overflow: hidden;
  border: 1px solid rgba(112, 167, 255, 0.2);
  border-radius: 0;
  background: rgba(8, 15, 29, 0.4);
}.research-counterfactual-summary {
  padding: 7px 9px;
  color: var(--ink);
  cursor: pointer;
  font-size: 14px;
  font-weight: 720;
  list-style-position: inside;
}.research-counterfactuals[open] .research-counterfactual-summary {
  border-bottom: 1px solid rgba(112, 167, 255, 0.14);
}.research-counterfactual-panel {
  min-height: 28px;
}.research-counterfactual-status {
  margin: 0;
  padding: 8px 9px;
  color: var(--muted);
  font-size: 14px;
}.research-counterfactual-status.is-loading {
  color: var(--ink);
}.research-counterfactual-list {
  display: grid;
  max-height: 220px;
  overflow-y: auto;
}.research-counterfactual-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto minmax(78px, auto);
  align-items: center;
  gap: 7px;
  padding: 7px 9px;
  border-bottom: 1px solid rgba(112, 167, 255, 0.1);
}.research-counterfactual-row:last-child {
  border-bottom: 0;
}.research-counterfactual-market {
  border-radius: 0;
  padding: 2px 5px;
  color: var(--ink);
  background: rgba(112, 167, 255, 0.1);
  font-size: 14px;
  white-space: nowrap;
}.research-counterfactual-quote {
  display: grid;
  min-width: 0;
  gap: 2px;
}.research-counterfactual-quote strong,
.research-counterfactual-quote span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}.research-counterfactual-quote strong {
  color: var(--ink);
  font-size: 14px;
}.research-counterfactual-quote span {
  color: var(--muted);
  font-size: 14px;
}.research-counterfactual-outcome,
.research-counterfactual-profit {
  font-size: 14px;
  white-space: nowrap;
}.research-counterfactual-outcome.is-correct,
.research-counterfactual-profit.is-positive {
  color: var(--success);
}.research-counterfactual-outcome.is-wrong,
.research-counterfactual-profit.is-negative {
  color: var(--danger);
}.research-counterfactual-outcome.is-push,
.research-counterfactual-profit.is-neutral {
  color: var(--warning);
}.research-counterfactual-outcome.is-pending,
.research-counterfactual-profit.is-pending {
  color: var(--muted);
}.research-counterfactual-profit {
  text-align: right;
}.research-counterfactual-empty {
  margin: 0;
  padding: 8px 9px;
  color: var(--muted);
  font-size: 14px;
}@media (max-width: 760px) {.full-prediction-hero {
    grid-template-columns: 1fr;
  }.full-prediction-hero-meta {
    grid-template-columns: repeat(3, auto);
    justify-content: start;
    justify-items: start;
  }.research-counterfactual-row {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }.research-counterfactual-profit {
    grid-column: 2 / -1;
    text-align: left;
  }.research-inactive-audit-row {
    grid-template-columns: 48px minmax(0, 1fr);
  }.research-inactive-audit-settlement {
    grid-column: 2;
    text-align: left;
  }
}@media (max-width: 620px) {.ledger-system-filter,
  #research-ledger-type-filter {
    width: 100%;
  }.research-ledger-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.research-ledger-options .ledger-source-button {
    width: 100%;
  }.full-five-state-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.full-five-state-item:last-child {
    grid-column: 1 / -1;
  }.full-grade-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.full-grade-item:last-child {
    grid-column: 1 / -1;
  }.full-prediction-hero-meta {
    grid-template-columns: 1fr;
  }
}@media (max-width: 420px) {.match-t5-decision-grid,
  .match-model-reference-grid,
  .local-live-model-reference-values {
    grid-template-columns: 1fr;
  }.match-t5-decision-grid > span + span,
  .match-model-reference-grid > span + span {
    border-top: 1px solid var(--line);
    border-left: 0;
  }.full-xg-grid {
    grid-template-columns: 1fr;
  }
}/* Product polish: compact evidence, explicit state and mobile controls. */
.mobile-filter-toggle {
  display: none;
}.local-only-note {
  color: var(--muted);
  font-size: 14px;
  letter-spacing: 0.04em;
}.match-list.is-date-transition::before {
  position: sticky;
  z-index: 5;
  top: 6px;
  display: block;
  margin: 0 0 8px;
  border: 1px solid rgba(242, 184, 75, 0.35);
  border-radius: 0;
  padding: 9px 12px;
  color: var(--lead);
  background: rgba(46, 34, 9, 0.94);
  
  content: attr(data-transition-label);
  font-size: 14px;
  font-weight: 750;
}.match-list.is-date-transition .match-card {
  opacity: 0.74;
}.date-transition-badge {
  border: 1px solid rgba(242, 184, 75, 0.35);
  border-radius: 0;
  padding: 3px 6px;
  color: var(--lead);
  font-size: 14px;
}.match-analysis-entry {
  grid-template-columns: minmax(0, 1fr) auto;
}.match-analysis-reason {
  grid-column: 1 / -1;
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: 14px;
  letter-spacing: 0.02em;
}.match-card.is-identity-blocked,
.local-live-card.is-identity-blocked {
  border-color: rgba(255, 117, 109, 0.38);
  
}.local-live-identity-warning {
  margin: 0;
  border-top: 1px solid rgba(255, 117, 109, 0.22);
  padding: 9px 12px;
  color: var(--signal);
  background: rgba(106, 26, 22, 0.12);
  font-size: 14px;
}.ledger-filter-control {
  display: grid;
  min-width: 130px;
  gap: 6px;
}.ledger-filter-control input,
.ledger-filter-control select,
.odds-filter-control select {
  min-height: 36px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 7px 10px;
  color: var(--text);
  background: transparent;
  color-scheme: light;
  font: inherit;
  font-size: 14px;
}.ledger-filter-reset,
.ledger-load-more,
.odds-load-more,
.odds-more-groups {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 7px 12px;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.025);
  font: inherit;
  font-size: 14px;
  font-weight: 750;
}.ledger-filter-reset:hover,
.ledger-load-more:hover,
.odds-load-more:hover,
.odds-more-groups:hover {
  border-color: rgba(124, 247, 187, 0.42);
  color: var(--text);
  background: rgba(124, 247, 187, 0.08);
}.ledger-load-more,
.odds-more-groups {
  width: 100%;
}.ledger-stat-card.is-performance {
  border-color: rgba(124, 247, 187, 0.28);
}.ledger-performance-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}.ledger-performance-item {
  display: grid;
  gap: 3px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 7px;
  background: rgba(255, 255, 255, 0.018);
}.ledger-performance-item span,
.ledger-model-meta {
  color: var(--muted);
  font-size: 14px;
}.ledger-performance-item strong {
  color: var(--lime);
  font-family: var(--font-mono);
  font-size: 14px;
}.ledger-model-meta {
  grid-column: 1 / -1;
  margin: 0;
}.odds-filter-bar {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) minmax(140px, 1fr) minmax(200px, 2fr);
  align-items: end;
  gap: 8px;
  margin-bottom: 12px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 10px;
  background: rgba(255, 255, 255, 0.018);
}.odds-filter-control {
  display: grid;
  gap: 5px;
}.odds-filter-control > span,
.odds-filter-note {
  color: var(--muted);
  font-size: 14px;
}.odds-filter-note {
  margin: 0;
  line-height: 1.5;
}.odds-checkpoint-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}.odds-checkpoint {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 8px;
  background: rgba(255, 255, 255, 0.018);
}.odds-checkpoint.is-missing {
  opacity: 0.66;
}.odds-checkpoint-header {
  display: grid;
  gap: 2px;
  margin-bottom: 6px;
}.odds-checkpoint-header strong {
  color: var(--accent);
  font-size: 14px;
}.odds-checkpoint-header time,
.odds-checkpoint-empty {
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: 14px;
}.odds-checkpoint-empty {
  margin: 0;
}.odds-checkpoint-quotes {
  display: grid;
  gap: 4px;
}.odds-checkpoint-quote {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 4px;
  color: var(--muted-strong);
  font-size: 14px;
}.odds-checkpoint-quote b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}.odds-checkpoint-quote i {
  color: var(--muted);
  font-style: normal;
}.odds-checkpoint-quote strong {
  color: var(--lime);
  font-family: var(--font-mono);
}.odds-checkpoint-more {
  color: var(--muted);
  font-size: 14px;
}.odds-history-details {
  margin-top: 7px;
  border-top: 1px dashed var(--line);
  padding-top: 7px;
}.odds-history-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--muted-strong);
  cursor: pointer;
  font-size: 14px;
}.odds-history-summary strong {
  color: var(--muted);
  font-family: var(--font-mono);
}.odds-load-more {
  width: 100%;
  margin-top: 6px;
}.postmatch-headline {
  display: grid;
  justify-items: center;
  gap: 5px;
  padding: 8px;
  text-align: center;
}.postmatch-headline > span,
.postmatch-headline > p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}.postmatch-headline > strong {
  color: var(--lime);
  font-family: var(--font-mono);
  font-size: 32px;
}.postmatch-settlement-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}.postmatch-settlement-item {
  display: grid;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 9px;
  background: rgba(255, 255, 255, 0.018);
}.postmatch-settlement-item span {
  color: var(--muted);
  font-size: 14px;
}.postmatch-settlement-item strong {
  font-size: 14px;
}.postmatch-settlement-item b {
  color: var(--accent);
  font-size: 14px;
}.postmatch-event-list,
.postmatch-market-review {
  display: grid;
  gap: 6px;
}.postmatch-event-item,
.postmatch-market-row {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--line);
  padding: 6px 0;
  font-size: 14px;
}.postmatch-market-row {
  grid-template-columns: minmax(0, 1fr) auto;
}.postmatch-event-item time,
.postmatch-event-item span,
.postmatch-market-row span {
  color: var(--muted);
}.postmatch-event-item strong,
.postmatch-market-row strong {
  text-align: right;
}.postmatch-clv {
  margin: 3px 0 0;
  color: var(--muted-strong);
  font-size: 14px;
}.postmatch-error-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}.postmatch-error-tags > span {
  border: 1px solid rgba(242, 184, 75, 0.28);
  border-radius: 0;
  padding: 5px 8px;
  color: var(--lead);
  background: rgba(242, 184, 75, 0.06);
  font-size: 14px;
}@media (max-width: 760px) {.odds-checkpoint-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.odds-filter-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.odds-filter-note {
    grid-column: 1 / -1;
  }
}@media (max-width: 620px) {.mobile-filter-toggle {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid var(--line);
    border-radius: 0;
    padding: 11px 13px;
    color: var(--text);
    background: rgba(13, 30, 27, 0.86);
    font: inherit;
    font-size: 14px;
    font-weight: 750;
  }.mobile-filter-toggle > span:last-child {
    color: var(--muted);
    font-size: 14px;
    font-weight: 500;
  }.toolbar:not(.is-mobile-open) {
    display: none;
  }.toolbar.is-mobile-open {
    display: grid;
    overflow: visible;
    grid-template-columns: 1fr;
    border-radius: 0;
  }.toolbar.is-mobile-open .filter-cluster,
  .toolbar.is-mobile-open .league-select-wrap,
  .toolbar.is-mobile-open .refresh-button {
    width: 100%;
  }.toolbar.is-mobile-open .segmented {
    overflow-x: auto;
  }.ledger-filter-control,
  .ledger-filter-reset {
    width: 100%;
  }.ledger-performance-grid,
  .postmatch-settlement-grid,
  .odds-filter-bar,
  .odds-checkpoint-grid {
    grid-template-columns: 1fr;
  }.odds-filter-note {
    grid-column: auto;
  }
}.event-detail-body,
.event-list,
.event-lane-list {
  display: grid;
}.event-current-totals {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin-bottom: 10px;
}.event-current-total {
  display: grid;
  min-width: 0;
  gap: 3px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 8px 7px;
  background: rgba(255, 255, 255, 0.018);
  text-align: center;
}.event-current-total span {
  overflow: hidden;
  color: var(--muted);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}.event-current-total strong {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}.event-source-note {
  margin: 0 0 10px;
  border-left: 2px solid rgba(112, 167, 255, 0.35);
  padding: 6px 8px;
  color: var(--muted);
  background: rgba(76, 141, 255, 0.045);
  font-size: 14px;
  line-height: 1.55;
}.event-lane-axis,
.event-lane-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr);
  align-items: center;
}.event-lane-axis {
  min-height: 26px;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 14px;
}.event-lane-axis span:first-child { text-align: right; }.event-lane-axis span:nth-child(2) { text-align: center; }.event-lane-axis span:last-child { text-align: left; }.event-lane-axis.is-detail {
  padding-inline: 8px;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.018);
  font-weight: 600;
}.event-lane-row {
  min-height: 42px;
  border-bottom: 1px solid var(--line);
  padding: 6px 0;
}.event-lane-row:last-child { border-bottom: 0; }.event-lane-entry {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
}.event-lane-entry.is-home {
  justify-content: flex-end;
  text-align: right;
}.event-lane-entry.is-away {
  justify-content: flex-start;
  text-align: left;
}.event-lane-icon {
  display: grid;
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 0;
  color: var(--ink);
  background: rgba(112, 167, 255, 0.13);
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 800;
}.event-lane-entry.is-goal .event-lane-icon { color: var(--success); background: rgba(53, 201, 139, 0.12); }.event-lane-entry.is-own-goal .event-lane-icon { color: var(--warning); background: var(--warning-soft); }.event-lane-entry.is-cancelled .event-lane-icon,
.event-lane-entry.is-missed .event-lane-icon,
.event-lane-entry.is-red-card .event-lane-icon { color: var(--signal); background: rgba(255, 95, 112, 0.13); }.event-lane-entry.is-yellow-card .event-lane-icon { color: var(--lead); background: rgba(247, 205, 102, 0.12); }.event-lane-entry.is-var .event-lane-icon { color: var(--ink); background: rgba(126, 142, 255, 0.13); }.event-lane-entry.is-corner .event-lane-icon { color: var(--ink); background: rgba(80, 177, 224, 0.13); }.event-lane-copy {
  display: grid;
  min-width: 0;
  gap: 1px;
}.event-lane-copy strong,
.event-lane-copy span,
.event-lane-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}.event-lane-copy strong {
  color: var(--text);
  font-size: 14px;
}.event-lane-player,
.event-lane-meta {
  color: var(--muted);
  font-size: 14px;
}.event-lane-time {
  color: var(--info);
  font-family: var(--font-display);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  text-align: center;
  white-space: nowrap;
}.event-lane-empty { min-width: 0; }.event-lane-unassigned {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: var(--muted);
  font-size: 14px;
  text-align: center;
}.event-lane-unassigned strong { color: var(--muted-strong); }@media (max-width: 620px) {.event-current-totals {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.event-lane-axis,
  .event-lane-row {
    grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1fr);
  }.event-lane-copy strong { font-size: 14px; }.event-lane-player,
  .event-lane-meta { font-size: 14px; }
}.stats-table,
.odds-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}.stats-table th,
.stats-table td,
.odds-table th,
.odds-table td {
  border-bottom: 1px solid var(--line);
  padding: 9px 6px;
  font-size: 14px;
}.stats-table tr:last-child th,
.stats-table tr:last-child td,
.odds-table tr:last-child td {
  border-bottom: 0;
}.stats-table th,
.odds-table th {
  color: var(--muted);
  font-weight: 600;
}.stats-table th {
  width: 46%;
}.stats-table td:first-child { text-align: left; }.stats-table td:last-child { text-align: right; }.stats-table th { text-align: center; }.odds-scroll {
  overflow-x: auto;
}.odds-table {
  min-width: 520px;
  font-family: var(--font-mono);
}.odds-table th,
.odds-table td {
  text-align: left;
}.odds-table td:last-child {
  color: var(--lime);
  font-weight: 800;
}.standings-table {
  min-width: 660px;
  table-layout: auto;
  font-variant-numeric: tabular-nums lining-nums;
}.standings-table th,
.standings-table td {
  text-align: center;
  white-space: nowrap;
}.standings-table th:nth-child(2),
.standings-table td.standings-team {
  width: 34%;
  min-width: 148px;
  text-align: left;
}.standings-table .standings-rank,
.standings-table .standings-points {
  font-weight: 800;
}.standings-table tr.is-current-home td {
  background: rgba(76, 141, 255, 0.09);
}.standings-table tr.is-current-away td {
  background: rgba(53, 201, 139, 0.07);
}.odds-group + .odds-group {
  margin-top: 11px;
}.odds-group-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 7px;
}.odds-group-title strong {
  font-size: 14px;
}.odds-group-title span {
  color: var(--muted);
  font-size: 14px;
}.lineup-columns {
  display: grid;
  gap: 10px;
}.lineup-detail-body {
  display: grid;
  gap: 10px;
}.lineup-summary {
  margin: 0;
  color: var(--muted-strong);
  font-size: 14px;
}.lineup-team {
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 11px;
  background: rgba(255, 255, 255, 0.018);
}.lineup-team-header {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  margin-bottom: 7px;
}.lineup-team-logo {
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
  border-radius: 0;
  object-fit: contain;
  background: rgba(255, 255, 255, 0.05);
}.lineup-team h4 {
  min-width: 0;
  margin: 0;
  font-size: 14px;
  overflow-wrap: anywhere;
}.lineup-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 7px;
}.lineup-meta span {
  padding: 3px 6px;
  border: 1px solid var(--line);
  border-radius: 0;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.025);
  font-size: 14px;
}.lineup-meta .is-confirmed {
  color: var(--success);
  border-color: rgba(53, 201, 139, 0.28);
  background: rgba(53, 201, 139, 0.08);
}.lineup-meta .is-waiting {
  color: var(--warning);
  border-color: rgba(247, 205, 102, 0.25);
  background: rgba(247, 205, 102, 0.07);
}.lineup-squad-group {
  border-top: 1px solid var(--line);
}.lineup-squad-group + .lineup-squad-group {
  margin-top: 2px;
}.lineup-squad-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 34px;
  color: var(--muted-strong);
  cursor: pointer;
  list-style: none;
  font-size: 14px;
}.lineup-squad-summary::-webkit-details-marker {
  display: none;
}.lineup-squad-summary::after {
  content: "展开";
  color: var(--accent);
  font-size: 14px;
}.lineup-squad-group[open] > .lineup-squad-summary::after {
  content: "收起";
}.lineup-squad-summary span {
  margin-left: auto;
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: 14px;
}.player-list {
  display: grid;
  gap: 5px;
  margin: 0 0 8px;
  padding: 0;
  list-style: none;
}.player-item {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 3px 0;
  color: var(--muted-strong);
  font-size: 14px;
}.player-item.is-empty {
  color: var(--muted);
}.player-copy {
  display: grid;
  min-width: 0;
  gap: 1px;
}.player-name {
  min-width: 0;
  color: var(--text);
  font-size: 14px;
  font-weight: 650;
  overflow-wrap: anywhere;
}.player-position {
  color: var(--muted);
  font-size: 14px;
}.player-number {
  display: grid;
  width: 21px;
  height: 21px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 0;
  color: var(--accent);
  background: var(--accent-soft);
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 800;
}.noscript-message {
  position: fixed;
  right: 14px;
  bottom: 14px;
  left: 14px;
  z-index: 100;
  border: 1px solid rgba(255, 141, 133, 0.24);
  border-radius: 0;
  padding: 12px;
  color: var(--danger);
  background: transparent;
  text-align: center;
}/* v041 — 深海蓝赛事终端。仅改变视觉语言，不改变卡片尺寸与刷新布局。 */
.site-header {
  border-bottom-color: rgba(112, 167, 255, 0.18);
  background: transparent;
  
}.brand-mark {
  border-color: rgba(255, 255, 255, 0.14);
  border-radius: 0;
  color: #fff;
  background: var(--accent);
  
  font-family: var(--font-display);
  font-weight: 700;
}.eyebrow {
  color: var(--info);
  font-family: var(--font-sans);
  font-weight: 600;
  letter-spacing: 0.11em;
}h1,
.date-copy h2,
.view-heading h2 {
  font-family: var(--font-display);
  font-weight: 700;
}.live-dot {
  background: var(--live);
  
}@keyframes livePulse {
  50% {  }
}.page-navigation,
.date-switch,
.view-status-strip,
.sync-strip,
.ledger-toolbar {
  background: rgba(13, 19, 32, 0.88);
}.page-navigation-button {
  font-weight: 600;
}.page-navigation-button.is-active,
.date-button.is-active {
  color: #fff;
  background: var(--accent);
  
}.date-switch {
  scrollbar-color: rgba(112, 167, 255, 0.38) transparent;
}.date-switch::-webkit-scrollbar-thumb {
  background: rgba(112, 167, 255, 0.38);
}.date-button span,
.filter-label,
.segment,
.select-shell select,
.refresh-button {
  font-weight: 600;
}.date-button,
.segment,
.refresh-button,
.page-navigation-button,
.favorite-button {
  transition-property: color, background-color, border-color, box-shadow;
}.toolbar {
  background: rgba(17, 24, 39, 0.94);
}.segmented,
.select-shell {
  background: transparent;
}.segment.is-active {
  color: #fff;
  background: var(--panel-soft);
  
}.refresh-button:hover {
  color: var(--info);
  border-color: rgba(112, 167, 255, 0.5);
  background: var(--accent-soft);
}.league-section,
.local-live-card,
.ledger-entry {
  background: rgba(17, 24, 39, 0.9);
  
}.league-header,
.local-live-card-header {
  background: transparent;
}.league-title h3,
.local-live-league {
  font-weight: 600;
}.league-count,
.match-time strong,
.team-score,
.local-live-timing,
.local-live-score,
.ledger-score,
.view-status-strip > span:last-child,
.favorite-filter-count,
.score-numbers,
.probability-item strong,
.odds-table,
.model-score-strip span,
.model-settlement-row span,
.player-number {
  font-family: var(--font-display);
  font-variant-numeric: tabular-nums lining-nums;
}.league-count .live-count {
  color: var(--live);
}.match-card:hover {
  background: rgba(76, 141, 255, 0.055);
}.match-card-open:active {
  background: rgba(76, 141, 255, 0.09);
}.team-name {
  font-size: 14px;
  font-weight: 600;
}.team-score {
  color: var(--text);
  font-weight: 700;
}.match-card.is-live .team-score {
  color: var(--text);
}.status-badge.is-live {
  color: #fff;
  background: var(--live);
}.empty-state,
.error-state {
  background: rgba(17, 24, 39, 0.72);
}.state-action {
  color: #fff;
  background: var(--accent);
}.skeleton-loading-copy {
  border-color: rgba(112, 167, 255, 0.26);
  color: var(--info);
  background: var(--accent-soft);
  font-weight: 600;
}.match-dialog::backdrop {
  background: rgba(3, 7, 14, 0.8);
}.dialog-score {
  background: var(--panel);
}.detail-tabs,
.dialog-footer {
  background: transparent;
}.shield-mark {
  border-color: rgba(112, 167, 255, 0.38);
  color: var(--info);
}.model-coverage-badge {
  border-color: rgba(112, 167, 255, 0.3);
  color: var(--info);
  background: var(--accent-soft);
  font-weight: 600;
}.model-selection-panel {
  border-color: rgba(112, 167, 255, 0.3);
  background: var(--panel);
}.model-selection-header span {
  color: var(--info);
  font-weight: 600;
}.model-selection-item.is-preferred {
  background: var(--accent-soft);
}.model-selection-item.is-preferred strong {
  color: var(--ink);
}.local-live-card.is-interactive:hover {
  border-color: rgba(112, 167, 255, 0.34);
  background: transparent;
}.local-live-league,
.local-live-timing,
.local-live-team,
.local-live-fact strong {
  font-size: 14px;
}.local-live-timing {
  color: var(--muted-strong);
  font-weight: 600;
}.local-live-stage {
  color: var(--muted-strong);
  background: transparent;
  
  font-weight: 700;
}.local-live-scoreboard {
  background: var(--panel);
}.local-live-score-center {
  display: flex;
  min-width: 92px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
}.local-live-score-sync {
  max-width: 138px;
  overflow: hidden;
  border: 1px solid rgba(242, 184, 75, 0.32);
  border-radius: 0;
  padding: 3px 7px;
  color: var(--lead);
  background: rgba(242, 184, 75, 0.09);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}.local-live-penalty-score {
  border: 1px solid rgba(242, 184, 75, 0.3);
  border-radius: 0;
  padding: 3px 8px;
  color: var(--lead);
  background: rgba(242, 184, 75, 0.09);
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 750;
  line-height: 1;
  white-space: nowrap;
}.local-live-penalty-score.is-pending {
  color: var(--muted-strong);
  border-color: var(--line);
  background: var(--panel-soft);
}.local-live-card.is-score-pending .local-live-score {
  border-color: rgba(242, 184, 75, 0.3);
  
}.local-live-team {
  font-size: 14px;
  font-weight: 600;
}.local-live-score {
  color: var(--text);
  font-weight: 700;
}.local-live-context {
  background: transparent;
}.local-live-market-divider {
  border-top-color: rgba(112, 167, 255, 0.2);
  border-bottom-color: rgba(112, 167, 255, 0.2);
  color: var(--ink);
  background: rgba(76, 141, 255, 0.065);
  font-size: 14px;
  font-weight: 600;
}.local-live-markets .local-live-fact.is-first-half {
  background: rgba(76, 141, 255, 0.028);
}.local-live-fact span {
  font-size: 14px;
}.local-live-fact strong {
  color: var(--text);
  font-weight: 600;
}.local-live-frozen {
  border-top-color: rgba(242, 184, 75, 0.28);
  background: var(--panel);
  
}.local-live-frozen-title {
  font-size: 14px;
  font-weight: 700;
}.ledger-result {
  font-weight: 700;
}.ledger-result.is-correct {
  color: #042117;
  background: var(--success);
}.ledger-score {
  color: var(--text);
  font-weight: 700;
}@media (max-width: 359px) {.shell {
    width: min(100% - 20px, 1180px);
  }.local-live-scoreboard {
    gap: 7px;
    padding-inline: 10px;
  }.local-live-team {
    font-size: 14px;
  }.local-live-score-center {
    min-width: 78px;
  }.local-live-score-sync {
    max-width: 104px;
    padding-inline: 5px;
    font-size: 14px;
  }
}@media (min-width: 520px) {.header-status { display: flex; }.match-card {
    grid-template-columns: minmax(0, 1fr) 48px;
  }.match-card-open {
    grid-template-columns: 74px minmax(0, 1fr) 104px;
    gap: 16px;
    padding: 15px 4px 15px 16px;
  }.favorite-button { min-width: 48px; }.updated-label { display: block; }.dialog-header,
  .dialog-score,
  .detail-content {
    padding-right: 22px;
    padding-left: 22px;
  }.dialog-footer {
    padding-right: 22px;
    padding-left: 22px;
  }.lineup-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}@media (min-width: 760px) {.shell { width: min(100% - 48px, 1180px); }.page-shell { padding-top: 34px; }.date-panel {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.65fr);
    align-items: end;
    padding-bottom: 26px;
  }.toolbar {
    overflow: visible;
    padding: 14px 16px;
  }.refresh-button { margin-left: auto; }.league-header { padding-inline: 18px; }.match-card-open {
    grid-template-columns: 90px minmax(0, 1fr) 160px;
    padding: 15px 4px 15px 18px;
  }.match-time {
    grid-template-columns: auto auto;
    align-items: center;
    gap: 8px;
  }.team-row {
    grid-template-columns: 29px minmax(0, 1fr) 30px;
  }.team-logo {
    width: 29px;
    height: 29px;
  }.team-name { font-size: 14px; }.match-tail {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
  }.match-dialog {
    width: min(820px, calc(100% - 48px));
    height: min(88dvh, 860px);
    margin: auto;
    border-radius: 0;
  }.detail-grid.is-two-column {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.local-live-list,
  .ledger-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}@media (min-width: 1040px) {.match-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }.schedule-section {
    grid-column: 1 / -1;
  }
}@media (prefers-reduced-motion: reduce) {.local-live-freshness-dot.is-fresh {
    animation: none !important;
    opacity: 1;
  }*,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}/* Real-market and Ace-reference selections are text-labelled as well as
   colour-coded so the source boundary survives low contrast and colour loss. */
.source-badge {
  display: inline-flex;
  min-height: 20px;
  align-items: center;
  justify-content: center;
  border: 1px solid currentColor;
  border-radius: 0;
  padding: 2px 7px;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}.source-badge.is-real {
  border-color: rgba(242, 184, 75, 0.5);
  color: var(--lead);
  background: rgba(242, 184, 75, 0.12);
}.source-badge.is-reference {
  border-color: rgba(139, 132, 255, 0.66);
  color: var(--ink);
  background: rgba(99, 89, 224, 0.1);
}.source-badge.is-shadow {
  border-color: rgba(112, 167, 255, 0.6);
  color: var(--ink);
  background: rgba(76, 141, 255, 0.12);
}.match-ace-summary.is-shadow {
  border-top-color: rgba(112, 167, 255, 0.3);
  color: var(--muted-strong);
}.match-ace-summary.is-shadow .match-ace-summary-label,
.match-ace-summary.is-shadow strong {
  color: var(--ink);
}.model-selection-panel.is-shadow {
  border-color: rgba(112, 167, 255, 0.42);
  background: rgba(76, 141, 255, 0.07);
}.model-selection-panel.is-shadow .model-selection-header span {
  color: var(--ink);
}.match-ace-summary.is-reference {
  border-top-color: rgba(139, 132, 255, 0.28);
  color: var(--ink);
}.match-ace-summary.is-reference .match-ace-summary-label,
.match-ace-summary.is-reference strong {
  color: var(--ink);
}.local-live-frozen.is-reference {
  border-top-color: rgba(139, 132, 255, 0.38);
  background: var(--panel);
  
}.model-selection-panel.is-reference {
  border-color: rgba(139, 132, 255, 0.42);
  background: rgba(99, 89, 224, 0.07);
}.ledger-toolbar {
  flex-wrap: wrap;
  align-items: flex-end;
}.ledger-source-filter {
  display: grid;
  gap: 6px;
}.ledger-source-options {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}.ledger-source-button {
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 6px 11px;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.025);
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}.ledger-source-button.is-active {
  border-color: rgba(124, 247, 187, 0.45);
  color: var(--text);
  background: rgba(124, 247, 187, 0.1);
}.ledger-statistics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}.ledger-stat-card {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 12px;
  background: rgba(10, 23, 21, 0.76);
}.ledger-stat-card.is-real {
  border-color: rgba(242, 184, 75, 0.26);
}.ledger-stat-card.is-reference {
  border-color: rgba(139, 132, 255, 0.34);
  background: rgba(59, 51, 122, 0.11);
}.ledger-stat-header {
  display: grid;
  gap: 2px;
}.ledger-stat-header strong {
  font-size: 14px;
}.ledger-stat-header span,
.ledger-stat-foot {
  color: var(--muted);
  font-size: 14px;
}.ledger-stat-rate {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}.ledger-stat-rate > strong {
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: 20px;
}.ledger-stat-rate > span {
  color: var(--muted-strong);
  font-size: 14px;
}.ledger-stat-foot,
.ledger-source-notice {
  margin: 0;
}.ledger-entry-header {
  grid-template-columns: auto minmax(0, 1fr) auto auto;
}.ledger-entry.is-reference {
  border-color: rgba(139, 132, 255, 0.28);
}.ledger-source-notice {
  grid-column: 1 / -1;
  color: var(--ink);
  font-size: 14px;
}.similarity-reference-warning {
  grid-column: 1 / -1;
  margin: 0;
  border: 1px solid rgba(139, 132, 255, 0.36);
  border-radius: 0;
  padding: 7px 9px;
  color: var(--ink);
  background: rgba(99, 89, 224, 0.08);
  font-size: 14px;
  font-weight: 700;
}@media (max-width: 620px) {.ledger-statistics {
    grid-template-columns: 1fr;
  }.ledger-toolbar,
  .ledger-source-filter {
    align-items: stretch;
  }.ledger-source-filter,
  .league-select-wrap,
  .ledger-summary {
    width: 100%;
  }.ledger-entry-header {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }.ledger-entry-header .source-badge {
    grid-column: 1 / 3;
    justify-self: start;
  }.ledger-league-performance-list {
    grid-template-columns: minmax(0, 1fr);
  }.ledger-league-performance-card {
    gap: 10px;
    padding: 12px;
  }.ledger-league-detail-header {
    align-items: stretch;
    flex-direction: column;
  }.ledger-league-detail-back {
    align-self: flex-start;
  }
}/* Home-screen installation and T-5 Web Push opt-in. */
.push-setup {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  border: 1px solid rgba(76, 141, 255, 0.24);
  border-radius: 0;
  padding: 15px 16px;
  background: var(--panel);
  
}.push-setup-symbol {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid rgba(112, 167, 255, 0.28);
  border-radius: 0;
  color: var(--ink);
  background: var(--panel);
}.push-setup-symbol svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}.push-setup-copy {
  min-width: 0;
}.push-setup-kicker {
  margin: 0 0 3px;
  color: var(--info);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.1em;
}.push-setup h2 {
  margin: 0;
  color: var(--text);
  font-size: 16px;
  font-weight: 780;
  letter-spacing: -0.01em;
  line-height: 1.3;
}.push-setup-copy > p:not(.push-setup-kicker) {
  max-width: 680px;
  margin: 5px 0 0;
  color: var(--muted-strong);
  font-size: 14px;
  line-height: 1.55;
}.push-setup .push-setup-status {
  color: var(--muted);
  font-size: 14px;
}.push-setup-action {
  min-width: 92px;
  min-height: 40px;
  border: 1px solid rgba(112, 167, 255, 0.34);
  border-radius: 0;
  padding: 9px 14px;
  color: #06111d;
  background: var(--panel);
  
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
}.push-setup-action:hover:not(:disabled) {
  transform: translateY(-1px);
}.push-setup-action:focus-visible {
  outline: 2px solid var(--info);
  outline-offset: 3px;
}.push-setup-action:disabled {
  cursor: progress;
  opacity: 0.62;
}.push-setup[data-state="enabled"] {
  border-color: rgba(53, 201, 139, 0.3);
}.push-setup[data-state="enabled"] .push-setup-symbol {
  border-color: rgba(53, 201, 139, 0.32);
  color: var(--ink);
  background: var(--success-soft);
}.push-setup[data-state="enabled"] .push-setup-action {
  color: var(--muted-strong);
  background: rgba(27, 38, 58, 0.74);
  
}.push-setup[data-state="install"] {
  border-color: rgba(242, 184, 75, 0.27);
}.push-setup[data-state="install"] .push-setup-symbol {
  border-color: rgba(242, 184, 75, 0.3);
  color: var(--lead);
  background: var(--warning-soft);
}.push-setup[data-state="denied"],
.push-setup[data-state="error"] {
  border-color: rgba(240, 93, 108, 0.28);
}@media (max-width: 620px) {.push-setup {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 11px;
    padding: 13px;
  }.push-setup-symbol {
    align-self: start;
    width: 42px;
    height: 42px;
    border-radius: 0;
  }.push-setup-action {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 1px;
  }
}@media (prefers-reduced-motion: no-preference) {.push-setup-action {
    transition: transform 160ms ease, opacity 160ms ease;
  }
}/* Compact, source-explicit confidence labels for real bookmaker evidence.
   These classes are only emitted for server-provided A/B/C admissions; model
   grades, Ace reference lines and stale-quote audit rows never use them. */
.t5-evidence-grade {
  display: inline-flex;
  min-width: 26px;
  min-height: 19px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border: 1px solid currentColor;
  border-radius: 0;
  padding: 2px 6px;
  font-size: 14px;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
}.t5-evidence-grade.is-a {
  border-color: rgba(242, 184, 75, 0.64);
  color: var(--lead);
  background: rgba(242, 184, 75, 0.14);
}.t5-evidence-grade.is-b {
  border-color: rgba(112, 167, 255, 0.58);
  color: var(--ink);
  background: rgba(76, 141, 255, 0.13);
}.t5-evidence-grade.is-c {
  border-color: rgba(171, 181, 199, 0.48);
  color: var(--ink);
  background: rgba(171, 181, 199, 0.1);
}.model-selection-header .t5-evidence-grade,
.model-selection-panel.is-frozen .model-selection-header .t5-evidence-grade {
  color: var(--lead);
  font-size: 14px;
}.model-selection-header .t5-evidence-grade.is-b,
.model-selection-panel.is-frozen .model-selection-header .t5-evidence-grade.is-b {
  color: var(--ink);
}.model-selection-header .t5-evidence-grade.is-c,
.model-selection-panel.is-frozen .model-selection-header .t5-evidence-grade.is-c {
  color: var(--ink);
}.match-t5-decision-grid.is-two,
.model-selection-grid.is-two,
.local-live-frozen-values.is-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}@media (max-width: 620px) {.match-t5-decision-grid.is-two,
  .model-selection-grid.is-two,
  .local-live-frozen-values.is-two {
    grid-template-columns: minmax(0, 1fr);
  }.local-live-frozen-values.is-two .local-live-fact {
    border-right: 0;
  }.local-live-frozen-values.is-two .local-live-fact + .local-live-fact {
    border-top: 1px solid var(--line);
  }.match-t5-decision-head,
  .model-selection-header,
  .local-live-frozen-head {
    gap: 5px 7px;
  }.model-selection-header {
    flex-wrap: wrap;
  }.model-selection-header h4 {
    min-width: 0;
    flex: 1 1 auto;
  }.model-selection-header > span:last-child {
    flex: 1 0 100%;
    text-align: left;
  }.local-live-frozen-head {
    flex-wrap: wrap;
    justify-content: flex-start;
  }.local-live-frozen-head > span:last-child {
    flex: 1 0 100%;
  }
}html {
  background: var(--bg);
}body {
  color: var(--text);
  background: var(--panel);
}.site-header {
  isolation: isolate;
  overflow: visible;
  border-bottom-color: var(--line);
  background: var(--surface-glass);
  
}.header-row {
  position: relative;
  z-index: 2;
  min-height: 68px;
}.brand-mark {
  border-color: rgba(15, 118, 110, 0.2);
  border-radius: 0;
  color: #fff;
  background: var(--accent);
  
}.brand-block .eyebrow {
  color: var(--accent);
}.quota-panel-trigger {
  z-index: 30;
  min-width: 58px;
  min-height: 48px;
  justify-content: center;
  border-color: var(--line-strong);
  border-radius: 0;
  color: var(--muted-strong);
  background: var(--surface-solid);
  
  pointer-events: auto;
  touch-action: manipulation;
}.quota-panel-trigger strong {
  color: var(--accent);
}.page-shell {
  padding-top: 18px;
}.command-signal-grid {
  display: grid;
  gap: 8px;
}.command-signal {
  display: grid;
  min-width: 0;
  min-height: 68px;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 10px 13px;
  color: var(--text);
  background: transparent;
  text-align: left;
}button.command-signal {
  touch-action: manipulation;
  transition: border-color 150ms ease, background-color 150ms ease, transform 150ms ease;
}button.command-signal:hover {
  border-color: rgba(15, 118, 110, 0.32);
  background: var(--accent-soft);
}button.command-signal:active {
  transform: translateY(1px);
}.command-signal-icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 0;
  color: var(--accent);
  background: var(--accent-soft);
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 850;
}.command-signal.is-live .command-signal-icon {
  color: var(--live);
  background: var(--live-soft);
  font-size: 14px;
}.command-signal-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}.command-signal-copy small {
  color: var(--muted);
  font-size: 14px;
  font-weight: 650;
}.command-signal-copy strong {
  overflow: hidden;
  font-size: 14px;
  font-weight: 730;
  text-overflow: ellipsis;
  white-space: nowrap;
}.command-signal-arrow {
  color: var(--muted);
  font-size: 17px;
}.command-signal-note {
  max-width: 10ch;
  color: var(--muted);
  font-size: 14px;
  text-align: right;
}.command-signal.is-freshness[data-sync-state="ok"] .command-signal-icon {
  color: var(--success);
  background: var(--success-soft);
}.command-signal.is-freshness[data-sync-state="warning"] .command-signal-icon {
  color: var(--warning);
  background: var(--warning-soft);
}.command-signal.is-freshness[data-sync-state="error"] .command-signal-icon {
  color: var(--danger);
  background: var(--danger-soft);
}.page-navigation {
  position: sticky;
  z-index: 12;
  top: calc(68px + env(safe-area-inset-top, 0px));
  margin-bottom: 18px;
  border-color: var(--line);
  border-radius: 0;
  padding: 4px;
  background: var(--surface-glass);
  
  
  
}.page-navigation-button {
  min-height: 44px;
  border-radius: 0;
  color: var(--muted-strong);
  font-size: 14px;
}.page-navigation-button.is-active,
.date-button.is-active {
  color: #fff;
  background: var(--accent);
  
}.push-setup,
.toolbar,
.date-switch,
.sync-strip,
.view-status-strip,
.ledger-toolbar,
.league-section,
.local-live-card,
.ledger-entry,
.quota-dialog-surface,
.dialog-surface {
  border-color: var(--line);
  background: var(--surface-solid);
  
}.toolbar,
.date-switch,
.sync-strip,
.view-status-strip,
.ledger-toolbar {
  background: var(--surface-solid);
}.segmented,
.select-shell,
.ledger-filter-control input {
  background: var(--surface-input);
}.segment.is-active {
  color: var(--text);
  background: var(--surface-subtle);
  
}.league-section,
.local-live-card,
.ledger-entry {
  
}.league-header,
.local-live-card-header,
.detail-tabs,
.dialog-footer {
  background: var(--surface-subtle);
}.match-card:hover,
.local-live-card.is-interactive:hover {
  background: var(--accent-soft);
}.match-card-open:active {
  background: rgba(15, 118, 110, 0.14);
}.local-live-scoreboard,
.dialog-score {
  background: var(--panel);
}.local-live-context {
  background: var(--surface-input);
}.local-live-market-divider {
  border-color: rgba(15, 118, 110, 0.18);
  color: var(--accent);
  background: var(--accent-soft);
}.empty-state,
.error-state,
.quota-panel-placeholder {
  background: var(--surface-solid);
}.match-dialog::backdrop,
.quota-dialog::backdrop {
  background: rgba(24, 29, 26, 0.56);
}.state-action {
  color: #fff;
  background: var(--accent);
}.icon-button,
.refresh-button,
.ledger-source-button,
.quota-period-button,
.ledger-filter-reset,
.ledger-load-more,
.mobile-filter-toggle {
  min-height: 44px;
  touch-action: manipulation;
}@media (min-width: 760px) {.command-signal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.command-signal.is-freshness {
    grid-column: 1 / -1;
  }
}@media (max-width: 620px) {.site-header {
    padding-top: env(safe-area-inset-top, 0px);
  }.header-row {
    min-height: 64px;
    gap: 8px;
    padding-block: 8px;
  }.brand-block {
    min-width: 0;
    flex: 1 1 auto;
    gap: 9px;
  }.brand-mark {
    width: 38px;
    height: 38px;
    font-size: 17px;
  }.brand-block .eyebrow {
    display: none;
  }.brand-block h1 {
    font-size: 16px;
  }.header-actions {
    position: relative;
    z-index: 40;
    margin-right: env(safe-area-inset-right, 0px);
    pointer-events: auto;
  }.quota-panel-trigger {
    min-width: 52px;
    min-height: 48px;
    padding-inline: 9px;
  }.quota-panel-trigger span {
    display: none;
  }.page-shell {
    padding-top: 12px;
  }.command-signal {
    min-height: 64px;
  }.page-navigation {
    top: calc(64px + env(safe-area-inset-top, 0px));
  }.date-panel {
    gap: 13px;
  }.date-copy h2,
  .view-heading h2 {
    font-size: 29px;
  }
}html {
  background: var(--bg);
}body {
  background: var(--bg);
}.site-header {
  isolation: isolate;
  overflow: visible;
  border-bottom-color: var(--line);
  background: var(--surface-glass);
  
}.header-row {
  position: relative;
  z-index: 2;
  min-height: 62px;
  padding-block: 8px;
}.brand-mark {
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 0;
  color: #fff;
  background: var(--accent);
  
  font-size: 18px;
}.brand-block .eyebrow {
  color: var(--accent);
}.brand-block h1 {
  font-size: clamp(16px, 4vw, 19px);
}.quota-panel-trigger {
  position: relative;
  z-index: 30;
  min-width: 58px;
  min-height: 48px;
  justify-content: center;
  border-color: var(--line-strong);
  border-radius: 0;
  color: var(--muted-strong);
  background: var(--surface-solid);
  
  pointer-events: auto;
  touch-action: manipulation;
}.quota-panel-trigger strong {
  color: var(--accent);
}.page-shell {
  padding-top: 10px;
}.command-rail {
  display: grid;
  grid-template-columns: minmax(175px, auto) minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  margin-bottom: 10px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 10px;
  background: var(--surface-solid);
}.command-rail-meta {
  min-width: 0;
  padding-inline: 4px;
}.command-rail-meta h2 {
  margin-bottom: 4px;
  font-size: 15px;
  font-weight: 760;
  letter-spacing: -0.02em;
}.command-rail-meta p {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-bottom: 0;
  color: var(--muted);
  font-size: 14px;
}.command-signal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}.command-signal {
  display: grid;
  min-width: 0;
  min-height: 56px;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 7px 9px;
  color: var(--text);
  background: var(--surface-subtle);
  text-align: left;
}button.command-signal {
  touch-action: manipulation;
  transition: border-color 140ms ease, background-color 140ms ease;
}button.command-signal:hover {
  border-color: rgba(224, 57, 47, 0.34);
  background: var(--accent-soft);
}button.command-signal:active {
  transform: none;
}.command-signal-icon {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 0;
  color: var(--accent);
  background: var(--accent-soft);
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 850;
}.command-signal.is-live .command-signal-icon {
  color: var(--live);
  background: var(--live-soft);
  font-size: 14px;
}.command-signal-copy {
  display: grid;
  min-width: 0;
  gap: 1px;
}.command-signal-copy small {
  color: var(--muted);
  font-size: 14px;
  font-weight: 650;
}.command-signal-copy strong {
  overflow: hidden;
  font-size: 14px;
  font-weight: 720;
  text-overflow: ellipsis;
  white-space: nowrap;
}.command-signal-arrow {
  color: var(--muted);
  font-size: 14px;
}.command-signal-note {
  max-width: 9ch;
  overflow: hidden;
  color: var(--muted);
  font-size: 14px;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}.command-signal.is-freshness[data-sync-state="ok"] .command-signal-icon {
  color: var(--success);
  background: var(--success-soft);
}.command-signal.is-freshness[data-sync-state="warning"] .command-signal-icon {
  color: var(--warning);
  background: var(--warning-soft);
}.command-signal.is-freshness[data-sync-state="error"] .command-signal-icon {
  color: var(--danger);
  background: var(--danger-soft);
}.page-navigation {
  position: sticky;
  z-index: 12;
  top: calc(62px + env(safe-area-inset-top, 0px));
  margin-bottom: 14px;
  border-color: var(--line);
  border-radius: 0;
  padding: 4px;
  background: var(--surface-glass);
  
  
  
}.page-navigation-button {
  min-height: 44px;
  border-radius: 0;
  color: var(--muted-strong);
  font-size: 14px;
}.page-navigation-button.is-active,
.date-button.is-active {
  color: #fff;
  background: var(--accent);
  
}.push-setup,
.toolbar,
.date-switch,
.sync-strip,
.view-status-strip,
.ledger-toolbar,
.league-section,
.local-live-card,
.ledger-entry,
.quota-dialog-surface,
.dialog-surface {
  border-color: var(--line);
  background: var(--surface-solid);
  
}.push-setup {
  margin-top: 18px;
}.toolbar,
.date-switch,
.sync-strip,
.view-status-strip,
.ledger-toolbar,
.league-header,
.local-live-card-header,
.detail-tabs,
.dialog-footer {
  background: var(--surface-solid);
}.segmented,
.select-shell,
.ledger-filter-control input,
.local-live-context {
  background: var(--surface-input);
}.segment.is-active {
  color: var(--text);
  background: var(--surface-solid);
  
}.league-section,
.local-live-card,
.ledger-entry {
  
}.match-card:hover,
.local-live-card.is-interactive:hover {
  background: var(--accent-soft);
}.match-card-open:active {
  background: rgba(224, 57, 47, 0.12);
}.local-live-scoreboard,
.dialog-score {
  background: var(--panel);
}.local-live-market-divider {
  border-color: rgba(224, 57, 47, 0.20);
  color: var(--accent);
  background: var(--accent-soft);
}.empty-state,
.error-state,
.quota-panel-placeholder {
  background: var(--surface-solid);
}.match-dialog::backdrop,
.quota-dialog::backdrop {
  background: rgba(18, 23, 31, 0.58);
}.state-action {
  color: #fff;
  background: var(--accent);
}.icon-button,
.refresh-button,
.ledger-source-button,
.quota-period-button,
.ledger-filter-reset,
.ledger-load-more,
.mobile-filter-toggle,
.push-setup-action {
  min-height: 44px;
  touch-action: manipulation;
}@media (max-width: 700px) {.site-header {
    padding-top: env(safe-area-inset-top, 0px);
  }.header-row {
    min-height: 60px;
    gap: 8px;
    padding-block: 7px;
  }.brand-block {
    min-width: 0;
    flex: 1 1 auto;
    gap: 8px;
  }.brand-mark {
    width: 36px;
    height: 36px;
    font-size: 16px;
  }.brand-block .eyebrow {
    display: none;
  }.brand-block h1 {
    font-size: 15px;
  }.header-actions {
    position: relative;
    z-index: 40;
    margin-right: env(safe-area-inset-right, 0px);
    pointer-events: auto;
  }.quota-panel-trigger {
    min-width: 50px;
    min-height: 48px;
    padding-inline: 8px;
  }.quota-panel-trigger span {
    display: none;
  }.page-shell {
    padding-top: 8px;
  }.command-rail {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-bottom: 8px;
    border-radius: 0;
    padding: 8px;
  }.command-rail-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-inline: 2px;
  }.command-rail-meta h2 {
    flex: 0 0 auto;
    margin-bottom: 0;
    font-size: 14px;
  }.command-rail-meta p {
    justify-content: flex-end;
    gap: 8px;
    font-size: 14px;
    text-align: right;
  }.command-signal-grid {
    gap: 5px;
  }.command-signal {
    min-height: 54px;
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 6px;
    border-radius: 0;
    padding: 6px;
  }.command-signal-icon {
    width: 26px;
    height: 26px;
    border-radius: 0;
  }.command-signal-copy small {
    font-size: 14px;
  }.command-signal-copy strong {
    font-size: 14px;
  }.command-signal-arrow,
  .command-signal-note {
    display: none;
  }.page-navigation {
    top: calc(60px + env(safe-area-inset-top, 0px));
    margin-bottom: 12px;
  }.date-panel {
    gap: 12px;
  }.date-copy h2,
  .view-heading h2 {
    font-size: 28px;
  }
}/* ===== 赛报红 v1 — 红品牌顶栏 (2026-09-01) ===== */
.site-header {
  border-bottom: 0;
  background: var(--panel);
}.brand-block h1,
.site-header .header-status,
.site-header #service-status {
  color: #ffffff;
}.brand-block .eyebrow { color: rgba(255, 255, 255, 0.78); }.site-header .header-status { color: rgba(255, 255, 255, 0.92); }.brand-mark {
  color: var(--signal);
  background: #ffffff;
  
}.site-header .live-dot {
  background: #7dff9b;
  
}.quota-panel-trigger {
  border-color: rgba(255, 255, 255, 0.3);
  color: rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.14);
}.quota-panel-trigger strong { color: #ffffff; }.skeleton-loading-copy {
  border-color: rgba(224, 57, 47, 0.25);
  color: var(--accent);
  background: var(--accent-soft);
}.eyebrow { color: var(--accent); }.brand-block .eyebrow { color: rgba(255, 255, 255, 0.78); }.mobile-filter-toggle {
  color: var(--text);
  background: var(--surface-solid);
}#mobile-filter-summary { color: var(--muted); }

/* 赛报红 v2 — 滚球比分筹片(覆盖遗留深蓝) */
.local-live-score {
  color: var(--accent);
  border: 1px solid rgba(224, 57, 47, 0.25);
  background: var(--accent-soft);
  
}
.local-live-context { background: var(--surface-input); }

/* ===== 情报中心(赛报红) ===== */
#intel-page { display: none; }
body.intel-active #intel-page { display: block; }
body.intel-active #schedule-page, body.intel-active #local-live-page, body.intel-active #ledger-page { display: none !important; }
.intel-tabs { display: flex; gap: 8px; margin: 12px 0; flex-wrap: wrap; }
.intel-tab { border: 1px solid var(--border-strong, #d8dce3); background: var(--surface-card, #fff);
  color: var(--text-primary, #1c222b); border-radius: 0; padding: 7px 14px; font-size: 14px; cursor: pointer; }
.intel-tab em { font-style: normal; font-weight: 700; margin-left: 4px; color: var(--accent, #e0392f); }
.intel-tab.is-active { background: var(--accent, #e0392f); border-color: var(--accent, #e0392f); color: #fff; }
.intel-tab.is-active em { color: #fff; }
.intel-updated { color: var(--text-secondary, #667085); font-size: 14px; margin: 4px 0 12px; }
.intel-body { display: grid; gap: 10px; }
.intel-card { background: var(--surface-card, #fff); border: 1px solid var(--border-soft, #e6e9ef);
  border-radius: 0; padding: 12px 14px; }
.intel-card.is-alert { border-color: rgba(224, 57, 47, 0.45); }
.intel-card.is-value { border-color: rgba(31, 143, 78, 0.45); }
.intel-match { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; margin-bottom: 8px; }
.intel-league { color: var(--accent, #e0392f); font-size: 14px; font-weight: 600; }
.intel-teams { font-weight: 700; font-size: 15px; color: var(--text-primary, #1c222b); }
.intel-ko { color: var(--text-secondary, #667085); font-size: 14px; margin-left: auto; }
.intel-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.intel-chip { background: var(--surface-input, #f2f4f7); border-radius: 0; padding: 3px 9px;
  font-size: 14px; color: var(--text-primary, #1c222b); white-space: nowrap; }
.intel-odds { font-size: 14px; color: var(--text-primary, #1c222b); display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.intel-odds strong { font-family: "Barlow Condensed", "DIN Alternate", sans-serif; font-size: 17px; }
.intel-sub { color: var(--text-secondary, #667085); font-size: 14px; }
.intel-arrow { color: var(--text-secondary, #667085); }
.intel-leg { background: var(--surface-input, #f2f4f7); border-radius: 0; padding: 2px 8px; font-size: 14px; }
.intel-drop { margin-left: auto; font-weight: 700; font-family: "Barlow Condensed", sans-serif; font-size: 17px; color: var(--accent, #e0392f); }
.intel-drop.is-severe { color: var(--signal); }
.intel-drop.is-good { color: var(--ink); }
.intel-meta { margin-top: 8px; color: var(--text-secondary, #667085); font-size: 14px; }
.intel-empty { color: var(--text-secondary, #667085); padding: 24px 8px; text-align: center; }
.intel-stats { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.intel-stat { background: var(--surface-card, #fff); border: 1px solid var(--border-soft, #e6e9ef);
  border-radius: 0; padding: 8px 14px; display: flex; flex-direction: column; align-items: center; min-width: 72px; }
.intel-stat strong { font-family: "Barlow Condensed", sans-serif; font-size: 20px; color: var(--text-primary, #1c222b); }
.intel-stat span { font-size: 14px; color: var(--text-secondary, #667085); }
.intel-stat.is-good strong { color: var(--ink); }
.intel-stat.is-bad strong { color: var(--accent, #e0392f); }
.intel-badge { margin-left: auto; border-radius: 0; padding: 3px 10px; font-size: 14px; font-weight: 600; }
.intel-badge.is-win { background: rgba(224, 57, 47, 0.12); color: var(--signal); }
.intel-badge.is-loss { background: rgba(28, 34, 43, 0.10); color: #1c222b; }
.intel-badge.is-push { background: rgba(102, 112, 133, 0.12); color: var(--lead); }
.intel-badge.is-pending { background: var(--surface-input, #f2f4f7); color: var(--text-secondary, #667085); }
/* 导航四钮排布 */
.page-navigation { display: flex !important; flex-wrap: nowrap; gap: 8px; }
.page-navigation .page-navigation-button { flex: 1 1 0; }

/* 情报页:说明 + 可点击卡片 */
.intel-desc { color: var(--text-secondary, #667085); font-size: 14px; line-height: 1.6; margin: 0 0 6px;
  background: var(--surface-input, #f2f4f7); border-radius: 0; padding: 8px 12px; }
.intel-card.is-clickable { cursor: pointer; transition: box-shadow .15s, border-color .15s; }
.intel-card.is-clickable:hover, .intel-card.is-clickable:focus { border-color: var(--accent, #e0392f);  outline: none; }

/* 账本:按联赛胜率 */
.intel-league-table { background: var(--surface-card, #fff); border: 1px solid var(--border-soft, #e6e9ef); border-radius: 0; overflow: hidden; margin-bottom: 4px; }
.intel-league-head, .intel-league-row { display: grid; grid-template-columns: 1fr 52px 84px 64px 64px; gap: 6px; padding: 8px 12px; font-size: 14px; align-items: center; }
.intel-league-head { color: var(--text-secondary, #667085); font-size: 14px; background: var(--surface-input, #f2f4f7); }
.intel-league-row { border-top: 1px solid var(--border-soft, #e6e9ef); }
.intel-league-row strong { font-family: "Barlow Condensed", sans-serif; font-size: 16px; color: var(--accent, #e0392f); }
.intel-league-row.is-good strong { color: var(--ink); }

/* 已开球但本源无滚球推送(no_feed)的展示 */
.status-badge.is-live.is-nofeed { background: var(--warning-soft); color: var(--warning); animation: none; }
.match-card .status-badge.is-nofeed::before { content: none; }
.local-live-card.is-nofeed .local-live-freshness-dot { background: var(--warning);  }
.local-live-card.is-nofeed .local-live-score { color: var(--muted); }
.local-live-nofeed-notice { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; margin: 6px 0 2px; padding: 8px 12px; border: 1px dashed var(--line-strong); border-radius: 0; background: var(--warning-soft); font-size: 14px; line-height: 1.5; }
.local-live-nofeed-notice strong { color: var(--warning); font-weight: 600; }
.local-live-nofeed-notice span { color: var(--muted-strong); }

/* 盘口走势(A3):T-5 卡片一行 + 账本按走势小表;只加最小样式,不改布局 */
.t5-trajectory-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.t5-trajectory-line .t5-trajectory-label { flex: 0 0 auto; font-weight: 600; color: var(--muted-strong, #667085); }
.t5-trajectory-line .t5-trajectory-label::after { content: "："; }
.t5-trajectory-line .t5-trajectory-text { min-width: 0; overflow-wrap: anywhere; }
.t5-trajectory-tag { display: inline-block; border-radius: 6px; padding: 1px 6px; font-size: 0.92em; font-weight: 600; line-height: 1.5; background: rgba(102, 112, 133, 0.12); color: var(--lead); }
.t5-trajectory-tag.is-with_trend { background: rgba(31, 143, 78, 0.14); color: var(--ink); }
.t5-trajectory-tag.is-against_trend { background: rgba(224, 57, 47, 0.12); color: var(--accent, #e0392f); }
.t5-trajectory-tag.is-sig { background: rgba(242, 184, 75, 0.2); color: var(--lead); }
.t5-trajectory-tag.is-policy { background: rgba(76, 141, 255, 0.16); color: var(--lead); }
.full-prediction-hero .full-prediction-trajectory { grid-column: 1 / -1; margin: 0; padding-top: 6px; border-top: 1px solid rgba(112, 167, 255, 0.22); color: var(--muted); font-size: 14px; line-height: 1.55; }
.full-prediction-hero .full-prediction-trajectory .t5-trajectory-label { color: var(--ink); }

/* 账本:按走势小表与条目走势行 */
.intel-traj-table .intel-league-head span:first-child { min-width: 0; }
.intel-traj-note { padding: 6px 12px 8px; border-top: 1px solid var(--border-soft, #e6e9ef); color: var(--text-secondary, #667085); font-size: 14px; line-height: 1.5; }
.intel-traj-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.intel-traj-line .intel-traj-sum { min-width: 0; overflow-wrap: anywhere; }
.intel-traj-tag { display: inline-block; border-radius: 6px; padding: 1px 6px; font-size: 14px; font-weight: 600; background: rgba(102, 112, 133, 0.12); color: var(--lead); }
.intel-traj-tag.is-with_trend { background: rgba(31, 143, 78, 0.14); color: var(--ink); }
.intel-traj-tag.is-against_trend { background: rgba(224, 57, 47, 0.12); color: var(--accent, #e0392f); }
.intel-traj-tag.is-sig { background: rgba(242, 184, 75, 0.2); color: var(--lead); }
.intel-traj-tag.is-policy { background: rgba(76, 141, 255, 0.16); color: var(--lead); }

.local-live-card.is-nofeed .local-live-score { color: var(--muted); }
.local-live-nofeed-notice { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; margin: 6px 0 2px; padding: 8px 12px; border: 1px dashed var(--line-strong); border-radius: var(--radius-sm); background: var(--warning-soft); font-size: 14px; line-height: 1.5; }
.local-live-nofeed-notice strong { color: var(--warning); font-weight: 600; }
.local-live-nofeed-notice span { color: var(--muted-strong); }

/* 手机端:无实时源状态标签允许换行,不再压到右侧内容 */
.match-time .status-badge.is-nofeed { white-space: normal; line-height: 1.2; text-align: left; max-width: 8.5em; padding: 4px 8px; }
@media (max-width: 640px) { .match-time .status-badge.is-nofeed { max-width: 7em; font-size: 14px; } }


/* ============================================================================
   方向 B「晨报」— 2026-09-02
   冷纸白、墨字、细栏线;红色只给警示(逆走势、降盘、输、进行中红点)。
   本层覆盖上方所有历史主题层;token 定义见文件顶部 :root。
   ========================================================================== */

/* ---------- 基础 ---------- */
html { background: var(--paper); scroll-behavior: auto; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font: 400 14px/1.6 var(--sans);
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
}
button, select, input, textarea { font-family: inherit; }
b { font-family: var(--mono); font-weight: 600; font-variant-numeric: tabular-nums; }
time { font-family: var(--mono); font-variant-numeric: tabular-nums; }
h1, h2, h3 { font-family: var(--serif); font-weight: 700; letter-spacing: 0; color: var(--ink); }
.k { color: var(--lead); }
.serif { font-family: var(--serif); }
.mono { font-family: var(--mono); }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
a { color: inherit; }
::selection { background: var(--ink); color: var(--white); }
.skip-link { border-radius: 0; color: var(--white); background: var(--ink); }
.eyebrow {
  margin: 0 0 2px;
  color: var(--lead);
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
.page-shell { padding: 0 0 max(56px, env(safe-area-inset-bottom)); }
.shell { width: min(100% - 28px, 1180px); margin-inline: auto; }
@media (min-width: 760px) { .shell { width: min(100% - 48px, 1180px); } }

/* ---------- 报头 ---------- */
.site-header.mast {
  position: static;
  z-index: auto;
  border: 0;
  padding-top: env(safe-area-inset-top, 0px);
  background: var(--paper);
  isolation: auto;
}
.mast-top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 4px 20px;
  padding: 6px 0 4px;
  border-bottom: 1px solid var(--rule);
  color: var(--lead);
  font-size: 14px;
}
.mast-date { margin: 0; display: flex; gap: 8px; align-items: baseline; white-space: nowrap; }
.mast-date time { font-family: var(--sans); font-weight: 500; color: var(--ink); }
.mast-wire { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 18px; min-width: 0; }
.mast-wire .header-status,
.site-header .header-status,
.site-header #service-status { display: inline-flex; align-items: center; gap: 6px; color: var(--lead); font-size: 14px; white-space: nowrap; background: transparent; }
.site-header .live-dot { background: var(--ink); }
.live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ink); animation: none; }
.wire-item.command-signal {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--lead);
  font: inherit;
  text-align: left;
  white-space: nowrap;
}
.wire-item.command-signal small { font-size: 14px; color: var(--lead); }
.wire-item.command-signal strong { font-weight: 500; color: var(--ink); }
button.wire-item.command-signal:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.command-signal-note { font-size: 14px; color: var(--lead); }
.command-signal[data-sync-state="error"] strong,
.command-signal[data-sync-state="error"] .command-signal-note { color: var(--signal); }
.command-signal[data-sync-state="warning"] strong { color: var(--lead); }
.quota-panel-trigger {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--lead);
  font-size: 14px;
  font-weight: 400;
  white-space: nowrap;
}
.quota-panel-trigger strong { font-family: var(--mono); font-size: 14px; font-weight: 600; color: var(--ink); }
.quota-panel-trigger:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.mast-main {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px 20px;
  padding: 18px 0 0;
}
.mast-main h1 {
  margin: 0 0 8px;
  overflow: visible;
  font: 900 clamp(26px, 3.2vw, 38px)/1.15 var(--serif);
  letter-spacing: 0.02em;
  white-space: normal;
  text-overflow: clip;
}
.page-navigation,
.page-navigation.page-navigation {
  display: flex !important;
  flex-wrap: nowrap;
  gap: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.page-navigation .page-navigation-button {
  flex: 0 0 auto;
  min-height: 0;
  margin: 0;
  padding: 6px 14px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  color: var(--lead);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
}
.page-navigation .page-navigation-button:hover { color: var(--ink); }
.page-navigation .page-navigation-button.is-active {
  border-bottom-color: var(--ink);
  background: transparent;
  color: var(--ink);
  font-weight: 700;
}
.dbl { height: 4px; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--ink); }

/* ---------- 日期条 / 工具栏 / 图例 ---------- */
.strip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px 16px;
  flex-wrap: wrap;
  padding: 6px 0;
  border-bottom: 1px solid var(--rule);
}
.date-switch,
.date-switch.dates {
  display: flex;
  flex: 1 1 0;
  min-width: 220px;
  gap: 0;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  scrollbar-width: none;
  border: 0;
  background: transparent;
}
.date-switch::-webkit-scrollbar { display: none; }
.date-switch .date-button {
  flex: 0 0 auto;
  display: flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 6px 12px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  color: var(--lead);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}
.date-switch .date-button span { font-size: 15px; font-weight: 500; color: inherit; }
.date-switch .date-button small { font-family: var(--mono); font-size: 14px; font-weight: 500; color: inherit; }
.date-switch .date-button:hover { color: var(--ink); background: transparent; }
.date-switch .date-button.is-active { border-bottom-color: var(--ink); color: var(--ink); font-weight: 700; background: transparent; }
.date-switch .date-button.is-active span { font-weight: 700; }
.strip-tools { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.mobile-filter-toggle {
  display: none;
  align-items: center;
  gap: 8px;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 4px 12px;
  border: 1px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  font-size: 14px;
  font-weight: 500;
}
.mobile-filter-toggle[aria-expanded="true"] { background: var(--ink); color: var(--white); }
#mobile-filter-summary { color: inherit; font-size: 14px; font-weight: 400; opacity: 0.85; }
.refresh-button,
.live-refresh-button,
.ledger-refresh-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 0;
  padding: 4px 12px;
  border: 1px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  font-size: 14px;
  font-weight: 500;
}
.refresh-button:hover { background: var(--paper-2); }
.refresh-button.is-loading .refresh-icon { animation: aceSpin 900ms linear infinite; }
@keyframes aceSpin { to { transform: rotate(360deg); } }
.toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 22px;
  margin: 0;
  padding: 8px 0;
  overflow: visible;
  border: 0;
  border-bottom: 1px solid var(--rule);
  background: transparent;
}
.filter-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; min-width: 0; }
.filter-label { color: var(--lead); font-size: 14px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.segmented, .segmented.seg { display: flex; gap: 0; padding: 0; border: 1px solid var(--ink); background: transparent; }
.segmented .segment {
  min-height: 0;
  margin: 0;
  padding: 4px 12px;
  border: 0;
  border-right: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}
.segmented .segment:last-child { border-right: 0; }
.segmented .segment:hover { background: var(--paper-2); color: var(--ink); }
.segmented .segment.is-active { background: var(--ink); color: var(--white); font-weight: 700; }
.favorite-filter-star { font-size: 14px; }
.favorite-filter-count { font-family: var(--mono); font-size: 14px; font-weight: 500; padding: 0; border: 0; background: transparent; color: inherit; }
.segment.is-active .favorite-filter-count { color: var(--white); }
.local-only-note { flex: 1 0 100%; order: 9; color: var(--lead); font-size: 14px; line-height: 1.5; }
.league-filter-mount:empty { display: none; }
.legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 0;
  padding: 10px 0;
  border-bottom: 1px solid var(--rule);
  color: var(--lead);
  font-size: 14px;
}
.legend-title { font-weight: 500; }
.sep { display: inline-block; width: 1px; height: 14px; background: var(--rule); margin: 0 4px; }

/* 章与标签 */
.st, .r, .g { display: inline-block; padding: 0 7px; line-height: 20px; white-space: nowrap; font-size: 14px; }
.st-live { background: var(--ink); color: var(--white); font-weight: 700; }
.st-end { border: 1px solid var(--lead); color: var(--lead); }
.st-pre { padding: 0; color: var(--lead); border-bottom: 1px dashed var(--lead); line-height: 18px; }
.r { font-weight: 700; border: 2px solid var(--ink); color: var(--ink); }
.r b { font-size: 14px; margin-left: 4px; color: inherit; }
.r-l { border-color: var(--signal); color: var(--signal); }
.r-p { border: 1px solid var(--lead); color: var(--lead); font-weight: 500; }
.g { font-weight: 700; border: 1px solid var(--ink); color: var(--ink); }
.g-a { background: var(--ink); color: var(--white); }
.g-c { border: 1px dotted var(--lead); color: var(--lead); }
.g-lg { font-size: 16px; padding: 2px 12px; line-height: 1.5; }
.tr { font-weight: 700; white-space: nowrap; color: var(--ink); }
.tr-a, .warn { color: var(--signal); font-weight: 700; }
.t5-evidence-grade { display: inline-block; padding: 0 7px; line-height: 20px; border: 1px solid var(--ink); background: transparent; color: var(--ink); font-size: 14px; font-weight: 700; }
.t5-evidence-grade.is-a { background: var(--ink); color: var(--white); }
.t5-evidence-grade.is-b { background: transparent; color: var(--ink); }
.t5-evidence-grade.is-c { border-style: dotted; border-color: var(--lead); color: var(--lead); background: transparent; }
.source-badge {
  display: inline-block;
  padding: 0 7px;
  line-height: 20px;
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
.source-badge.is-reference { border-style: dotted; border-color: var(--lead); color: var(--lead); }
.source-badge.is-shadow { border-style: dashed; border-color: var(--lead); color: var(--lead); }
.source-badge.is-research, .source-badge.is-real { border-color: var(--ink); color: var(--ink); }

/* ---------- 两栏 ---------- */
.cols { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; }
.list-col { min-width: 0; }
.col-h {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 16px 0 8px;
  border-bottom: 1px solid var(--ink);
}
.col-h h2 { margin: 0; font: 700 18px/1.4 var(--serif); }
.col-h p { margin: 0; color: var(--lead); font-size: 14px; }
.sync-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 4px 12px;
  min-height: 0;
  margin: 0;
  padding: 6px 0;
  border: 0;
  border-bottom: 1px solid var(--rule);
  background: transparent;
  color: var(--lead);
  font-size: 14px;
}
.sync-primary { display: flex; align-items: center; gap: 8px; }
.sync-meta { display: flex; gap: 8px; align-items: center; }
.sync-indicator { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--rule-strong); animation: none; }
.sync-indicator.is-ok { background: var(--ink); }
.sync-indicator.is-warning { background: var(--lead); }
.sync-indicator.is-error { background: var(--signal); }
.sync-strip[data-loading="true"] .sync-indicator { background: var(--lead); }
#match-summary { color: var(--ink); font-weight: 500; }
.notice-region { display: grid; gap: 6px; margin: 8px 0 0; }
.notice {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid var(--rule);
  border-left: 4px solid var(--lead);
  background: var(--white);
  color: var(--ink);
  font-size: 14px;
}
.notice.is-error { border-left-color: var(--signal); }
.notice.is-warning { border-left-color: var(--lead); }
.notice-dot { display: none; }

/* ---------- 赛程行 ---------- */
.match-list { display: block; grid-template-columns: none; gap: 0; }
.match-list .league-section.schedule-section { display: block; margin: 0; padding: 0; border: 0; background: transparent; }
.match-rows, .match-cards { display: block; gap: 0; }
.match-list .match-card {
  position: relative;
  display: block;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--rule);
  border-left: 4px solid transparent;
  background: transparent;
  transition: background-color 120ms ease;
}
.match-list .match-card:hover { background: var(--paper-2); border-color: transparent; border-bottom-color: var(--rule); transform: none; }
.match-list .match-card.is-selected { border-left-color: var(--ink); background: var(--paper-2); }
.match-list .match-card.is-live { border-left-color: var(--signal); }
.match-list .match-card.is-live.is-selected { border-left-color: var(--ink); }
.match-list .match-card.is-identity-blocked { opacity: 1; }
.match-card .match-card-open {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 2px 12px;
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 12px 40px 12px 10px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  line-height: 1.5;
  text-align: left;
  align-items: start;
  transform: none;
}
.match-card .match-card-open:active { transform: none; background: transparent; }
.match-card .match-time {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.match-card .match-clock { font: 600 18px/1.2 var(--mono); color: var(--ink); }
.match-card .match-day-tag { font-size: 14px; color: var(--lead); }
.match-card .status-badge {
  display: inline-block;
  min-height: 0;
  margin: 0;
  padding: 0 7px;
  border: 0;
  line-height: 20px;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  animation: none;
  text-transform: none;
  letter-spacing: 0;
}
.match-card .status-badge::before, .match-card .status-badge::after { content: none; }
.match-card .status-badge.st-live { background: var(--ink); color: var(--white); font-weight: 700; }
.match-card .status-badge.st-live::before { content: "● "; color: var(--signal); }
.match-card .status-badge.st-live.is-nofeed { background: transparent; color: var(--lead); border: 1px dashed var(--lead); line-height: 18px; white-space: normal; }
.match-card .status-badge.st-live.is-nofeed::before { content: none; }
.match-card .status-badge.st-end { background: transparent; border: 1px solid var(--lead); color: var(--lead); line-height: 18px; }
.match-card .status-badge.st-pre { padding: 0; background: transparent; color: var(--lead); border-bottom: 1px dashed var(--lead); line-height: 18px; }
.match-card .status-badge.is-delayed { color: var(--signal); border-color: var(--signal); }
.match-card .match-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.match-card .match-league-label {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: var(--lead);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.match-card .match-league-name { min-width: 0; }
.match-card .match-league-tags { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 8px; flex: 0 0 auto; }
.match-card .updated-label { font-size: 14px; color: var(--lead); white-space: nowrap; }
.match-card .stale-badge, .match-card .date-transition-badge {
  display: inline-block;
  padding: 0 6px;
  border: 1px solid var(--lead);
  background: transparent;
  color: var(--lead);
  font-size: 14px;
  line-height: 18px;
  white-space: nowrap;
}
.match-card .tm { display: flex; justify-content: space-between; gap: 10px; font-weight: 500; font-size: 15px; }
.match-card .tm .team-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); }
.match-card .tm .team-score { font: 600 18px/1.3 var(--mono); color: var(--ink); }
.match-card .vs { font-weight: 500; font-size: 15px; color: var(--ink); }
.match-card .vs i { font: 400 13px var(--mono); font-style: normal; color: var(--lead); padding: 0 6px; }
.match-card .match-penalty-score { color: var(--lead); font-family: var(--mono); font-size: 14px; }
.match-card .match-odds { display: flex; flex-wrap: wrap; gap: 0 14px; color: var(--lead); font-size: 14px; }
.match-card .match-odds > span { white-space: nowrap; }
.match-card .match-odds b { color: var(--ink); font-weight: 500; }
.match-card .x { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 4px; font-size: 14px; }
.match-card .pick-label { display: inline-flex; align-items: baseline; gap: 6px; }
.match-card .pick-name { font: 700 16px/1.4 var(--serif); color: var(--ink); }
.match-card .pick-label b { color: var(--ink); }
.match-card .pick-hit b { color: var(--ink); }
.match-card .pick-muted { color: var(--lead); min-width: 0; flex: 1 1 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.match-card.is-selected .pick-muted, .match-card:hover .pick-muted { white-space: normal; }
.match-card .match-analysis-entry {
  display: block;
  margin: 4px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--lead);
  font-size: 14px;
  line-height: 1.55;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.match-card.is-selected .match-analysis-entry, .match-card:hover .match-analysis-entry { white-space: normal; }
.match-card .match-analysis-entry > * { display: inline; margin: 0; padding: 0; border: 0; background: transparent; color: inherit; font-size: 14px; font-weight: 400; }
.match-card .match-analysis-reason::before, .match-card .match-history-entry::before { content: " · "; }
.match-card .match-history-entry { color: var(--ink); font-weight: 500; }
.match-card .match-history-entry.is-waiting { color: var(--lead); font-weight: 400; }
.match-card .favorite-button {
  position: absolute;
  top: 8px;
  right: 2px;
  width: 34px;
  height: 34px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--lead);
  font-size: 18px;
  line-height: 1;
}
.match-card .favorite-button:hover { color: var(--ink); background: transparent; }
.match-card .favorite-button.is-active { color: var(--ink); background: transparent; }
.match-list.is-date-transition::before { display: block; padding: 6px 0; color: var(--lead); font-size: 14px; content: attr(data-transition-label); }
.now { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 8px 8px 10px; border-left: 4px solid transparent; margin: 2px 0; }
.now::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 4px; margin-top: -2px; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--ink); }
.now > span { position: relative; background: var(--paper); padding: 0 8px; }
.now-t { font: 600 15px/1.4 var(--mono); color: var(--ink); }
.now-t b { font-size: 15px; }
.now-t em { font-style: normal; font-family: var(--sans); font-weight: 700; margin-left: 6px; }
.now-s { color: var(--lead); font-size: 14px; }

/* 骨架与空态 */
.skeleton-stack { display: grid; gap: 10px; padding: 12px 0; }
.skeleton-league, .skeleton-card, .detail-skeleton-shapes > div { background: var(--paper-2); border: 0; animation: none; }
.skeleton-league { height: 18px; width: 40%; }
.skeleton-card { height: 84px; }
.skeleton-loading-copy { margin: 0; padding: 0; border: 0; background: transparent; color: var(--lead); font-size: 14px; }
.empty-state, .error-state {
  display: grid;
  gap: 4px;
  margin: 12px 0;
  padding: 14px 16px;
  border: 1px solid var(--rule);
  border-left: 4px solid var(--ink);
  background: var(--white);
  text-align: left;
}
.error-state { border-left-color: var(--signal); }
.empty-state .state-icon, .error-state .state-icon { display: none; }
.empty-state h3, .error-state h3 { margin: 0; font: 700 17px/1.4 var(--serif); }
.empty-state p, .error-state p { margin: 0; color: var(--lead); font-size: 14px; }
.state-action { justify-self: start; margin-top: 6px; padding: 4px 12px; border: 1px solid var(--ink); background: var(--ink); color: var(--white); font-size: 14px; font-weight: 500; }

/* ---------- 详情:停靠版 + 手机整页 ---------- */
.detail-dock { display: none; }
.detail-dock-empty { padding: 18px 0 0; }
.detail-dock-kicker { margin: 0 0 4px; color: var(--lead); font-size: 14px; }
.detail-dock-empty h2 { margin: 0 0 6px; font: 900 24px/1.3 var(--serif); }
.detail-dock-empty p { margin: 0; color: var(--lead); font-size: 14px; }
.detail-dock.is-open .detail-dock-empty { display: none; }

.match-dialog {
  width: 100%;
  max-width: none;
  height: min(92dvh, 900px);
  max-height: none;
  margin: auto 0 0;
  overflow: hidden;
  border: 0;
  border-top: 3px solid var(--ink);
  padding: 0;
  color: var(--ink);
  background: var(--paper);
}
.match-dialog[open] { animation: none; }
.match-dialog::backdrop { background: rgba(21, 24, 29, 0.55); }
.dialog-surface { display: grid; height: 100%; grid-template-rows: auto auto auto minmax(0, 1fr) auto; background: transparent; border: 0; }
.dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 14px 16px 6px; border: 0; }
.dialog-header .eyebrow { margin: 0 0 2px; color: var(--lead); font-size: 14px; font-family: var(--sans); font-weight: 400; }
.dialog-header h2 { margin: 0; font: 900 clamp(22px, 2.4vw, 30px)/1.25 var(--serif); letter-spacing: 0; }
.dialog-header h2 .vs-mark { font: 400 16px/1 var(--mono); font-style: normal; color: var(--lead); padding: 0 8px; }
.icon-button { width: 34px; height: 34px; border: 1px solid var(--ink); background: var(--white); color: var(--ink); font-size: 22px; }
.icon-button:hover { background: var(--paper-2); color: var(--ink); border-color: var(--ink); }
.dialog-score { min-height: 0; padding: 6px 16px 10px; border: 0; border-bottom: 1px solid var(--rule); background: transparent; }
.score-stage { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 10px; }
.score-team { display: flex; align-items: center; gap: 8px; justify-items: start; text-align: left; }
.score-team:last-child { flex-direction: row-reverse; text-align: right; }
.score-team .team-logo { width: 28px; height: 28px; padding: 0; border: 1px solid var(--rule); background: var(--white); }
.score-team strong { overflow: hidden; width: auto; max-width: 100%; font-size: 15px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.score-centre { display: grid; justify-items: center; gap: 2px; min-width: 82px; }
.score-numbers { font: 600 28px/1 var(--mono); letter-spacing: 0; color: var(--ink); }
.score-extra { margin: 0; color: var(--lead); font-size: 14px; font-family: var(--mono); }
.dialog-score .status-badge { display: inline-block; padding: 0 7px; line-height: 20px; border: 1px solid var(--lead); background: transparent; color: var(--lead); font-size: 14px; font-weight: 500; animation: none; }
.dialog-score .status-badge.is-live { background: var(--ink); border-color: var(--ink); color: var(--white); font-weight: 700; }
.dialog-score .status-badge.is-live::before { content: "● "; color: var(--signal); }
.dialog-score .status-badge.is-finished { border-color: var(--lead); }
.detail-tabs {
  display: flex;
  min-height: 0;
  gap: 0;
  overflow-x: auto;
  padding: 0 16px;
  border: 0;
  border-bottom: 1px solid var(--rule);
  background: transparent;
  scrollbar-width: none;
}
.detail-tabs::-webkit-scrollbar { display: none; }
.detail-tab {
  position: static;
  flex: 0 0 auto;
  margin: 0 0 -1px;
  padding: 10px 12px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  color: var(--lead);
  font-size: 15px;
  font-weight: 500;
  white-space: nowrap;
}
.detail-tab::after { content: none; }
.detail-tab:hover { color: var(--ink); }
.detail-tab.is-active { color: var(--ink); font-weight: 700; border-bottom-color: var(--ink); }
.detail-content { overflow-y: auto; overscroll-behavior: contain; padding: 16px; }
.detail-content > * + * { margin-top: 14px; }
.dialog-footer { display: flex; align-items: flex-start; gap: 8px; padding: 10px 16px; border: 0; border-top: 1px solid var(--rule); background: transparent; color: var(--lead); font-size: 14px; }
.dialog-footer p { margin: 0; }
.shield-mark { display: inline-grid; place-items: center; width: 18px; height: 18px; flex: 0 0 auto; border: 1px solid var(--lead); border-radius: 50%; color: var(--lead); font: 600 12px/1 var(--mono); }

/* 停靠(桌面 ≥1100 且在赛程页) */
.match-dialog.is-docked,
.match-dialog.is-docked[open] {
  position: static;
  display: block;
  inset: auto;
  width: 100%;
  height: auto;
  max-height: none;
  margin: 0;
  overflow: visible;
  border: 0;
  padding: 0;
  background: transparent;
  animation: none;
}
.match-dialog.is-docked .dialog-surface { display: block; height: auto; }
.match-dialog.is-docked .dialog-header { padding: 0 0 6px; }
.match-dialog.is-docked .dialog-score { padding: 4px 0 10px; }
.match-dialog.is-docked .detail-tabs { padding: 0; margin-bottom: 18px; }
.match-dialog.is-docked .detail-content { overflow: visible; padding: 0; }
.match-dialog.is-docked .dialog-footer { padding: 12px 0 0; margin-top: 18px; }

/* 详情内容:卡片 → 细线块 */
.detail-card, .model-selection-panel, .full-prediction-hero, .ledger-stat-card, .push-setup {
  border: 1px solid var(--rule);
  border-top: 2px solid var(--ink);
  background: var(--white);
  padding: 12px 14px 14px;
  color: var(--ink);
}
.detail-card-header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 0 0 8px; margin-bottom: 10px; border: 0; border-bottom: 1px solid var(--rule); background: transparent; }
.detail-card-header h3 { margin: 0; font: 700 17px/1.4 var(--serif); }
.detail-card-header span { color: var(--lead); font-size: 14px; }
.detail-card-body { padding: 0; }
.detail-card-note, .model-frozen-note, .model-selection-blocked, .ledger-stat-foot { color: var(--lead); font-size: 14px; line-height: 1.55; }
.detail-grid { display: grid; gap: 14px; }
.detail-grid.is-two-column { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.detail-grid.is-two-column > .t5-news { grid-column: 1 / -1; }
.facts-list { margin: 0; }
.fact-row { display: grid; grid-template-columns: auto 1fr; gap: 4px 16px; padding: 6px 0; border-bottom: 1px solid var(--rule); }
.fact-row dt { color: var(--lead); }
.fact-row dd { margin: 0; }
.model-selection-header { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; padding-bottom: 8px; margin-bottom: 10px; border-bottom: 1px solid var(--rule); }
.model-selection-header h4 { margin: 0; font: 700 16px/1.4 var(--serif); }
.model-selection-header span { color: var(--lead); font-size: 14px; }
.model-selection-grid, .match-t5-decision-grid, .full-xg-grid, .full-grade-grid, .ledger-performance-grid, .postmatch-settlement-grid, .full-five-state-grid, .probability-grid { display: grid; gap: 8px 16px; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.model-selection-item, .full-xg-item, .full-grade-item, .ledger-performance-item, .postmatch-settlement-item, .full-five-state-item, .probability-item { display: grid; gap: 2px; padding: 6px 0; border: 0; border-bottom: 1px solid var(--rule); background: transparent; }
.model-selection-item span, .full-xg-item span, .full-grade-item span, .ledger-performance-item span, .postmatch-settlement-item span, .full-five-state-item span, .probability-item span { color: var(--lead); font-size: 14px; }
.model-selection-item strong, .full-xg-item strong, .ledger-performance-item strong, .full-five-state-item strong, .probability-item strong { font-family: var(--mono); font-weight: 600; font-size: 17px; color: var(--ink); }
.model-selection-item.is-tendency strong, .model-selection-item.is-preferred strong { font-family: var(--serif); font-size: 18px; }
.probability-bar, .full-five-state-bar { display: block; height: 8px; border: 1px solid var(--ink); background: var(--white); overflow: hidden; }
.probability-bar span, .full-five-state-bar b { display: block; height: 100%; background: var(--ink); }
.full-market-foot.is-correct, .ledger-result.is-correct { color: var(--ink); }
.full-market-foot.is-wrong, .ledger-result.is-wrong { color: var(--signal); }
.prediction-basis-badge, .prediction-edge-badge, .model-coverage-badge { display: inline-block; padding: 0 7px; line-height: 20px; border: 1px solid var(--lead); background: transparent; color: var(--lead); font-size: 14px; }
.full-prediction-hero { display: grid; gap: 10px; }
.full-prediction-hero h3 { margin: 4px 0; font: 700 18px/1.4 var(--serif); }
.full-prediction-hero p { margin: 0; color: var(--lead); font-size: 14px; }
.full-prediction-hero-meta { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
.full-prediction-hero-meta strong { font-family: var(--mono); font-weight: 600; }
.is-grade-a { color: var(--ink); }
.is-grade-b { color: var(--ink); }
.is-grade-c { color: var(--lead); }
.no-data-box, .blocked-box { padding: 10px 12px; border: 1px dashed var(--rule-strong); background: transparent; color: var(--lead); font-size: 14px; }
.blocked-box { border-left: 3px solid var(--signal); }
.postmatch-headline { display: grid; gap: 2px; }
.postmatch-headline strong { font: 600 32px/1.1 var(--mono); }
.postmatch-headline span, .postmatch-headline p { color: var(--lead); font-size: 14px; margin: 0; }
.postmatch-error-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.postmatch-error-tags span { padding: 0 8px; border: 1px solid var(--ink); line-height: 22px; font-size: 14px; }
.market-movement-grid { display: grid; gap: 10px 20px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.market-movement-item { border: 0; border-top: 1px solid var(--rule); padding: 8px 0 0; background: transparent; }
.market-movement-title { font-family: var(--serif); font-size: 16px; }
.market-movement-points { display: flex; flex-wrap: wrap; gap: 4px 14px; font-family: var(--mono); font-size: 14px; }
.market-movement-copy, .market-movement-note { color: var(--lead); font-size: 14px; }

/* T-5 晨报卡 */
.t5 { border: 1px solid var(--ink); border-top-width: 3px; background: var(--white); padding: 14px 18px 16px; margin: 0; }
.t5 + * { margin-top: 18px; }
.t5-head { display: flex; justify-content: space-between; align-items: baseline; gap: 6px 10px; flex-wrap: wrap; border-bottom: 1px solid var(--rule); padding-bottom: 8px; margin-bottom: 12px; }
.t5-head h3 { margin: 0; font: 700 17px/1.4 var(--serif); }
.t5-head span { font-size: 14px; }
.pick { display: flex; align-items: center; gap: 8px 18px; flex-wrap: wrap; margin-bottom: 14px; }
.big { margin: 0; font: 700 24px/1.3 var(--serif); color: var(--ink); }
.big b { margin-left: 8px; font-size: 22px; }
.five > p { margin: 0 0 4px; font-size: 14px; }
.bar { display: flex; height: 22px; border: 1px solid var(--ink); margin: 6px 0 8px; background: var(--white); }
.bar i, .fl i { display: block; }
.bar i + i { border-left: 1px solid var(--white); }
.s1 { background: var(--ink); }
.s2 { background: repeating-linear-gradient(135deg, var(--ink) 0 3px, var(--white) 3px 7px); }
.s3 { background: var(--paper-2); }
.s4 { background: repeating-linear-gradient(135deg, var(--signal) 0 3px, var(--white) 3px 7px); }
.s5 { background: var(--signal); }
.fl { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; padding: 0; list-style: none; font-size: 14px; }
.fl li { display: flex; align-items: center; gap: 6px; }
.fl i { width: 14px; height: 14px; border: 1px solid var(--ink); flex: 0 0 auto; }
.kv { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--rule); }
.kv dt { color: var(--lead); }
.kv dd { margin: 0; }
.t5-foot { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--rule); }
.t5-foot p { margin: 0 0 4px; color: var(--lead); font-size: 14px; line-height: 1.55; }
.tl { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; }

/* ---------- 滚球页 ---------- */
.view-heading { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 18px; padding: 16px 0 8px; border-bottom: 1px solid var(--ink); }
.view-heading h2 { margin: 0 0 2px; font: 700 22px/1.3 var(--serif); letter-spacing: 0; }
.view-heading p { margin: 0; color: var(--lead); font-size: 14px; }
.live-heading-actions { display: flex; gap: 8px; align-items: center; }
.live-favorite-filter-button { min-height: 0; border: 1px solid var(--ink); background: var(--white); color: var(--ink); padding: 4px 12px; font-size: 14px; }
.live-favorite-filter-button.is-active { background: var(--ink); color: var(--white); }
.view-status-strip { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; min-height: 0; margin: 0; padding: 6px 0; border: 0; border-bottom: 1px solid var(--rule); background: transparent; color: var(--lead); font-size: 14px; }
.local-live-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; }
.local-live-card { margin: 0; padding: 12px 0; border: 0; border-bottom: 1px solid var(--rule); border-left: 4px solid transparent; background: transparent; }
.local-live-card.is-favorite { border-left-color: var(--ink); }
.local-live-card-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding: 0 0 6px; border: 0; background: transparent; }
.local-live-identity { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.local-live-favorite { width: 28px; height: 28px; padding: 0; border: 0; background: transparent; color: var(--lead); font-size: 18px; line-height: 1; }
.local-live-favorite.is-active { color: var(--ink); background: transparent; }
.local-live-league-meta { display: flex; flex-wrap: wrap; gap: 2px 12px; color: var(--lead); font-size: 14px; }
.local-live-kickoff { font-family: var(--mono); }
.local-live-timing { display: flex; align-items: baseline; gap: 6px; padding: 0; border: 0; background: transparent; color: var(--ink); font-family: var(--mono); }
.local-live-stage { color: var(--lead); font-family: var(--sans); font-size: 14px; }
.local-live-clock-value { font: 600 18px/1.2 var(--mono); color: var(--ink); }
.local-live-clock-delay { color: var(--signal); font-family: var(--sans); font-size: 14px; }
.local-live-freshness-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ink); animation: none; align-self: center; }
.local-live-freshness-dot.is-stale { background: var(--lead); }
.local-live-scoreboard { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 10px; padding: 4px 0 8px; border: 0; background: transparent; }
.local-live-team { font: 700 17px/1.3 var(--serif); color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.local-live-team.is-away { text-align: right; }
.local-live-score-center { display: grid; justify-items: center; gap: 2px; }
.local-live-score { padding: 0 8px; border: 0; background: transparent; color: var(--ink); font: 600 26px/1.1 var(--mono); }
.local-live-card.is-nofeed .local-live-score { color: var(--lead); }
.local-live-penalty-score, .local-live-score-sync { color: var(--lead); font-size: 14px; }
.local-live-nofeed-notice { margin: 4px 0; padding: 6px 12px; border: 1px dashed var(--lead); background: transparent; font-size: 14px; }
.local-live-nofeed-notice strong { color: var(--lead); }
.local-live-context, .local-live-frozen, .local-live-markets, .local-live-statistics, .local-live-events, .local-live-ace { border: 0; border-top: 1px solid var(--rule); background: transparent; padding: 8px 0 0; margin-top: 8px; }
.local-live-frozen-head, .local-live-section-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; color: var(--lead); font-size: 14px; }
.local-live-frozen-head strong, .local-live-section-head strong { color: var(--ink); font-family: var(--serif); }
.local-live-card strong { font-weight: 600; }
.local-live-card .source-badge { font-size: 14px; }
.local-live-market-row, .local-live-statistic-row, .local-live-fact { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; padding: 4px 0; border-bottom: 1px solid var(--rule); font-size: 14px; }
.local-live-market-row span:first-child, .local-live-statistic-row span:first-child { color: var(--lead); }
.local-live-market-row strong, .local-live-statistic-row strong { font-family: var(--mono); }
.local-live-stats-toggle { padding: 4px 12px; border: 1px solid var(--ink); background: var(--white); color: var(--ink); font-size: 14px; }
.local-live-stats-toggle[aria-expanded="true"] { background: var(--ink); color: var(--white); }
.local-live-card .status-badge, .local-live-card .live-badge { padding: 0 7px; line-height: 20px; border: 1px solid var(--lead); background: transparent; color: var(--lead); font-size: 14px; animation: none; }
@media (min-width: 1100px) {
  .local-live-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
  .local-live-card:nth-child(odd) { border-right: 1px solid var(--rule); padding-right: 16px; margin-right: -16px; }
}

/* ---------- 账本页 ---------- */
.ledger-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin: 0; padding: 8px 0; border: 0; border-bottom: 1px solid var(--rule); background: transparent; }
.ledger-source-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 0; border: 0; background: transparent; }
.ledger-source-options { display: flex; flex-wrap: wrap; gap: 0; border: 1px solid var(--ink); background: transparent; padding: 0; }
.ledger-source-button { min-height: 0; margin: 0; padding: 4px 12px; border: 0; border-right: 1px solid var(--ink); background: transparent; color: var(--ink); font-size: 14px; font-weight: 500; white-space: nowrap; }
.ledger-source-button:last-child { border-right: 0; }
.ledger-source-button:hover { background: var(--paper-2); }
.ledger-source-button.is-active { background: var(--ink); color: var(--white); font-weight: 700; }
.ledger-filter-control, .league-select-wrap { display: flex; align-items: center; gap: 8px; color: var(--lead); font-size: 14px; }
.select-shell { position: relative; display: inline-flex; align-items: center; }
.select-shell > span[aria-hidden] { position: absolute; right: 8px; pointer-events: none; color: var(--lead); }
.select-shell select, .ledger-filter-control input[type="date"], .ledger-filter-control select, select {
  min-height: 0;
  padding: 4px 26px 4px 8px;
  border: 1px solid var(--rule);
  background: var(--white);
  color: var(--ink);
  font: inherit;
  font-size: 14px;
  appearance: none;
  -webkit-appearance: none;
  color-scheme: light;
}
.ledger-filter-control input[type="date"] { padding-right: 8px; appearance: auto; -webkit-appearance: auto; font-family: var(--mono); }
.ledger-filter-reset, .ledger-load-more, .odds-load-more, .odds-more-groups, .ledger-league-detail-back {
  min-height: 0;
  padding: 4px 12px;
  border: 1px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  font-size: 14px;
  font-weight: 500;
}
.ledger-load-more { display: block; width: 100%; margin: 14px 0 0; }
.ledger-summary { flex: 1 0 100%; color: var(--lead); font-size: 14px; }
.ledger-statistics { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin: 14px 0; }
.ledger-stat-header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 10px; padding-bottom: 6px; margin-bottom: 8px; border-bottom: 1px solid var(--rule); }
.ledger-stat-header strong { font: 700 16px/1.4 var(--serif); }
.ledger-stat-header span { color: var(--lead); font-size: 14px; }
.ledger-stat-rate { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ledger-stat-rate strong { font: 600 30px/1.1 var(--mono); color: var(--ink); }
.ledger-stat-rate span { color: var(--lead); font-size: 14px; }
.ledger-stat-foot { margin: 8px 0 0; }
.ledger-tables { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 0 28px; overflow-x: auto; }
.tbls { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 0 28px; }
.ledger-table, .tbls table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ledger-table caption, .tbls caption { text-align: left; font-weight: 700; padding: 12px 0 4px; font-family: var(--serif); font-size: 16px; }
.ledger-table th, .tbls th { text-align: left; font-weight: 500; color: var(--lead); padding: 5px 0; border-bottom: 1px solid var(--ink); }
.ledger-table td, .tbls td { padding: 6px 0; border-bottom: 1px solid var(--rule); vertical-align: baseline; }
.ledger-table th.n, .ledger-table td.n, .tbls th.n, .tbls td.n { text-align: right; font-family: var(--mono); white-space: nowrap; padding-left: 10px; }
.ledger-table .neg, .tbls .neg { color: var(--signal); font-weight: 600; }
.ledger-table-empty { color: var(--lead); }
.ledger-tables-note { grid-column: 1 / -1; margin: 8px 0 0; color: var(--lead); font-size: 14px; }
.ledger-list { display: block; margin: 0; }
.ledger-entry { margin: 0; padding: 12px 0; border: 0; border-bottom: 1px solid var(--rule); border-left: 4px solid transparent; padding-left: 10px; background: transparent; }
.ledger-entry.is-reference { border-left-color: var(--rule); }
.ledger-entry-header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 0 0 4px; border: 0; background: transparent; color: var(--lead); font-size: 14px; }
.ledger-entry-header time { color: var(--lead); }
.ledger-entry-league { color: var(--lead); }
.ledger-result { display: inline-block; margin-left: auto; padding: 0 7px; line-height: 20px; border: 1px solid var(--lead); background: transparent; color: var(--lead); font-size: 14px; font-weight: 500; }
.ledger-result.is-correct { border: 2px solid var(--ink); color: var(--ink); font-weight: 700; line-height: 18px; }
.ledger-result.is-wrong { border: 2px solid var(--signal); color: var(--signal); font-weight: 700; line-height: 18px; }
.ledger-result.is-push { border: 1px solid var(--lead); color: var(--lead); }
.ledger-result.is-pending, .ledger-result.is-live, .ledger-result.is-rechecking, .ledger-result.is-excluded { border-style: dashed; }
.ledger-entry-body { display: grid; gap: 4px; }
.ledger-match { font: 700 17px/1.4 var(--serif); }
.ledger-score { font-family: var(--mono); color: var(--lead); }
.ledger-selection { margin: 0; font-size: 15px; font-weight: 500; }
.ledger-model-meta, .ledger-state-note, .ledger-source-notice { margin: 0; color: var(--lead); font-size: 14px; line-height: 1.55; }
.ledger-source-notice.is-warning { border-left: 3px solid var(--signal); padding-left: 8px; }
.ledger-league-performance-list { display: block; }
.ledger-league-performance-card { display: grid; gap: 4px; width: 100%; padding: 10px 0; border: 0; border-bottom: 1px solid var(--rule); background: transparent; color: var(--ink); text-align: left; font: inherit; }
.ledger-league-performance-card:hover { background: var(--paper-2); }
.ledger-league-performance-card-header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.ledger-league-performance-card-header strong { font: 700 16px/1.4 var(--serif); }
.ledger-league-rank-number { color: var(--lead); font-family: var(--mono); font-size: 14px; }
.ledger-league-performance-rate { margin-left: auto; font-family: var(--mono); font-weight: 600; }
.ledger-league-performance-metrics { display: flex; flex-wrap: wrap; gap: 4px 18px; color: var(--lead); font-size: 14px; }
.ledger-league-performance-metric strong { font-family: var(--mono); color: var(--ink); margin-left: 4px; }
.ledger-league-performance-card-foot { color: var(--lead); font-size: 14px; }
.ledger-league-detail-header { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 16px; padding: 12px 0; border-bottom: 1px solid var(--ink); }
.ledger-league-detail-copy { display: grid; gap: 2px; }
.ledger-league-detail-copy span, .ledger-league-detail-copy small { color: var(--lead); font-size: 14px; }
.ledger-league-detail-copy strong { font: 700 20px/1.3 var(--serif); }

/* ---------- 情报页 ---------- */
.intel-page .view-heading { border-bottom-color: var(--ink); }
.intel-tabs { display: flex; flex-wrap: wrap; gap: 0; margin: 0; border-bottom: 1px solid var(--rule); }
.intel-tab { padding: 8px 12px; border: 0; border-bottom: 3px solid transparent; margin-bottom: -1px; background: transparent; color: var(--lead); font-size: 15px; font-weight: 500; cursor: pointer; }
.intel-tab em { font-family: var(--mono); font-style: normal; font-weight: 600; margin-left: 6px; color: var(--ink); }
.intel-tab.is-active { background: transparent; border-color: var(--ink); color: var(--ink); font-weight: 700; }
.intel-tab.is-active em { color: var(--ink); }
.intel-desc { margin: 10px 0 4px; padding: 0 0 0 12px; border-left: 3px solid var(--rule); background: transparent; color: var(--lead); font-size: 14px; line-height: 1.6; }
.intel-updated { margin: 4px 0 6px; color: var(--lead); font-size: 14px; }
.intel-body { display: block; }
.intel-card { margin: 0; padding: 12px 8px 12px 10px; border: 0; border-bottom: 1px solid var(--rule); border-left: 4px solid transparent; background: transparent; }
.intel-card.is-alert { border-left-color: var(--signal); }
.intel-card.is-value { border-left-color: var(--ink); }
.intel-card.is-clickable:hover, .intel-card.is-clickable:focus { background: var(--paper-2); border-color: transparent; border-bottom-color: var(--rule); border-left-color: var(--ink); outline: none; }
.intel-card.is-alert.is-clickable:hover { border-left-color: var(--signal); }
.intel-match { display: flex; gap: 4px 12px; align-items: baseline; flex-wrap: wrap; margin-bottom: 4px; }
.intel-league { color: var(--lead); font-size: 14px; font-weight: 400; }
.intel-teams { font: 700 17px/1.4 var(--serif); color: var(--ink); }
.intel-ko { color: var(--lead); font-family: var(--mono); font-size: 14px; margin-left: auto; }
.intel-row { display: flex; gap: 6px 12px; align-items: center; flex-wrap: wrap; }
.intel-chip { padding: 0 8px; border: 1px solid var(--rule); background: transparent; color: var(--ink); font-size: 14px; line-height: 20px; white-space: nowrap; }
.intel-odds { color: var(--ink); font-size: 14px; }
.intel-odds strong { font: 600 16px/1.4 var(--mono); }
.intel-sub { color: var(--lead); font-size: 14px; }
.intel-arrow { color: var(--lead); font-family: var(--mono); }
.intel-leg { padding: 0 8px; border: 1px solid var(--rule); background: transparent; font-size: 14px; line-height: 20px; }
.intel-drop { margin-left: auto; font: 600 16px/1.4 var(--mono); color: var(--ink); }
#intel-body[data-intel-view="dropping"] .intel-drop { color: var(--signal); }
.intel-drop.is-severe { color: var(--signal); font-weight: 600; }
.intel-drop.is-good { color: var(--ink); }
.intel-meta { margin-top: 4px; color: var(--lead); font-size: 14px; }
.intel-empty { padding: 24px 0; color: var(--lead); text-align: left; font-size: 14px; }
.intel-stats { display: flex; flex-wrap: wrap; gap: 4px 24px; margin: 8px 0; padding-bottom: 8px; border-bottom: 1px solid var(--rule); }
.intel-stat { min-width: 0; padding: 4px 0; border: 0; background: transparent; align-items: flex-start; }
.intel-stat strong { font: 600 22px/1.1 var(--mono); color: var(--ink); }
.intel-stat span { color: var(--lead); font-size: 14px; }
.intel-stat.is-good strong { color: var(--ink); }
.intel-stat.is-bad strong { color: var(--signal); }
.intel-badge { margin-left: auto; padding: 0 8px; border: 1px solid var(--lead); background: transparent; color: var(--lead); font-size: 14px; font-weight: 500; line-height: 20px; }
.intel-badge.is-win { border: 2px solid var(--ink); color: var(--ink); font-weight: 700; line-height: 18px; background: transparent; }
.intel-badge.is-loss { border: 2px solid var(--signal); color: var(--signal); font-weight: 700; line-height: 18px; background: transparent; }
.intel-badge.is-push { border: 1px solid var(--lead); color: var(--lead); background: transparent; }
.intel-badge.is-pending { border: 1px dashed var(--lead); color: var(--lead); background: transparent; }
.intel-league-table { margin: 8px 0 14px; border: 0; background: transparent; overflow-x: auto; }
.intel-league-head, .intel-league-row { grid-template-columns: minmax(0, 1fr) 52px 84px 64px 64px; gap: 6px; padding: 6px 0; font-size: 14px; }
.intel-league-head { background: transparent; color: var(--lead); border-bottom: 1px solid var(--ink); }
.intel-league-row { border-top: 0; border-bottom: 1px solid var(--rule); }
.intel-league-row span:not(:first-child), .intel-league-row strong, .intel-league-head span:not(:first-child) { text-align: right; font-family: var(--mono); }
.intel-league-row strong { font-size: 14px; font-weight: 600; color: var(--ink); }
.intel-league-row.is-good strong { color: var(--ink); }
.intel-league-row.is-neg strong { color: var(--signal); }
.intel-grade-table { margin: 8px 0 14px; }

/* ---------- 弹窗:额度 ---------- */
.quota-dialog { width: min(100%, 640px); max-height: min(88dvh, 760px); margin: auto; padding: 0; border: 1px solid var(--ink); border-top-width: 3px; background: var(--paper); color: var(--ink); }
.quota-dialog::backdrop { background: rgba(21, 24, 29, 0.55); }
.quota-dialog-surface { display: grid; gap: 10px; padding: 14px 16px 16px; background: transparent; }
.quota-dialog-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 0 0 8px; border: 0; border-bottom: 1px solid var(--rule); }
.quota-dialog-header h2 { margin: 0; font: 700 20px/1.3 var(--serif); }
.quota-period-switch { display: inline-flex; border: 1px solid var(--ink); padding: 0; background: transparent; gap: 0; }
.quota-period-button { min-height: 0; padding: 4px 12px; border: 0; border-right: 1px solid var(--ink); background: transparent; color: var(--ink); font-size: 14px; }
.quota-period-button:last-child { border-right: 0; }
.quota-period-button.is-active { background: var(--ink); color: var(--white); font-weight: 700; }
.quota-panel-content { display: grid; gap: 8px; font-size: 14px; }
.quota-panel-content strong, .quota-panel-content b { font-family: var(--mono); }
.quota-panel-placeholder { margin: 0; color: var(--lead); }
.quota-panel-content > * { border: 0; border-bottom: 1px solid var(--rule); background: transparent; padding: 6px 0; }

/* ---------- 通知设置 ---------- */
.push-setup { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px 16px; margin: 16px 0 0; }
.push-setup-symbol { width: 32px; height: 32px; border: 1px solid var(--ink); display: grid; place-items: center; background: transparent; color: var(--ink); }
.push-setup-symbol svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.push-setup-kicker { margin: 0; color: var(--lead); font-size: 14px; }
.push-setup-copy h2 { margin: 0 0 2px; font: 700 18px/1.4 var(--serif); }
.push-setup-copy p { margin: 0; color: var(--lead); font-size: 14px; }
.push-setup-status { color: var(--ink); }
.push-setup-action { min-height: 0; padding: 6px 14px; border: 1px solid var(--ink); background: var(--ink); color: var(--white); font-size: 14px; font-weight: 500; animation: none; }
.push-setup-action:hover { background: var(--white); color: var(--ink); }

/* ---------- 桌面 ≥1100:左 2/5 赛程栏 + 右 3/5 停靠详情 ---------- */
@media (min-width: 1100px) {
  .cols { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
  .detail-dock {
    display: block;
    position: sticky;
    top: 0;
    max-height: 100vh;
    overflow: auto;
    overscroll-behavior: contain;
    border-left: 1px solid var(--rule);
    padding: 14px 0 24px 32px;
    margin-left: 24px;
    scrollbar-width: thin;
  }
  .mobile-filter-toggle { display: none; }
}

/* ---------- 手机 ---------- */
@media (max-width: 1099px) {
  .detail-dock { display: none; }
}
@media (max-width: 620px) {
  .mobile-filter-toggle { display: inline-flex; }
  .toolbar { display: none; }
  .toolbar.is-mobile-open { display: flex; }
  .legend { display: none; }
}
@media (min-width: 621px) {
  .mobile-filter-toggle { display: none; }
  .toolbar { display: flex; }
}
@media (max-width: 700px) {
  .site-header.mast { position: static; }
  .site-header .header-row { display: none; }
}
@media (max-width: 480px) {
  .mast-top { font-size: 14px; }
  .mast-wire { gap: 2px 12px; }
  .command-signal-note { display: none; }
  .mast-main { padding: 12px 0 0; }
  .mast-main h1 { margin-bottom: 6px; }
  .page-navigation .page-navigation-button { padding: 6px 10px; }
  .match-card .match-card-open { grid-template-columns: 54px minmax(0, 1fr); padding: 10px 36px 10px 6px; }
  .match-card .match-clock { font-size: 16px; }
  .match-card .favorite-button { right: 0; }
  .dialog-header h2 { font-size: 22px; }
  .big { font-size: 20px; }
  .t5 { padding: 12px; }
  .tl { grid-template-columns: 1fr auto 1fr; }
  .score-team strong { font-size: 14px; }
  .local-live-team { font-size: 15px; }
  .ledger-entry { padding-left: 6px; }
  .intel-league-head, .intel-league-row { grid-template-columns: minmax(0, 1fr) 40px 70px 56px 56px; }
}
@media (prefers-reduced-motion: reduce) {
  .refresh-button.is-loading .refresh-icon { animation: none; }
}

/* ---------- 额度面板内部(覆盖旧深色筹片) ---------- */
.quota-summary, .quota-summary-head, .quota-summary-head > div, .quota-summary-item, .quota-task-row, .quota-task-list, .quota-task-heading {
  border: 0;
  background: transparent;
  color: var(--ink);
}
.quota-summary { display: grid; gap: 8px; padding: 0 0 8px; border-bottom: 1px solid var(--rule); }
.quota-summary-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
.quota-summary-head strong { font: 600 30px/1.1 var(--mono); color: var(--ink); }
.quota-summary-head b { color: var(--lead); font-size: 14px; }
.quota-summary-head span, .quota-summary-head small { color: var(--lead); font-size: 14px; }
.quota-progress { height: 8px; border: 1px solid var(--ink); background: var(--white); overflow: hidden; }
.quota-progress > span { display: block; height: 100%; background: var(--ink); }
.quota-summary.is-warning .quota-progress > span { background: var(--lead); }
.quota-summary.is-danger .quota-progress > span { background: var(--signal); }
.quota-summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 6px 16px; }
.quota-summary-item { display: grid; gap: 2px; padding: 6px 0; border-bottom: 1px solid var(--rule); }
.quota-summary-item strong { font: 600 17px/1.3 var(--mono); color: var(--ink); }
.quota-summary-item span { color: var(--lead); font-size: 14px; }
.quota-summary-note { margin: 0; color: var(--lead); font-size: 14px; }
.quota-task-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 12px 0 4px; border-bottom: 1px solid var(--ink); }
.quota-task-heading h3 { margin: 0; font: 700 16px/1.4 var(--serif); }
.quota-task-heading span { color: var(--lead); font-size: 14px; }
.quota-task-list { display: block; padding: 0; }
.quota-task-row { display: grid; gap: 4px; padding: 8px 0; border-bottom: 1px solid var(--rule); }
.quota-task-row-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.quota-task-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 8px; }
.quota-task-title strong { font-weight: 500; color: var(--ink); }
.quota-task-count { font: 600 15px/1.3 var(--mono); color: var(--ink); }
.quota-task-meta { color: var(--lead); font-size: 14px; }
.quota-task-bar { height: 6px; border: 1px solid var(--rule); background: var(--white); overflow: hidden; }
.quota-task-bar > span { display: block; height: 100%; background: var(--ink); }
.quota-attribution-badge { display: inline-block; padding: 0 6px; border: 1px solid var(--lead); background: transparent; color: var(--lead); font-size: 14px; line-height: 18px; }
.quota-attribution-badge.is-legacy { border-style: dashed; }
.quota-panel-content > * { border: 0; padding: 0; }
@media (max-width: 480px) {
  .mast-wire .command-signal.is-freshness { display: none; }
}

/* ============================================================================
   「晨报」核验修复 — 2026-09-02
   1) 盘口走势行:T-5 卡接入 + 标签与页顶图例同形(墨黑 ↗ 顺走势 / 信号红 ↘ 逆走势),无圆角药丸
   2) 滚球卡头部状态字不裁切  3) 中文 ≥14px 兜底  4) 旧深色主题残留清零
   ========================================================================== */

/* ---------- 1. 盘口走势行 ---------- */
.t5-trajectory-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 0; color: var(--ink); font-size: 14px; line-height: 1.55; }
.t5-trajectory-line .t5-trajectory-label { color: var(--lead); font-weight: 400; }
.t5-trajectory-line .t5-trajectory-text { color: var(--ink); overflow-wrap: anywhere; }
.model-frozen-note.t5-trajectory-line, .local-live-frozen-evidence.t5-trajectory-line { margin: 8px 0 0; color: var(--ink); font-size: 14px; }
.kv dd .t5-trajectory-line { margin: 0; }
.t5-trajectory-tag, .intel-traj-tag {
  display: inline-block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--lead);
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  white-space: nowrap;
}
.t5-trajectory-tag.is-with_trend, .intel-traj-tag.is-with_trend { color: var(--ink); background: transparent; font-weight: 700; }
.t5-trajectory-tag.is-against_trend, .intel-traj-tag.is-against_trend { color: var(--signal); background: transparent; font-weight: 700; }
.t5-trajectory-tag.is-none, .t5-trajectory-tag.is-unavailable, .intel-traj-tag.is-none, .intel-traj-tag.is-unavailable { color: var(--lead); background: transparent; }
.intel-traj-tag.is-with_trend::before { content: "↗ "; }
.intel-traj-tag.is-against_trend::before { content: "↘ "; }
.t5-trajectory-tag.is-sig, .t5-trajectory-tag.is-policy, .intel-traj-tag.is-sig, .intel-traj-tag.is-policy { padding: 0 7px; border: 1px solid var(--lead); background: transparent; color: var(--lead); font-weight: 500; line-height: 18px; }
.full-prediction-hero .full-prediction-trajectory { padding-top: 8px; border-top: 1px solid var(--rule); color: var(--ink); font-size: 14px; line-height: 1.55; }
.full-prediction-hero .full-prediction-trajectory .t5-trajectory-label { color: var(--lead); }
.intel-traj-note { padding: 6px 0 8px; border-top: 1px solid var(--rule); color: var(--lead); font-size: 14px; }
.intel-traj-line { font-size: 14px; }
.intel-traj-line .intel-traj-dir { color: var(--lead); }

/* ---------- 2. 滚球卡头部:状态字 / 时钟不再被裁切 ---------- */
.local-live-timing,
.local-live-timing.has-extra,
.local-live-timing.is-interrupted,
.local-live-timing.is-interrupted.has-extra {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: baseline;
  width: auto;
  max-width: 100%;
  gap: 4px 6px;
  grid-template-areas: none;
  grid-template-columns: none;
  font-size: 14px;
}
.local-live-stage { display: inline-block; overflow: visible; width: auto; min-width: 0; flex: 0 0 auto; text-overflow: clip; white-space: nowrap; font-size: 14px; font-weight: 700; text-align: left; }
.local-live-clock-value { display: inline-block; width: auto; flex: 0 0 auto; text-align: left; }
.local-live-timing.has-extra .local-live-clock-value { text-align: left; }
.local-live-extra { width: auto; flex: 0 0 auto; padding: 0 6px; border: 1px solid var(--ink); background: transparent; color: var(--ink); font-size: 14px; font-weight: 600; line-height: 18px; }
.local-live-clock-delay { flex: 0 0 100%; text-align: right; }
.local-live-clock-delay[hidden], .local-live-extra[hidden] { display: none; }
.local-live-card.is-nofeed .local-live-freshness-dot { background: var(--lead); animation: none; }

/* ---------- 3. 中文 ≥14px 兜底(旧层 8–13px 规则已批量提到 14px,这里补齐 em/行高) ---------- */
.local-live-card, .detail-card, .model-selection-panel, .quota-panel-content, .lineup-team, .lineup-meta, .event-lane-entry, .statistics-table { font-size: 14px; }
.local-live-card small, .detail-card small, .lineup-team small, .quota-panel-content small, .event-lane-copy small { font-size: 14px; }
.local-live-kickoff, .local-live-fact, .local-live-fact span, .local-live-fact strong, .local-live-half-summary, .local-live-half-summary strong, .local-live-expand-button, .local-live-detail-link, .local-live-league-meta { font-size: 14px; }
.prediction-source, .t5-evidence-grade, .quota-task-name, .quota-task-title strong, .quota-task-meta, .event-lane-icon, .local-live-events .event-lane-icon, .event-lane-copy, .event-lane-copy strong, .event-lane-minute { font-size: 14px; }
.local-live-card .t5-trajectory-line, .local-live-card .t5-trajectory-tag { font-size: 14px; }

/* ---------- 4. 旧深色主题残留 ---------- */
.model-selection-item.is-preferred strong, .model-selection-item.is-tendency strong, .model-selection-panel.is-shadow .model-selection-item strong { color: var(--ink); }
.model-selection-panel.is-shadow, .match-ace-summary.is-reference { background: var(--white); border-color: var(--rule); color: var(--ink); }
.source-badge.is-shadow { border: 1px dashed var(--lead); background: transparent; color: var(--lead); }
.local-live-half-summary strong { color: var(--ink); }
.local-live-market-divider { border-top-color: var(--rule); border-bottom-color: var(--rule); color: var(--lead); background: transparent; }
.local-live-model-reference-values .local-live-fact.is-tendency { background: transparent; }
.local-live-model-reference-values .local-live-fact.is-tendency strong { color: var(--ink); }
.local-live-card.is-interactive:hover { background: var(--paper-2); }
.local-live-actions { border-top: 1px solid var(--rule); background: transparent; }
.local-live-expand-button, .local-live-detail-link { min-height: 36px; color: var(--ink); background: transparent; }
.local-live-expand-button:hover, .local-live-detail-link:hover { background: var(--paper-2); color: var(--ink); }
.quota-attribution-badge, .quota-attribution-badge.is-legacy { color: var(--lead); background: transparent; }
.quota-attribution-badge.is-legacy { border: 1px dashed var(--lead); }
.event-lane-icon,
.local-live-events .event-lane-icon,
.event-lane-entry.is-goal .event-lane-icon,
.event-lane-entry.is-own-goal .event-lane-icon,
.event-lane-entry.is-cancelled .event-lane-icon,
.event-lane-entry.is-yellow-card .event-lane-icon,
.event-lane-entry.is-var .event-lane-icon,
.event-lane-entry.is-corner .event-lane-icon { color: var(--ink); border: 1px solid var(--rule); background: transparent; }
.event-lane-entry.is-red-card .event-lane-icon { color: var(--signal); border: 1px solid var(--signal); background: transparent; }
.lineup-meta .is-confirmed, .lineup-meta .is-waiting { color: var(--lead); border: 1px solid var(--lead); background: transparent; }
.ledger-result.is-excluded, .ledger-result.is-rechecking, .ledger-result.is-pending, .ledger-result.is-live { color: var(--lead); background: transparent; }
.ledger-filter-control input, .ledger-filter-control select, .odds-filter-control select { color: var(--ink); background: var(--white); border-color: var(--rule); }
.push-setup[data-state="enabled"] .push-setup-symbol, .push-setup[data-state="install"] .push-setup-symbol { color: var(--ink); border-color: var(--ink); background: transparent; }
.noscript-message { color: var(--signal); border: 1px solid var(--signal); background: var(--white); }
.local-live-stats, .local-live-quick-stats, .local-live-context, .league-header, .select-shell, .quota-period-switch { background: transparent; }
.league-header { color: var(--ink); }
.local-live-context i, .local-live-league-meta i, .local-live-fact i { color: var(--lead); font-style: normal; }
.model-selection-header .t5-evidence-grade, .model-selection-panel.is-frozen .model-selection-header .t5-evidence-grade { border: 1px solid var(--ink); background: transparent; color: var(--ink); }
.model-selection-header .t5-evidence-grade.is-a, .model-selection-panel.is-frozen .model-selection-header .t5-evidence-grade.is-a { background: var(--ink); color: var(--white); }
.model-selection-header .t5-evidence-grade.is-c, .model-selection-panel.is-frozen .model-selection-header .t5-evidence-grade.is-c { border-style: dotted; border-color: var(--lead); color: var(--lead); }
