:root{--ink:#101622;--muted:#657084;--page:#f4f6f8;--panel:#fff;--panel-soft:#f9fbfc;--line:#d9e0e8;--line-strong:#b9c5d2;--blue:#2457d6;--cyan:#0b8ea0;--green:#11783d;--amber:#9c6500;--red:#b13232;--shadow:0 18px 45px #14203014}*{box-sizing:border-box}html{min-width:320px}body{background:var(--page);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif;line-height:1.45}button{font:inherit}button:focus-visible{outline-offset:2px;outline:3px solid #2457d647}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:0}.workspace{min-height:100vh}.site-header{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;grid-template-columns:minmax(210px,280px) minmax(0,1fr) minmax(190px,auto);align-items:center;gap:18px;padding:12px 24px;display:grid;position:sticky;top:0}.brand-lockup{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.brand-lockup img{border:1px solid var(--line);object-fit:cover;background:#fff;border-radius:8px;width:44px;height:44px}.brand-lockup strong,.brand-lockup small{display:block}.brand-lockup strong{font-size:16px}.brand-lockup small,.site-header nav a,.header-status span,.page-title span,.section-title span,.headline-panel>span,.cycle-list span,.kpi span,.sport-grid span,.match-card header span,.multi-panel header span,.health-list span,.market-table th,.signal-grid span,.player-strip span,.decision-row dt{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}.site-header nav{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.site-header nav a{color:#384253;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;min-height:36px;padding:0 12px;text-decoration:none;display:inline-grid}.site-header nav a.active{border-color:var(--line-strong);color:var(--blue);background:#eef3fb}.owner-links{justify-content:flex-end;gap:10px;margin-top:3px;display:flex}.owner-links a{color:var(--blue);font-size:12px;font-weight:800;text-decoration:none}.header-status{text-align:right;justify-self:end;gap:2px;display:grid}.header-status strong{font-size:13px}.main-stage{width:min(1500px,100%);margin:0 auto;padding:26px 24px 42px}.login-shell{background:linear-gradient(135deg, #2457d614, #11783d14), var(--page);place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1px solid var(--line);background:var(--panel);width:min(460px,100%);box-shadow:var(--shadow);border-radius:8px;gap:18px;padding:24px;display:grid}.login-brand{align-items:center;gap:14px;display:flex}.login-brand img{border:1px solid var(--line);object-fit:cover;border-radius:8px;width:58px;height:58px}.login-brand span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}.login-brand h1{margin:0;font-size:30px}.login-form{gap:14px;display:grid}.login-form label{color:var(--muted);text-transform:uppercase;gap:6px;font-size:12px;font-weight:800;display:grid}.login-form input{border:1px solid var(--line-strong);min-height:44px;color:var(--ink);border-radius:6px;padding:0 12px;font-size:16px}.page-title{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-title h1{margin:2px 0 0;font-size:clamp(28px,4vw,46px);line-height:1}.view-stack{gap:18px;display:grid}.headline-grid,.split-layout,.health-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);align-items:stretch;gap:18px;display:grid}.headline-panel,.cycle-panel,.board-panel,.pipeline-panel,.ticket-panel,.multi-panel,.match-card,.health-panel,.record-panel,.empty-state{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px}.headline-panel{flex-direction:column;justify-content:space-between;min-height:226px;padding:24px;display:flex}.headline-panel.compact{gap:14px;min-height:0}.headline-panel h2{max-width:760px;margin-bottom:10px;font-size:clamp(28px,4vw,54px);line-height:1.02}.headline-panel p,.sport-grid p,.match-card p,.empty-state,.decision-row p,.gate-copy p,.multi-panel li span{color:var(--muted)}.cycle-panel,.pipeline-panel,.board-panel,.ticket-panel,.multi-panel,.match-card,.health-panel,.record-panel{padding:18px}.cycle-panel h2,.pipeline-panel h2,.board-panel h2,.section-title h2,.health-panel h2{margin-bottom:0}.cycle-list,.health-list{gap:10px;margin-top:16px;display:grid}.cycle-list div,.health-list div{border-top:1px solid #edf1f5;justify-content:space-between;align-items:baseline;gap:18px;padding-top:10px;display:flex}.cycle-list strong,.health-list strong{text-align:right}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.kpi-grid.tight{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-height:116px;padding:16px}.kpi strong{overflow-wrap:anywhere;margin-top:8px;font-size:30px;line-height:1;display:block}.kpi small{color:var(--muted);margin-top:8px;font-weight:700;display:block}.kpi.good{border-left:4px solid var(--green)}.kpi.warn{border-left:4px solid var(--amber)}.kpi.bad{border-left:4px solid var(--red)}.section-title{justify-content:space-between;align-items:center;gap:14px;display:flex}.section-title button,.inline-action,.workspace-actions button,.ledger-actions button,.tab-row button,.primary-action{border:1px solid var(--line-strong);min-height:36px;color:var(--blue);cursor:pointer;background:#fff;border-radius:6px;padding:0 12px;font-weight:800}.sport-header{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;justify-content:space-between;align-items:center;gap:18px;padding:18px;display:flex}.sport-header span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}.sport-header h2{margin-bottom:4px;font-size:clamp(26px,3vw,42px)}.sport-header p{color:var(--muted);margin:0}.sport-header-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.primary-action{border-color:var(--blue);background:var(--blue);color:#fff}.secondary-action{border:1px solid var(--line-strong);min-height:36px;color:var(--blue);cursor:pointer;background:#fff;border-radius:6px;padding:0 12px;font-weight:800}.primary-action:disabled{opacity:.68;cursor:not-allowed}.inline-message{border:1px solid #d9e6f2;border-left:4px solid var(--blue);color:#344156;background:#f7fbff;border-radius:8px;padding:12px 14px;font-weight:800}.muted-action{border:1px solid var(--line);min-height:30px;color:var(--muted);text-transform:uppercase;background:#f4f6f8;border-radius:6px;place-items:center;padding:0 9px;font-size:12px;font-weight:900;display:inline-grid}.stale-panel{border-left:4px solid var(--amber)}.table-wrap{width:100%;margin-top:16px;overflow-x:auto}.market-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:920px}.decision-table{min-width:960px}.result-table{min-width:900px}.market-table th{border-bottom:1px solid var(--line);text-align:left;overflow-wrap:anywhere;padding:0 10px 10px;font-size:12px;line-height:1.25}.market-table td{vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #edf1f5;padding:12px 10px;font-size:14px}.market-table tbody tr:last-child td{border-bottom:0}.market-table td strong,.market-table td span{display:block}.market-table td span{color:var(--muted);margin-top:2px;font-size:12px}.fixture-group-row td{color:var(--ink);letter-spacing:0;background:#f3f7fa;font-size:13px;font-weight:900}.fixture-group-row td span{margin-left:8px;display:inline}.soccer-research-toolbar{border:1px solid var(--line);background:#f8fafc;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px;margin-top:12px;padding:12px;display:grid}.soccer-research-toolbar span,.soccer-research-toolbar p{color:var(--muted);font-size:12px;font-weight:800}.soccer-research-toolbar span{text-transform:uppercase;display:block}.soccer-research-toolbar strong{margin-top:3px;display:block}.soccer-research-toolbar p{margin:4px 0 0;font-weight:700}.soccer-league-filter{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.soccer-filter-stack{justify-items:end;gap:8px;display:grid}.soccer-prediction-filter button{min-width:118px}.soccer-league-filter button{border:1px solid var(--line-strong);min-width:82px;min-height:38px;color:var(--ink);background:#fff;border-radius:6px;padding:6px 9px;font-weight:900}.soccer-league-filter button span{color:var(--muted);text-transform:none;font-size:11px;display:block}.soccer-league-filter button.active{border-color:var(--blue);color:var(--blue);background:#eef3fb}.soccer-research-table th:first-child,.soccer-research-table td:first-child{width:230px}.soccer-research-table th:nth-child(2),.soccer-research-table td:nth-child(2){width:112px}.soccer-research-table th:nth-child(3),.soccer-research-table td:nth-child(3),.soccer-research-table th:nth-child(4),.soccer-research-table td:nth-child(4),.soccer-research-table th:nth-child(5),.soccer-research-table td:nth-child(5){width:76px}.soccer-research-table th:nth-child(6),.soccer-research-table td:nth-child(6),.soccer-research-table th:nth-child(8),.soccer-research-table td:nth-child(8){width:150px}.soccer-research-table th:nth-child(7),.soccer-research-table td:nth-child(7){width:125px}.history-chip{width:fit-content;min-height:26px;color:var(--ink);background:#f7fafc;border:1px solid #dbe5ef;border-radius:999px;place-items:center;padding:0 9px;font-size:12px;font-weight:900;display:inline-grid}.history-chip.limited{color:var(--amber);background:#fff7e6;border-color:#ead3a5}details.board-panel summary{cursor:pointer;list-style:none}details.board-panel summary::-webkit-details-marker{display:none}.decision-table th:first-child,.decision-table td:first-child,.result-table th:first-child,.result-table td:first-child{width:82px}.decision-table th:nth-child(2),.decision-table td:nth-child(2),.result-table th:nth-child(2),.result-table td:nth-child(2){width:110px}.decision-table th:nth-child(3),.decision-table td:nth-child(3),.result-table th:nth-child(3),.result-table td:nth-child(3){width:190px}.decision-table th:nth-child(4),.decision-table td:nth-child(4),.result-table th:nth-child(4),.result-table td:nth-child(4){width:86px}.decision-table th:nth-child(5),.decision-table td:nth-child(5),.result-table th:nth-child(5),.result-table td:nth-child(5){width:120px}.decision-table th:nth-child(6),.decision-table td:nth-child(6),.result-table th:nth-child(6),.result-table td:nth-child(6),.decision-table th:nth-child(7),.decision-table td:nth-child(7),.result-table th:nth-child(7),.result-table td:nth-child(7),.decision-table th:nth-child(8),.decision-table td:nth-child(8),.result-table th:nth-child(8),.result-table td:nth-child(8){width:78px}.decision-table th:nth-child(9),.decision-table td:nth-child(9),.result-table th:nth-child(9),.result-table td:nth-child(9){width:135px}.decision-table th:nth-child(10),.decision-table td:nth-child(10),.result-table th:nth-child(10),.result-table td:nth-child(10){width:92px}.blocker-cell{color:#4c5668;max-width:330px;font-size:13px}.blocker-cell strong{color:var(--ink);font-weight:900}.blocker-cell span{color:var(--muted);font-weight:700}.board-note,.explain-panel p{color:var(--muted);margin:10px 0 0;font-size:14px}.explain-panel{border:1px solid #dfe8ef;border-left:4px solid var(--cyan);background:#f8fbfc;border-radius:8px;margin-top:14px;padding:12px}.explain-panel strong{display:block}.home-grid,.history-strip{gap:14px;display:grid}.home-grid{grid-template-columns:minmax(0,1fr) minmax(340px,.8fr)}.history-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.record-list{gap:12px;margin-top:16px;display:grid}.record-list div,.history-strip article{border-top:1px solid #edf1f5;padding-top:12px}.record-list strong,.top-edge-card strong{color:var(--ink);display:block}.record-list p,.top-edge-card p,.history-strip p{color:var(--muted);margin:4px 0 0}.top-edge-card{gap:12px;margin-top:16px;display:grid}.workspace-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.command-line{color:#263248;overflow-wrap:anywhere;background:#f7fafc;border:1px solid #dce5ee;border-radius:6px;margin-top:12px;padding:11px 12px;font-family:Consolas,Courier New,monospace;font-size:13px;display:block}.ops-grid{grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);align-items:start;gap:14px;display:grid}.refresh-controls{grid-template-columns:minmax(230px,1fr) minmax(150px,.45fr) auto;align-items:end;gap:10px;margin-top:14px;display:grid}.refresh-controls label{color:var(--muted);text-transform:uppercase;gap:6px;font-size:12px;font-weight:900;display:grid}.refresh-controls input[type=number]{border:1px solid var(--line-strong);min-height:38px;color:var(--ink);font:inherit;border-radius:6px;padding:0 10px}.refresh-controls .check-control{border:1px solid var(--line);color:#364256;text-transform:none;background:#f9fbfc;border-radius:6px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;min-height:38px;padding:0 10px}.refresh-controls input[type=checkbox]{width:16px;height:16px;margin:0}.canary-blocker-note{color:#654a15;text-transform:uppercase;background:#fff8ea;border:1px solid #ead3a5;border-radius:6px;min-height:38px;padding:8px 10px;font-size:12px;font-weight:900}.permission-note{background:#fffaf0;border:1px solid #ead3a5;border-radius:6px;gap:2px;min-height:38px;padding:8px 10px;display:grid}.permission-note strong,.permission-note span{display:block}.permission-note span{color:var(--muted);font-size:12px;font-weight:800}.user-form{grid-template-columns:minmax(190px,1fr) minmax(170px,.8fr) minmax(150px,.55fr) minmax(130px,.45fr) auto;align-items:end;gap:10px;margin-top:14px;display:grid}.user-form label{color:var(--muted);text-transform:uppercase;gap:6px;font-size:12px;font-weight:900;display:grid}.user-form input,.user-form select,.filter-bar input,.filter-bar select{border:1px solid var(--line-strong);min-height:38px;color:var(--ink);font:inherit;background:#fff;border-radius:6px;padding:0 10px}.filter-bar{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px;display:grid}.filter-bar label{color:var(--muted);text-transform:uppercase;gap:6px;font-size:12px;font-weight:900;display:grid}.tab-row{flex-wrap:wrap;gap:8px;display:flex}.tab-row button.active{border-color:var(--blue);color:var(--blue);background:#eef3fb}.ops-health strong{overflow-wrap:anywhere;max-width:54%}.compact-row{grid-template-columns:minmax(0,1fr) minmax(160px,.45fr)}.ticket-panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px}.ticket-panel p{color:var(--muted);margin:12px 0}.ticket-match{border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5;gap:4px;padding:12px 0;display:grid}.ticket-match span{color:var(--muted);font-size:13px}.locked-summary{background:#f8fafc;border:1px solid #e0e7ef;border-radius:8px;grid-column:1/-1;padding:12px}.locked-summary span,.locked-summary p{color:var(--muted);font-size:13px}.locked-summary strong{margin:2px 0;display:block}.field-error{color:var(--amber);background:#fff8e9;border:1px solid #ead3a5;border-radius:6px;grid-column:1/-1;padding:9px 10px;font-size:13px;font-weight:900}.ticket-form{grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end;gap:10px;margin-top:14px;display:grid}.ticket-form label{color:var(--muted);text-transform:uppercase;gap:6px;font-size:12px;font-weight:900;display:grid}.ticket-form input{border:1px solid var(--line-strong);width:100%;min-height:38px;color:var(--ink);font:inherit;text-transform:none;border-radius:6px;padding:0 10px}.card-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.ledger-list{gap:12px;margin-top:16px;display:grid}.ledger-row{border-top:1px solid #edf1f5;grid-template-columns:minmax(0,1.35fr) minmax(190px,.8fr) auto;align-items:start;gap:14px;padding-top:12px;display:grid}.ledger-row span,.ledger-row small{color:var(--muted);font-size:12px;font-weight:800;display:block}.ledger-row strong{margin-top:2px;display:block}.ledger-row p{color:var(--muted);margin:3px 0}.ledger-numbers{gap:4px;display:grid}.ledger-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.ledger-actions button{min-height:30px;padding:0 9px;font-size:12px}.history-strip article{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;padding:16px}.history-strip span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800;display:block}.history-strip strong{margin-top:8px;font-size:22px;display:block}.positive{color:var(--green);font-weight:900}.negative{color:var(--red);font-weight:900}.status-tag{text-transform:uppercase;white-space:nowrap;border:1px solid #0000;border-radius:999px;place-items:center;min-height:26px;padding:2px 9px;font-size:11px;font-weight:900;display:inline-grid}.status-tag.good{color:var(--green);background:#edf8f0;border-color:#b9dbc6}.status-tag.warn{color:var(--amber);background:#fff8e9;border-color:#ead3a5}.status-tag.bad{color:var(--red);background:#fff0f0;border-color:#e7b9b9}.status-tag.neutral{border-color:var(--line);color:#4d596a;background:#f4f7fa}.pipeline-list{gap:12px;margin-top:16px;display:grid}.pipeline-list div{border-top:1px solid #edf1f5;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding-top:12px;display:grid}.pipeline-list span:last-child{color:#2d3748;font-weight:800}.sport-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.sport-grid article{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-height:150px;padding:16px}.sport-grid article.good{border-top:4px solid var(--green)}.sport-grid article.warn{border-top:4px solid var(--amber)}.sport-grid article.bad{border-top:4px solid var(--red)}.sport-grid article.neutral{border-top:4px solid var(--line-strong)}.sport-grid strong{margin:10px 0 8px;font-size:32px;line-height:1;display:block}.compact-sport-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sport-card-links{gap:7px;margin:10px 0;display:grid}.sport-card-links a{color:var(--blue);background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:7px 8px;font-size:13px;font-weight:800;text-decoration:none}.match-list,.decision-list,.multi-grid{gap:14px;display:grid}.match-card header,.multi-panel header,.decision-row,.row-heading{justify-content:space-between;gap:14px;display:flex}.match-card h3,.multi-panel h3{margin:2px 0 6px;font-size:20px}.signal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0;display:grid}.signal-grid .kpi{min-height:88px;box-shadow:none;padding:12px}.signal-grid .kpi strong{font-size:20px}.player-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.player-strip div{background:var(--panel-soft);border:1px solid #edf1f5;border-radius:6px;padding:12px}.player-strip strong,.player-strip span{display:block}.player-strip strong{margin-bottom:6px}.tag-row{flex-wrap:wrap;gap:7px;display:flex}.supporting-copy{color:var(--muted);margin:8px 0 12px}.tag-row span{border:1px solid var(--line);color:#465268;background:#f8fafc;border-radius:999px;min-height:25px;padding:4px 9px;font-size:12px;font-weight:800}.bookmaker-grid{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.bookmaker-grid span{color:#364256;background:#edf4f7;border-radius:6px;padding:5px 7px;font-size:12px;font-weight:800}.reader-summary{border:1px solid #dbe8ee;border-left:4px solid var(--cyan);background:#f8fbfc;border-radius:8px;gap:6px;margin:12px 0;padding:12px;display:grid}.reader-summary strong{color:var(--ink)}.reader-summary p{color:var(--muted);margin:0}.reader-summary.warn-note{border-left-color:var(--amber);background:#fffaf0}.model-bucket{border:1px solid #dbe8ee;border-left:4px solid var(--line-strong);background:#f8fbfc;border-radius:8px;gap:8px;margin:12px 0;padding:12px;display:grid}.model-bucket.good{border-left-color:var(--green)}.model-bucket.warn{border-left-color:var(--amber)}.model-bucket.bad{border-left-color:var(--red)}.model-bucket>span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.model-bucket strong{color:var(--ink);font-size:20px}.model-bucket p{color:#354052;margin:0}.detail-drawer{color:var(--muted);margin-top:12px;font-size:13px}.detail-drawer summary{cursor:pointer;color:var(--ink);font-weight:900}.detail-drawer p{margin:8px 0 0}.viability-note{border-left:4px solid var(--amber);color:#3f4654;background:#fff9ec;margin-top:10px;padding:10px 12px;font-weight:800}.gate-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:12px;display:grid}.gate-grid section{background:var(--panel-soft);border:1px solid #edf1f5;border-radius:8px;padding:12px}.gate-grid h4{color:var(--ink);margin:0 0 8px;font-size:14px}.gate-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.gate-list li{border-top:1px solid #e5ebf1;gap:2px;padding-top:8px;display:grid}.gate-list li:first-child{border-top:0;padding-top:0}.gate-list strong{color:var(--ink)}.gate-list span{color:var(--muted)}.decision-list{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;overflow:hidden}.decision-row{border-bottom:1px solid #edf1f5;padding:16px}.decision-row:last-child{border-bottom:0}.decision-row>div:first-child{min-width:0}.row-heading{flex-wrap:wrap;justify-content:flex-start;align-items:center}.gate-copy{border-left:3px solid #0b8ea059;gap:4px;margin-top:10px;padding-left:10px;display:grid}.gate-copy p{margin-bottom:0;font-size:13px}.decision-row dl{text-align:right;white-space:nowrap;gap:8px;margin:0;display:grid}.decision-row dd{color:var(--green);margin:2px 0 0;font-weight:900}.multi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.multi-panel ol{margin:14px 0;padding-left:20px}.multi-panel li{margin:9px 0}.multi-panel li strong,.multi-panel li span{display:block}.empty-state{padding:22px}.tennis-usable-page{max-width:1180px}.tennis-hero .tag-row{margin-top:10px}.odds-preview-panel{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(260px,1fr) minmax(280px,1.2fr) auto;align-items:center;gap:14px;padding:14px;display:grid}.odds-preview-panel span,.odds-preview-panel p{color:var(--muted);font-size:12px;font-weight:800}.odds-preview-panel h3{color:var(--ink);margin:3px 0 4px}.odds-preview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.odds-preview-grid span{background:var(--panel-soft);border:1px solid #e0e9f1;border-radius:8px;padding:8px}.odds-preview-grid strong{color:var(--ink);margin-top:3px;display:block}.odds-preview-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.odds-preview-fixtures,.odds-preview-blockers{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.odds-preview-fixtures span,.odds-preview-blockers span{color:var(--ink);background:#f7fbff;border:1px solid #d5e2ed;border-radius:8px;padding:7px 9px}.odds-preview-blockers span{color:#8b1f1f;background:#fff7f7;border-color:#f1c9c9}.soccer-fixture-list{gap:10px;display:grid}.soccer-simple-status,.soccer-compact-watchlist{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;padding:12px 14px;font-weight:900}.soccer-compact-watchlist summary{cursor:pointer}.soccer-compact-watchlist .soccer-candidate-section{box-shadow:none;margin-top:12px}.soccer-candidate-list{gap:10px;margin-top:12px;display:grid}.soccer-candidate-row{background:var(--panel-soft);border:1px solid #dfe8f1;border-radius:8px;grid-template-columns:minmax(220px,1.35fr) minmax(180px,1fr) minmax(130px,.6fr) minmax(150px,.7fr);align-items:start;gap:12px;padding:12px;display:grid}.soccer-candidate-row span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900;display:block}.soccer-candidate-row strong{color:var(--ink);overflow-wrap:anywhere;margin-top:4px;display:block}.soccer-candidate-row p{color:var(--muted);margin:4px 0 0;font-size:.86rem;line-height:1.35}.soccer-fixture-card{gap:10px;display:grid}.soccer-fixture-details{background:0 0;border:0;padding:0}.soccer-fixture-row{cursor:pointer;grid-template-columns:minmax(220px,1.35fr) minmax(160px,.95fr) minmax(180px,1fr) minmax(210px,1fr) minmax(105px,auto);align-items:center;gap:12px;list-style:none;display:grid}.soccer-fixture-row::-webkit-details-marker{display:none}.soccer-fixture-row::marker{content:""}.soccer-fixture-row>div{min-width:0}.soccer-row-label,.soccer-bookmaker-section span,.soccer-technical-grid span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900;display:block}.soccer-fixture-row h2{margin:2px 0 3px;font-size:1rem;line-height:1.2}.soccer-fixture-row strong,.soccer-bookmaker-section strong,.soccer-technical-grid strong{color:var(--ink);margin-top:4px;font-size:.96rem;line-height:1.25;display:block}.soccer-fixture-row p,.soccer-bookmaker-section p,.soccer-technical-grid p{color:var(--muted);margin:4px 0 0;font-size:.86rem;line-height:1.35}.soccer-row-action{text-align:right;justify-self:end}.soccer-row-action strong{color:var(--blue)}.soccer-details-body{border-top:1px solid #d8e1e8;margin-top:12px;padding-top:12px}.soccer-bookmaker-section,.soccer-technical-details,.soccer-technical-card-details{background:#f8fafc;border:1px solid #d8e1e8;border-radius:8px;padding:10px}.soccer-probability-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.soccer-probability-grid span,.soccer-market-summary{background:#f8fafc;border:1px solid #d8e1e8;border-radius:8px;padding:10px}.soccer-probability-grid strong,.soccer-market-summary strong{margin-top:4px;display:block}.soccer-market-summary p{color:var(--muted);margin:6px 0 0;font-size:.9rem}.soccer-market-summary span{color:var(--muted);margin-top:5px;font-size:.88rem;line-height:1.35;display:block}.odds-update-details{background:#f8fafc;border:1px solid #d8e1e8;border-radius:8px;grid-column:1/-1;padding:10px}.odds-update-details summary{cursor:pointer;color:var(--ink);font-weight:900}.odds-update-details .odds-preview-grid,.odds-update-details .odds-preview-fixtures{margin-top:10px}.soccer-technical-details summary,.soccer-technical-card-details summary,.soccer-market-details summary{cursor:pointer;color:var(--ink);font-weight:900}.soccer-technical-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:12px;display:grid}.soccer-technical-grid>div{background:#fff;border:1px solid #d8e1e8;border-radius:8px;padding:10px}.soccer-technical-grid.compact{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.soccer-research-control-copy button{margin-top:10px}.soccer-market-group-list{gap:12px;margin-top:12px;display:grid}.soccer-market-group h3{margin:0 0 8px;font-size:1rem}.soccer-market-table-wrap{overflow-x:auto}.soccer-product-market-table{min-width:980px}.soccer-product-market-table td:nth-child(n+2),.soccer-product-market-table th:nth-child(n+2){text-align:right}.soccer-product-market-table td[data-label=Model\ status]{min-width:150px}.soccer-product-market-table td[data-label=Model\ status] strong,.soccer-product-market-table td[data-label=Model\ status] span{display:block}.tennis-fixture-list,.tennis-summary-list,.tennis-market-list{gap:8px;margin-top:14px;display:grid}.tennis-top-card,.tennis-summary-item{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.tennis-top-card{padding:14px}.tennis-card-main{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.tennis-card-main span,.tennis-card-pick span,.tennis-more-predictions summary{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.tennis-card-main h3{color:var(--ink);margin:4px 0;font-size:clamp(18px,2vw,23px)}.tennis-card-main p,.tennis-card-reason,.tennis-source-note,.tennis-performance-link{color:var(--muted);margin:4px 0 0;font-size:13px}.tennis-card-pick{grid-template-columns:1.3fr repeat(4,minmax(104px,.5fr));gap:8px;margin-top:12px;display:grid}.tennis-card-pick>div{background:var(--panel-soft);border:1px solid #dfe8f1;border-radius:8px;padding:10px}.tennis-card-pick strong{color:var(--ink);overflow-wrap:anywhere;margin-top:4px;display:block}.tennis-card-reason{max-width:820px}.tennis-more-predictions{margin-top:10px}.tennis-more-predictions summary{cursor:pointer;list-style:none}.tennis-more-predictions summary::-webkit-details-marker{display:none}.tennis-source-note,.tennis-performance-link{margin-top:12px}.tennis-performance-link button{margin-left:8px}.tennis-market-line,.tennis-history-line,.tennis-summary-item summary,.tennis-compact-footnote{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.tennis-fixture-summary{cursor:pointer;grid-template-columns:118px 190px minmax(190px,1.4fr) 70px 145px 132px 145px 104px;align-items:center;gap:10px;min-height:78px;padding:9px 12px;list-style:none;display:grid}.tennis-fixture-summary::-webkit-details-marker{display:none}.tennis-fixture-summary>*{min-width:0}.tennis-fixture-summary span,.tennis-market-line span,.tennis-history-line span,.tennis-summary-item summary span{color:var(--muted);font-size:12px;font-weight:900}.tennis-fixture-summary strong,.tennis-market-line strong,.tennis-history-line strong,.tennis-summary-item summary strong{color:var(--ink);margin-top:2px;display:block}.tennis-fixture-summary small,.tennis-market-line p,.tennis-summary-item summary span,.tennis-compact-footnote{color:var(--muted);margin-top:3px;font-size:12px;display:block}.tennis-match,.tennis-probability,.tennis-odds-status,.tennis-surface,.tennis-expand-label{overflow-wrap:anywhere}.tennis-expanded-analysis{background:#fff;border-top:1px solid #e4ebf2;padding:12px}.tennis-analysis-overview,.tennis-probability-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.tennis-analysis-overview>div,.tennis-probability-strip>div{background:var(--panel-soft);border:1px solid #dfe8f1;border-radius:8px;padding:10px}.tennis-analysis-overview span,.tennis-probability-strip span{color:var(--muted);font-size:12px;font-weight:900}.tennis-analysis-overview strong,.tennis-probability-strip strong{color:var(--ink);margin-top:3px;display:block}.tennis-analysis-overview p,.tennis-probability-strip p{color:var(--muted);margin:4px 0 0;font-size:13px}.tennis-summary-item summary{cursor:pointer;color:var(--ink);padding:12px;font-weight:900}.tennis-market-line,.tennis-history-line{background:#fff;border:1px solid #e4ebf2;border-radius:8px;padding:12px}.tennis-market-line>div:first-child,.tennis-history-line>*{min-width:0}.tennis-market-numbers{text-align:right;justify-items:end;gap:6px;min-width:240px;display:grid}.tennis-market-numbers span{color:var(--ink);text-transform:none;font-size:13px}.tennis-history-line{grid-template-columns:1fr 1.2fr auto 1.2fr;align-items:center;display:grid}.tennis-compact-footnote{border-top:1px solid #e4ebf2;margin-top:10px;padding-top:10px}.tennis-summary-item summary{list-style-position:inside}.model-performance-panel{gap:16px;display:grid}.performance-note{flex-wrap:wrap;gap:8px;display:flex}.performance-note span{color:var(--muted);border:1px solid #dbe6ef;border-radius:8px;padding:7px 9px;font-size:12px;font-weight:800}.compact-table-wrap{overflow-x:auto}.compact-data-table{border-collapse:collapse;width:100%;min-width:560px}.compact-data-table th,.compact-data-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #e4ebf2;padding:10px 8px}.compact-data-table th{color:var(--muted);text-transform:uppercase;font-size:11px}.performance-details summary{cursor:pointer;font-weight:900}.performance-split-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.market-performance-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.market-performance-card{gap:12px;display:grid}.section-title.slim{align-items:flex-start}.mini-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mini-kpi-grid .kpi{min-height:98px;padding:12px}.mini-kpi-grid .kpi strong{font-size:24px}.compact-card{padding:12px}.compact-card h3{margin:0 0 10px;font-size:15px}.mini-row{border-bottom:1px solid #edf2f6;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;padding:8px 0;display:grid}.mini-row span,.mini-row small{overflow-wrap:anywhere;min-width:0}.mini-row small{color:var(--muted);grid-column:1/-1}@media (width<=1180px){.site-header,.headline-grid,.split-layout,.health-layout,.home-grid,.ops-grid,.multi-grid,.ticket-form,.user-form,.refresh-controls,.ledger-row{grid-template-columns:1fr}.header-status{text-align:left;justify-self:start}.kpi-grid,.mini-kpi-grid,.odds-preview-grid,.sport-grid,.signal-grid,.history-strip,.gate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.odds-preview-panel,.soccer-fixture-row{grid-template-columns:1fr}.soccer-candidate-row{grid-template-columns:repeat(2,minmax(0,1fr))}.soccer-row-action,.soccer-filter-stack{text-align:left;justify-content:start;justify-self:start;justify-items:stretch}.tennis-card-pick{grid-template-columns:repeat(2,minmax(0,1fr))}.tennis-probability,.tennis-odds-status,.tennis-expand-label{display:none}.tennis-analysis-overview,.tennis-probability-strip,.performance-split-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.site-header,.main-stage{padding-left:14px;padding-right:14px}.main-stage,.view-stack,.sport-header,.kpi-grid,.board-panel,.soccer-research-toolbar,.soccer-research-table-wrap{width:100%;min-width:0;max-width:100%}.site-header nav{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.site-header nav a{padding:0 8px}.page-title,.section-title,.match-card header,.multi-panel header,.decision-row,.card-actions,.ledger-actions{justify-content:stretch;display:grid}.kpi-grid,.odds-preview-grid,.sport-grid,.signal-grid,.player-strip,.history-strip,.gate-grid{grid-template-columns:1fr}.headline-panel,.cycle-panel,.pipeline-panel,.board-panel,.ticket-panel,.multi-panel,.match-card,.health-panel,.record-panel{padding:14px}.decision-row dl{text-align:left;white-space:normal}.soccer-research-toolbar{grid-template-columns:1fr}.soccer-league-filter{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;display:grid}.soccer-league-filter button{width:100%}.soccer-probability-grid{grid-template-columns:1fr}.soccer-product-market-table{min-width:0}.table-wrap{overflow-x:visible}.market-table,.market-table thead,.market-table tbody,.market-table tr,.market-table td{width:100%;min-width:0;display:block}.market-table thead{display:none}.market-table tr{border:1px solid var(--line);background:#fff;border-radius:8px;margin:0 0 12px;padding:8px}.market-table td{border-bottom:1px solid #edf1f5;grid-template-columns:116px minmax(0,1fr);gap:10px;padding:8px;display:grid}.market-table td:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;overflow-wrap:anywhere;font-size:11px;font-weight:900}.market-table td:last-child{border-bottom:0}.soccer-research-table th:nth-child(n),.soccer-research-table td:nth-child(n){width:100%}.soccer-research-table td{grid-template-columns:102px minmax(0,1fr);width:100%}.odds-preview-actions,.soccer-candidate-row,.tennis-card-main,.tennis-card-pick,.tennis-market-line,.tennis-summary-item summary{justify-content:stretch;display:grid}.tennis-card-pick,.soccer-candidate-row,.tennis-analysis-overview,.tennis-probability-strip,.performance-split-grid,.tennis-history-line,.market-performance-grid,.performance-split-grid{grid-template-columns:1fr}.compact-table-wrap{overflow-x:visible}.compact-data-table,.compact-data-table thead,.compact-data-table tbody,.compact-data-table tr,.compact-data-table td{width:100%;min-width:0;display:block}.compact-data-table thead{display:none}.compact-data-table tr{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;padding:8px}.compact-data-table td{white-space:normal;grid-template-columns:112px minmax(0,1fr);display:grid}.compact-data-table td:first-child:before{content:"Band"}.compact-data-table td:nth-child(2):before{content:"N"}.compact-data-table td:nth-child(3):before{content:"Confidence"}.compact-data-table td:nth-child(4):before{content:"Accuracy"}.compact-data-table td:nth-child(5):before{content:"Gap"}.tennis-fixture-summary{min-height:92px}.tennis-probability,.tennis-odds-status,.tennis-expand-label{display:block}.tennis-market-numbers{text-align:left;justify-items:start;min-width:0}}
