:root{--bg:#0f1420;--card:#171e2e;--text:#e8ecf4;--muted:#8a93a6;--accent:#4f7cff;--ok:#2fae66;--warn:#c98a1f;--err:#d9534f;--border:#232c40;}
*{box-sizing:border-box;}
body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);}
nav{display:flex;align-items:center;gap:1.2rem;padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:var(--card);}
nav a, .link-btn{color:var(--text);text-decoration:none;background:none;border:none;font:inherit;cursor:pointer;opacity:.85;}
nav a:hover, .link-btn:hover{opacity:1;text-decoration:underline;}
.brand{font-weight:600;margin-right:auto;}
.wrap{max-width:900px;margin:0 auto;padding:1.5rem;}
.disclaimer{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:.9rem 1.1rem;font-size:.9rem;color:var(--muted);}
.search-box input{width:100%;padding:.8rem 1rem;font-size:1.05rem;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--text);margin:1rem 0;}
.provider-group{margin-bottom:1rem;}
.provider-group h3{font-size:.9rem;color:var(--muted);margin:.5rem 0;}
.team-chips{display:flex;flex-wrap:wrap;gap:.5rem;}
.chip{background:var(--card);border:1px solid var(--border);color:var(--text);padding:.4rem .8rem;border-radius:999px;cursor:pointer;font-size:.9rem;}
.chip:hover{border-color:var(--accent);}
.hidden{display:none;}
.fixture-row,.saved-row,.market{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:.9rem 1.1rem;margin-bottom:.7rem;}
.muted{color:var(--muted);}
.small{font-size:.85rem;}
.view-odds{margin-top:.5rem;background:var(--accent);color:#fff;border:none;padding:.4rem .9rem;border-radius:6px;cursor:pointer;}
.outcomes{display:flex;flex-direction:column;gap:.3rem;margin-top:.4rem;}
.outcome{display:flex;justify-content:space-between;font-size:.95rem;}
.save-row{display:flex;flex-direction:column;gap:.5rem;margin-top:.8rem;}
.save-row textarea{min-height:60px;padding:.6rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);}
.save-row button, form button, .vote-row button, .comment-btn{background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;}
.vote-row{display:flex;gap:.5rem;margin-top:.5rem;}
.comment-row{display:flex;gap:.5rem;margin-top:.5rem;}
.comment-input{flex:1;padding:.4rem .6rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);}
.comment{font-size:.85rem;color:var(--muted);border-top:1px solid var(--border);padding-top:.3rem;margin-top:.3rem;}
.auth-page{display:flex;align-items:center;justify-content:center;height:100vh;}
.auth-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:2rem;width:320px;}
.auth-card label{display:block;margin-bottom:.9rem;font-size:.9rem;}
.auth-card input{width:100%;padding:.5rem;margin-top:.3rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);}
.auth-card button{width:100%;padding:.6rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;}
.error{background:rgba(217,83,79,.15);border:1px solid var(--err);color:#ffb3b0;padding:.6rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem;}
.ok{background:rgba(47,174,102,.15);border:1px solid var(--ok);color:#9be8bb;padding:.6rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem;}
.provider-row{border-bottom:1px solid var(--border);padding:.8rem 0;}
.provider-name{margin-bottom:.4rem;}
.badge{font-size:.7rem;padding:.15rem .5rem;border-radius:999px;margin-left:.5rem;}
.ok-badge{background:rgba(47,174,102,.2);color:#9be8bb;}
.warn-badge{background:rgba(201,138,31,.2);color:#f0c674;}
.provider-row input{width:100%;padding:.5rem;margin-top:.3rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);}
.sport-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;}
.sport-tab{background:var(--card);border:1px solid var(--border);color:var(--muted);padding:.4rem .9rem;border-radius:999px;cursor:pointer;font-size:.85rem;}
.sport-tab.active{color:#fff;border-color:var(--accent);background:var(--accent);}
.view-toggle{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap;}
.toggle-btn{background:var(--card);border:1px solid var(--border);color:var(--muted);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;}
.toggle-btn.active{color:#fff;border-color:var(--accent);background:var(--accent);}
.view-toggle input{padding:.3rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);}
.league-heading{font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:1.2rem 0 .5rem;}
.team-link{cursor:pointer;}
.team-link:hover{color:var(--accent);text-decoration:underline;}
.outcome.below-threshold{opacity:.45;}
.date-heading{margin:1.5rem 0 .3rem;padding-bottom:.3rem;border-bottom:1px solid var(--border);}
.league-heading{margin-top:.8rem;}
.context-panel{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:.8rem 1rem;margin-bottom:1rem;}
.context-note{margin-bottom:.5rem;font-style:italic;}
.context-row{font-size:.9rem;margin-bottom:.3rem;}
#loadMoreBtn{width:100%;margin-top:.5rem;}
