:root{--bg: #fafafa;--card: #ffffff;--border: #e5e5e5;--text: #1a1a1a;--muted: #888;--accent: #4363d8}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text)}button{cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:6px;padding:8px 14px;font-size:14px}button.ghost{background:transparent;color:var(--text);border-color:var(--border)}button:disabled{opacity:.6;cursor:default}input{padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px}.muted{color:var(--muted)}.error{color:#c0392b;font-size:13px}.error.banner{padding:10px;background:#fdecea;border-radius:6px;margin:10px 16px}.auth-wrap{min-height:100vh;display:grid;place-items:center}.auth-card{display:flex;flex-direction:column;gap:12px;width:320px;padding:28px;background:var(--card);border:1px solid var(--border);border-radius:12px}.auth-card h1{margin:0;font-size:22px}.dash{max-width:1320px;margin:0 auto;padding:12px 16px}.dash-header{display:flex;justify-content:space-between;align-items:center}.dash-header h1{font-size:20px;margin:8px 0}.dash-actions{display:flex;align-items:center;gap:12px}.results-strip{display:flex;gap:8px;overflow-x:auto;padding:8px 0;margin-bottom:8px}.result-pill{white-space:nowrap;font-size:12px;background:var(--card);border:1px solid var(--border);border-radius:999px;padding:4px 10px}.dash-grid{display:grid;grid-template-columns:1fr 340px;gap:16px}@media (max-width: 980px){.dash-grid{grid-template-columns:1fr}}.tabs{display:flex;gap:6px;margin-bottom:8px}.tabs button{background:transparent;color:var(--muted);border-color:var(--border)}.tabs button.active{color:#fff;background:var(--accent);border-color:var(--accent)}.chart-card,.leaderboard-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px}.chart-card h2,.leaderboard-card h2{font-size:14px;margin:0 0 10px;font-weight:600}.leaderboard{width:100%;border-collapse:collapse;font-size:13px}.leaderboard th{text-align:left;color:var(--muted);font-weight:500;padding:4px 6px}.leaderboard td{padding:6px;border-top:1px solid var(--border)}.leaderboard td.num{text-align:right}.leaderboard tr.clickable{cursor:pointer}.leaderboard tr.clickable:hover{background:#f4f6ff}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.up{color:#2ecc71}.down{color:#e74c3c}.flat{color:var(--muted)}.popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:grid;place-items:center;z-index:50}.popover{position:relative;width:min(560px,92vw);max-height:86vh;overflow:auto;background:var(--card);border-radius:12px;padding:20px}.popover-close{position:absolute;top:10px;right:10px;background:transparent;border:none;color:var(--muted);font-size:22px;padding:0 6px}.popover h3{margin:0 0 4px}.popover-totals{display:flex;gap:16px;margin-bottom:12px;font-size:14px}.breakdown-grid{display:grid;gap:4px;margin-bottom:12px}.breakdown-row{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;border-bottom:1px dashed var(--border)}.picks-list{display:flex;flex-direction:column;gap:8px}.picks-section{display:flex;flex-wrap:wrap;gap:6px}.pick-chip{font-size:12px;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:3px 8px}.small{font-size:12px}.pill{font-size:11px;border:1px solid var(--border);border-radius:999px;padding:1px 8px}.muted.banner{padding:10px 16px}.groups-section{margin-top:8px}.groups-section>h2,.bracket-section>h2{font-size:16px;margin:18px 0 10px}.groups-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.group-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px}.group-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.group-head h3{margin:0;font-size:14px}.cross{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}.cross th,.cross td{border:1px solid var(--border);text-align:center;padding:4px 2px}.cross th.corner{background:transparent;border:none}.cross th.col .abbr{font-weight:600;color:var(--muted)}.cross th.rowhead{text-align:left;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:0;width:40%;padding-left:6px}.cross th.rowhead .pos{display:inline-block;min-width:15px;text-align:center;color:var(--muted);font-size:11px;border:1px solid var(--border);border-radius:4px;margin-right:4px}.cross td.cell{font-variant-numeric:tabular-nums;font-weight:600;color:#15331f}.cross td.cell.win{background:#c8eccb}.cross td.cell.loss{background:#f5cdcd;color:#4a1414}.cross td.cell.draw{background:#fde6c4;color:#5a3c0a}.cross td.diag{background:repeating-linear-gradient(45deg,#f2f2f2,#f2f2f2 4px,#fafafa 4px,#fafafa 8px)}.cross td.empty{background:var(--bg)}.bracket{display:flex;align-items:stretch;gap:10px;overflow-x:auto;padding:8px 2px 14px}.bracket-col{display:flex;flex-direction:column;justify-content:space-around;gap:8px;min-width:132px}.bracket-col:before{content:attr(data-round);display:block;text-align:center;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px}.bracket-col.col-final{min-width:168px;justify-content:center}.bracket-match{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden;font-size:11px}.slot{padding:4px 7px;display:flex}.slot.away{border-top:1px solid var(--border)}.slot.tbd .slot-team{color:var(--muted);font-style:italic}.slot.advancer{background:#eef4ff}.slot.advancer .slot-team{font-weight:700;color:var(--accent)}.slot-team{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bracket-score{display:block;text-align:center;font-size:10px;color:var(--muted);border-top:1px dashed var(--border);padding:1px 0}.bracket-match.right{text-align:right}.bracket-match.right .slot{flex-direction:row-reverse}.final-wrap{display:flex;flex-direction:column;align-items:stretch;gap:6px;border:1px solid var(--accent);border-radius:12px;padding:10px;background:#f7f9ff}.final-label{text-align:center;font-weight:700;font-size:13px}.third-label{text-align:center;font-size:10px;text-transform:uppercase;color:var(--muted);margin-top:6px}.champion{text-align:center;font-weight:700;font-size:13px}.cross td.cell.predicted{background:#fff6cc;color:#5a4a0a;font-style:italic}.slot.predicted{background:#fff6cc}.slot.predicted.advancer{background:#fdeeaa}.slot.predicted .slot-team{color:#6a5400;font-style:italic}.bracket-score.predicted{color:#8a6d00;font-style:italic}.champion.predicted{background:#fff6cc;border-radius:6px}.legend{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:6px 0 2px}.legend-swatch{width:14px;height:14px;border-radius:3px;border:1px solid var(--border);display:inline-block;margin-left:10px}.legend-swatch.real{background:var(--card)}.legend-swatch.predicted{background:#fff6cc}
