:root {
  color-scheme: light;
  --bg: #edf4ef;
  --panel: #fffefa;
  --panel-soft: #f7fbf5;
  --line: #c6d9d0;
  --text: #193d37;
  --muted: #66827a;
  --green: #0b7b6f;
  --cyan: #179bd7;
  --red: #d95d62;
  --gold: #ba8640;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 78% 0, rgba(93, 166, 139, .18), transparent 36%),
    linear-gradient(180deg, #f4f7f0, var(--bg));
  color: var(--text);
  font: 14px/1.45 Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
}

.record-shell {
  width: min(1480px, calc(100% - 28px));
  margin: 0 auto;
  padding: 18px 0 28px;
}

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

.brand {
  color: var(--green);
  font-size: 24px;
  font-weight: 900;
  text-decoration: none;
  letter-spacing: .16em;
}

.brand span {
  margin-left: 10px;
  color: var(--text);
  font-size: 18px;
  letter-spacing: .08em;
}

nav {
  display: flex;
  gap: 18px;
}

nav a {
  color: var(--muted);
  text-decoration: none;
  font-size: 13px;
}

nav a.active,
nav a:hover {
  color: var(--green);
  font-weight: 700;
}

.summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 16px 0 14px;
  border: 1px solid var(--line);
  background: var(--panel);
}

.summary-grid article {
  min-height: 96px;
  padding: 16px 18px;
  border-right: 1px solid var(--line);
}

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

small {
  display: block;
  color: #87a098;
  font-weight: 700;
  margin-bottom: 4px;
}

.summary-grid strong {
  display: block;
  color: var(--green);
  font-size: 30px;
  line-height: 1.1;
  letter-spacing: 0;
}

.summary-grid span,
.panel-head span,
#status-text {
  color: var(--muted);
  font-size: 12px;
}

.control-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
}

.control-row button {
  height: 34px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f9fcf7;
  color: var(--muted);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.control-row button.active {
  border-color: #8dc6b8;
  background: #e6f2ec;
  color: var(--green);
}

#status-text {
  margin-left: auto;
}

.board {
  display: grid;
  grid-template-columns: minmax(440px, .82fr) minmax(620px, 1.18fr);
  gap: 14px;
}

.panel {
  border: 1px solid var(--line);
  background: var(--panel);
  min-height: 640px;
}

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

.panel-head h1 {
  margin: 0;
  font-size: 18px;
  line-height: 1.2;
}

.match-list,
.ledger-list {
  display: grid;
}

.watch-row,
.ledger-row {
  display: grid;
  gap: 10px;
  padding: 14px 18px;
  border-bottom: 1px solid #d9e7df;
}

.watch-row {
  grid-template-columns: 76px minmax(0, 1fr) 92px;
  align-items: center;
}

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

.teams {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 800;
}

.teams span {
  color: var(--green);
  text-align: center;
  font-size: 12px;
}

.teams b:last-child { text-align: right; }

.score {
  color: var(--cyan);
  font-size: 22px;
  font-weight: 900;
  text-align: right;
}

.minute {
  color: var(--red);
  font-weight: 800;
}

