:root {
  color-scheme: light;
  --ink: #202a33;
  --muted: #707d87;
  --line: #e2e7ea;
  --canvas: #f4f6f7;
  --surface: #fff;
  --soft: #f8f9fa;
  --nav: #17232d;
  --green: #18744f;
  --green-soft: #eaf5ef;
  --blue: #39728e;
  --blue-soft: #edf5f8;
  --amber: #956219;
  --amber-soft: #fff5e5;
  --red: #e5444a;
  --red-soft: #fff0f0;
  --shadow: 0 5px 18px rgba(30, 45, 56, .055);
  --radius: 10px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}

html { background: var(--canvas); scroll-padding-top: 76px; }
body { background: var(--canvas); color: var(--ink); }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { touch-action: manipulation; }
:focus-visible { outline: 3px solid rgba(229, 68, 74, .3); outline-offset: 2px; }

.app-header {
  background: var(--red);
  color: #fff;
  border-bottom: 0;
  box-shadow: 0 3px 12px rgba(130, 35, 39, .16);
}
.app-header::after { display: none; }
.header-inner { max-width: 1440px; min-height: 66px; padding: 9px 24px; }
.brand { display: flex; align-items: center; gap: 10px; }
.brand-mark {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  border: 1px solid rgba(255,255,255,.76);
  border-radius: 8px;
  background: #fff;
  color: #c7383e;
  box-shadow: none;
  font-size: 10px;
}
.brand h1 { color: #fff; font-size: 19px; font-weight: 850; }
.brand p { color: rgba(255,255,255,.82); font-size: 11px; letter-spacing: 0; }
.header-actions { gap: 8px; }
.connection { min-height: 32px; border-color: rgba(255,255,255,.32); border-radius: 7px; background: rgba(255,255,255,.12); color: #fff; }
.connection.good { border-color: rgba(255,255,255,.32); background: rgba(255,255,255,.12); color: #fff; }
.connection.good::before { box-shadow: none; }
.account-button { min-height: 36px; border-color: rgba(255,255,255,.36); border-radius: 6px; background: rgba(255,255,255,.1); color: #fff; font-size: 12px; }
.account-button:hover { border-color: #fff; background: #fff; color: #b3333a; }

.seo-summary { border-bottom: 1px solid var(--line); background: #fff; color: var(--ink); }
.seo-summary-details > summary { display: flex; min-height: 35px; padding: 0 24px; color: #68747d; font-size: 11px; font-weight: 700; cursor: pointer; }
.seo-summary-details > summary::after { color: var(--red); }
.seo-summary-inner { max-width: 1440px; padding: 10px 24px 14px; }
.seo-summary h2 { color: var(--ink); font-size: 18px; }
.seo-summary p { color: #63717b; font-size: 12px; line-height: 1.7; }
.seo-summary-links a { color: #bd343b; }
.seo-summary-links a:hover { color: #97272d; }

.shell {
  width: min(1440px, 100%);
  padding: 22px 24px 48px;
  grid-template-columns: 184px minmax(0, 1fr);
  gap: 22px;
}
.side-nav {
  top: 82px;
  gap: 4px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--shadow);
  backdrop-filter: none;
}
.side-nav::before { padding: 7px 11px 9px; color: #8a959d; font-size: 10px; font-weight: 700; line-height: 1.2; font-family: inherit; letter-spacing: .04em; }
.nav-button { min-height: 44px; border-radius: 7px; color: #56636c; font-size: 13px; font-weight: 700; }
.nav-button:hover { background: #fff5f5; color: #b8353b; transform: none; }
.nav-button.active { background: var(--red); color: #fff; box-shadow: none; }
.nav-button.active::before { display: none; }
.content { min-width: 0; }
.view.active { gap: 14px; }
.view.active > .page-head { min-height: 54px; padding: 0 2px 2px; }
.view.active > .page-head h2::before { content: none; }
.page-head h2 { color: var(--ink); font-size: 24px; font-weight: 800; letter-spacing: 0; }
.page-head p { margin-top: 4px; color: #75818a; font-size: 12px; }
.page-actions { gap: 8px; }
.date-field { min-height: 42px; border-color: #dce3e7; border-radius: 7px; background: #fff; box-shadow: none; }

.panel {
  border-color: var(--line);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: var(--shadow);
}
.panel-head { min-height: 54px; padding: 12px 16px; border-bottom-color: var(--line); background: #fff; }
.panel-head h3 { color: #26323b; font-size: 14px; font-weight: 800; }
.panel > .panel-head h3::before { width: 3px; height: 14px; margin-right: 8px; border-radius: 2px; background: var(--red); }
.panel-caption { color: #78848c; font-size: 11px; }
.panel-body { padding: 16px; }
.source-warning { border-bottom-color: #f0d8aa; background: var(--amber-soft); color: #79591f; }

.page-head::after, .view.active > .page-head h2::before, .hero-status::before { display: none; }
.hero-status {
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  gap: 12px;
}
.scan-block {
  min-height: 150px;
  padding: 20px 22px;
  border: 1px solid #cf353c;
  border-left: 5px solid #9f2027;
  border-radius: 10px;
  background: var(--red);
  box-shadow: none;
  color: #fff;
}
.scan-block::before, .scan-block::after { display: none; }
.scan-block .eyebrow { color: rgba(255,255,255,.88); font-size: 10px; letter-spacing: .04em; }
.scan-block .eyebrow::before { background: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,.18); }
.scan-block h3 { margin-top: 8px; color: #fff; font-size: 25px; font-weight: 850; letter-spacing: 0; }
.scan-block p { margin-top: 6px; color: rgba(255,255,255,.84); font-size: 12px; }
.scan-row { gap: 10px; }
.scan-row .btn.primary { border: 1px solid var(--red); border-radius: 7px; background: var(--red); color: #fff; box-shadow: none; }
.scan-row .btn.primary:hover { border-color: #ca353c; background: #ca353c; color: #fff; }
.scan-meta { color: #77838b; font-size: 11px; }
.stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.stat {
  min-height: 70px;
  padding: 11px 13px;
  border: 1px solid var(--line) !important;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.stat::before { display: none; }
.stat:first-child { border-color: #f0c7c9 !important; background: #fff4f4; }
.stat strong { color: var(--ink); font: 800 22px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.stat:first-child strong { color: #bd353c; }
.stat span { margin-top: 7px; color: #78848c; font-size: 10px; letter-spacing: 0; }

.btn {
  min-height: 42px;
  border-color: #dce3e7;
  border-radius: 7px;
  background: #fff;
  color: #35424c;
  box-shadow: none;
  font-size: 12px;
  font-weight: 750;
}
.btn:hover { border-color: #e9a8ab; background: #fff8f8; color: #a82f36; box-shadow: none; }
.btn:active { transform: scale(.985); }
.btn.primary, .btn.green { border-color: var(--red); background: var(--red); color: #fff; box-shadow: none; }
.btn.primary:hover, .btn.green:hover { border-color: #c9343a; background: #c9343a; }
.btn.dark { border-color: #27343e; background: #27343e; color: #fff; box-shadow: none; }
.btn.dark:hover { border-color: #17232d; background: #17232d; color: #fff; }
.pill { min-height: 25px; padding: 0 8px; border-radius: 5px; font-size: 10px; }
.pill.good { color: #176847; background: var(--green-soft); border-color: #d5e9dc; }
.pill.warn { color: #805812; background: var(--amber-soft); border-color: #f0dfbd; }
.pill.bad { color: #a9343a; background: var(--red-soft); border-color: #f0d1d2; }

.fixture-ledger-panel { overflow: hidden; border-radius: 10px; }
.fixture-ledger-panel .panel-head { min-height: 62px; padding: 12px 16px; }
.fixture-ledger-kicker { margin-bottom: 5px; color: #bd3a40; font-size: 9px; letter-spacing: .04em; }
.fixture-ledger-panel .panel-head h3 { font-size: 16px; }
.fixture-ledger-panel .panel-head h3::before { display: none; }
.fixture-ledger-panel .panel-caption { margin-top: 3px; font-size: 11px; }
.fixture-play-tabs { border-bottom-color: var(--line); background: #fff; }
.fixture-play-tab {
  flex: 1 0 118px;
  min-height: 58px;
  padding: 8px 10px 7px;
  border-right-color: #edf0f2;
  border-bottom-width: 2px;
  color: #7b858c;
}
.fixture-play-tab strong { color: #303b44; font-size: 13px; font-weight: 750; }
.fixture-play-tab span { margin-top: 3px; color: #929ba1; font-size: 10px; }
.fixture-play-tab:hover { background: #fffafa; }
.fixture-play-tab.active { border-bottom-color: var(--red); background: #fff8f8; }
.fixture-play-tab.active strong, .fixture-play-tab.active span { color: #bd343b; }
.fixture-ledger-panel .match-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 280px) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-bottom-color: var(--line);
  background: #fafbfc;
}
.match-filter-list { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-width: 0; }
.match-filter {
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid #dce3e7;
  border-radius: 6px;
  background: #fff;
  color: #5f6c75;
  font-size: 11px;
  font-weight: 700;
}
.match-filter:hover { border-color: #efb7b9; background: #fff; color: #a93239; }
.match-filter.active { border-color: #efb7b9; background: var(--red-soft); color: #b5343b; box-shadow: none; }
.match-search { min-height: 36px; border-color: #dfe5e8; border-radius: 6px; background: #fff; }
.match-search input { min-height: 36px; font-size: 12px; }
.match-visible-count { color: #6e7a83; font: 700 11px/1 ui-monospace, SFMono-Regular, Menlo, monospace; font-variant-numeric: tabular-nums; }
.fixture-ledger-panel .fixture-list { background: #fff; }
.fixture-ledger-panel .match-row {
  grid-template-columns: 78px minmax(0, 1fr) 216px;
  grid-template-areas: "number main side";
  align-items: stretch;
  gap: 0 14px;
  min-height: 0;
  padding: 14px 16px;
  border-bottom-color: var(--line);
  background: #fff;
  transition: background 120ms ease;
}
.fixture-ledger-panel .match-row:nth-child(even) { background: #fcfcfd; }
.fixture-ledger-panel .match-row:hover { z-index: 1; background: #fffafa; box-shadow: inset 3px 0 var(--red); transform: none; }
.fixture-ledger-panel .match-row::before { display: none; }
.fixture-ledger-panel .match-number {
  grid-area: number;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  align-items: center;
  justify-content: flex-start;
  min-height: 0;
  padding: 10px 4px;
  border: 1px solid #e5e9ec;
  border-left: 3px solid #d94a50;
  border-radius: 6px;
  background: #f4f6f7;
  box-shadow: none;
  text-align: center;
}
.fixture-ledger-panel .match-number strong { max-width: 100%; padding: 3px 4px; border-radius: 4px; background: #fff; color: #c9363d; font: 800 12px/1.25 "PingFang SC", "Microsoft YaHei", sans-serif; letter-spacing: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.fixture-ledger-panel .match-number span { margin-top: 7px; color: #78848c; font-size: 10px; line-height: 1.3; letter-spacing: 0; white-space: normal; }
.fixture-ledger-panel .match-main { grid-area: main; display: grid; width: 100%; max-width: 100%; min-width: 0; overflow: visible; align-content: start; }
.fixture-ledger-panel .match-meta { min-height: 20px; margin: 0 0 5px; gap: 6px; }
.fixture-ledger-panel .match-league { max-width: min(45%, 200px); min-height: 20px; padding: 0 7px; overflow: hidden; border-radius: 4px; background: #f0f2f4; color: #606c74; font-size: 10px; font-weight: 700; text-overflow: ellipsis; }
.fixture-ledger-panel .match-round { min-height: 20px; padding: 0 7px; border-radius: 4px; background: #f1f6f3; color: #3d765c; font-size: 10px; }
.fixture-ledger-panel .market-cue { min-height: 20px; font-size: 9px; }
.fixture-ledger-panel .match-teams { display: grid; grid-template-columns: minmax(0, 1fr) 30px minmax(0, 1fr); gap: 8px; align-items: center; }
.fixture-ledger-panel .match-teams strong { color: #222d36; font-size: 17px; line-height: 1.3; font-weight: 800; text-align: center; }
.fixture-ledger-panel .match-vs { color: #a1aab0; font-size: 9px; letter-spacing: .1em; text-align: center; }
.fixture-ledger-panel .match-foot { display: grid; gap: 8px; margin-top: 10px; color: #68757e; font-size: 11px; }
.fixture-ledger-panel .match-time { display: block; color: #707c84; font: 700 11px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; font-variant-numeric: tabular-nums; }
.fixture-market-ledger { display: grid; gap: 5px; width: 100%; max-width: 100%; min-width: 0; }
.fixture-market-line { grid-template-columns: 38px 52px repeat(3, minmax(0, 1fr)); min-height: 40px; border-color: #e5e9eb; border-radius: 6px; background: #fff; }
.fixture-market-marker, .fixture-market-label { border-right-color: #edf0f2; color: #c43c43; font-size: 10px; font-weight: 750; }
.fixture-market-label { color: #77838b; font-size: 10px; }
.fixture-market-cell { border-right-color: #edf0f2; }
.fixture-market-cell i { color: #7b858c; font-size: 10px; font-weight: 650; }
.fixture-market-cell b { margin-top: 2px; color: #34414a; font: 750 13px/1.1 ui-monospace, SFMono-Regular, Menlo, monospace; font-variant-numeric: tabular-nums; }
.fixture-market-line.pending { background: #fafbfc; }
.fixture-market-line.pending .fixture-market-cell i, .fixture-market-line.pending .fixture-market-cell b { color: #a8b0b5; }
.fixture-market-grid, .fixture-mix-ledger { width: 100%; min-width: 0; border-color: #e3e8eb; border-radius: 7px; }
.fixture-market-grid-head { min-height: 34px; padding: 0 10px; border-bottom-color: #e9edef; background: #fafbfc; }
.fixture-market-grid-head strong { color: #3f4b54; font-size: 11px; }
.fixture-market-grid-head span { color: #bf363d; font-size: 10px; }
.fixture-market-grid-values > span { min-height: 46px; border-color: #edf0f2; }
.fixture-market-grid-values i { color: #7a858c; font-size: 10px; }
.fixture-market-grid-values b { color: #34414a; font: 750 12px/1.1 ui-monospace, SFMono-Regular, Menlo, monospace; font-variant-numeric: tabular-nums; }
.fixture-market-grid.pending p { color: #7a858c; }
.fixture-mix-list > span { min-height: 38px; border-color: #e4e9ec; border-radius: 5px; background: #fafbfc; }
.fixture-mix-list .available { border-color: #f0c4c6; background: #fff5f5; }
.fixture-mix-list .available b { color: #c2383f; }
.fixture-mix-list i { color: #59666f; }
.fixture-mix-list b { color: #8a949a; }
.fixture-mix-ledger > p { color: #818b92; }
.fixture-ledger-panel .match-side { grid-area: side; display: grid; grid-template-columns: minmax(0, 1fr); align-content: center; align-items: center; justify-items: stretch; width: auto; min-width: 0; margin-top: 0; gap: 8px; }
.fixture-ledger-panel .match-state { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; min-width: 0; gap: 4px; }
.fixture-ledger-panel .match-side .pill { min-width: 0; min-height: 25px; justify-content: center; }
.fixture-ledger-panel .row-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; justify-content: stretch; gap: 6px; width: 100%; min-width: 0; }
.fixture-ledger-panel .row-actions .btn { width: 100%; min-width: 0; min-height: 36px; padding: 0 7px; border-radius: 6px; white-space: nowrap; }
.fixture-ledger-panel .row-actions .ai-match { grid-column: 1 / -1; }
.fixture-ledger-panel .fixture-detail-button { min-width: 66px; border-color: #e1e6e8; color: #57646d; }
.fixture-ledger-panel .share-match { color: #57646d; }
.fixture-ledger-panel .ai-match { min-width: 84px; border-color: var(--red); border-radius: 6px; background: var(--red); color: #fff; }
.fixture-ledger-panel .ai-match:hover { border-color: #c9343a; background: #c9343a; color: #fff; }

#view-results .match-row { background: #fff; }
#view-results .match-number { background: #f3f5f6; }
#view-results .result-score { color: var(--red); font-variant-numeric: tabular-nums; }
#view-results .result-label { color: var(--muted); }

.report-switcher {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 8px;
  border-color: var(--line);
  border-radius: 10px;
  background: #eef1f3;
  box-shadow: none;
}
.report-tab { min-height: 66px; border-color: #e1e6e9; border-radius: 8px; box-shadow: none; }
.report-tab.market.active, .report-tab.ai.active, .report-tab.review.active { border-color: #efc0c2; background: #fff5f5; color: #8e3036; box-shadow: inset 0 -2px var(--red); }
.report-tab.ai.active { border-color: #c9dfe8; background: #f3f9fb; color: #2b5e75; box-shadow: inset 0 -2px #4b91ad; }
.report-tab.review.active { border-color: #cfe3d7; background: #f3f8f5; color: #286647; box-shadow: inset 0 -2px #43865f; }
.report-tab:hover, .report-tab.market.active, .report-tab.ai.active, .report-tab.review.active { transform: none; }
.report-tab-icon { border-radius: 8px; }
.report-channel { gap: 12px; }
.report-channel-head { align-items: center; }
.report-channel-title h3 { font-size: 16px; }
.report-channel-subtitle { color: #727e86; font-size: 11px; }
.report-channel-market .channel-mark { background: var(--red); box-shadow: 0 0 0 3px var(--red-soft); }
.report-channel-ai {
  padding: 0 0 14px;
  border: 1px solid #263a46;
  border-radius: 12px;
  background: #142630;
  background-image: linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size: 28px 28px;
  box-shadow: 0 10px 24px rgba(23, 42, 53, .11);
}
.report-channel-ai::before { margin: 13px 16px 2px; color: #e9878b; font-size: 9px; letter-spacing: .1em; }
.report-channel-ai .panel { margin: 0 12px; border-color: #314853; border-radius: 9px; background: #1b303b; box-shadow: none; }
.report-channel-ai .panel-head { min-height: 66px; padding: 14px 16px; border-color: #314853; background: #203641; }
.report-channel-ai .panel-head::after { background: linear-gradient(90deg, #e88c8f, rgba(232,140,143,.22) 44%, transparent); }
.report-channel-ai .report-channel-title h3 { color: #fff; font-size: 17px; }
.report-channel-ai .report-channel-subtitle { color: #b5c4cb; }
.report-channel-ai .ai-console-kicker { color: #f0a0a3; font-size: 9px; letter-spacing: .08em; }
.report-channel-ai .report-channel-title .channel-mark { background: #ee747a; box-shadow: 0 0 0 4px rgba(238,116,122,.13); }
.report-channel-ai .pill { border-color: #3a5663; background: #253e49; color: #cad7dc; }
.report-channel-ai .pill.good { border-color: #45715d; background: #294b3d; color: #c4e0cf; }
.report-channel-ai .empty { color: #d0d9dd; }
.report-channel-ai .empty strong { color: #fff; }
.report-channel-ai .empty p { color: #b7c5cb; }
.report-channel-ai .latest-report { border-color: #3a5663; border-radius: 0 0 9px 9px; background: #1b303b; box-shadow: none; }
.report-channel-ai .latest-report .report-copy { background: #1b303b; }
.report-channel-ai .report-copy pre { color: #e1e8eb; }
.report-channel-ai .report-decision { border-color: #405d68; border-left-color: #e77c82; background: #203843; }
.report-channel-ai .report-decision-head { border-bottom-color: #3a5663; }
.report-channel-ai .report-decision-head strong, .report-channel-ai .report-decision-cell b { color: #f2f6f7; }
.report-channel-ai .report-decision-head span, .report-channel-ai .report-decision-cell span { color: #bacbd1; }
.report-channel-ai .report-decision-grid { background: #314d59; }
.report-channel-ai .report-decision-cell { background: #1b303b; }
.report-channel-ai .report-side { border-color: #314853; background: #203641; color: #e1e8eb; }
.report-channel-ai .report-side strong { color: #fff; }
.report-channel-ai .report-side p { color: #bbc9cf; }
.report-channel-ai .report-summary { border-color: #314853; background: #203641; color: #e1e8eb; }
.report-channel-ai .report-summary strong { color: #fff; }
.report-channel-ai .report-card { border-color: #314853; }
.report-channel-ai .report-detail pre { border-color: #3a5663; background: #203641; color: #e1e8eb; }
.report-channel-ai .locked-report { color: #c2cfd4; }
.report-channel-ai .locked-report strong { color: #fff; }
.report-channel-ai .btn.small.block { border-color: #e5444a; background: #e5444a; color: #fff; }
.report-channel-ai .report-decision { border-left-color: #e77c82; }
.report-channel-ai .report-decision-head span { color: #f0a0a3; }
.report-channel-ai .report-stage-version { border-color: #e77c82; }
.report-channel-ai .report-change { border-left-color: #e77c82; }

.membership-card { border: 1px solid #283e49; border-radius: 9px; background: #172b35; }
.membership-card.active { border-color: #d78185; background: #20343d; }
.membership-card .eyebrow { color: #f09a9e; }
.membership-card::after { color: rgba(240,154,158,.34); }
.membership-card .btn.green { box-shadow: none; }
.account-hub { gap: 12px; }
.account-identity { border-color: #334955; border-radius: 10px; background: #172b35; box-shadow: var(--shadow); }
.account-identity::after { border-color: rgba(239,124,129,.24); box-shadow: 0 0 0 20px rgba(239,124,129,.035), 0 0 0 42px rgba(239,124,129,.02); }
.account-identity .eyebrow { color: #f09a9e; }
.membership-summary { border-color: #e4d6d7; border-radius: 10px; background: #fff7f7; box-shadow: var(--shadow); }
.membership-summary .eyebrow { color: #b8343b; }
.membership-meter strong { color: var(--red); font-variant-numeric: tabular-nums; }
.service-policy-link { border-color: var(--line); border-radius: 8px; background: #fff; }
.service-policy-link:hover { border-color: #efb5b7; box-shadow: inset 3px 0 var(--red); }
.recommendation-schedule { gap: 10px; }
.recommendation-schedule-item { border-color: #e1e8e4; border-left: 3px solid #328260; border-radius: 8px; background: #fff; box-shadow: none; }
.recommendation-schedule-item.evening { border-left-color: #d58b36; }
.recommendation-schedule-time { color: #276e4e; font-size: 18px; }
.recommendation-schedule-item.evening .recommendation-schedule-time { color: #986122; }
.recommendation-schedule-item strong { color: #35434b; }
.recommendation-schedule-item small { color: #7a858c; }
.daily-recommendation-card { border-color: #e5e1d7; border-radius: 9px; background: #fff; }
.daily-recommendation-card-head { border-bottom-color: #ece8df; background: #fffaf2; }
.daily-recommendation-card-head h4 { color: #403526; }
.daily-recommendation-card-head p { color: #746d60; }
.daily-recommendation-body { padding: 14px; }
.daily-package { border-color: #e7e8e9; border-radius: 8px; }
.daily-package-head { border-bottom-color: #eceeef; background: #f8f9fa; }
.daily-package-head strong { color: #3d4850; }
.daily-package.steady .daily-package-head { background: #f3f8f5; }
.daily-package.steady .daily-package-head strong { color: #286b4c; }
.daily-package.aggressive .daily-package-head { background: #fff5f1; }
.daily-package.aggressive .daily-package-head strong { color: #9f4936; }
.daily-pick { border-color: #e5e8ea; border-radius: 7px; }
.daily-match-number { border-radius: 5px; background: #f2f4f5; color: #59656d; font-variant-numeric: tabular-nums; }
.daily-pick strong { color: #27333b; }
.daily-pick small { color: #747f86; }
.daily-pick b { color: #a86616; font-variant-numeric: tabular-nums; }
.daily-boundary { color: #79838a; }
.report-card.priority { box-shadow: inset 3px 0 var(--red); }
.report-card.followed { box-shadow: inset 3px 0 #3f8b64; }
.toast { border-radius: 8px; background: #25343e; }
.toast.error { background: #a82f36; }
.auth-prompt { border-color: #ecd0d1; border-radius: 10px; background: rgba(255,255,255,.98); color: #29363e; box-shadow: 0 12px 30px rgba(32,45,54,.16); }
.auth-prompt small { color: #6e7c84; }
.auth-prompt .btn.green { background: var(--red); border-color: var(--red); }
.auth-prompt .prompt-close { color: #79858b; }
#authDialog .auth-identity-panel { background: #fff3f3; border-bottom-color: #f0d9da; }
#authDialog .auth-brand-mark { background: var(--red); color: #fff; box-shadow: none; }
#authDialog .auth-identity-kicker, #authDialog .auth-overline { color: #b63c42; }
#authDialog .auth-brand-lockup strong, #authDialog .auth-head h3 { color: #25313a; }
#authDialog .auth-head .dialog-dismiss { border-radius: 8px; box-shadow: none; }
#authDialog .auth-body .segmented button.active { color: #a93239; }
#authDialog .auth-input-shell input:focus { border-color: #da6b70; box-shadow: 0 0 0 3px rgba(229,68,74,.12); }
#authDialog .auth-reset-link, #authDialog .policy-consent a { color: #b4343a; }
#authDialog .auth-form .btn.dark { background: var(--red); box-shadow: none; }
#authDialog .auth-form .btn.dark:hover { background: #c9343a; }
#authDialog .wechat-login-button { border-color: #d9e6df; background: #f4f8f5; }

.mobile-nav { display: none; }

@media (min-width: 761px) and (max-width: 1100px) {
  .shell { grid-template-columns: 150px minmax(0, 1fr); gap: 16px; padding-right: 18px; padding-left: 18px; }
  .fixture-ledger-panel .match-row { grid-template-columns: 70px minmax(0, 1fr) 86px; grid-template-areas: "number main side"; gap: 0 10px; }
  .fixture-ledger-panel .match-side { width: auto; min-width: 0; }
  .fixture-ledger-panel .match-state { display: none; }
  .fixture-ledger-panel .row-actions { display: flex; justify-content: flex-end; width: auto; }
  .fixture-ledger-panel .row-actions .btn { width: auto; }
  .fixture-ledger-panel .match-row { padding-right: 12px; padding-left: 12px; }
  .fixture-ledger-panel .row-actions .btn { padding-right: 8px; padding-left: 8px; }
  .fixture-ledger-panel .share-match { display: none; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 62px; }
  body { min-width: 320px; padding-bottom: env(safe-area-inset-bottom); }
  .app-header { position: sticky; top: 0; z-index: 60; }
  .header-inner { min-height: 56px; padding: 7px 12px; gap: 8px; }
  .brand { gap: 8px; }
  .brand-mark { width: 32px; height: 32px; flex-basis: 32px; border-radius: 8px; font-size: 9px; }
  .brand h1 { font-size: 16px; }
  .brand p { display: none; }
  .header-actions { gap: 6px; }
  .header-actions a.account-button { display: none; }
  .connection { max-width: 86px; min-height: 30px; padding: 0 7px; overflow: hidden; border-color: rgba(255,255,255,.32); background: rgba(255,255,255,.12); color: #fff; font-size: 10px; text-overflow: ellipsis; }
  .account-button { min-height: 36px; max-width: none; padding: 0 9px; border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.12); color: #fff; font-size: 11px; }
  .seo-summary { border-bottom-color: #e7eaec; }
  .seo-summary-details > summary { min-height: 31px; padding: 0 13px; color: #626e77; font-size: 10px; }
  .seo-summary-inner { padding: 12px 14px; }
  .seo-summary h2 { font-size: 16px; }
  .seo-summary p { font-size: 11px; line-height: 1.55; }
  .seo-summary-links { gap: 14px; margin: 10px 0 0 !important; }
  .shell { display: block; padding: 10px 0 calc(116px + env(safe-area-inset-bottom)); }
  .side-nav { display: none; }
  .view.active { gap: 10px; }
  .view.active > .page-head { min-height: 46px; padding: 4px 14px 2px; gap: 8px; align-items: center; }
  .page-head h2 { font-size: 20px; }
  .page-head p { display: none; }
  .page-actions { min-width: 0; flex: 1; gap: 6px; }
  .page-actions .btn:not(.mobile-keep) { display: none; }
  .page-actions .date-field { display: block; width: min(148px, 46vw); min-height: 40px; margin-left: auto; padding: 0 8px; font-size: 16px; }
  .page-actions .btn.mobile-keep { min-height: 40px; padding: 0 10px; font-size: 11px; }
  .hero-status { display: block; width: auto; margin: 0 10px; padding: 0; }
  .hero-status::before { display: none; }
  .scan-block {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 0;
    padding: 10px 12px;
    border: 1px solid #c9353c;
    border-left: 3px solid #98242a;
    border-radius: 8px;
    background: var(--red);
    box-shadow: none;
  }
  .scan-block::before, .scan-block::after { display: none; }
  .scan-block .eyebrow { max-width: none; color: rgba(255,255,255,.86); font-size: 9px; }
  .scan-block .eyebrow::before { width: 6px; height: 6px; margin-right: 6px; background: #fff; }
  .scan-block h3 { max-width: none; margin: 4px 0 0; color: #fff; font-size: 16px; line-height: 1.25; }
  .scan-block p { display: none; }
  .scan-row { display: grid; grid-template-columns: auto; gap: 2px; justify-items: stretch; }
  .scan-row .btn.primary { min-height: 40px; padding: 0 12px; border-color: #fff; background: #fff; color: #b52e35; font-size: 11px; }
  .scan-meta { display: none; }
  .stat-grid { display: none; }
  .panel { width: auto; margin: 0 10px; border-radius: 9px; box-shadow: 0 3px 12px rgba(30,45,56,.045); }
  .panel-head { min-height: 48px; padding: 9px 11px; gap: 8px; }
  .panel-head h3 { font-size: 13px; }
  .panel-caption { max-width: 190px; font-size: 10px; }
  .source-status { flex: 0 0 auto; gap: 4px; }
  .source-status .pill { max-width: 76px; overflow: hidden; text-overflow: ellipsis; }
  .fixture-ledger-panel { margin: 0 8px; border-radius: 9px; }
  .fixture-ledger-panel .panel-head { min-height: 54px; padding: 8px 11px; border-top: 2px solid var(--red); }
  .fixture-ledger-panel .panel-head h3 { font-size: 15px; }
  .fixture-ledger-kicker { margin-bottom: 3px; font-size: 8px; }
  .fixture-ledger-panel .panel-caption { font-size: 10px; }
  .fixture-ledger-panel .source-status .pill { display: none; }
  .fixture-play-tabs { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; }
  .fixture-play-tabs::-webkit-scrollbar { display: none; }
  .fixture-play-tab { flex: 0 0 96px; min-width: 96px; min-height: 50px; padding: 7px 6px 6px; border-right-color: #edf0f2; border-bottom-width: 2px; }
  .fixture-play-tab strong { font-size: 11px; }
  .fixture-play-tab span { display: none; }
  .fixture-ledger-panel .match-tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    padding: 8px 10px;
  }
  .match-filter-list { grid-column: 1 / -1; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 1px; scrollbar-width: none; }
  .match-filter-list::-webkit-scrollbar { display: none; }
  .match-filter { flex: 0 0 auto; min-height: 34px; padding: 0 10px; font-size: 10px; }
  .match-search { width: 100%; min-width: 0; min-height: 40px; }
  .match-search input { min-height: 40px; font-size: 16px; }
  .match-visible-count { align-self: center; font-size: 10px; }
  .fixture-ledger-panel .match-row {
    grid-template-columns: 54px minmax(0, 1fr);
    grid-template-areas: "number main" "number side";
    gap: 0 9px;
    padding: 10px 9px;
  }
  .fixture-ledger-panel .match-side { width: 100%; min-width: 0; }
  .fixture-ledger-panel .row-actions .btn { width: auto; min-width: 0; }
  .fixture-ledger-panel .match-number { min-height: 0; padding: 8px 2px; border-radius: 5px; }
  .fixture-ledger-panel .match-number strong { padding: 2px 1px; font-size: 10px; line-height: 1.3; white-space: nowrap; overflow-wrap: normal; }
  .fixture-ledger-panel .match-number span { margin-top: 5px; font-size: 9px; line-height: 1.25; }
  .fixture-ledger-panel .match-meta { min-height: 18px; margin-bottom: 4px; gap: 4px; }
  .fixture-ledger-panel .match-league, .fixture-ledger-panel .match-round { max-width: min(42%, 120px); min-height: 18px; padding: 0 5px; font-size: 9px; }
  .fixture-ledger-panel .market-cue { min-height: 18px; padding: 0 5px; font-size: 8px; }
  .fixture-ledger-panel .match-teams { grid-template-columns: minmax(0, 1fr) 20px minmax(0, 1fr); gap: 3px; }
  .fixture-ledger-panel .match-teams strong { font-size: 14px; line-height: 1.25; }
  .fixture-ledger-panel .match-vs { font-size: 8px; }
  .fixture-ledger-panel .match-foot { gap: 6px; margin-top: 7px; font-size: 10px; }
  .fixture-ledger-panel .match-time { font-size: 10px; }
  .fixture-market-ledger { gap: 4px; }
  .fixture-market-line { grid-template-columns: 30px 39px repeat(3, minmax(0, 1fr)); min-height: 38px; border-radius: 5px; }
  .fixture-market-marker, .fixture-market-label { font-size: 9px; }
  .fixture-market-cell i { font-size: 9px; }
  .fixture-market-cell b { margin-top: 1px; font-size: 12px; }
  .fixture-market-grid-head { min-height: 32px; padding: 0 8px; }
  .fixture-market-grid-head strong { font-size: 10px; }
  .fixture-market-grid-head span { font-size: 9px; }
  .fixture-market-grid-values > span { min-height: 42px; }
  .fixture-market-grid-values i { font-size: 9px; }
  .fixture-market-grid-values b { font-size: 11px; }
  .fixture-mix-list { gap: 5px; padding: 8px; }
  .fixture-mix-list > span { min-width: calc(50% - 5px); min-height: 36px; flex-basis: calc(50% - 5px); padding: 5px 6px; }
  .fixture-mix-list i, .fixture-mix-list b { font-size: 9px; }
  .fixture-ledger-panel .match-side { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: stretch; align-items: center; margin-top: 7px; gap: 6px; }
  .fixture-ledger-panel .match-state { display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
  .fixture-ledger-panel .match-side .pill { min-height: 24px; padding: 0 6px; font-size: 9px; }
  .fixture-ledger-panel .row-actions { display: flex; justify-content: flex-start; flex-wrap: nowrap; gap: 6px; min-width: 0; }
  .fixture-ledger-panel .row-actions .btn { flex: 0 0 auto; min-height: 38px; padding: 0 9px; font-size: 10px; }
  .fixture-ledger-panel .fixture-detail-button { display: inline-flex; min-width: 40px; }
  .fixture-ledger-panel .fixture-detail-button .detail-button-label { display: none; }
  .fixture-ledger-panel .share-match { display: inline-flex; }
  .fixture-ledger-panel .ai-match { min-width: 68px; }

  .report-switcher { display: flex; gap: 6px; margin: 0 10px; padding: 6px; overflow-x: auto; border-radius: 9px; scrollbar-width: none; }
  .report-switcher::-webkit-scrollbar { display: none; }
  .report-tab { flex: 0 0 132px; min-height: 58px; grid-template-columns: 26px minmax(0, 1fr); gap: 6px; padding: 7px 8px; }
  .report-tab-icon { width: 25px; height: 25px; font-size: 11px; }
  .report-tab strong { font-size: 11px; }
  .report-tab small { display: none; }
  .report-tab-count { top: 5px; right: 5px; min-width: 18px; height: 18px; font-size: 9px; }
  .report-channel { gap: 9px; }
  .report-channel-head { align-items: flex-start; }
  .report-channel-title { align-items: flex-start; gap: 8px; }
  .report-channel-title h3 { font-size: 14px; }
  .report-channel-subtitle { max-width: 230px; font-size: 10px; }
  .report-channel-ai { margin: 0 8px; padding-bottom: 9px; border-radius: 10px; }
  .report-channel-ai::before { margin: 9px 12px 2px; }
  .report-channel-ai .panel { margin: 0 7px; border-radius: 8px; }
  .report-channel-ai .panel-head { min-height: 58px; padding: 10px 11px; }
  .report-channel-ai .report-channel-title h3 { font-size: 15px; }
  .report-channel-ai .latest-report .report-copy { min-height: 0; max-height: none; padding: 38px 12px 13px; overflow: visible; }
  .report-channel-ai .report-copy pre, .report-copy pre, .report-detail pre { font-size: 12px; line-height: 1.65; overflow-wrap: anywhere; word-break: break-word; }
  .report-channel-ai .report-side { min-height: 0; padding: 12px; border-top: 1px solid #314853; border-left: 0; }
  .report-decision-grid { grid-template-columns: 1fr; }
  .report-decision-cell { padding: 9px 10px; }
  .latest-report { display: block; }
  .latest-report .report-copy { max-height: none; padding: 12px; overflow: visible; }
  .report-side { padding: 12px; border-top: 1px solid var(--line); border-left: 0; }
  .recommendation-schedule { grid-template-columns: 1fr; gap: 7px; margin: 0 10px; }
  .recommendation-schedule-item { padding: 10px 11px; }
  .recommendation-schedule-time { font-size: 17px; }
  .daily-recommendation-card-head { padding: 12px; }
  .daily-recommendation-body { padding: 10px; }
  .daily-pick { grid-template-columns: auto minmax(0, 1fr) auto; gap: 5px 8px; padding: 9px; }
  .daily-pick-verdict { grid-column: 2 / -1; justify-self: start; }
  .daily-pick strong { font-size: 13px; }
  .daily-pick small { font-size: 10px; }
  #view-results .match-row { grid-template-columns: 54px minmax(0, 1fr); }
  #view-results .match-number { min-height: 70px; }
  #view-results .match-teams { grid-template-columns: minmax(0,1fr) 20px minmax(0,1fr); }
  #view-results .match-teams strong { font-size: 14px; }
  #view-results .match-side { justify-content: flex-end; }
  #view-results .result-score { font-size: 18px; }
  #view-results .panel, #view-reports > .panel, #view-settings > .panel { margin-right: 10px; margin-left: 10px; border: 1px solid var(--line); border-radius: 9px; }
  #view-reports .membership-card { border-radius: 8px; }
  #view-reports .report-switcher { margin: 0 10px; border: 1px solid var(--line); }
  #view-settings .account-hub { gap: 8px; padding: 0 10px; }
  #view-settings .account-identity, #view-settings .membership-summary { border: 1px solid; border-radius: 9px; }
  #view-settings .membership-summary { border-color: #e4d6d7; }
  #view-settings .account-identity { border-color: #334955; }
  .settings-grid { grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .service-policy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .service-policy-link { min-height: 74px; padding: 10px; }
  .service-policy-link strong { font-size: 12px; }
  .service-policy-link span { font-size: 10px; }
  .refund-panel, .feedback-panel { grid-template-columns: minmax(0, 1fr); }
  .refund-form, .feedback-form { padding: 12px; border-right: 0; border-bottom: 1px solid var(--line); }
  .refund-log, .feedback-log { padding: 12px; }
  .performance-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 10px; }
  .performance-filters label { min-width: 0; }
  .mobile-nav {
    position: fixed;
    z-index: 65;
    right: 8px;
    bottom: calc(7px + env(safe-area-inset-bottom));
    left: 8px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 2px;
    padding: 5px 5px calc(5px + env(safe-area-inset-bottom));
    border: 1px solid rgba(210, 218, 222, .96);
    border-radius: 11px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 6px 22px rgba(30,45,56,.14);
    backdrop-filter: blur(10px);
  }
  .mobile-nav .nav-button {
    position: relative;
    min-width: 0;
    min-height: 48px;
    padding: 5px 2px;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 3px;
    border-radius: 7px;
    background: transparent;
    color: #65727b;
    font-size: 10px;
    line-height: 1.1;
    text-align: center;
    white-space: nowrap;
  }
  .mobile-nav .nav-button::before { position: static; inset: auto; width: 18px; height: 18px; display: grid; place-items: center; border-radius: 0; background: transparent; color: #7c878e; font-size: 14px; line-height: 1; }
  .mobile-nav .nav-button[data-view="overview"]::before { content: "◉"; }
  .mobile-nav .nav-button[data-view="reports"]::before { content: "▤"; }
  .mobile-nav .nav-button[data-view="recommendations"]::before { content: "★"; }
  .mobile-nav .nav-button[data-view="settings"]::before { content: "⌁"; }
  .mobile-nav .nav-button.active { background: #fff1f1; color: #b7353c; box-shadow: none; }
  .mobile-nav .nav-button.active::before { color: #c2383f; }
  .mobile-nav .nav-external { display: none; }
  .mobile-nav .notice-nav-badge { top: 1px; right: calc(50% - 24px); }
  .toast { bottom: calc(74px + env(safe-area-inset-bottom)); }
  .auth-prompt { bottom: calc(72px + env(safe-area-inset-bottom)); grid-template-columns: minmax(0, 1fr) minmax(0, auto); gap: 7px; padding: 11px 38px 11px 12px; }
  .auth-prompt > div { grid-column: 1 / -1; }
  .auth-prompt .btn { min-height: 40px; justify-self: stretch; }
  .auth-prompt .prompt-close { position: absolute; top: 5px; right: 5px; width: 30px; min-width: 30px; min-height: 30px; }
  dialog { max-width: 100%; max-height: 92dvh; border-radius: 14px 14px 0 0; }
  #authDialog { width: calc(100% - 16px); max-height: calc(100dvh - 24px); margin: auto 0 0; border-radius: 14px 14px 0 0; }
  #authDialog .auth-body { max-height: calc(100dvh - 220px); }
}

@media (max-width: 380px) {
  .header-inner { padding-right: 9px; padding-left: 9px; }
  .connection { max-width: 74px; }
  .account-button { padding: 0 7px; }
  .fixture-ledger-panel .match-row { grid-template-columns: 49px minmax(0, 1fr); gap: 0 7px; padding-right: 7px; padding-left: 7px; }
  .fixture-ledger-panel .match-number strong { padding-right: 0; padding-left: 0; font-size: 9px; }
  .fixture-ledger-panel .match-teams { grid-template-columns: minmax(0, 1fr) 16px minmax(0, 1fr); gap: 2px; }
  .fixture-ledger-panel .match-teams strong { font-size: 12px; }
  .fixture-market-line { grid-template-columns: 27px 34px repeat(3, minmax(0, 1fr)); }
  .fixture-ledger-panel .row-actions .btn { padding: 0 5px; font-size: 9px; }
  .fixture-ledger-panel .ai-match { min-width: 62px; }
}

@media (hover: hover) and (pointer: fine) {
  .fixture-ledger-panel .match-row { transition: background 100ms ease-out; }
  .fixture-ledger-panel .row-actions .btn:hover { transform: translateY(-1px); }
}

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