.odds-comparator{display:grid;gap:16px}.odds-toolbar{display:grid;grid-template-columns:2fr repeat(3,minmax(150px,1fr));gap:12px}.odds-toolbar .field{margin:0}.odds-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.odds-meta #oddsResultCount{color:var(--muted);margin-right:auto}.odds-coverage-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.odds-coverage{display:flex;align-items:center;gap:8px;min-width:0;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035)}.odds-coverage.missing{opacity:.55}.odds-coverage b{overflow:hidden;text-overflow:ellipsis}.odds-coverage small{margin-left:auto;color:var(--muted);white-space:nowrap}.odds-book-brand{position:relative;display:inline-grid;place-items:center;flex:0 0 auto;width:34px;height:30px;border:1px solid color-mix(in srgb,var(--line) 78%,transparent);border-radius:8px;background:#fff;overflow:hidden}.odds-book-brand.mini{width:25px;height:22px;border-radius:6px}.odds-book-logo{position:relative;z-index:2;width:100%;height:100%;padding:3px;object-fit:contain;background:#fff}.odds-book-logo-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#06351f;background:#e8f6ed;font-size:.62rem;font-weight:950}.odds-events{display:grid;gap:14px}.odds-event-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--panel)}.odds-event-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);background:linear-gradient(110deg,rgba(0,255,112,.055),transparent 65%)}.odds-event-card h2{margin:3px 0;font-size:1.18rem}.odds-event-card header p{display:flex;align-items:center;gap:7px;margin:0;color:var(--muted)}.odds-event-houses{display:inline-flex;gap:4px}.odds-event-toggle,.odds-player-toggle-button{border:1px solid var(--line);border-radius:9px;background:transparent;color:inherit;font:inherit;font-size:.68rem;font-weight:950;letter-spacing:.04em;cursor:pointer}.odds-event-toggle{min-width:86px;padding:8px 10px}.odds-event-toggle:hover,.odds-player-toggle-button:hover{border-color:var(--green);color:var(--green)}.odds-player-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:13px}.odds-player-list[hidden],.odds-player-detail[hidden]{display:none!important}.odds-player-card{min-width:0;border:1px solid color-mix(in srgb,var(--line) 92%,transparent);border-radius:14px;background:color-mix(in srgb,var(--panel) 88%,#718076 12%);overflow:hidden;box-shadow:0 5px 14px rgba(0,0,0,.05)}.odds-player-card.is-expanded{border-color:color-mix(in srgb,var(--green) 55%,var(--line));background:color-mix(in srgb,var(--panel) 94%,var(--green) 6%)}.odds-player-toggle{width:100%;display:grid;grid-template-columns:minmax(175px,1.35fr) minmax(112px,.82fr) minmax(112px,.82fr) 72px;gap:10px;align-items:center;padding:12px}.odds-player-identity{display:flex;align-items:center;gap:10px;min-width:0}.odds-player-identity>span:last-child{display:grid;gap:3px;min-width:0}.odds-player-identity strong,.odds-player-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.odds-player-identity strong{font-size:.94rem}.odds-player-identity small{color:var(--muted);font-size:.72rem}.odds-club-shield{display:grid;place-items:center;flex:0 0 auto;width:42px;height:46px;border:1px solid color-mix(in srgb,var(--green) 32%,var(--line));clip-path:polygon(50% 0,94% 15%,88% 72%,50% 100%,12% 72%,6% 15%);background:linear-gradient(145deg,#d8eee0,#8cb99e);color:#06351f;font-size:.67rem;font-weight:950}.odds-club-shield.has-image{background:#fff}.odds-club-shield img{width:34px;height:36px;object-fit:contain}.odds-player-market{display:grid;gap:3px;min-width:0}.odds-player-market em{font-size:.61rem;font-style:normal;font-weight:950;letter-spacing:.1em;color:var(--muted)}.odds-market-best{display:flex;gap:5px;align-items:center;min-width:0}.odds-market-best b{font-size:1.02rem;color:var(--green)}.odds-market-best i{overflow:hidden;text-overflow:ellipsis;font-size:.74rem;font-style:normal;white-space:nowrap}.odds-player-market small{color:var(--muted);font-size:.66rem}.odds-player-toggle-button{padding:7px 5px}.odds-player-detail{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 11px 11px}.odds-market-detail{padding:10px;border:1px solid var(--line);border-radius:11px;background:rgba(0,0,0,.12)}.odds-market-detail h4{margin:0 0 7px;font-size:.82rem}.odds-quote{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-top:1px solid var(--line)}.odds-quote>span{display:flex;align-items:center;gap:7px;min-width:0}.odds-quote>span b{overflow:hidden;text-overflow:ellipsis}.odds-quote small{padding:2px 5px;border-radius:999px;background:rgba(0,255,112,.12);font-size:.6rem}.odds-quote.best strong,.odds-quote.best>span>b{color:var(--green)}.odds-empty{padding:30px;text-align:center;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}.odds-empty strong{display:block;color:var(--text);margin-bottom:5px}.odds-empty.error{border-color:#a33}.odds-empty-market{color:var(--muted)}
@media(max-width:1180px){.odds-player-list{grid-template-columns:1fr}.odds-coverage-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.odds-toolbar{grid-template-columns:1fr 1fr}.odds-player-toggle{grid-template-columns:minmax(170px,1.3fr) 1fr 1fr}.odds-player-toggle-button{grid-column:1/-1}.odds-event-summary{align-items:flex-start}}
@media(max-width:680px){.odds-toolbar,.odds-coverage-row{grid-template-columns:1fr}.odds-event-summary{padding:13px}.odds-event-toggle{min-width:72px}.odds-player-list{padding:8px}.odds-player-toggle{grid-template-columns:1fr 1fr}.odds-player-identity{grid-column:1/-1}.odds-player-toggle-button{grid-column:1/-1}.odds-player-detail{grid-template-columns:1fr}.odds-coverage small{margin-left:auto}}

