*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}.dashboard{margin:0 auto;max-width:1200px;padding:2rem}.dashboard h2{color:#1a1a2e;margin-bottom:2rem}.matches-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.match-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;transition:transform .3s,box-shadow .3s}.match-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-4px)}.match-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem}.match-header h3{color:#1a1a2e;font-size:1.1rem}.status-open{background:#28a745;color:#fff}.status-suspended{background:#ffc107;color:#333}.match-teams{margin:1rem 0}.team-info{text-align:center}.odds{color:#007bff;font-size:1.1rem;font-weight:700;margin-top:.5rem}.match-footer{border-top:1px solid #f0f0f0;color:#666;display:flex;font-size:.75rem;justify-content:space-between;margin-top:1rem;padding-top:.5rem}.loading{color:#666;font-size:1.2rem}@media (max-width:768px){.dashboard{padding:1rem}.matches-grid{grid-template-columns:1fr}}.match-manager{margin:0 auto;max-width:1400px;padding:2rem}.create-match-form{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem;padding:2rem}.create-match-form h2{color:#1a1a2e;margin-bottom:1.5rem}.create-match-form form{display:flex;flex-direction:column;gap:1rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.create-match-form input,.create-match-form select{border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;padding:.75rem;transition:border-color .3s}.create-match-form input:focus,.create-match-form select:focus{border-color:#007bff;outline:none}.create-match-form button{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem;transition:background .3s}.create-match-form button:hover{background:#0056b3}.matches-list{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:2rem}.matches-list h2{color:#1a1a2e;margin-bottom:1.5rem}.matches-table-container{overflow-x:auto}.matches-table{border-collapse:collapse;width:100%}.matches-table th{background:#f8f9fa;border-bottom:2px solid #e0e0e0;color:#1a1a2e;font-weight:600;padding:1rem;text-align:left}.matches-table td{border-bottom:1px solid #f0f0f0;padding:1rem}.matches-table tr:hover{background:#f8f9fa}.status-badge{font-size:.75rem}.status-upcoming{background:#ffc107;color:#333}.status-live{animation:pulse 1.5s infinite;background:#dc3545;color:#fff}.status-paused{background:#6c757d;color:#fff}.status-completed{background:#28a745;color:#fff}.actions{display:flex;gap:.5rem}.actions button{border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;padding:.4rem .75rem;transition:all .3s}.btn-start{background:#28a745;color:#fff}.btn-start:hover{background:#218838}.btn-pause{background:#ffc107;color:#333}.btn-pause:hover{background:#e0a800}.btn-resume{background:#007bff;color:#fff}.btn-resume:hover{background:#0056b3}.btn-delete{background:#dc3545;color:#fff}.btn-delete:hover{background:#c82333}@media (max-width:768px){.match-manager{padding:1rem}.form-row{grid-template-columns:1fr}.actions{flex-direction:column}.matches-table td,.matches-table th{font-size:.85rem;padding:.5rem}}.score-controller{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);margin:0 auto;min-height:100vh}.controller-header{border-radius:12px;box-shadow:0 4px 6px #0000001a;margin-bottom:2rem;padding:1.5rem}.controller-header h2{color:#1a1a2e;margin-bottom:.5rem}.resume-match-btn{background:linear-gradient(135deg,#ff9800,#f57c00);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.2rem;font-weight:700;padding:1rem 2rem;transition:all .3s}.manual-odds-panel{background:#1a1a2e;border-radius:12px;color:#fff;margin:1.5rem 0;padding:1.5rem}.manual-odds-panel h3{color:#fff;margin-bottom:1rem}.manual-toggle{border-bottom:1px solid #333;margin-bottom:1.5rem;padding-bottom:1rem}.manual-toggle label{align-items:center;cursor:pointer;display:flex;gap:.5rem}.bookmaker-odds-control,.session-odds-control{background:#16213e;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.bookmaker-odds-control h4,.session-odds-control h4{color:gold;margin-bottom:1rem}.odds-input-group{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.team-odds label{display:block;font-weight:700;margin-bottom:.5rem}.odds-inputs{display:flex;gap:.5rem}.odds-inputs input{background:#0f3460;border:none;border-radius:4px;color:#fff;flex:1 1;padding:.5rem}.session-input-group{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.session-input-group button{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem}.session-input-group button:hover{background:#218838}.manual-session-list{border-top:1px solid #333;margin-top:1rem;padding-top:1rem}.manual-session-list h5{color:gold;margin-bottom:.5rem}.session-odds-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.session-odds-item{align-items:center;background:#0f3460;border-radius:4px;display:flex;font-size:.85rem;gap:.5rem;padding:.5rem}.session-odds-item button{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.25rem .5rem}.session-odds-item button:hover{background:#c82333}.no-odds{color:#888;font-style:italic;padding:.5rem}.resume-match-btn:hover{box-shadow:0 4px 12px #ff98004d;transform:translateY(-2px)}.subtitle{color:#666;margin-bottom:1.5rem}.match-info-header{align-items:center;border-top:1px solid #e0e0e0;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-top:1rem;padding-top:1rem}.match-id{color:#007bff;font-family:monospace;font-size:1.1rem;font-weight:700}.connection-status.connecting{background:#fff3cd;color:#856404}.connection-status.error{background:#f8d7da;color:#721c24}.refresh-btn{background:#17a2b8;border:none;border-radius:6px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:all .3s}.refresh-btn:hover{background:#138496;transform:translateY(-2px)}.match-selector input{border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;padding:.75rem;transition:border-color .3s;width:100%}.match-selector input:focus{border-color:#007bff;outline:none}.match-info{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a}.match-title{border-bottom:2px solid #f0f0f0;margin-bottom:2rem;padding-bottom:1rem;text-align:center}.match-title h3{color:#1a1a2e;font-size:1.5rem;margin-bottom:.5rem}.match-status{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.status-badge{background:#6c757d;border-radius:20px;color:#fff;font-size:.85rem;padding:.25rem .75rem}.status-badge.status-live{animation:pulse 1.5s infinite;background:#dc3545}.auto-badge{animation:pulse 1.5s infinite;background:#28a745}.auto-badge,.scheduled-badge{border-radius:20px;color:#fff;display:inline-block;font-size:.75rem;padding:.25rem .75rem}.scheduled-badge{background:#ff9800}.break-badge{background:#17a2b8;border-radius:20px;color:#fff;display:inline-block;font-size:.75rem;padding:.25rem .75rem}.match-timer{margin-bottom:2rem}.timer-label{color:#666;font-size:.85rem;margin-bottom:.5rem}.timer-bar{background:#e0e0e0;border-radius:5px;height:10px;overflow:hidden;width:100%}.timer-progress{background:linear-gradient(90deg,#4caf50,#ff9800,#f44336);height:100%;transition:width 1s linear}.timer-stats{color:#666;display:flex;font-size:.8rem;justify-content:space-between;margin-top:.5rem}.scores-container{grid-gap:2rem;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;display:grid;gap:2rem;grid-template-columns:1fr auto 1fr;margin:2rem 0;padding:2rem}.team-score h4{font-size:1.3rem;margin-bottom:.5rem}.score-display{font-size:2rem;font-weight:700;margin:.5rem 0}.runs{font-size:2.5rem}.wickets{color:gold;font-size:1.5rem}.overs{font-size:1rem;margin-left:.5rem}.run-rate{font-size:.9rem}.vs{background:#fff3;border-radius:50%;font-size:1.5rem;padding:.5rem 1rem}.match-message{border:1px solid #ffc107;font-weight:500;margin:1rem 0;padding:1rem}.recent-balls{background:#f8f9fa;border-radius:12px;margin:1rem 0;padding:1.5rem}.recent-balls h4{color:#1a1a2e;margin-bottom:1rem}.balls-list{display:flex;flex-wrap:wrap;gap:.5rem}.ball{background:#fff;box-shadow:0 1px 3px #0000001a;font-size:1rem;height:45px;width:45px}.ball.extra{background:#ff9800;color:#fff}.match-stats{grid-gap:1rem;background:#e3f2fd;border-radius:8px;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:1rem 0;padding:1rem}.stat{align-items:center;background:#fff;border-radius:6px;display:flex;justify-content:space-between;padding:.5rem}.stat span{color:#666;font-size:.85rem}.stat strong{color:#1a1a2e;font-size:1rem}.advanced-controls{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;margin:1rem 0;padding:1.5rem}.advanced-controls h3{color:#fff;margin-bottom:1rem}.controls-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.control-btn{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem;transition:all .3s}.drs-btn{background:#ff9800;color:#fff}.drs-btn:hover:not(:disabled){background:#f57c00;transform:translateY(-2px)}.timeout-btn{background:#9c27b0;color:#fff}.timeout-btn:hover:not(:disabled){background:#7b1fa2;transform:translateY(-2px)}.injury-btn{background:#f44336;color:#fff}.injury-btn:hover:not(:disabled){background:#d32f2f;transform:translateY(-2px)}.control-btn:disabled{cursor:not-allowed;opacity:.5}.delay-control{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0;padding:1rem}.delay-control label{color:#1a1a2e;font-weight:700}.delay-control input{border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;padding:.5rem;text-align:center;width:80px}.delay-control small{color:#666;font-size:.8rem}.control-panel{grid-gap:2rem;border-top:2px solid #f0f0f0;display:grid;gap:2rem;grid-template-columns:1fr 1fr;margin-top:2rem;padding-top:2rem}.auto-controls h4,.manual-controls h4{color:#1a1a2e;margin-bottom:1rem}.ball-buttons{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.ball-btn{background:#e9ecef;border:none;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:600;padding:.75rem;transition:all .3s}.ball-btn:hover:not(:disabled){box-shadow:0 2px 8px #00000026;transform:translateY(-2px)}.ball-btn.wicket{background:#dc3545;color:#fff}.ball-btn.boundary{background:#28a745;color:#fff}.ball-btn.extra{background:#ff9800;color:#fff}.ball-btn:disabled{cursor:not-allowed;opacity:.5}.auto-btn{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem;transition:all .3s;width:100%}.auto-btn.active{background:#dc3545}.auto-btn:hover:not(:disabled){box-shadow:0 2px 8px #00000026;transform:translateY(-2px)}.auto-btn:disabled{cursor:not-allowed;opacity:.5}.auto-controls small,.feature-list{color:#666;display:block;margin-top:.5rem;text-align:center}.feature-list{border-top:1px solid #e0e0e0;font-size:.7rem;padding-top:.5rem}.loading{margin-top:2rem}.loading p{color:#666;margin:.5rem 0}.modal{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:slideIn .3s ease;background:#fff;border-radius:12px;max-width:500px;min-width:300px;padding:2rem}.modal-content h3{color:#1a1a2e;margin-bottom:1rem}.modal-content input,.modal-content select{border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;margin-bottom:1rem;padding:.75rem;width:100%}.modal-buttons{display:flex;gap:1rem;margin-top:1rem}.modal-buttons button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-weight:600;padding:.75rem;transition:all .3s}.modal-buttons button:first-child{background:#4caf50;color:#fff}.modal-buttons button:first-child:hover{background:#45a049}.modal-buttons button:last-child{background:#f44336;color:#fff}.modal-buttons button:last-child:hover{background:#da190b}.notifications-container{display:flex;flex-direction:column;gap:8px;max-width:280px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:99999}.notification{word-wrap:break-word;animation:slideInRight .2s ease,fadeOut .2s ease 1.8s forwards;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:6px;box-shadow:0 4px 12px #00000040;color:#fff;font-size:.75rem;font-weight:500;line-height:1.3;overflow:hidden;padding:8px 12px;position:relative;text-overflow:ellipsis;white-space:nowrap;z-index:99999}.score-controller{position:relative;z-index:1}.controller-header{background:#fff;position:relative;z-index:100}.modal,.moderate-modal{z-index:100000}.notification.success{background:#28a745f2;border-left:3px solid #28a745}.notification.error{background:#dc3545f2;border-left:3px solid #dc3545}.notification.warning{background:#ff9800f2;border-left:3px solid #ff9800;color:#1a1a2e}.notification.info{background:#17a2b8f2;border-left:3px solid #17a2b8}.notification.wicket{background:#dc3545f2;border-left:3px solid #dc3545;font-weight:700}.notification.boundary{background:#28a745f2;border-left:3px solid #28a745;font-weight:700}.notification.extra{background:#ff9800f2;border-left:3px solid #ff9800}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(20px);visibility:hidden}}@media (max-width:768px){.notifications-container{left:auto;max-width:260px;right:10px;top:10px}.notification{font-size:.7rem;padding:6px 10px;white-space:normal}.score-controller{padding:1rem}.scores-container{gap:1rem;grid-template-columns:1fr}.vs{margin:0 auto;order:-1}.control-panel{gap:1.5rem;grid-template-columns:1fr}.ball-buttons{grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}.ball-btn{font-size:.75rem;padding:.5rem}.controls-grid,.match-stats{grid-template-columns:1fr}.modal-content{margin:1rem;width:calc(100% - 2rem)}}.odds-section{margin:1.5rem 0}.odds-section h3{border-bottom:2px solid #f0f0f0;padding-bottom:.5rem}.bookmaker-odds{grid-gap:1.5rem;gap:1.5rem}.odd-card{transition:transform .3s}.odd-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.odd-card .team-name{color:#1a1a2e;font-size:1.1rem;font-weight:700;margin-bottom:1rem;text-align:center}.back-odds .label{color:#28a745}.lay-odds .label{color:#dc3545}.odds-values{margin-top:.5rem}.odd-value{font-size:.9rem}.session-pair{transition:transform .3s}.session-pair:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.over-title{font-size:1rem}.option-name{font-size:.9rem}.option-odds{font-size:.8rem}.ball-running-badge{animation:pulse 1s infinite;background:#ff9800;border-radius:20px;color:#fff;display:inline-block;font-size:.75rem;margin-left:10px;padding:.25rem .75rem}@media (max-width:768px){.bookmaker-odds,.over-under-container,.session-odds-grid{grid-template-columns:1fr}.over-under-container{gap:.5rem}.odds-values{flex-wrap:wrap}.odd-value{font-size:.8rem}}.inning-break-control{align-items:center;background:#fff3cd;border:1px solid #ffc107;border-radius:8px;display:flex;justify-content:space-between;margin:1rem 0;padding:1rem}.break-info{color:#856404;display:flex;font-weight:700;gap:1rem}.force-start-btn{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:700;padding:.5rem 1rem;transition:all .3s}.force-start-btn:hover{background:#c82333;transform:translateY(-2px)}.start-match-control{margin:1rem 0;text-align:center}.start-match-btn{background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.2rem;font-weight:700;padding:1rem 2rem;transition:all .3s}.start-match-btn:hover{box-shadow:0 4px 12px #28a7454d;transform:translateY(-2px)}.complete-manual-odds-panel{background:#1a1a2e;border-radius:12px;color:#fff;margin:1.5rem 0;padding:1.5rem}.complete-manual-odds-panel h3{color:gold;margin-bottom:1rem}.odds-tabs{border-bottom:1px solid #333;display:flex;gap:1rem;margin-bottom:1.5rem;padding-bottom:.5rem}.tab-btn{background:#0000;border:none;color:#888;cursor:pointer;font-size:1rem;padding:.5rem 1.5rem;transition:all .3s}.tab-btn.active{border-bottom:2px solid gold;color:gold}.match-odds-manual,.session-odds-manual{background:#16213e;border-radius:8px;padding:1rem}.selection-controls{display:flex;gap:1rem;margin-bottom:1rem}.selection-group{flex:1 1}.selection-group label{color:#aaa;display:block;font-size:.85rem;margin-bottom:.25rem}.selection-group select{background:#0f3460;border:none;border-radius:4px;color:#fff;padding:.5rem;width:100%}.odds-input-section{margin-bottom:1rem}.odds-input-group{align-items:flex-end;display:flex;gap:.5rem}.odds-input-group label{color:#aaa;font-size:.85rem;margin-bottom:.25rem}.odds-input-group input{background:#0f3460;border:none;border-radius:4px;color:#fff;flex:1 1;padding:.5rem}.odds-input-group button{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem}.calculated-odds{border-top:1px solid #333;margin-top:1rem;padding-top:1rem}.odds-result{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin:1rem 0}.team-odds-result{background:#0f3460;border-radius:6px;padding:.75rem;text-align:center}.team-odds-result strong{color:gold;display:block;margin-bottom:.5rem}.team-odds-result span{display:inline-block;margin:0 .5rem}.session-creation{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.session-input-group{flex:1 1;min-width:120px}.session-input-group label{color:#aaa;display:block;font-size:.85rem;margin-bottom:.25rem}.session-input-group input,.session-input-group select{background:#0f3460;border:none;border-radius:4px;color:#fff;padding:.5rem;width:100%}.session-creation button{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;height:38px;padding:.5rem 1rem}.session-markets-list{margin-top:1rem}.session-market-card{background:#0f3460;border-radius:8px;margin-bottom:1rem;padding:1rem}.market-header{align-items:center;border-bottom:1px solid #1a1a2e;display:flex;gap:1rem;margin-bottom:1rem;padding-bottom:.5rem}.market-title{background:#1a1a2e;border-radius:20px;color:gold;font-size:.85rem;font-weight:700;padding:.25rem .75rem}.status-toggle{border:none;border-radius:4px;cursor:pointer;font-size:.75rem;padding:.25rem .75rem}.status-toggle.active{background:#28a745;color:#fff}.remove-btn,.status-toggle.suspended{background:#dc3545;color:#fff}.remove-btn{border:none;border-radius:4px;cursor:pointer;font-size:16px;height:24px;width:24px}.market-odds-simple{display:flex;flex-direction:column;gap:.75rem}.odds-simple-row{align-items:center;background:#1a1a2e;border-radius:6px;display:flex;gap:1rem;padding:.75rem}.odds-simple-row .odds-label{font-weight:700;min-width:100px}.yes-row{border-left:3px solid #28a745}.no-row{border-left:3px solid #dc3545}.odds-input-simple{background:#0f3460;border:none;border-radius:4px;color:#fff;font-size:1.1rem;font-weight:700;padding:.5rem;text-align:center;width:100px}.odds-note{color:#888;font-size:.75rem}.info-text{color:#aaa;font-size:.8rem;font-style:italic;margin-bottom:1rem}.apply-odds-btn{background:gold;border:none;border-radius:8px;color:#1a1a2e;cursor:pointer;font-weight:700;margin-top:1rem;padding:.75rem;width:100%}.apply-odds-btn:hover{background:#ffed4a}.compact-sticky-header{align-items:center;background:#0f172a;border-bottom:1px solid #1e293b;display:flex;gap:12px;height:72px;justify-content:space-between;overflow:hidden;padding:4px 10px;position:sticky;top:0;z-index:9999}.compact-left-section{display:flex;flex:1.5 1;flex-direction:column;gap:2px;min-width:0}.compact-match-title{color:#fff;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-score-line{align-items:center;display:flex;flex-wrap:nowrap;gap:8px}.compact-team-score{align-items:center;display:flex;gap:4px;white-space:nowrap}.compact-team-short{color:#94a3b8;font-size:11px;font-weight:600}.compact-score{color:#fff;font-size:13px;font-weight:700}.compact-over{color:#94a3b8;font-size:10px}.compact-rr{color:#22c55e;font-size:10px;font-weight:600}.compact-vs{color:#475569;font-size:11px}.compact-match-message{color:#facc15;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-center-section{display:flex;flex:0.8 1;justify-content:center;overflow:hidden}.compact-balls-row{align-items:center;display:flex;gap:4px}.compact-ball{align-items:center;background:#334155;border-radius:50%;color:#fff;display:flex;font-size:10px;font-weight:700;height:20px;justify-content:center;width:20px}.compact-ball-wicket{background:#ef4444}.compact-ball-boundary{background:#22c55e}.compact-ball-extra{background:#f59e0b}.compact-right-section{display:flex;flex:1 1;flex-direction:column;gap:4px;overflow:hidden}.compact-odds-runner{align-items:center;display:flex;gap:6px;justify-content:space-between}.compact-runner-name{color:#fff;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:55px}.compact-odds-line{align-items:center;display:flex;gap:4px}.compact-back-row,.compact-lay-row{display:flex;gap:2px}.compact-back-odd,.compact-lay-odd{align-items:center;border-radius:3px;display:flex;font-size:10px;font-weight:700;height:22px;justify-content:center;min-width:33px}.compact-back-odd{background:#60a5fa;color:#000}.compact-lay-odd{background:#fda4af;color:#000}.split-odds-panel{display:flex;gap:10px;width:100%}.split-match-section,.split-session-section{background:#0f172a;border:1px solid #1e293b;border-radius:8px;display:flex;flex:1 1;flex-direction:column;gap:8px;padding:10px}.split-section-title{color:#fff;font-size:12px;font-weight:700}.split-control-row,.split-input-row,.split-session-card,.split-session-create,.split-team-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.split-input,.split-mini-input,.split-select{background:#1e293b;border:none;border-radius:6px;color:#fff;font-size:11px;height:30px;outline:none;padding:0 8px}.split-select{flex:1 1;min-width:110px}.split-input{width:75px}.split-mini-input{text-align:center;width:55px}.yes-input{border:1px solid #2563eb}.no-input{border:1px solid #dc2626}.split-btn,.split-remove-btn{border:none;border-radius:6px;cursor:pointer;font-size:11px;font-weight:700;height:30px;padding:0 10px}.split-calc-btn{background:#f59e0b;color:#000}.split-add-btn{background:#10b981;color:#fff}.split-apply-btn{background:#2563eb;color:#fff;margin-top:5px}.split-status-btn{background:#334155;color:#fff}.split-remove-btn{background:#dc2626;color:#fff;padding:0;width:30px}.split-calculated-box{display:flex;flex-direction:column;gap:6px}.split-team-name{color:#fff;font-size:11px;font-weight:700;min-width:70px}.split-back-box,.split-lay-box,.split-over-box{align-items:center;border-radius:5px;display:flex;font-size:11px;font-weight:700;height:24px;justify-content:center;min-width:55px}.split-back-box{background:#60a5fa;color:#000}.split-lay-box{background:#fda4af;color:#000}.split-over-box{background:#1e293b;color:#fff}.split-session-list{display:flex;flex-direction:column;gap:6px}@media(max-width:768px){.split-odds-panel{flex-direction:column}}.ultra-ball-panel{background:#0f172a;border:1px solid #1e293b;border-radius:8px;display:flex;flex-direction:column;gap:8px;padding:8px}.ultra-ball-topbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.ultra-auto-box,.ultra-delay-box{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.ultra-label{color:#cbd5e1;font-size:11px;font-weight:700}.ultra-delay-input{background:#1e293b;border:none;border-radius:6px;color:#fff;font-size:11px;height:28px;outline:none;text-align:center;width:55px}.ultra-auto-btn,.ultra-ball-btn,.ultra-mini-btn{border:none;border-radius:6px;cursor:pointer;font-weight:700;outline:none;transition:.2s}.ultra-auto-delay-btn{background:#334155;color:#fff;font-size:11px;height:28px;padding:0 10px}.ultra-auto-btn{background:#16a34a;color:#fff;font-size:11px;height:30px;padding:0 12px}.ultra-auto-btn.active{background:#dc2626}.ultra-delay-note{color:#facc15;font-size:10px;font-weight:700}.ultra-ball-buttons-wrap{display:flex;flex-direction:column;gap:6px}.ultra-ball-title{color:#fff;font-size:11px;font-weight:700}.ultra-ball-grid{display:flex;flex-wrap:wrap;gap:5px}.ultra-ball-btn{align-items:center;border:none;border-radius:6px;color:#fff!important;cursor:pointer;display:flex;font-size:10px;font-weight:700;height:30px;justify-content:center;min-width:42px;padding:0 8px;white-space:nowrap}.ultra-ball-btn.default{background:#334155!important;color:#fff!important}.ultra-ball-btn.boundary{background:#16a34a!important;color:#fff!important}.ultra-ball-btn.wicket{background:#dc2626!important;color:#fff!important}.ultra-ball-btn.extra{background:#d97706!important;color:#fff!important}.ultra-ball-btn:disabled{cursor:not-allowed;opacity:.6}.ultra-ball-btn:hover:not(:disabled){transform:translateY(-1px)}@media(max-width:768px){.ultra-ball-topbar{align-items:flex-start;flex-direction:column}}.mini-free-hit-panel{background:#111827;border:1px solid #1e293b;border-radius:8px;display:flex;flex-direction:column;gap:6px;padding:8px}.mini-free-hit-header{align-items:center;display:flex;gap:10px;justify-content:space-between}.mini-free-hit-title{color:#facc15;font-size:11px;font-weight:700}.mini-free-hit-buttons{display:flex;flex-wrap:wrap;gap:5px}.mini-free-hit-btn{align-items:center;border:none;border-radius:6px;color:#fff!important;cursor:pointer;display:flex;font-size:10px;font-weight:700;height:28px;justify-content:center;min-width:42px;padding:0 8px;white-space:nowrap}.mini-free-hit-btn.default{background:#334155}.mini-free-hit-btn.boundary{background:#16a34a}.mini-free-hit-btn.wicket{background:#dc2626}.mini-free-hit-btn.extra{background:#d97706}.mini-cancel-free-hit-btn{align-items:center;background:#dc2626;border:none;border-radius:5px;color:#fff;cursor:pointer;display:flex;font-size:11px;font-weight:700;height:24px;justify-content:center;width:24px}.mini-cancel-free-hit-btn:hover,.mini-free-hit-btn:hover{opacity:.9}.moderate-advanced-controls{background:#0f172a;border:1px solid #1e293b;border-radius:10px;margin-top:10px;padding:12px}.moderate-controls-title{color:#fff;font-size:15px;font-weight:700;margin-bottom:10px}.moderate-controls-grid{display:flex;flex-wrap:wrap;gap:10px}.moderate-control-btn{border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:700;height:40px;padding:0 16px}.moderate-control-btn:disabled{cursor:not-allowed;opacity:.5}.moderate-drs-btn{background:#2563eb}.moderate-timeout-btn{background:#f59e0b;color:#000}.moderate-injury-btn{background:#dc2626}.moderate-modal{align-items:center;background:#000000b3;display:flex;inset:0;justify-content:center;padding:15px;position:fixed;z-index:9999}.moderate-modal-content{background:#111827;border-radius:12px;display:flex;flex-direction:column;gap:12px;max-width:420px;padding:18px;width:100%}.moderate-modal-title{color:#fff;font-size:18px;font-weight:700}.moderate-modal-text{color:#cbd5e1;font-size:13px}.moderate-modal-input,.moderate-modal-select{background:#1e293b;border:none;border-radius:8px;color:#fff;font-size:13px;height:42px;outline:none;padding:0 12px;width:100%}.moderate-modal-buttons{display:flex;flex-wrap:wrap;gap:10px}.moderate-cancel-btn,.moderate-confirm-btn,.moderate-team-btn{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:13px;font-weight:700;height:40px;min-width:100px}.edit-last-ball-container{margin:1rem 0;text-align:center}.edit-last-ball-btn{background:linear-gradient(135deg,#ff9800,#f57c00);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:.75rem 2rem;transition:all .3s}.edit-last-ball-btn:hover:not(:disabled){box-shadow:0 4px 12px #ff98004d;transform:translateY(-2px)}.edit-last-ball-btn:disabled{cursor:not-allowed;opacity:.5}.edit-ball-options{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));margin:1rem 0}.edit-ball-btn{border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem;transition:all .3s}.edit-ball-btn.default{background:#e9ecef;color:#333}.edit-ball-btn.boundary{background:#28a745;color:#fff}.edit-ball-btn.wicket{background:#dc3545;color:#fff}.edit-ball-btn.extra{background:#ff9800;color:#fff}.edit-ball-btn:hover{box-shadow:0 2px 8px #00000026;transform:translateY(-2px)}.modal-cancel-btn{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;margin-top:1rem;padding:.75rem;width:100%}.modal-cancel-btn:hover{background:#5a6268}.moderate-confirm-btn{background:#16a34a;color:#fff}.moderate-cancel-btn{background:#dc2626;color:#fff}.moderate-team-btn{background:#2563eb;color:#fff}.odds-viewer{background:#f5f7fa;margin:0 auto;max-width:1400px;min-height:100vh;padding:2rem}.viewer-header{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;padding:1.5rem}.viewer-header h2{color:#1a1a2e;margin-bottom:1rem}.market-selector input{border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;padding:.75rem;width:100%}.market-info{align-items:center;border-top:1px solid #e0e0e0;display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;padding-top:1rem}.connection-status{border-radius:20px;font-size:.85rem;font-weight:700;padding:.25rem .75rem}.connection-status.connected{background:#d4edda;color:#155724}.connection-status.disconnected{background:#f8d7da;color:#721c24}.ball-running{animation:pulse 1s infinite;background:#ff9800;border-radius:20px;color:#fff;font-weight:700;padding:.25rem .75rem}.live-score-section{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;padding:1.5rem}.live-score-section h3{color:#1a1a2e;margin-bottom:1rem}.live-score{align-items:center;display:flex;gap:2rem;justify-content:space-between;margin-bottom:1rem}.team-score{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;flex:1 1;padding:1rem;text-align:center}.team-name{font-size:1.2rem}.score,.team-name{display:block;margin-bottom:.5rem}.score{font-size:2rem;font-weight:700}.run-rate{display:block;font-size:.85rem;opacity:.9}.vs{color:#666;font-size:1.2rem;font-weight:700}.match-message{background:#fff3cd;border-radius:8px;color:#856404;margin-bottom:1rem;padding:.75rem;text-align:center}.recent-balls{display:flex;flex-wrap:wrap;gap:.5rem}.ball,.recent-balls{justify-content:center}.ball{align-items:center;background:#f0f0f0;border-radius:8px;display:inline-flex;font-weight:700;height:40px;width:40px}.ball.wicket{background:#dc3545;color:#fff}.ball.boundary{background:#28a745;color:#fff}.odds-section{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;padding:1.5rem}.odds-section h3{color:#1a1a2e;margin-bottom:1rem}.bookmaker-odds{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr}.odd-card{background:#f8f9fa;border-radius:8px;padding:1rem}.team-name{font-size:1.1rem;font-weight:700;margin-bottom:1rem;text-align:center}.odds-container{display:flex;gap:1rem}.back-odds,.lay-odds{flex:1 1;text-align:center}.label{color:#666;display:block;font-size:.75rem;margin-bottom:.5rem}.odds-values{display:flex;gap:.5rem;justify-content:center}.odd-value{background:#fff;border-radius:4px;color:#007bff;display:inline-block;font-weight:700;padding:.25rem .5rem}.market-status{border-top:1px solid #e0e0e0;margin-top:1rem;padding-top:1rem;text-align:center}.status-open{color:#28a745;font-weight:700}.status-suspended{color:#dc3545;font-weight:700}.session-odds-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.session-pair{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:1rem}.over-title{border-bottom:1px solid #e0e0e0;color:#1a1a2e;font-weight:700;margin-bottom:1rem;padding-bottom:.5rem;text-align:center}.over-under-container{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.over-option,.under-option{background:#fff;border-radius:6px;padding:.75rem;text-align:center}.over-option.suspended,.under-option.suspended{background:#f0f0f0;opacity:.5}.option-name{font-weight:700;margin-bottom:.5rem}.over-option .option-name{color:#28a745}.under-option .option-name{color:#dc3545}.option-odds{display:flex;font-size:.85rem;gap:.5rem;justify-content:center;margin-bottom:.5rem}.option-odds .back{color:#007bff}.option-odds .lay{color:#dc3545}.status-badge{border-radius:4px;display:inline-block;font-size:.7rem;font-weight:700;padding:.25rem .5rem}.status-active{background:#28a745;color:#fff}.status-suspended{background:#dc3545;color:#fff}.status-ball-running{animation:pulse 1s infinite;background:#ff9800;color:#fff}.remark{color:#666;font-size:.7rem;font-style:italic;margin-top:.5rem}.loading,.remark{text-align:center}.loading{background:#fff;border-radius:12px;padding:3rem}.hint{color:#666;font-size:.85rem;margin-top:.5rem}@keyframes pulse{0%{opacity:1}50%{opacity:.6}to{opacity:1}}@media (max-width:768px){.odds-viewer{padding:1rem}.bookmaker-odds{grid-template-columns:1fr}.live-score{flex-direction:column}.over-under-container,.session-odds-grid{grid-template-columns:1fr}}.navbar{align-items:center;background:#1a1a2e;box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1rem 2rem}.navbar h1{font-size:1.5rem}.nav-links a{border-radius:4px;color:#fff;margin-left:2rem;padding:.5rem 1rem;text-decoration:none;transition:background .3s}.nav-links a:hover{background:#16213e}@media (max-width:768px){.navbar{flex-direction:column;gap:1rem}.nav-links a{margin:0 .5rem}}
/*# sourceMappingURL=main.15e5bf83.css.map*/