:root{font-family:Inter,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;display:flex;place-items:center;min-width:320px;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}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.setup-view{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:24px}.setup-container{width:100%;max-width:500px}.setup-view h1{text-align:center;font-size:36px;margin-bottom:32px}.form-section{margin-bottom:24px}.form-section h2{font-size:18px;margin-bottom:12px;color:#aaa}.team-inputs{display:flex;gap:16px}.form-field{flex:1;display:flex;flex-direction:column;gap:6px}.form-field label{font-size:14px;color:#888}.price-input{display:flex;align-items:center;gap:4px}.price-input .currency{font-size:20px;color:#888}.price-input input{width:100px}.create-button{width:100%;padding:16px;font-size:18px;margin-top:16px}.payout-selector .mode-toggle{display:flex;gap:8px;margin-bottom:16px}.payout-selector .mode-toggle button{flex:1;padding:10px;background:#333;color:#888}.payout-selector .mode-toggle button.active{background:#4a90d9;color:#fff}.preset-options{display:flex;flex-direction:column;gap:12px}.preset-option{display:flex;align-items:center;gap:12px;padding:12px;background:#2a2a3e;border-radius:8px;cursor:pointer}.preset-option input[type=radio]{width:20px;height:20px;accent-color:#4a90d9}.custom-inputs{display:flex;flex-wrap:wrap;gap:12px}.custom-input{display:flex;align-items:center;gap:4px}.custom-input label{width:40px;color:#888}.custom-input input{width:60px;text-align:center}.custom-inputs .total{width:100%;text-align:center;padding:8px;border-radius:4px}.custom-inputs .total.valid{color:#4a9}.custom-inputs .total.invalid{color:#d94a4a}.form-section .optional{font-size:14px;font-weight:400;color:#666}.form-section textarea{width:100%;resize:vertical;min-height:60px}.number-reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:200}.reveal-content{text-align:center}.reveal-content h2{font-size:32px;margin-bottom:32px}.axis-reveal{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:24px}.axis-label{width:80px;text-align:right;color:#888;font-size:14px}.number{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;border-radius:8px;transition:all .2s}.number.shuffling{background:#333;color:#666}.number.revealed{background:#4a90d9;color:#fff;animation:pop .3s ease}@keyframes pop{0%{transform:scale(1.3)}to{transform:scale(1)}}.grid-view{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:16px}.grid-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap;gap:16px}.grid-column{display:flex;flex-direction:column}.sidebar-column{display:flex;flex-direction:column;gap:12px}.sidebar-column .enter-scores-button,.sidebar-column .add-player-button{width:100%;padding:14px 20px}.sidebar-column .selected-player-badge{padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;color:#000;text-align:center}.no-players{color:#666;font-size:14px;text-align:left;padding:8px 0;white-space:nowrap}.edit-player-icon{color:#666;font-size:14px;padding:4px;margin-left:auto;cursor:pointer}.edit-player-icon:hover{color:#4a90d9}.modal-actions{display:flex;justify-content:space-between;align-items:center}.modal-actions-right{display:flex;gap:12px}.game-info h1{font-size:24px;margin-bottom:4px}.game-info .stats{display:flex;gap:8px;color:#888;font-size:14px}.header-buttons{display:flex;gap:8px}.share-button,.delete-game-button{padding:8px 16px;font-size:14px}.grid-main{display:flex;gap:24px;align-items:flex-start}.grid-container{display:flex;flex-direction:column;gap:2px;position:relative;padding-left:40px}.game-notes{background:#2a2a3e;border-radius:12px;padding:12px 16px;width:260px}.game-notes-content{color:#ccc;font-size:14px;line-height:1.5;white-space:pre-wrap;cursor:pointer;position:relative}.game-notes-content:hover .edit-notes-icon{opacity:1}.edit-notes-icon{color:#666;font-size:12px;margin-left:8px;opacity:0;transition:opacity .15s}.game-notes-edit{width:100%;resize:vertical;min-height:60px;margin-bottom:8px}.game-notes-actions{display:flex;gap:8px;justify-content:flex-end}.game-notes-actions button{padding:6px 12px;font-size:12px}.add-notes-button{background:transparent;border:1px dashed #444;color:#888;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:13px;width:100%}.add-notes-button:hover{border-color:#666;color:#aaa}.player-sidebar{background:#2a2a3e;border-radius:12px;padding:12px;width:260px}.player-sidebar h3{margin:0 0 8px;font-size:12px;color:#888;text-transform:uppercase;letter-spacing:1px}.player-list{display:flex;flex-direction:column;gap:4px}.player-card{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#1a1a2e;border:2px solid transparent;border-radius:6px;cursor:pointer;transition:all .15s ease;text-align:left;width:100%}.player-card:hover{background:#252538}.player-card.selected{border-color:#4a90d9;background:#252538}.player-card.disabled{opacity:.5;cursor:not-allowed}.player-card.disabled:hover{background:#1a1a2e}.player-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.player-details{display:flex;align-items:baseline;flex:1;min-width:0}.player-name{font-weight:600;font-size:14px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-odds{font-weight:400;color:#888}.player-winnings{font-weight:700;color:#4a9;flex-shrink:0}.axis-header.axis-x,.team-name-row{display:flex;gap:2px}.corner-spacer{width:60px;height:40px}.team-name{font-weight:700;font-size:18px;color:#fff;display:flex;align-items:center}.team-x-name{width:518px;justify-content:center;height:40px;background:linear-gradient(90deg,#4a90d933,#4a90d91a);border-radius:8px 8px 0 0}.team-y-name{position:absolute;left:0;top:84px;width:40px;height:518px;writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);justify-content:center;background:linear-gradient(180deg,#4a90d933,#4a90d91a);border-radius:8px 0 0 8px}.corner-cell{width:60px;height:40px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;color:#888}.axis-cell{width:50px;height:40px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:#4a90d9;position:relative}.axis-cell.axis-y{width:60px}.grid-row{display:flex;gap:2px}.square{width:50px;height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:14px;font-weight:700;border-radius:4px;transition:transform .1s,background-color .2s;padding:0;position:relative}.square .initials{line-height:1}.square .best-indicator{position:absolute;top:2px;right:2px;font-size:10px;color:gold;line-height:1}.square.best-square{box-shadow:inset 0 0 0 2px gold}.square .winning-quarters{font-size:9px;font-weight:600;color:gold;line-height:1;margin-top:2px}.square.empty{background:#2a2a3e;color:#444}.square.claimed{background:#3a3a4e;color:#ccc}.square.winner{background:#2d5a27;border:2px solid #4ade80;color:#fff}.square.winner.highlighted{border-color:gold}.square.selectable:hover{transform:scale(1.05);background:#4a90d9}.square.highlighted{color:#000;font-weight:800}.finalize-section{margin-top:24px;text-align:center}.finalize-button{font-size:18px;padding:16px 32px}.finalize-section p{margin-top:8px;color:#888;font-size:14px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#2a2a3e;padding:24px;border-radius:12px;min-width:300px}.modal h2{margin-bottom:16px}.modal input{width:100%;margin-bottom:16px}.qr-modal{text-align:center}.qr-code-container{display:flex;justify-content:center;margin:20px 0;padding:16px;background:#2a2a3e;border-radius:12px}.qr-url{font-size:12px;color:#888;word-break:break-all;margin-bottom:16px}@media print{html,body,#root{background:#fff!important}.grid-view{min-height:auto;padding:0;background:#fff!important;align-items:flex-start}.sidebar-column,.finalize-section,.modal-overlay,.enter-scores-button,.add-player-button,.share-button,.selected-player-badge{display:none!important}.grid-header{margin-bottom:24px}.game-info h1{font-size:28px;color:#000!important;margin-bottom:8px}.game-info .stats{color:#333!important;font-size:16px}.grid-main{justify-content:center}.grid-container{gap:0;padding-left:50px}.team-name{color:#000!important;font-size:20px;font-weight:800}.team-x-name{background:transparent!important;border:none;border-radius:0;height:36px;width:600px}.team-y-name{background:transparent!important;border:none;border-radius:0;width:50px;height:600px;top:72px}.corner-spacer{width:70px;height:36px}.axis-cell{width:60px;height:36px;color:#000!important;font-size:20px;font-weight:800;border:none;background:transparent!important}.axis-cell.axis-y{width:70px}.corner-cell{width:70px;height:36px}.grid-row,.axis-header.axis-x,.team-name-row{gap:0}.square{width:60px;height:60px;border:1px solid #333;border-radius:0;background:#fff!important;color:#000!important;font-size:16px;font-weight:700}.square.claimed{background:#fff!important;color:#000!important}.square.empty{background:#f9f9f9!important;color:#ccc!important}.square.winner{background:#d4edda!important;border:2px solid #28a745!important;color:#000!important}.square .winning-quarters{color:#28a745!important;font-size:10px}.square .best-indicator,.square.best-square{box-shadow:none}.square .best-indicator{display:none}.print-legend{display:block!important;margin-top:16px;page-break-inside:avoid}.print-legend-grid{display:inline;font-size:11px;color:#000;line-height:1.6}.print-legend-item{display:inline}.print-legend-item:not(:last-child):after{content:", "}.print-legend-initials{font-weight:700}}.print-legend{display:none}@media(max-width:700px){.grid-view{padding:12px;align-items:flex-start}.grid-header{flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;width:100%}.game-info{flex:1;min-width:0}.game-info h1{font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-info .stats{font-size:12px;flex-wrap:wrap}.header-buttons{flex-shrink:0}.share-button{display:none}.delete-game-button,.header-buttons .primary{padding:6px 10px;font-size:11px}.grid-main{flex-direction:column;gap:16px;width:auto}.grid-column{width:369px}.grid-container{padding-left:18px}.team-y-name{width:18px;font-size:11px;height:319px;top:44px;background:transparent!important;border-radius:0}.team-x-name{width:319px;height:18px;font-size:11px;background:transparent!important;border-radius:0}.corner-spacer{width:32px;height:18px}.corner-cell{width:32px;height:24px;font-size:10px}.axis-cell{width:31px;height:24px;font-size:12px}.axis-cell.axis-y{width:32px}.axis-header.axis-x,.grid-row,.team-name-row{gap:1px}.square{width:31px;height:31px;font-size:10px;border-radius:2px}.square .winning-quarters{font-size:8px}.square .best-indicator{font-size:9px}.sidebar-column{width:369px;gap:8px;padding:0}.sidebar-column .add-player-button,.sidebar-column .enter-scores-button{padding:12px 16px}.game-notes,.player-sidebar{width:100%;box-sizing:border-box}.player-list{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.player-card{padding:8px}.player-name{font-size:12px}.finalize-section{margin-top:16px}.finalize-button{font-size:14px;padding:12px 24px}.finalize-section p{font-size:12px}.modal{margin:16px;min-width:auto;width:calc(100% - 32px);max-width:400px}}.score-entry-view{min-height:100vh;padding:24px;max-width:600px;margin:0 auto}.score-entry-view header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.pot-info{font-size:18px;color:#4a90d9;font-weight:600}.previous-scores{margin-bottom:32px}.score-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#2a2a3e;border-radius:8px;margin-bottom:8px;gap:12px}.edit-button{padding:4px 12px;font-size:12px;background:transparent;border:1px solid #666;color:#888;border-radius:4px;cursor:pointer}.edit-button:hover:not(:disabled){border-color:#4a90d9;color:#4a90d9}.edit-button:disabled{opacity:.5;cursor:not-allowed}.quarter-label{font-weight:600;color:#888;min-width:80px}.score{font-size:16px}.winner{color:#4a9;font-weight:600}.current-quarter{background:#2a2a3e;padding:24px;border-radius:12px}.current-quarter h2{text-align:center;margin-bottom:24px;font-size:24px}.score-inputs{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:24px}.team-score{display:flex;flex-direction:column;align-items:center;gap:8px}.team-score label{font-size:18px;font-weight:600}.team-score input{width:100px;height:60px;font-size:32px;text-align:center;-moz-appearance:textfield}.team-score input::-webkit-outer-spin-button,.team-score input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.vs{font-size:24px;color:#666;margin-top:24px}.form-actions{display:flex;gap:12px}.submit-button{flex:1;padding:16px;font-size:18px}.cancel-button{padding:16px 24px;font-size:18px}.payout-info{text-align:center;margin-top:16px;color:#888}.winner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.winner-announcement{text-align:center;animation:popIn .3s ease}@keyframes popIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.winner-announcement h2{font-size:28px;margin-bottom:16px}.winner-name{font-size:48px;font-weight:700;color:#4a90d9;margin-bottom:8px}.winner-square{font-size:24px;color:#888;margin-bottom:12px}.winner-payout{font-size:36px;color:#4a9;font-weight:600}.results-view{min-height:100vh;padding:24px;max-width:1200px;margin:0 auto}.results-view header{text-align:center;margin-bottom:32px}.results-view h1{font-size:32px;margin-bottom:8px}.game-summary{color:#888;font-size:16px}.quarters-summary{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap;max-width:850px;margin-left:auto;margin-right:auto}.quarter-result{flex:1;min-width:150px;background:#2a2a3e;padding:16px;border-radius:8px;text-align:center}.quarter-label{font-size:14px;color:#888;margin-bottom:4px}.quarter-score{font-size:20px;font-weight:700;margin-bottom:4px}.quarter-winner{font-size:14px;color:#4a9}.results-grid-section{display:flex;gap:24px;justify-content:center;align-items:flex-start;margin-bottom:32px}.results-grid-container{display:flex;flex-direction:column;gap:2px;position:relative;padding-left:40px}.results-grid-container .team-y-name{position:absolute;left:0;top:84px;width:40px;height:518px;writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);justify-content:center;background:linear-gradient(180deg,#4a90d933,#4a90d91a);border-radius:8px 0 0 8px;font-weight:700;font-size:18px;color:#fff;display:flex;align-items:center}.results-view .team-name-row{display:flex;gap:2px}.results-view .corner-spacer{width:60px;height:40px}.results-view .team-name{font-weight:700;font-size:18px;color:#fff;display:flex;align-items:center}.results-view .team-x-name{width:518px;justify-content:center;height:40px;background:linear-gradient(90deg,#4a90d933,#4a90d91a);border-radius:8px 8px 0 0}.results-view .axis-header.axis-x{display:flex;gap:2px}.results-view .corner-cell{width:60px;height:40px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;color:#888}.results-view .axis-cell{width:50px;height:40px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:#4a90d9}.results-view .axis-cell.axis-y{width:60px}.results-view .grid-row{display:flex;gap:2px}.results-player-sidebar{background:#2a2a3e;border-radius:12px;padding:16px;width:220px}.results-player-sidebar h3{margin:0 0 12px;font-size:16px;color:#888;text-transform:uppercase;letter-spacing:1px}.results-player-sidebar .player-list{display:flex;flex-direction:column;gap:8px}.results-player-sidebar .player-card{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#1a1a2e;border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .15s ease;text-align:left;width:100%}.results-player-sidebar .player-card:hover{background:#252538}.results-player-sidebar .player-card.selected{border-color:#4a90d9;background:#252538}.results-player-sidebar .player-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.results-player-sidebar .player-details{display:flex;flex-direction:column;flex:1;min-width:0}.results-player-sidebar .player-name{font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.results-player-sidebar .player-squares{font-size:12px;color:#888}.results-table{border-radius:12px;overflow:hidden;margin-bottom:32px;max-width:850px;margin-left:auto;margin-right:auto}.table-header,.table-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;padding:14px 20px;gap:8px}.table-header{background:#2a2a3e;font-weight:600;color:#888;font-size:14px;border-radius:8px 8px 0 0}.table-row{border-bottom:1px solid #333;background:transparent}.table-row:last-child{border-bottom:none}.table-row.winner{border-left:3px solid #4a9}.table-row.loser{border-left:3px solid transparent}.col-name{text-align:left}.col-squares,.col-buyin,.col-winnings,.col-net{text-align:right}.col-net.positive{color:#4a9;font-weight:600}.col-net.negative{color:#d94a4a}.quarters-won{font-size:12px;color:#888;margin-left:8px}.actions{text-align:center;margin-top:32px;margin-bottom:32px}.actions button{padding:16px 32px;font-size:16px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%;width:100%}html{height:100%}html,body{background:#1a1a2e}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#eee}button{font-family:inherit;cursor:pointer;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:600;transition:transform .1s,opacity .1s}button:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:#4a90d9;color:#fff}button.secondary{background:#444;color:#fff}button.danger{background:#d94a4a;color:#fff}input,select,textarea{font-family:inherit;font-size:16px;padding:12px;border:2px solid #444;border-radius:8px;background:#2a2a3e;color:#eee}input:focus,select:focus,textarea:focus{outline:none;border-color:#4a90d9}h1{font-size:28px;margin-bottom:16px}h2{font-size:22px;margin-bottom:12px}.loading-view{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.loading-spinner{width:40px;height:40px;border:3px solid #444;border-top-color:#4a90d9;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-view{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px}.error-view h1{color:#d94a4a}.error-view a{color:#4a90d9;text-decoration:none}.error-view a:hover{text-decoration:underline}@media print{html,body,#root{background:#fff!important;color:#000!important}body{color:#000!important}}
