:root{color-scheme:dark;--page: #121316;--surface: #1a1d21;--surface-2: #23272d;--surface-3: #2b3037;--line: #343941;--line-soft: #262a30;--text: #f3f0e8;--muted: #a9adb4;--accent: #33c481;--accent-2: #f0c04a;--red: #f06d5f;--blue: #6ba6ff;--ink: #0b0c0f;font-family:Segoe UI,PingFang TC,Microsoft JhengHei,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--page);color:var(--text)}button,input,select{font:inherit}button{color:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}.sidebar{min-height:100vh;padding:20px;background:#17191d;border-right:1px solid var(--line-soft);display:flex;flex-direction:column;gap:22px}.brand{display:flex;gap:12px;align-items:center;min-width:0}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;color:var(--ink);background:linear-gradient(135deg,var(--accent-2),var(--accent))}.brand strong,.brand span{display:block}.brand strong{font-size:15px}.brand span,.section-label,.kpi span,.detail-header span,.detail-kpis span,.probability-row span,.odds-grid span,.module-header span,.compact-module span,.system-card span,td span{color:var(--muted);font-size:12px}.side-nav{display:grid;gap:6px}.side-nav button,.icon-button{border:1px solid transparent;background:transparent;cursor:pointer}.side-nav button{min-height:42px;border-radius:8px;display:flex;align-items:center;gap:10px;padding:0 12px;color:var(--muted);text-align:left}.side-nav button:hover,.side-nav button.active{background:var(--surface-2);color:var(--text);border-color:var(--line)}.system-card{margin-top:auto;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.system-card strong{display:block;margin:4px 0 8px}.system-card p{margin:0;color:var(--muted);line-height:1.45;font-size:13px}.workspace{min-width:0;padding:22px}.topbar,.section-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:28px;letter-spacing:0}h2{margin-bottom:0;font-size:19px}h3{margin-bottom:0;font-size:16px}.topbar-actions{display:flex;gap:10px;align-items:center}.sync-status-pill{min-height:40px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid rgba(51,196,129,.35);border-radius:8px;background:#33c48114;color:var(--accent);white-space:nowrap}.sync-status-pill span,.sync-status-pill strong{font-size:12px}.sync-status-pill strong{color:var(--text)}.scope-tabs{display:inline-grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:18px;padding:5px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.scope-tabs button{min-height:34px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;padding:0 14px;white-space:nowrap}.scope-tabs button.active{background:var(--surface-2);color:var(--text)}.search-box,.select-box{height:40px;border:1px solid var(--line);border-radius:8px;background:var(--surface);display:flex;align-items:center;gap:8px;padding:0 10px;color:var(--muted)}.search-box input,.select-box select{border:0;outline:0;background:transparent;color:var(--text)}.search-box input{width:210px}.select-box select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:4px}.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:22px 0}.kpi,.module,.detail-pane,.table-shell,.backtest-chart,.alert-item{border:1px solid var(--line);border-radius:8px;background:var(--surface)}.kpi{padding:14px}.kpi strong{display:block;margin-top:6px;font-size:24px}.board-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;align-items:start}.board-main{min-width:0}.section-toolbar{margin-bottom:12px}.icon-button{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;background:var(--surface);border-color:var(--line);color:var(--accent-2)}.icon-button.active{background:#f0c04a24}.table-shell{overflow:hidden}table{width:100%;border-collapse:collapse}th,td{padding:13px 14px;border-bottom:1px solid var(--line-soft);text-align:left;white-space:nowrap}th{color:var(--muted);font-size:12px;font-weight:600;background:#202329}td:first-child span{display:block;margin-top:3px}.team-subtitle{max-width:280px;overflow:hidden;text-overflow:ellipsis}.match-name{display:inline-flex;align-items:center;gap:6px}.match-name svg:first-child{color:var(--accent-2)}.match-name svg:nth-child(2){color:var(--accent)}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.selected{background:#222a28}tbody tr:last-child td{border-bottom:0}.pick,.status,.risk,.score-pill,.sync-pill,.tag-row span,.impact,.ai-grade{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 8px;font-size:12px;line-height:1;border:1px solid var(--line);white-space:nowrap}.ai-grade{color:var(--accent-2);min-width:34px;justify-content:center;font-weight:700}.pick-home,.good,.positive,.risk-low,.impact-positive{color:var(--accent)}.pick-draw,.warn,.risk-medium,.impact-neutral{color:var(--accent-2)}.pick-away,.bad,.negative,.risk-high,.impact-negative{color:var(--red)}.status-ready{color:var(--accent)}.status-review{color:var(--accent-2)}.status-watchlist{color:var(--blue)}.status-scheduled{color:var(--muted)}.status-soon{color:var(--accent-2)}.status-live{color:var(--red)}.status-settled{color:var(--accent);border-color:#33c48173;background:#33c4811a}.status-needs-calibration{color:var(--accent-2);border-color:#f0c04a73;background:#f0c04a1a}.freshness{display:inline-flex;width:fit-content;align-items:center;border-radius:999px;padding:4px 8px;font-size:12px;border:1px solid var(--line)}.freshness-fresh{color:var(--accent);border-color:#33c48166}.freshness-stale{color:var(--accent-2);border-color:#f0c04a73}.freshness-critical{color:var(--red);border-color:#f06d5f8c;background:#f06d5f14}.detail-pane{padding:16px;position:sticky;top:18px}.detail-header{display:flex;gap:10px;justify-content:space-between;align-items:start}.detail-header h2{margin:4px 0;line-height:1.25}.detail-header p,.driver-list p,.module p,.alert-item p{color:var(--muted);line-height:1.5;font-size:13px}.detail-kpis,.odds-grid,.model-grid,.metric-list{display:grid;gap:10px}.detail-kpis{grid-template-columns:1fr 1fr;margin:16px 0}.detail-kpis div,.odds-grid div{padding:12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-2)}.detail-kpis strong,.odds-grid strong{display:block;margin-top:6px}.block-title{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;color:var(--text)}.probability-block,.driver-list,.tag-row,.signal-grid{margin-top:16px}.probability-row{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:8px;align-items:center;margin-bottom:10px}.probability-track,.factor-meter{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.probability-track div,.factor-meter div{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.odds-grid{grid-template-columns:1fr;margin-top:14px}.driver-list p{padding-left:10px;border-left:2px solid var(--line)}.tag-row{display:flex;gap:8px;flex-wrap:wrap}.tag-row span{color:var(--muted)}.ai-decision-panel{margin-top:16px;padding:14px;border:1px solid rgba(51,196,129,.35);border-radius:8px;background:#33c4810f}.factor-pack-panel{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.decision-system-panel{margin-top:16px;padding:14px;border:1px solid rgba(107,166,255,.35);border-radius:8px;background:#6ba6ff0f}.calibration-panel{margin-top:16px;padding:14px;border:1px solid rgba(240,192,74,.42);border-radius:8px;background:#f0c04a12}.sync-state-panel{margin-top:16px;padding:14px;border:1px solid rgba(51,196,129,.35);border-radius:8px;background:#33c4810f}.sync-state-panel.freshness-stale{border-color:#f0c04a73;background:#f0c04a0f}.sync-state-panel.freshness-critical{border-color:#f06d5f8c;background:#f06d5f14}.sync-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.sync-kpis div,.source-card{border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-2)}.sync-kpis div{padding:10px}.sync-kpis span,.source-card span,.source-card em,.source-empty{color:var(--muted);font-size:12px}.sync-kpis strong,.source-card strong{display:block;margin-top:5px}.sync-state-panel p{margin:10px 0 0;color:var(--muted);line-height:1.45;font-size:12px}.source-list{display:grid;gap:8px;margin-top:10px}.source-card{display:block;padding:10px;color:var(--text);text-decoration:none}.source-card:hover{border-color:#33c48173}.source-card em{display:block;margin-top:4px;font-style:normal}.data-snapshot-grid,.injury-sync-list{display:grid;gap:8px;margin-top:10px}.data-snapshot-grid{grid-template-columns:1fr 1fr}.data-snapshot-grid div,.injury-sync-list div{padding:10px;border:1px solid var(--line-soft);border-radius:8px;background:#0000001f}.data-snapshot-grid span,.data-snapshot-grid em,.injury-sync-list span,.injury-sync-list em{display:block;color:var(--muted);font-size:12px;font-style:normal}.data-snapshot-grid strong,.injury-sync-list strong{display:block;margin:5px 0}.odds-drift-panel{margin-top:16px;padding:14px;border:1px solid rgba(107,166,255,.35);border-radius:8px;background:#6ba6ff0f}.odds-drift-chart{height:150px;display:grid;grid-template-columns:repeat(12,minmax(12px,1fr));gap:8px;align-items:end;padding-top:10px}.odds-drift-column{height:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;align-items:end}.odds-drift-column span{display:block;min-height:8px;border-radius:4px 4px 0 0}.home-bar{color:var(--accent);background:var(--accent)}.draw-bar{color:var(--accent-2);background:var(--accent-2)}.away-bar{color:var(--red);background:var(--red)}.odds-drift-legend{display:flex;gap:10px;margin-top:10px}.odds-drift-legend span{border-radius:999px;padding:4px 8px;color:var(--ink);font-size:12px}.odds-drift-panel p{margin:10px 0 0;color:var(--muted);line-height:1.45;font-size:12px}.conflict-list{display:grid;gap:12px}.conflict-card,.empty-conflicts{border:1px solid rgba(240,192,74,.45);border-radius:8px;background:#f0c04a12;padding:15px}.conflict-card p,.empty-conflicts p{margin:10px 0 0;color:var(--muted);line-height:1.5;font-size:13px}.calibration-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.calibration-summary div,.score-correction,.calibration-risk{border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-2)}.calibration-summary div{padding:10px}.calibration-summary span,.score-correction span,.calibration-risk span,.corrected-score-row span{display:block;color:var(--muted);font-size:12px}.calibration-summary strong,.score-correction strong,.corrected-score-row strong{display:block;margin-top:5px}.score-correction{margin-top:10px;padding:10px}.calibration-risk-list{display:grid;gap:8px;margin-top:10px}.calibration-risk{padding:10px}.calibration-risk div:first-child{display:flex;justify-content:space-between;gap:8px}.calibration-track{height:7px;margin-top:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.calibration-track div{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--red))}.calibration-risk.severity-high strong{color:var(--red)}.calibration-risk.severity-medium strong{color:var(--accent-2)}.calibration-risk.severity-low strong{color:var(--accent)}.calibration-risk p,.calibration-note{margin:8px 0 0;color:var(--muted);line-height:1.45;font-size:12px}.decision-factor-grid{display:grid;gap:8px}.decision-factor,.log-entry,.threshold-card,.checkpoint,.backtest-group{border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-2)}.decision-factor{padding:10px}.decision-factor div{display:flex;justify-content:space-between;gap:8px}.decision-factor span,.log-entry span,.threshold-card span,.checkpoint span,.backtest-group span{color:var(--muted);font-size:12px}.decision-factor p,.log-entry p,.threshold-card p,.checkpoint p,.backtest-group p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.trend-positive strong,.decision-release strong,.checkpoint-completed strong{color:var(--accent)}.trend-neutral strong,.decision-wait strong,.checkpoint-pending strong{color:var(--accent-2)}.trend-negative strong,.decision-block strong,.checkpoint-locked strong{color:var(--red)}.confidence-log,.checkpoint-grid{display:grid;gap:8px}.log-entry,.threshold-card,.checkpoint{padding:10px}.threshold-card div{display:grid;gap:4px}.checkpoint-grid{grid-template-columns:repeat(3,1fr)}.checkpoint strong{display:block;margin-top:4px}.factor-empty{margin-bottom:0;color:var(--muted);font-size:13px}.factor-subsection+.factor-subsection{margin-top:14px}.factor-subsection h4{margin:0 0 8px;font-size:13px}.factor-row{display:grid;grid-template-columns:1fr .8fr .8fr;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line-soft)}.factor-row p{grid-column:1 / -1;margin:0;color:var(--muted);font-size:12px;line-height:1.45}.factor-row:last-child{border-bottom:0}.factor-row span,.h2h-card span,.core-player span{color:var(--muted);font-size:12px}.factor-row strong{font-size:12px;text-align:right}.factor-row.edge-home strong:nth-child(2),.factor-row.edge-away strong:nth-child(3){color:var(--accent)}.factor-row.edge-even strong{color:var(--accent-2)}.h2h-card{display:grid;gap:8px;padding:10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line-soft)}.h2h-card div{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.h2h-card em{padding:6px;border-radius:6px;background:var(--surface);color:var(--text);font-size:12px;font-style:normal;text-align:center}.h2h-card p,.core-player p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.core-player-list{display:grid;gap:8px}.core-player{padding:10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-2)}.core-player strong{display:block;margin:4px 0;font-size:12px}.core-player.status-fit strong{color:var(--accent)}.core-player.status-doubtful strong,.core-player.status-limited strong,.core-player.status-unknown strong{color:var(--accent-2)}.core-player.status-suspended strong{color:var(--red)}.ai-decision-panel .module-header{margin-bottom:10px}.ai-decision-panel .module-header h3{line-height:1.35}.ai-decision-panel p,.scenario-card p,.rule-list p{color:var(--muted);line-height:1.5;font-size:13px}.ai-meters,.signal-grid{display:grid;gap:10px}.ai-meters{grid-template-columns:1fr 1fr;margin-top:14px;padding:10px;border:1px solid var(--line-soft);border-radius:8px;background:#0000001f}.meter{display:grid;gap:7px}.meter>div:first-child{display:flex;justify-content:space-between;gap:8px}.meter span{color:var(--muted);font-size:12px}.meter strong{font-size:12px}.meter-track{height:7px;border-radius:999px;background:var(--surface-3);overflow:hidden}.meter-track div{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.risk-track div{background:linear-gradient(90deg,var(--accent-2),var(--red))}.scenario-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.scenario-tabs button{min-height:34px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer}.scenario-tabs button.active{background:var(--surface-2);color:var(--text);border-color:#33c4818c}.scenario-card{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px;padding:12px;border-radius:8px;background:var(--surface);border:1px solid var(--line-soft)}.detail-header h2{word-break:keep-all}.scenario-card span{display:block;color:var(--muted);font-size:12px}.scenario-card strong{display:block;margin-top:5px}.scenario-card p{grid-column:1 / -1;margin-bottom:0}.signal-grid{grid-template-columns:repeat(2,1fr)}.signal{padding:10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-2)}.signal span,.signal strong{display:block}.signal span{color:var(--muted);font-size:12px}.signal strong{margin-top:5px}.signal-strong strong{color:var(--accent)}.signal-watch strong{color:var(--accent-2)}.signal-weak strong{color:var(--red)}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.action-button{min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.action-button.active{border-color:#33c4818c;color:var(--accent);background:#33c4811a}.model-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.weight-visual-panel{margin-bottom:14px}.weight-bars{display:grid;gap:10px}.weight-bar{display:grid;grid-template-columns:110px minmax(0,1fr) 42px;gap:10px;align-items:center}.weight-bar span,.weight-bar strong{font-size:12px}.weight-bar span{color:var(--muted)}.weight-bar>div{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.weight-bar>div>div{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--accent))}.ai-command-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}.ai-rank-list{display:grid;gap:10px}.ai-rank-card{width:100%;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);display:grid;gap:8px;text-align:left;cursor:pointer}.ai-rank-card.active,.ai-rank-card:hover{border-color:#33c4818c;background:#202722}.ai-rank-card>span{color:var(--accent-2);font-size:12px;font-weight:700}.ai-rank-card em{color:var(--muted);font-size:13px;font-style:normal}.ai-rank-card>div{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ai-rules{position:sticky;top:18px}.rule-list{display:grid;gap:10px}.rule-list p{margin:0;padding-left:10px;border-left:2px solid var(--line)}.module{padding:15px}.module-header{display:flex;justify-content:space-between;gap:10px;align-items:start;margin-bottom:14px}.factor-meter{margin-bottom:12px}.backtest-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px}.backtest-chart{padding:16px;min-height:330px}.chart-grid{height:240px;display:grid;grid-template-columns:repeat(10,1fr);gap:10px;align-items:end;padding-top:18px}.chart-grid span{display:block;min-height:10px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--blue),var(--accent))}.metric-list{grid-template-columns:1fr}.backtest-groups,.settled-backtest-panel{grid-column:1 / -1}.settled-backtest-list{display:grid;gap:10px}.settled-card{padding:12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-2)}.settled-card.flag-good{border-color:#33c48159}.settled-card.flag-watch{border-color:#f0c04a66}.settled-card.flag-bad{border-color:#f06d5f8c;background:#f06d5f14}.settled-card strong,.settled-card span{display:block}.settled-card span{margin-top:5px;color:var(--muted);font-size:12px}.settled-card p{margin:8px 0 0;color:var(--muted);line-height:1.5;font-size:13px}.settled-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.settled-badges em{padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;font-style:normal}.error-tag-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.error-tag-row span{padding:5px 8px;border-radius:999px;background:#f0c04a1f;color:var(--accent-2);font-size:12px}.corrected-score-row{margin-top:10px;padding:10px;border:1px solid var(--line-soft);border-radius:8px;background:#6ba6ff14}.publish-lesson{padding-left:10px;border-left:2px solid var(--accent-2)}.backtest-group{padding:12px}.backtest-group+.backtest-group{margin-top:10px}.backtest-group strong,.backtest-group span{display:block}.backtest-group span{margin-top:5px}.compact-module strong{display:block;margin:6px 0;font-size:24px}.compact-module em,.alert-item em{font-style:normal;font-size:12px}.alerts-list{display:grid;gap:10px}.alert-item{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px}.alert-item.critical{border-color:#f06d5f8c}.alert-item.warning{border-color:#f0c04a8c}.alert-title{display:flex;justify-content:space-between;gap:10px}.alert-title span{color:var(--muted);font-size:12px}@media (max-width: 1120px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto;position:static}.side-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.system-card{display:none}.board-layout,.backtest-layout,.ai-command-layout{grid-template-columns:1fr}.detail-pane,.ai-rules{position:static}}@media (max-width: 820px){.workspace{padding:16px}.topbar,.topbar-actions,.section-toolbar{align-items:stretch;flex-direction:column}.scope-tabs{display:grid;grid-template-columns:1fr}.search-box input{width:100%}.kpi-row,.model-grid,.detail-kpis,.detail-actions,.sync-kpis,.data-snapshot-grid,.calibration-summary,.ai-meters,.signal-grid,.scenario-card,.ai-rank-card>div,.factor-row,.h2h-card div,.checkpoint-grid,.weight-bar{grid-template-columns:1fr}.factor-row strong{text-align:left}.side-nav{grid-template-columns:1fr 1fr}.table-shell{overflow-x:auto}}
