@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800&family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}img{display:block;max-width:100%}button{cursor:pointer;font:inherit;border:none}a{text-decoration:none}html,body{overflow-x:hidden;max-width:100vw}:root{--bg: #0f1419;--surface: #1a1f2e;--surface-2: #222837;--surface-3: #2a3040;--border: #2d3548;--border-dim: #1e2535;--text: #e8eaed;--text-2: #9aa5b4;--text-3: #5c6a7c;--gold: #f5c842;--gold-dim: rgba(245, 200, 66, .12);--gold-glow: 0 0 20px rgba(245, 200, 66, .3);--gold-glow-lg: 0 0 30px rgba(245, 200, 66, .5);--green: #4ade80;--green-dim: rgba(74, 222, 128, .12);--amber: #fbbf24;--amber-dim: rgba(251, 191, 36, .12);--red: #f87171;--red-dim: rgba(248, 113, 113, .12);--blue: #60a5fa;--blue-dim: rgba(96, 165, 250, .12);--hard: #60a5fa;--clay: #d97706;--grass: #4ade80;--carpet: #a78bfa;--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.5);--shadow-lg: 0 8px 32px rgba(0,0,0,.7);--font-display: "Barlow Condensed", sans-serif;--font-body: "IBM Plex Sans", sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px}body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.app-wrapper{min-height:100vh;display:flex;flex-direction:column}.site-header{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.header-inner{max-width:1280px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;gap:2rem;height:56px}.site-logo{font-family:var(--font-display);font-size:1.4rem;font-weight:800;letter-spacing:.03em;color:var(--text);white-space:nowrap;text-transform:uppercase}.site-logo span{color:var(--gold)}.site-nav{display:flex;align-items:center;gap:.25rem;flex:1}.nav-link{padding:.35rem .85rem;border-radius:6px;font-family:var(--font-display);font-size:.9rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);transition:all .15s;white-space:nowrap}.nav-link:hover{color:var(--text);background:var(--surface-2)}.nav-link.active{color:var(--gold);background:var(--gold-dim)}.page-content{max-width:1280px;margin:0 auto;padding:2rem 1.5rem;width:100%;flex:1}.page-header{margin-bottom:2rem}.page-title{font-family:var(--font-display);font-size:2rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--text);line-height:1.1}.page-subtitle{font-size:.9rem;color:var(--text-2);margin-top:.4rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem}.match-card{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border);border-left:4px solid var(--border);padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.match-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.match-card.tier-SUPER{border-left-color:var(--gold);box-shadow:var(--gold-glow-lg);animation:pulse-gold 3s ease infinite}.match-card.tier-GOLD{border-left-color:var(--gold);box-shadow:var(--gold-glow)}.match-card.tier-BET{border-left-color:var(--green)}.match-card.tier-LEAN{border-left-color:var(--amber)}.match-card.tier-PASS{border-left-color:var(--border);opacity:.7}@keyframes pulse-gold{0%,to{box-shadow:0 0 30px #f5c84280}50%{box-shadow:0 0 50px #f5c842cc}}.card-tier-badge{position:absolute;top:1rem;right:1rem;font-family:var(--font-display);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .55rem;border-radius:4px}.badge-SUPER{background:var(--gold);color:#0f1419}.badge-GOLD{background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold)}.badge-BET{background:var(--green-dim);color:var(--green);border:1px solid var(--green)}.badge-LEAN{background:var(--amber-dim);color:var(--amber);border:1px solid var(--amber)}.badge-PASS{background:var(--surface-2);color:var(--text-3)}.card-players{display:flex;align-items:center;gap:.75rem;padding-right:5rem}.player-block{flex:1}.player-name{font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text);line-height:1.1}.player-name.favored{color:var(--gold)}.player-rank{font-size:.78rem;color:var(--text-2);margin-top:.15rem}.vs-divider{font-family:var(--font-display);font-size:.75rem;font-weight:700;color:var(--text-3);text-transform:uppercase;flex-shrink:0}.card-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.surface-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:4px;font-size:.75rem;font-weight:600;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2)}.surface-badge.Hard{border-color:var(--hard);color:var(--hard)}.surface-badge.Clay{border-color:var(--clay);color:var(--clay)}.surface-badge.Grass{border-color:var(--grass);color:var(--grass)}.match-time{font-size:.75rem;color:var(--text-3)}.card-odds{display:flex;gap:.5rem}.odds-chip{flex:1;background:var(--surface-2);border-radius:var(--radius-sm);padding:.4rem .6rem;text-align:center}.odds-chip .odds-label{font-size:.65rem;color:var(--text-3);text-transform:uppercase;font-family:var(--font-display);letter-spacing:.05em}.odds-chip .odds-value{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--text);margin-top:.1rem}.odds-chip .odds-value.positive{color:var(--green)}.odds-chip .odds-value.negative{color:var(--text)}.card-score-row{display:flex;align-items:center;gap:.75rem}.score-number{font-family:var(--font-display);font-size:2rem;font-weight:800;line-height:1;min-width:2.5rem;color:var(--text)}.score-bar-track{flex:1;height:6px;background:var(--surface-3);border-radius:3px;overflow:hidden}.score-bar-fill{height:100%;border-radius:3px;background:var(--border);transition:width .6s ease}.tier-SUPER .score-bar-fill,.tier-GOLD .score-bar-fill{background:var(--gold)}.tier-BET .score-bar-fill{background:var(--green)}.tier-LEAN .score-bar-fill{background:var(--amber)}.signals-list{display:flex;flex-direction:column;gap:.45rem}.signal-row{display:flex;align-items:center;gap:.5rem}.signal-name{font-size:.7rem;font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);width:5.5rem;flex-shrink:0}.signal-bar-track{flex:1;height:4px;background:var(--surface-3);border-radius:2px;overflow:hidden}.signal-bar-fill{height:100%;border-radius:2px;background:var(--blue)}.signal-score{font-family:var(--font-display);font-size:.8rem;font-weight:700;color:var(--text-2);width:2.2rem;text-align:right;flex-shrink:0}.signal-label{font-size:.65rem;color:var(--text-3);margin-top:.15rem;padding-left:6rem;display:none}.match-card:hover .signal-label{display:block}.card-favors{display:flex;align-items:center;gap:.5rem;padding-top:.5rem;border-top:1px solid var(--border-dim)}.favors-label{font-size:.7rem;color:var(--text-3);font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase}.favors-player{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--gold);text-transform:uppercase}.favors-conf{font-size:.7rem;color:var(--text-3);margin-left:auto}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem;color:var(--text-2)}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-2)}.empty-state .emoji{font-size:3rem;margin-bottom:1rem}.empty-state h3{font-family:var(--font-display);font-size:1.3rem;font-weight:700;text-transform:uppercase;margin-bottom:.5rem}.empty-state p{font-size:.9rem;color:var(--text-3)}.filters-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-btn{padding:.3rem .8rem;border-radius:6px;font-family:var(--font-display);font-size:.8rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);transition:all .15s}.filter-btn:hover{border-color:var(--text-2);color:var(--text)}.filter-btn.active{background:var(--gold-dim);border-color:var(--gold);color:var(--gold)}.filter-btn.green.active{background:var(--green-dim);border-color:var(--green);color:var(--green)}.filter-btn.amber.active{background:var(--amber-dim);border-color:var(--amber);color:var(--amber)}.spacer{flex:1}.refresh-btn{padding:.3rem .8rem;border-radius:6px;font-family:var(--font-display);font-size:.8rem;font-weight:600;text-transform:uppercase;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);transition:all .15s}.refresh-btn:hover{border-color:var(--gold);color:var(--gold)}.search-box{display:flex;gap:.75rem;margin-bottom:2rem;max-width:480px}.search-input{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:.65rem 1rem;font-size:.95rem;font-family:var(--font-body);outline:none;transition:border-color .15s}.search-input:focus{border-color:var(--gold)}.search-input::placeholder{color:var(--text-3)}.search-btn{padding:.65rem 1.5rem;background:var(--gold);border-radius:var(--radius-sm);font-family:var(--font-display);font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#0f1419;transition:opacity .15s}.search-btn:hover{opacity:.9}.player-profile{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.profile-section{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border);padding:1.25rem}.section-title{font-family:var(--font-display);font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-dim)}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:.3rem 0}.stat-label{font-size:.82rem;color:var(--text-2)}.stat-value{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:var(--text)}.stat-value.gold{color:var(--gold)}.stat-value.green{color:var(--green)}.stat-value.red{color:var(--red)}.stat-value.amber{color:var(--amber)}.surface-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.surface-cell{background:var(--surface-2);border-radius:var(--radius-sm);padding:.75rem;text-align:center;border:1px solid var(--border-dim)}.surface-cell.best{border-color:var(--gold)}.surface-cell.worst{border-color:var(--red);opacity:.8}.surface-cell-name{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-family:var(--font-display)}.surface-cell-pct{font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:var(--text);margin:.2rem 0;line-height:1}.surface-cell.best .surface-cell-pct{color:var(--gold)}.surface-cell-matches{font-size:.65rem;color:var(--text-3)}.form-results{display:flex;gap:.3rem;flex-wrap:wrap}.result-dot{width:28px;height:28px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.7rem;font-weight:700;text-transform:uppercase}.result-dot.win{background:var(--green-dim);color:var(--green);border:1px solid var(--green)}.result-dot.loss{background:var(--red-dim);color:var(--red);border:1px solid var(--red)}.h2h-search{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.vs-badge{font-family:var(--font-display);font-size:1.2rem;font-weight:800;color:var(--text-3);text-transform:uppercase}.h2h-display{display:grid;grid-template-columns:1fr 140px 1fr;gap:1.25rem;align-items:start}.h2h-player{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.5rem;text-align:center}.h2h-player.dominant{border-color:var(--gold);background:#f5c8420a}.h2h-player-name{font-family:var(--font-display);font-size:1.5rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.25rem}.h2h-wins{font-family:var(--font-display);font-size:3.5rem;font-weight:800;line-height:1;color:var(--gold)}.h2h-center{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.25rem;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:.75rem}.h2h-center-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);font-family:var(--font-display)}.h2h-total{font-family:var(--font-display);font-size:1.8rem;font-weight:800;color:var(--text)}.h2h-surfaces{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.h2h-surface-row{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:var(--surface-2);border-radius:var(--radius-sm)}.h2h-surface-name{font-family:var(--font-display);font-size:.75rem;font-weight:700;text-transform:uppercase;width:4rem;color:var(--text-2)}.h2h-surface-bar-wrap{flex:1;display:flex;align-items:center;gap:.5rem}.h2h-bar-track{flex:1;height:8px;background:var(--surface-3);border-radius:4px;overflow:hidden;display:flex}.h2h-bar-p1{height:100%;background:var(--gold);transition:width .5s}.h2h-bar-p2{height:100%;background:var(--blue);transition:width .5s}.h2h-record{font-family:var(--font-display);font-size:.8rem;font-weight:700;color:var(--text-2);white-space:nowrap}.h2h-matches{margin-top:1.5rem}.h2h-match-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:var(--radius-sm);margin-bottom:.4rem;background:var(--surface-2);font-size:.82rem}.h2h-match-date{color:var(--text-3);width:5rem;flex-shrink:0;font-family:var(--font-display)}.h2h-match-winner{font-weight:600;color:var(--green);flex:1}.h2h-match-surface{color:var(--text-3)}.h2h-match-score{color:var(--text-2);font-family:var(--font-display)}.h2h-match-tournament{color:var(--text-3);font-size:.75rem}.stat-callout{background:var(--gold-dim);border:1px solid rgba(245,200,66,.3);border-radius:var(--radius-md);padding:1rem 1.25rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem}.stat-callout .callout-emoji{font-size:1.5rem}.stat-callout .callout-text{font-size:.9rem;color:var(--gold)}.stat-callout .callout-text strong{font-weight:700}.slate-summary{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.slate-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem 1.25rem;min-width:100px;text-align:center}.slate-stat-label{font-size:.7rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:.3rem}.slate-stat-value{font-size:1.5rem;font-weight:700;font-family:var(--font-display);color:var(--text)}.slate-stat.gold-picks .slate-stat-value{color:var(--gold)}.controls-bar{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-group,.sort-group{display:flex;align-items:center;gap:.4rem}.sort-label{font-size:.75rem;color:var(--text-3);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;margin-right:.3rem}.sort-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.3rem .7rem;font-size:.75rem;color:var(--text-3);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;transition:all .15s}.sort-btn:hover{border-color:var(--text-2);color:var(--text)}.sort-btn.active{background:var(--green-dim);border-color:var(--green);color:var(--green)}.match-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1rem}.loading-state,.error-state{text-align:center;padding:3rem 1rem;color:var(--text-3);font-size:1rem;font-family:var(--font-display)}.error-state{color:var(--red)}.edge-rank-wrapper{position:relative}.edge-rank{position:absolute;top:-.4rem;left:-.4rem;z-index:2;background:var(--gold);color:var(--bg);font-size:.7rem;font-weight:800;font-family:var(--font-display);padding:.15rem .5rem;border-radius:var(--radius-sm)}.player-profile{max-width:700px}.player-header-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.5rem;margin-bottom:1.5rem}.player-big-name{font-size:1.8rem;font-weight:800;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;color:var(--text);margin-bottom:.75rem}.player-meta-row{display:flex;gap:.5rem;flex-wrap:wrap}.player-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.2rem .6rem;font-size:.75rem;color:var(--text-2);font-family:var(--font-display)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem}.stat-box{background:var(--surface-2);border:1px solid var(--border-dim);border-radius:var(--radius-sm);padding:.75rem;text-align:center}.stat-box-value{font-size:1.3rem;font-weight:700;font-family:var(--font-display);color:var(--text)}.stat-box-label{font-size:.65rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-top:.25rem}.serve-return-bars{max-width:500px}.stat-bar-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}.stat-bar-label{width:5.5rem;font-size:.75rem;font-family:var(--font-display);color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.stat-bar-track{flex:1;height:8px;background:var(--surface-3);border-radius:4px;overflow:hidden}.stat-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.stat-bar-value{width:3rem;text-align:right;font-size:.75rem;font-family:var(--font-display);font-weight:600;color:var(--text)}.surface-card{background:var(--surface-2);border:1px solid var(--border-dim);border-radius:var(--radius-sm);padding:.75rem;text-align:center}.surface-card.hard{border-top:3px solid #60a5fa}.surface-card.clay{border-top:3px solid #f97316}.surface-card.grass{border-top:3px solid #4ade80}.surface-card-header{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-bottom:.5rem}.surface-flag{font-size:1.1rem}.surface-name{font-size:.75rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--text-2)}.surface-record{font-size:1.1rem;font-weight:700;font-family:var(--font-display);color:var(--text)}.surface-pct{font-size:.85rem;font-weight:600;font-family:var(--font-display);margin-top:.2rem}.h2h-record-card{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:2rem;margin-bottom:1.5rem;gap:1.5rem}.h2h-player-side{flex:1}.h2h-player-side.right{text-align:right}.h2h-player-name{font-size:1.1rem;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;color:var(--text)}.h2h-player-side .h2h-wins{font-size:2.5rem;font-weight:800;font-family:var(--font-display);color:var(--gold);margin-top:.25rem}.h2h-player-side.right .h2h-wins{color:var(--blue)}.h2h-center{display:flex;flex-direction:column;align-items:center;gap:.5rem;min-width:150px}.h2h-total{font-size:.75rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.h2h-bar{width:100%;height:12px;display:flex;border-radius:6px;overflow:hidden;background:var(--surface-3)}.h2h-bar-p1{height:100%;background:var(--gold);display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:700;color:var(--bg);transition:width .5s}.h2h-bar-p2{height:100%;background:var(--blue);display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:700;color:var(--bg);transition:width .5s}.h2h-surface-record{font-size:1.1rem;font-weight:700;font-family:var(--font-display)}.h2h-match-list{display:flex;flex-direction:column;gap:.3rem}.h2h-match-tourney{flex:1;color:var(--text-2);font-size:.78rem}.h2h-match-round{color:var(--text-3);font-size:.72rem;font-family:var(--font-display);text-transform:uppercase}.p1-won{color:var(--gold)!important}.p2-won{color:var(--blue)!important}.h2h-verdict{background:var(--gold-dim);border:1px solid rgba(245,200,66,.3);border-radius:var(--radius-md);padding:1rem 1.25rem;margin-top:1.5rem}.verdict-label{font-size:.7rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--gold);margin-bottom:.3rem}.verdict-text{font-size:.9rem;color:var(--text);line-height:1.5}@media (max-width: 768px){.header-inner{padding:0 1rem;gap:1rem}.page-content{padding:1.25rem 1rem}.cards-grid,.match-grid,.h2h-display{grid-template-columns:1fr}.h2h-record-card{flex-direction:column;text-align:center}.h2h-player-side.right{text-align:center}.surface-grid{grid-template-columns:repeat(3,1fr)}.slate-summary{flex-direction:row;flex-wrap:wrap}.slate-stat{flex:1;min-width:70px}.controls-bar{flex-direction:column;align-items:flex-start}.site-logo{font-size:1.1rem}.nav-link{padding:.3rem .5rem;font-size:.8rem}}