/* v1.3: ligas, jogos e jogadores em grades progressivas. */
.odds-events{min-width:0}.odds-league-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.odds-league-card{min-width:0;border:1px solid color-mix(in srgb,var(--line) 88%,var(--green) 12%);border-radius:18px;overflow:hidden;background:color-mix(in srgb,var(--panel) 96%,#00170d 4%);box-shadow:0 10px 26px rgba(0,0,0,.06)}.odds-league-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:linear-gradient(110deg,rgba(0,255,112,.09),transparent 72%)}.odds-league-summary h2{margin:3px 0 2px;font-size:1.06rem}.odds-league-summary p{margin:0;color:var(--muted);font-size:.76rem}.odds-league-toggle{min-width:84px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:transparent;color:inherit;font:inherit;font-size:.68rem;font-weight:950;letter-spacing:.04em;cursor:pointer}.odds-league-toggle:hover{border-color:var(--green);color:var(--green)}.odds-game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:11px}.odds-game-grid[hidden]{display:none!important}
.odds-event-card{min-width:0;border-radius:13px;background:color-mix(in srgb,var(--panel) 88%,#4d6659 12%)}.odds-event-card.is-expanded{grid-column:1/-1;border-color:color-mix(in srgb,var(--green) 52%,var(--line));background:color-mix(in srgb,var(--panel) 95%,var(--green) 5%)}.odds-event-summary{padding:12px}.odds-event-card h3{margin:0 0 5px;font-size:.92rem;line-height:1.2}.odds-event-card header p{flex-wrap:wrap;font-size:.7rem}.odds-event-toggle{min-width:76px;padding:7px 8px}.odds-player-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:10px;border-top:1px solid var(--line)}
.odds-player-card{border-radius:12px;background:color-mix(in srgb,var(--panel) 84%,#718076 16%)}.odds-player-toggle{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:11px}.odds-player-identity{grid-column:1/-1}.odds-player-toggle-button{grid-column:1/-1}.odds-player-detail{gap:8px;padding:0 10px 10px}
@media(max-width:1400px){.odds-league-grid{grid-template-columns:1fr}.odds-player-toggle{grid-template-columns:minmax(150px,1.3fr) minmax(100px,1fr) minmax(100px,1fr) 68px}.odds-player-identity,.odds-player-toggle-button{grid-column:auto}}
@media(max-width:1000px){.odds-toolbar{grid-template-columns:1fr 1fr}.odds-game-grid{grid-template-columns:1fr}.odds-event-card.is-expanded{grid-column:auto}.odds-coverage-row{grid-template-columns:repeat(2,1fr)}.odds-player-toggle{grid-template-columns:repeat(2,minmax(0,1fr))}.odds-player-identity,.odds-player-toggle-button{grid-column:1/-1}}
@media(max-width:680px){.odds-toolbar,.odds-coverage-row,.odds-player-list{grid-template-columns:1fr}.odds-league-summary,.odds-event-summary{align-items:flex-start;padding:12px}.odds-league-toggle,.odds-event-toggle{min-width:70px}.odds-game-grid,.odds-player-list{padding:8px}.odds-player-detail{grid-template-columns:1fr}}

/* v1.4: identidade visual da liga e nomes canônicos sem alterar os dados coletados. */
.odds-league-brand{display:flex;align-items:center;gap:11px;min-width:0}.odds-league-brand>img,.odds-league-brand>span{width:42px;height:42px;flex:0 0 42px;border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:10px;background:#fff;object-fit:contain;padding:4px}.odds-league-brand>span{display:grid;place-items:center;background:linear-gradient(145deg,#d8eee0,#8cb99e);color:#06351f;font-size:.65rem;font-weight:950}.odds-league-brand>div{min-width:0}.odds-league-brand h2{overflow:hidden;text-overflow:ellipsis}
