:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#798bd9,#764ba2);min-height:100vh;color:#333}.app{min-height:100vh;display:flex;flex-direction:column;width:100%;max-width:none}.app-header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem;box-shadow:0 4px 20px #0000001a;width:100%;max-width:none;display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;flex-direction:column;align-items:center;flex:1}.app-header h1{font-size:2rem;font-weight:700;background:linear-gradient(135deg,#798bd9,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem}.ws-status{display:inline-block;padding:.5rem 1rem;background:#ffffffe6;border-radius:20px;font-weight:600;font-size:.9rem;border:2px solid transparent;transition:all .3s ease}.ws-status:has(🟢){border-color:#10b981;background:#10b9811a}.ws-status:has(🔴){border-color:#ef4444;background:#ef44441a}.clear-data-button{background:#fecaca;border:1px solid #fca5a5;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;color:#dc2626;min-width:auto;height:32px;display:flex;align-items:center;justify-content:center}.clear-data-button:hover:not(:disabled){background:#fca5a5;border-color:#f87171;transform:translateY(-1px)}.clear-data-button:active:not(:disabled){transform:translateY(0);background:#f87171}.clear-data-button:disabled{background:#f3f4f6;border-color:#d1d5db;color:#9ca3af;cursor:not-allowed}.connection-count{margin-left:.5rem;padding:.25rem .5rem;background:#667eea33;border-radius:12px;font-size:.8rem;color:#798bd9;font-weight:500;border:1px solid rgba(102,126,234,.3)}.app-main{flex:1;padding:2rem;width:100%;max-width:none!important;margin:0!important;height:calc(100vh - 120px);display:flex;flex-direction:column}.tab-navigation{display:flex;gap:.5rem;margin-bottom:2rem;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;padding:.5rem;box-shadow:0 2px 10px #764ba233;border:1px solid rgba(118,75,162,.3);justify-content:center}.tab-button{padding:1rem 2rem;background:transparent;border:none;border-radius:6px;font-size:1rem;font-weight:500;color:#764ba2;cursor:pointer;transition:all .3s ease;white-space:nowrap;min-width:fit-content}.tab-button:hover{background:#764ba233;color:#5a3d7a}.tab-button.active{background:#798bd9;color:#fff;box-shadow:0 2px 8px #764ba266}.market-tabs-navigation{display:flex;gap:.25rem;margin-bottom:1.5rem;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;padding:.25rem;box-shadow:0 2px 10px #764ba233;border:1px solid rgba(118,75,162,.3);flex-wrap:wrap;justify-content:center}.market-tab-button{padding:.5rem 1rem;background:transparent;border:none;border-radius:6px;font-size:.85rem;font-weight:500;color:#764ba2;cursor:pointer;transition:all .3s ease;white-space:nowrap;min-width:fit-content}.market-tab-button:hover{background:#764ba233;color:#5a3d7a}.market-tab-button.active{background:#798bd9;color:#fff;box-shadow:0 2px 8px #764ba266}.api-section{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:2rem;margin-bottom:2rem;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.2);transition:transform .3s ease,box-shadow .3s ease;width:100%;max-width:none;height:100%;display:flex;flex-direction:column}.api-section:hover{box-shadow:0 12px 40px #00000026}.api-section h2{font-size:1.5rem;font-weight:600;color:#333;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between}.api-button{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #f59e0b66}.api-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #f59e0b99}.api-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.clear-button{padding:6px 12px;font-size:.75rem;background:linear-gradient(135deg,#6b7280,#4b5563);box-shadow:0 2px 6px #6b728066}.ws-messages{flex:1;overflow-y:visible;margin-bottom:1rem;border:1px solid #e9ecef;border-radius:8px;background:#f8f9fa;min-height:0}.no-messages{padding:2rem;text-align:center;color:#6c757d;font-style:italic}.ws-message{padding:1rem;border-bottom:1px solid #e9ecef;transition:background-color .2s ease}.ws-message.latest{background:#667eea0d;border-left:4px solid #798bd9;border-radius:0 8px 8px 0}.ws-message.new-message.latest{background:#667eea33;animation:newMessageBlinkAndFade 10s ease-out forwards}@keyframes newMessageBlinkAndFade{0%,3%,6%,9%{background:#667eea80}1.5%,4.5%,7.5%{background:#667eea1a}30%,to{background:#667eea66}to{background:transparent}}.ws-message:hover{background:#667eea0d}.ws-message:last-child{border-bottom:none}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.message-type{background:#798bd9;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600;text-transform:uppercase}.message-time{color:#6c757d;font-size:.8rem}.ws-message.connection .message-type{background:#10b981}.ws-message.broadcast .message-type{background:#f59e0b}.ws-message.data_received .message-type{background:#8b5cf6}.ws-message.notification .message-type{background:#3b82f6}.ws-message.alert .message-type{background:#ef4444}.ws-message.info .message-type{background:#06b6d4}.ws-message.warning .message-type{background:#f97316}.ws-message.fixture\.created .message-type{background:#10b981}.ws-message.balanced_line\.updated .message-type{background:#3b82f6}.ws-message.odds\.changed .message-type{background:#f59e0b}.ws-message.settlement\.completed .message-type{background:#8b5cf6}.ws-message .message-type{background:#6b7280}@media (max-width: 768px){.app-header{padding:1.5rem}.app-header h1{font-size:2rem}.app-main{padding:1rem}.api-section{padding:1.5rem}}.json-container{display:block;width:100%;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;line-height:1.4}.json-container.clickable{cursor:pointer;transition:all .2s ease;border-radius:4px;padding:2px}.json-container.clickable:hover{background:#667eea0d;box-shadow:0 1px 3px #667eea1a}.json-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-block;width:16px;height:16px;text-align:center;line-height:16px;font-size:10px;color:#798bd9;background:#667eea1a;border-radius:3px;margin-right:4px;transition:all .2s ease;pointer-events:none}.json-bracket{color:#8b5cf6;font-weight:700}.json-key{color:#059669;font-weight:600}.json-value{color:#dc2626}.json-array,.json-object{color:#8b5cf6;font-weight:700}.json-comma{color:#6b7280}.json-summary{color:#6b7280;font-style:italic;font-size:.8rem}.json-content{margin-left:20px;border-left:2px solid rgba(102,126,234,.2);padding-left:8px}.json-item{margin:2px 0}.message-content{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;color:#495057;word-break:break-word;background:#f8f9fa;padding:12px;border-radius:8px;border:1px solid #e9ecef;margin-top:8px;width:100%}.player-team-name{font-size:.7rem;display:flex;justify-content:end;color:#b4b4b4}.message-content .json-container{background:#fff;padding:8px;border-radius:6px;border:1px solid #e9ecef;box-shadow:0 2px 4px #0000000d;width:100%}.player-table-container{overflow-x:auto;margin-bottom:1rem}.player-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.player-table th{color:#000;padding:12px 8px;text-align:center;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;border:none}.player-table th:first-child{text-align:left}.player-table td{padding:6px 4px;text-align:center;border-bottom:1px solid #e9ecef;font-size:.9rem;color:#495057;vertical-align:middle}.player-table td:first-child{text-align:left;font-weight:600;color:#333}.player-table tbody tr:hover{background:#667eea0d}.player-table tbody tr:last-child td{border-bottom:none}.player-name{font-weight:600;color:#333;min-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.odds-widget{display:flex;flex-direction:row;align-items:center;gap:2px;min-width:70px;border:1px solid #3cc55e;border-radius:6px;padding:5px 6px;justify-content:center}.odds-widget.suspended{border:1px solid #dfdfdf;background-color:#9ca3af1a}.odds-widget.suspended .arrow-up{background:#d8d8d8}.odds-widget.suspended .arrow-up:hover{background:#6b7280}.odds-widget.suspended .arrow-down{background:#d8d8d8}.odds-widget.suspended .arrow-down:hover{background:#6b7280}.odds-widget.suspended .balance-line{color:#6b7280;background:#e5e7eb}.odds-widget.suspended .odds-values-prefix{color:#bfbfbf}.odds-widget.suspended .over-odds,.odds-widget.suspended .under-odds{color:#6b7280;background:#e5e7eb}.odds-widget.balanced:not(.suspended){background-color:#e6f5ea}.odds-widget.blinking{animation:cellBlink .5s infinite}@keyframes cellBlink{0%,20%{background-color:red!important}70%,to{background-color:inherit}}.odds-arrows{display:flex;flex-direction:column;align-items:center;gap:1px}.arrow-up{color:#fff;background:#3cc55e9e;font-size:10px;font-weight:700;cursor:pointer;width:20px;border-radius:2px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-user-select:none;user-select:none}.arrow-up:hover{background:#2ea84a;transform:scale(1.1)}.arrow-down{color:#fff;background:#f67273c4;font-size:10px;font-weight:700;cursor:pointer;width:20px;border-radius:2px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-user-select:none;user-select:none}.arrow-down:hover{background:#e55a5b;transform:scale(1.1)}.balance-line,.milestone-line{font-weight:600;font-size:12px;color:#1f2937;padding:1px 3px;background:#f3f4f6;border-radius:3px;min-width:35px;text-align:center}.milestone-line{background:#f3f4f6;border:1px solid #764ba2;color:#764ba2}.milestone-odds{font-weight:500;color:#374151;text-align:center;padding:.4rem .25rem;border-radius:4px;border:1px solid #e5e7eb;min-width:70px;max-width:80px}.milestone-odds-content{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:4px}.milestone-odds-value{font-weight:500;color:#374151}.milestone-settlement-circle{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:#fff}.milestone-settlement-circle.win{background:#3cc55e9e}.milestone-settlement-circle.loss{background:#f67273c4}.milestone-settlement-circle.neutral{background:#6b728014}.specials-container{padding:20px;background:#f8f9fa;border-radius:8px;margin:20px 0}.specials-info{background:#fff;padding:15px;border-radius:6px;margin-bottom:20px;border-left:4px solid #8b5cf6}.specials-info p{margin:8px 0;color:#374151}.specials-info strong{color:#1f2937}.specials-data{background:#fff;padding:15px;border-radius:6px;border:1px solid #e5e7eb}.specials-data h3{margin:0 0 15px;color:#1f2937;font-size:18px}.specials-json{background:#f3f4f6;padding:15px;border-radius:4px;border:1px solid #d1d5db;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;color:#374151;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word;max-height:500px;overflow-y:auto}.no-specials{text-align:center;padding:40px;color:#6b7280;font-style:italic}.specials-accordions{margin-top:20px;display:grid;grid-template-columns:1fr;gap:16px;grid-auto-rows:max-content}@media (min-width: 768px){.specials-accordions{grid-template-columns:1fr 1fr}}@media (min-width: 1024px){.specials-accordions{grid-template-columns:1fr 1fr}}.accordion{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff;display:block;width:100%;position:relative;isolation:isolate;height:fit-content;min-height:fit-content}.accordion-header{width:100%;padding:10px 12px;background:#f8f9fa;border:none;cursor:pointer;display:flex;gap:10px;align-items:center;font-size:14px;font-weight:600;color:#1f2937;transition:background-color .2s ease}.accordion-header:hover{background:#e5e7eb}.market-type-name{text-align:left}.accordion-count{color:#6b7280;font-weight:500;margin-right:8px;font-size:12px}.accordion-arrow{transition:transform .2s ease;color:#6b7280;font-size:12px}.accordion-arrow.open{transform:rotate(180deg)}.accordion-content{padding:0;background:#fff;overflow-x:auto;display:block;width:100%;position:relative;height:auto;transition:height .3s ease}.specials-table{width:100%;border-collapse:collapse;font-size:12px}.specials-table th{background:#f8f9fa;padding:8px 10px;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb;white-space:nowrap;font-size:11px}.specials-table td{padding:6px 10px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.selection-row:hover{background:#f9fafb}.selection-row:last-child td{border-bottom:none}.selection-name{font-weight:600;color:#1f2937;min-width:80px;font-size:12px}.odds,.probability{color:#1f2937;text-align:center;min-width:60px;font-size:11px}.status,.suspended{text-align:center;min-width:70px}.status-badge{padding:2px 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase}.status-badge.closed{background:#fee2e2;color:#dc2626}.status-badge.open{background:#dcfce7;color:#16a34a}.suspended-badge{background:#fef3c7;color:#d97706;padding:2px 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;display:inline-block}.active-badge{background:#dcfce7;color:#16a34a;padding:2px 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;display:inline-block}.milestone-odds.suspended{background:#ffe1e1;color:#b58b8b}.player-name.suspended{background:#ffe1e1;color:#b58b8b!important;font-weight:600}.player-table th:not(:first-child){background:#f8f9fa;color:#374151;font-weight:600;padding:.5rem .25rem;text-align:center;border-radius:4px;margin:.15rem;min-width:70px;max-width:80px;border:1px solid #e5e7eb;line-height:1.2}.player-table tbody tr:hover{background:#764ba214}.player-table tbody tr:nth-child(2n){background:#eee}.player-table tbody tr:nth-child(odd){background:#fffc}.player-table tbody tr:nth-child(2n):hover{background:#d9d9d9!important}.player-table tbody tr:nth-child(odd):hover{background:#d9d9d9!important}.odds-values{display:flex;flex-direction:column;gap:2px;font-size:10px}.odds-values-prefix{display:flex;flex-direction:column;gap:2px;font-size:9px;font-weight:600;color:#374151;text-align:center;min-width:15px}.settlements{display:flex;flex-direction:column;gap:2px;align-items:center}.settlement-value{font-size:8px;font-weight:600;color:#374151;text-align:center;min-width:12px}.settlement-circle{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:#fff}.settlement-circle.win{background:#3cc55e9e}.settlement-circle.loss{background:#f67273c4}.settlement-circle.neutral{background:#6b728014}.over-odds,.under-odds{padding:2px 4px;background:#e5e7eb;border-radius:3px;color:#374151;font-weight:500;min-width:30px;text-align:center;display:flex;height:25px;justify-content:center;align-items:center}.no-players{padding:2rem;text-align:center;color:#6c757d;font-style:italic;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}@media (max-width: 768px){.player-table{font-size:.8rem}.player-table th,.player-table td{padding:6px 4px}.odds-widget{min-width:60px}.balance-line,.milestone-line{font-size:12px;min-width:35px}.over-odds,.under-odds{font-size:10px;min-width:25px}.market-tabs-navigation{padding:.2rem;gap:.2rem}.market-tab-button{padding:.4rem .8rem;font-size:.75rem}}