.kickoff {
  color: var(--text);
  font-size: 16px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.state {
  color: var(--green);
  font-size: 12px;
  font-weight: 800;
}

.ledger-row {
  grid-template-columns: 132px minmax(0, 1fr) 170px 92px;
  align-items: center;
}

.tag {
  width: fit-content;
  min-width: 64px;
  padding: 4px 8px;
  border: 1px solid #acd2c6;
  border-radius: 999px;
  background: #eef7f1;
  color: var(--green);
  font-size: 12px;
  font-weight: 800;
}

.tag.win {
  border-color: #86c7a5;
  background: #e9f7ef;
  color: #138a55;
}

.tag.loss {
  border-color: #e3a2a7;
  background: #fff0f1;
  color: var(--red);
}
.tag.push { color: var(--muted); }

.pick strong {
  display: block;
  color: var(--green);
  font-size: 16px;
}

.pick span,
.market,
.final {
  color: var(--muted);
  font-size: 12px;
}

.amount {
  color: var(--green);
  font-size: 24px;
  font-weight: 900;
  text-align: right;
}

.empty {
  padding: 28px 18px;
  color: var(--muted);
}

@media (max-width: 980px) {
  .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .summary-grid article:nth-child(2) { border-right: 0; }
  .summary-grid article:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .board { grid-template-columns: 1fr; }
  .panel { min-height: auto; }
}

@media (max-width: 680px) {
  .topbar { align-items: flex-start; flex-direction: column; }
  nav { width: 100%; justify-content: space-between; }
  .summary-grid { grid-template-columns: 1fr; }
  .summary-grid article { border-right: 0; border-bottom: 1px solid var(--line); }
  .summary-grid article:last-child { border-bottom: 0; }
  .control-row { flex-wrap: wrap; }
  #status-text { width: 100%; margin-left: 0; }
  .watch-row,
  .ledger-row { grid-template-columns: 1fr; }
  .score,
  .amount { text-align: left; }
}

.final{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.follow-result{font-size:12px;font-weight:900;white-space:nowrap}.follow-result.win{color:#148a58}.follow-result.loss{color:#d44747}.follow-result.push{color:#718078}.follow-result.waiting{color:#8c9993}
.market-secondary{margin-top:4px;color:#789087;font-size:11px}

.stats-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}.stat-card,.daily-panel{border:1px solid var(--line);background:var(--panel);padding:15px 18px}.stat-card h2,.daily-panel h2{margin:0 0 10px;font-size:15px}.stat-values{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:baseline;gap:6px 12px;color:var(--muted);font-size:12px}.stat-values strong{color:var(--green);font-size:24px}.stat-card p{margin:10px 0 0;color:var(--muted);font-size:12px}.daily-panel{margin-bottom:14px}.daily-row{padding:9px 0;border-top:1px solid #d9e7df;color:var(--muted);font-size:13px}.market-line{color:var(--text);font-size:13px;font-weight:700}.leg{font-weight:900}.leg.win{color:#138a55}.leg.loss{color:var(--red)}.leg.push{color:var(--muted)}.leg.waiting{color:#8c9993}@media (max-width:680px){.stats-cards{grid-template-columns:1fr}.stat-values{grid-template-columns:1fr auto}}

/* Keep each market's rate and settlement summary together. */
.summary-grid strong, .stat-rate, .stat-settled, .stat-outcomes {
  font-variant-numeric: tabular-nums;
}
.stat-card { padding: 18px 20px; }
.stat-card h2 { margin-bottom: 16px; line-height: 1.5; }
.stat-markets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.stat-market { min-width: 0; padding-right: 20px; }
.stat-market + .stat-market { border-left: 1px solid var(--line); padding: 0 0 0 20px; }
.stat-market-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.stat-market-label { color: var(--text); font-size: 13px; font-weight: 700; white-space: nowrap; }
.stat-rate { color: var(--green); font-size: 28px; line-height: 1.2; white-space: nowrap; }
.stat-settled { color: var(--muted); font-size: 12px; line-height: 1.6; }
.stat-outcomes { color: var(--muted); font-size: 12px; line-height: 1.6; margin-top: 2px; }
@media (min-width: 681px) and (max-width: 1100px) {
  .stats-cards { grid-template-columns: 1fr; }
}
@media (max-width: 440px) {
  .stat-card { padding: 16px; }
  .stat-markets { grid-template-columns: 1fr; gap: 12px; }
  .stat-market { padding-right: 0; }
  .stat-market + .stat-market { border-left: 0; border-top: 1px solid var(--line); padding: 12px 0 0; }
}

.category-panel{background:#fff;border:1px solid #ccdfd5;padding:20px 24px;margin-bottom:20px}.category-panel h2{font-size:18px;margin:0 0 10px;color:#254d44}.category-panel p{font-size:13px;color:#6e8c83;margin:0 0 16px;line-height:1.6}.category-controls{display:flex;gap:10px;flex-wrap:wrap}.category-controls button,.category-link{font:inherit;cursor:pointer;border:1px solid #c4dbd1;background:#f4f9f6;color:#315f52;padding:9px 15px;border-radius:5px;white-space:nowrap}.category-controls button.active{background:#0d8074;color:white;border-color:#0d8074}.category-table-wrap{overflow-x:auto}#category-stats{border-collapse:collapse;width:100%;white-space:nowrap;font-size:13px}#category-stats th,#category-stats td{padding:13px 14px;text-align:right;border-bottom:1px solid #e2ece6}#category-stats th{background:#f2f7f4;color:#6d877e;font-weight:500}#category-stats th:first-child,#category-stats td:first-child{text-align:left}#category-stats tr.selected{background:#eaf5ef}.category-link{background:transparent;border:0;padding:0;color:#0d8074}@media(max-width:640px){.category-panel{padding:16px}.category-controls{gap:8px}.category-controls button{font-size:13px;padding:8px 10px}#category-stats th,#category-stats td{padding:12px 10px}}

/* Group each market by color; outcome counts occupy aligned columns. */
#category-stats{min-width:1000px;table-layout:fixed;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
#category-stats th,#category-stats td{text-align:center;padding:13px 7px;vertical-align:middle}
#category-stats .category-name{width:150px;text-align:left;padding-left:15px}
#category-stats .record-count{width:58px;color:#70847d}
#category-stats .total-net{width:100px;border-left:8px solid white;background:#f4f6f5;font-weight:700}
#category-stats .market-group{font-size:15px;font-weight:700;letter-spacing:.04em;padding:14px 7px;border-top:3px solid}
#category-stats .market-team{background:#edf8f4;color:#207c69}
#category-stats .market-over{background:#eef5fe;color:#376fae}
#category-stats .market-team.market-group{border-top-color:#35977f}
#category-stats .market-over.market-group{border-top-color:#4d88cf;border-left:8px solid white}
#category-stats thead tr:nth-child(2) th{font-size:12px;font-weight:500;padding-top:9px;padding-bottom:10px}
#category-stats .market-over.group-start{border-left:8px solid white}
#category-stats .net-column{font-weight:700}
#category-stats tbody th{background:white;font-weight:400}
#category-stats tbody tr:hover .market-team,#category-stats tbody tr.selected .market-team{background:#e0f1e9}
#category-stats tbody tr:hover .market-over,#category-stats tbody tr.selected .market-over{background:#e2edfb}
#category-stats .net-negative{color:#ac5b59}
#category-stats .net-positive{color:#247d66}
.stat-market.market-team .stat-market-label,.stat-market.market-team .stat-rate{color:#207c69}
.stat-market.market-over .stat-market-label,.stat-market.market-over .stat-rate{color:#376fae}
#over-day-rate{color:#376fae}
@media(max-width:640px){#category-stats{min-width:950px}.category-table-wrap{padding-bottom:8px}#category-stats .category-name{width:138px}}

#category-stats thead tr:nth-child(2) th{text-align:center}

/* Each event is a card, with independent market details and results. */
.ledger-list{display:grid;gap:16px;padding:16px;background:#f5f8f6;align-content:start}
.ledger-row.record-card{display:block;padding:20px;border:1px solid #d7e5dd;border-radius:10px;background:#fff;min-width:0}
.record-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.record-match-info{min-width:0}.record-match-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.record-league{font-size:12px;color:#71867d;line-height:1.5}.record-match-meta .tag{font-size:11px;min-width:0;padding:3px 9px;white-space:nowrap}
.record-match-title{margin:0;font-size:17px;line-height:1.55;color:#254b42;overflow-wrap:anywhere}
.record-goal-info{margin:8px 0 0;font-size:12px;line-height:1.6;color:#789087}
.record-total{flex:0 0 auto;display:grid;gap:5px;text-align:right;padding-top:3px}.record-total strong{font-size:28px;color:#187d6f;line-height:1.2;font-variant-numeric:tabular-nums}
.record-score-row{display:flex;gap:24px;flex-wrap:wrap;padding:13px 0;margin:14px 0;border-top:1px solid #edf1ee;border-bottom:1px solid #edf1ee}
.record-field{min-width:0;display:grid;gap:5px}.record-field-label{color:#7c8d86;font-size:11px;font-weight:400;line-height:1.5}.record-field-value{font-size:13px;font-weight:600;line-height:1.5;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.record-score-row .record-field{display:flex;align-items:center;gap:12px}.record-score-row .record-field-value{font-size:15px}
.record-markets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.record-market{padding:15px;border-radius:8px;min-width:0;border:1px solid}
.record-market-team{background:#f0f8f4;border-color:#d3e8de;color:#237d68}.record-market-over{background:#f0f5fc;border-color:#d8e4f4;color:#376fae}
.record-market-heading h3{margin:0 0 13px;font-size:13px;font-weight:700}.record-market-pick{margin-bottom:13px}.record-market-pick .record-field-value{font-size:15px}
.record-market-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}
.record-timestamp .record-field-value{font-size:12px;font-weight:500;white-space:nowrap}
.record-market-outcome{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:13px;padding-top:11px;border-top:1px solid #d9e5e0;font-size:12px}
.record-market-over .record-market-outcome{border-color:#dae4f0}.record-market-outcome .leg{font-size:12px;white-space:nowrap}
.record-no-bet{font-size:12px;color:#839087;line-height:1.7;margin:10px 0 0}.record-legacy{display:grid;grid-template-columns:1fr 1fr;gap:14px}.record-legacy p{grid-column:1/-1}
.record-market-disabled{opacity:.72}.record-markets-single{grid-template-columns:1fr}
@media(min-width:981px) and (max-width:1170px){.board{grid-template-columns:1fr}}
@media(max-width:600px){.ledger-list{padding:12px;gap:12px}.ledger-row.record-card{padding:16px}.record-card-header{gap:12px}.record-match-title{font-size:16px}.record-total strong{font-size:25px}.record-total .record-field-label{max-width:55px}.record-markets{grid-template-columns:1fr}.record-market{padding:14px}.record-market-details{grid-template-columns:1fr 1fr}.record-score-row{gap:16px}.record-timestamp{display:flex;justify-content:space-between;align-items:center;gap:12px}.record-legacy{grid-template-columns:1fr}.panel-head{align-items:flex-start;flex-direction:column}}

/* Records take the full content area after removing the schedule panel. */
.board{grid-template-columns:minmax(0,1fr)}
.ledger-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.ledger-list>.empty{grid-column:1/-1}
@media(max-width:1000px){.ledger-list{grid-template-columns:minmax(0,1fr)}}

/* Compact, one row per actual paper bet. */
.ledger-list{display:block;padding:0;background:white}
.ledger-row.compact-record{display:grid;grid-template-columns:90px minmax(0,1.25fr) minmax(0,1.2fr) minmax(135px,.65fr) 60px;gap:20px;align-items:center;padding:18px 20px;border:0;border-bottom:1px solid #dce6e1;border-radius:0;min-width:0}
.compact-record:nth-child(even){background:#f6f9f7}
.compact-record>div{display:grid;gap:6px;min-width:0;line-height:1.5}
.compact-record strong{font-size:14px;font-weight:700;overflow-wrap:anywhere}
.compact-record .compact-muted{font-size:12px;color:#71867b;overflow-wrap:anywhere}
.compact-kind strong,.compact-team .compact-market>strong{color:#227c68}
.compact-over .compact-kind strong,.compact-over .compact-market>strong{color:#376fae}
.compact-state .compact-score{color:#268aa6;font-size:15px}
.compact-record .compact-amount{font-size:20px;text-align:right;color:#287565;font-variant-numeric:tabular-nums}
.compact-state .leg{font-size:12px}
@media(max-width:900px){.ledger-row.compact-record{grid-template-columns:70px minmax(0,1fr) minmax(0,1fr) 130px 45px;gap:12px;padding:16px 14px}}
@media(max-width:680px){.ledger-row.compact-record{grid-template-columns:minmax(0,1fr) 95px;gap:10px 16px;padding:16px}.compact-kind{grid-column:1;grid-row:1;display:flex!important;align-items:center;flex-wrap:wrap}.compact-match{grid-column:1/-1;grid-row:2}.compact-market{grid-column:1;grid-row:3}.compact-state{grid-column:1;grid-row:4}.compact-amount{grid-column:2;grid-row:3/5}.compact-record strong{font-size:15px}.compact-record .compact-muted{font-size:13px}.compact-state .leg{font-size:13px}}

.ledger-pagination{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;padding:18px;border-top:1px solid #dce6e1;background:#fff}.ledger-pagination[hidden]{display:none}.ledger-pagination button{font:inherit;font-size:14px;min-width:88px;min-height:44px;padding:8px 16px;border:1px solid #bed5ca;border-radius:5px;background:#f1f7f3;color:#236d59;cursor:pointer}.ledger-pagination button:hover:enabled{background:#e3f0e8}.ledger-pagination button:disabled{opacity:.45;cursor:default}.pagination-info{font-size:13px;color:#6e8177;font-variant-numeric:tabular-nums}@media(max-width:500px){.ledger-pagination{gap:10px}.pagination-info{order:-1;flex-basis:100%;text-align:center}}

.rate-link{font-family:inherit;border:0;background:transparent;padding:0;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-underline-offset:6px}.rate-link:hover:enabled{opacity:.78}.rate-link:focus-visible{outline:2px solid #258e7d;outline-offset:4px}.rate-link:disabled{cursor:default;text-decoration:none}.summary-grid .summary-rate-button{display:block;font-size:36px;font-weight:800;line-height:1.3;color:#187d6f;text-align:left;font-variant-numeric:tabular-nums;margin:5px 0}#over-day-rate{color:#376fae}.rate-detail-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;background:#eff7f3;color:#315c4f;font-size:13px;border-bottom:1px solid #d5e7dc}.rate-detail-bar[hidden]{display:none}.rate-detail-bar button{font:inherit;border:1px solid #bdd5c8;border-radius:4px;padding:8px 12px;background:white;color:#286f59;cursor:pointer;min-height:40px}.daily-rate-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.daily-rate-row .stat-rate{font-size:14px}.daily-rate-row .rate-link{min-height:32px}.daily-rate-row .rate-link:nth-of-type(2){color:#376fae}

.compact-record .net-amount{font-variant-numeric:tabular-nums;white-space:nowrap}.compact-record .net-profit{color:#ce3038;font-weight:800}.compact-record .net-loss{color:#345e52;font-weight:800}.compact-record .net-zero{color:#75867e}.compact-record .net-pending{font-size:13px;color:#87948e;font-weight:500}@media(min-width:901px){.ledger-row.compact-record{grid-template-columns:90px minmax(0,1.25fr) minmax(0,1.2fr) minmax(135px,.65fr) 84px}}@media(min-width:681px) and (max-width:900px){.ledger-row.compact-record{grid-template-columns:70px minmax(0,1fr) minmax(0,1fr) 130px 68px}}
