.auth-container{align-items:center;background:#1e3a5f;display:flex;justify-content:center;min-height:100vh;padding:20px;width:100%}.auth-box{background:#fff;border-radius:4px;box-shadow:none;max-width:400px;padding:40px;width:100%}.auth-box h1{color:#1a1a2e;font-size:22px;font-weight:700;margin-bottom:8px;text-align:center}.auth-box .subtitle{color:#9ca3af;font-size:13px;margin-bottom:24px;text-align:center}.form-group{margin-bottom:20px}.form-group label{color:#333;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input{border:2px solid #e0e0e0;border-radius:6px;font-size:14px;padding:12px;transition:border-color .3s;width:100%}.form-group input:focus{border-color:#1e3a5f;outline:none}.submit-btn{background:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px;transition:background-color .2s;width:100%}.submit-btn:hover:not(:disabled){background:#2a5080}.submit-btn:disabled{cursor:not-allowed;opacity:.7}.error-message{background:#ffebee;border-left:4px solid #c62828;padding:12px}.auth-link{color:#666;font-size:14px;margin-top:20px;text-align:center}.auth-link a{color:#1e3a5f;font-weight:600;text-decoration:none}.auth-link a:hover{text-decoration:underline}.verified-message{background:#e8f5e9;border:1px solid #a5d6a7;border-radius:6px;color:#2e7d32;font-size:14px;font-weight:600;margin-bottom:20px;padding:12px;text-align:center}.password-requirements{font-size:12px;list-style:none;margin:8px 0 0;padding:0}.password-requirements li{color:#f44336;padding:2px 0}.password-requirements li:before{content:"✗ "}.password-requirements li.met{color:#4caf50}.password-requirements li.met:before{content:"✓ "}.success-message{border-radius:8px;line-height:1.6;padding:16px;text-align:center}.keyboard-container{max-width:600px;width:100%}.keyboard{grid-gap:6px;background:#fff;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(35px,1fr));margin-bottom:12px;padding:16px}.key{background:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;padding:10px 6px;touch-action:manipulation;transition:background-color .15s;-webkit-user-select:none;user-select:none}.key:hover:not(:disabled){background:#2a5080}.key:active:not(:disabled){background:#3668a0}.key.guessed{background:#9ca3af;color:#fff;cursor:not-allowed;opacity:.6}.key.correct{background:#16a34a}.key.correct,.key.incorrect{color:#fff;cursor:not-allowed;opacity:1}.key.incorrect{background:#dc2626}.key.disabled{cursor:not-allowed;opacity:.5}.keyboard-hint{color:#9ca3af;font-size:12px;margin-top:12px;text-align:center}@media (max-width:480px){.keyboard{gap:6px;grid-template-columns:repeat(auto-fit,minmax(32px,1fr));padding:15px}.key{font-size:13px;padding:10px 4px}.keyboard-hint{font-size:11px}}.game-display{background:#fff;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;box-sizing:border-box;margin-bottom:0;max-width:600px;overflow:hidden;padding:24px;width:100%}.hangman-area{border-bottom:2px solid #eee;margin-bottom:30px;padding-bottom:20px;text-align:center}.hangman-figure{animation:bounce .6s ease;font-size:80px;margin-bottom:15px}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.attempts-text{color:#666;font-size:16px;margin:0}.attempts-number{color:#1e3a5f;font-size:18px;font-weight:700}.word-display{margin-bottom:30px;text-align:center}.display-title{color:#999;font-size:14px;font-weight:600;letter-spacing:1px;margin-bottom:12px;text-transform:uppercase}.theme-display{background:#1e3a5f;border-radius:4px;color:#fff;margin-bottom:20px;padding:12px;text-align:center}.theme-title{font-size:12px;font-weight:600;letter-spacing:1px;margin-bottom:5px;opacity:.9;text-transform:uppercase}.theme-text{font-size:18px;font-weight:700;text-transform:capitalize}.letters-container{grid-gap:8px;display:grid;gap:8px;margin-bottom:20px;margin-left:auto;margin-right:auto;max-width:600px}.letter-box{align-items:center;aspect-ratio:1/1;background:#1e3a5f;border:2px solid #1e3a5f;border-radius:4px;color:#fff;display:flex;font-size:clamp(14px,2.5vw,24px);font-weight:700;justify-content:center;transition:all .3s;width:100%}.letter-box.empty{background:#f0f0f0;border-color:#ddd;color:#999}.letter-box.filled{animation:reveal .3s ease-out;background:#1e3a5f;color:#fff}.letter-box.hyphen{background:#f8f9fa;border-color:#d0d4dc;color:#7a7f8c;font-weight:700}.letter-box.pad{background:#0000;border-color:#0000;box-shadow:none;color:#0000}@keyframes reveal{0%{opacity:0;transform:scale(.8) rotateY(90deg)}to{opacity:1;transform:scale(1) rotateY(0)}}@media (max-width:480px){.game-display{padding:20px}.hangman-figure{font-size:60px}.letter-box{border-radius:5px;border-width:1px;font-size:clamp(11px,2vw,16px)}.letters-container{gap:4px;max-width:100%}}.loading-message{padding:40px}.spinner{border-top-color:#667eea;height:40px;margin:0 auto 20px;width:40px}.game-container{background:#f4f5f7;flex-direction:column;min-height:100vh;padding:0}.game-container,.game-header{align-items:center;display:flex;width:100%}.game-header{background:#1e3a5f;box-sizing:border-box;color:#fff;justify-content:space-between;margin-bottom:0;padding:14px 24px}.header-left h1{margin-bottom:2px}.user-info{opacity:.7}.admin-btn,.logout-btn{border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px;transition:background-color .2s}.admin-btn{background:#ffffff26}.admin-btn:hover{background:#ffffff40}.header-buttons{display:flex;gap:8px}.tournament-btn{background:#ffffff26;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px;transition:background-color .2s}.tournament-btn:hover{background:#ffffff40}.message{animation:slideIn .3s ease-out;border-radius:4px;font-size:14px;font-weight:600;margin:16px 0;max-width:600px;padding:10px 16px;text-align:center;width:100%}.message.success{background:#dcfce7;color:#166534}.message.error{background:#fef2f2;color:#991b1b}.message.info{background:#e0f2fe;color:#0c4a6e}.new-game-btn{background:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;margin-bottom:20px;padding:10px 24px;transition:background-color .2s}.new-game-btn:hover{background:#2a5080}.game-finished-actions{display:flex;gap:10px;margin:16px 0}.game-finished-actions .new-game-btn{margin-bottom:0}.play-again-btn{background:#4fc3f7;color:#1e3a5f}.play-again-btn:hover{background:#29b6f6}.tournament-timer{background:#1e3a5f;border-radius:4px;color:#fff;font-size:14px;margin:12px 0;padding:8px 20px;text-align:center}.tournament-timer.expired{animation:pulse 1s infinite;background:#991b1b}.game-menu-panel{background:#fff;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;margin-top:24px;max-width:500px;padding:32px 24px;text-align:center;width:100%}.game-menu-panel h2{color:#1a1a2e;font-size:19px;font-weight:700;margin:0 0 20px}.game-menu-controls{align-items:center;display:flex;flex-direction:column;gap:12px}.game-menu-select{appearance:auto;background:#fff;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;font-size:15px;padding:10px 14px;transition:border-color .2s;width:100%}.game-menu-select:focus{border-color:#1e3a5f;outline:none}.game-menu-description{background:#f4f5f7;border-radius:4px;box-sizing:border-box;color:#6b7280;font-size:13px;margin:0;padding:8px 12px;width:100%}.game-menu-start-btn{background:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;margin-top:4px;padding:10px 40px;transition:background-color .2s}.game-menu-start-btn:hover{background:#2a5080}.digits-display{background:#fff;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;box-sizing:border-box;margin-bottom:0;max-width:600px;overflow:hidden;padding:16px;width:100%}.target-area{background:#1e3a5f;border-radius:4px;color:#fff;padding:14px;text-align:center}.target-label{font-size:11px;font-weight:700;letter-spacing:3px;margin-bottom:4px;opacity:.8;text-transform:uppercase}.target-number{font-size:48px;font-weight:800;line-height:1;text-shadow:0 2px 8px #0000004d}.history-area{margin-top:12px}.history-label{color:#999;font-size:11px;font-weight:600;letter-spacing:1px;margin-bottom:6px;text-transform:uppercase}.history-list{display:flex;flex-direction:column;gap:4px}.history-item{align-items:center;background:#f8f9fa;border-radius:6px;display:flex;font-size:14px;gap:8px;padding:6px 10px}.history-step{color:#999;font-weight:600;min-width:18px}.history-op{color:#333;font-family:Courier New,Courier,monospace;font-weight:600}.loading-message{color:#666;padding:30px;text-align:center;width:100%}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#1e3a5f;height:36px;margin:0 auto 16px;width:36px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:480px){.digits-display{padding:12px}.target-number{font-size:40px}}.digits-controls{max-width:600px;text-align:center;width:100%}.instruction-text{color:#6b7280;font-size:14px;font-weight:600;margin-bottom:10px;min-height:20px}.control-numbers{background:#fff;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:10px;padding:14px}.control-number-btn{align-items:center;background:#1e3a5f;border:3px solid #0000;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:18px;font-weight:700;height:50px;justify-content:center;min-width:60px;padding:0 12px;transition:background-color .15s}.control-number-btn:hover:not(:disabled){background:#2a5080}.control-number-btn:active:not(:disabled){background:#3668a0}.control-number-btn.selected-num1{border-color:#4fc3f7;box-shadow:0 0 8px #4fc3f766}.control-number-btn.selectable-num2{animation:gentle-pulse 1.5s ease-in-out infinite}@keyframes gentle-pulse{0%,to{opacity:1}50%{opacity:.75}}.control-number-btn.disabled{cursor:not-allowed;opacity:.5}.control-operations{background:#fff;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;display:flex;gap:10px;justify-content:center;margin-bottom:10px;padding:12px}.control-op-btn{align-items:center;background:#1e40af;border:3px solid #0000;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:24px;font-weight:700;height:54px;justify-content:center;transition:background-color .15s;width:54px}.control-op-btn:hover:not(:disabled){background:#1e3a8a}.control-op-btn:active:not(:disabled){background:#1d4ed8}.control-op-btn.selected-op{border-color:#4fc3f7;box-shadow:0 0 8px #4fc3f766}.control-op-btn.disabled{cursor:not-allowed;opacity:.4}.clear-btn{background:#fff;border:1px solid #d1d5db;border-radius:4px;color:#1e3a5f;cursor:pointer;font-size:13px;font-weight:600;margin-bottom:12px;padding:6px 16px;transition:background-color .2s}.clear-btn:hover{background:#f4f5f7}.preview-text{color:#1a1a2e;font-family:Courier New,Courier,monospace;font-size:20px;font-weight:700;margin-top:4px}@media (max-width:480px){.control-number-btn{font-size:16px;height:44px;min-width:52px}.control-op-btn{font-size:20px;height:48px;width:48px}.control-operations{gap:8px;padding:10px}}.digits-game-container{align-items:center;background:#f4f5f7;display:flex;flex-direction:column;min-height:100vh;padding:0;width:100%}.digits-game-container .game-header{align-items:center;background:#1e3a5f;box-sizing:border-box;color:#fff;display:flex;justify-content:space-between;margin-bottom:0;padding:14px 24px;width:100%}.digits-game-container .header-left h1{font-size:22px;font-weight:700;letter-spacing:.02em;margin-bottom:2px}.digits-game-container .user-info{font-size:13px;opacity:.7}.digits-game-container .logout-btn{background:#ffffff1a;border:none;border-radius:4px;color:#fffc;cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px;transition:background-color .2s}.digits-game-container .logout-btn:hover{background:#f443364d;color:#fff}.digits-game-container .admin-btn,.digits-game-container .tournament-btn{background:#ffffff26;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px;transition:background-color .2s}.digits-game-container .admin-btn:hover,.digits-game-container .tournament-btn:hover{background:#ffffff40}.digits-game-container .header-buttons{display:flex;gap:8px}.digits-game-container .message{animation:slideIn .3s ease-out;border-radius:4px;font-size:14px;font-weight:600;margin:16px 0;max-width:600px;padding:10px 16px;text-align:center;width:100%}.digits-game-container .message.success{background:#dcfce7;color:#166534}.digits-game-container .message.error{background:#fef2f2;color:#991b1b}.digits-game-container .message.info{background:#e0f2fe;color:#0c4a6e}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.digits-game-container .tournament-timer{background:#1e3a5f;border-radius:4px;color:#fff;font-size:14px;margin:12px 0;padding:8px 20px;text-align:center}.digits-game-container .tournament-timer.expired{animation:pulse 1s infinite;background:#991b1b}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.digits-game-container .game-finished-actions{display:flex;gap:10px;margin:16px 0}.digits-game-container .new-game-btn{background:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:background-color .2s}.digits-game-container .new-game-btn:hover{background:#2a5080}.digits-game-container .play-again-btn{background:#4fc3f7;color:#1e3a5f}.digits-game-container .play-again-btn:hover{background:#29b6f6}.admin-container{background:#f4f5f7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh;padding:0;width:100%}.admin-header{align-items:center;background:#1e3a5f;border-radius:0;box-shadow:none;color:#fff;display:flex;justify-content:space-between;margin-bottom:0;padding:14px 24px}.header-left h1{font-size:22px;margin:0 0 2px}.user-info{font-size:13px;margin:0}.back-btn,.logout-btn{border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:600;margin-left:8px;padding:7px 16px;transition:background-color .2s}.back-btn{background:#ffffff26}.back-btn:hover{background:#ffffff40}.logout-btn{background:#ffffff1a}.logout-btn:hover{background:#f443364d}.stats-container{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.stat-card{align-items:center;background:#fff;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;display:flex;gap:12px;padding:16px;transition:background-color .15s}.stat-card:hover{background-color:#f8f9fb}.stat-icon{font-size:24px}.stat-content{flex:1 1}.stat-label{color:#999;font-size:12px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.stat-value{color:#1e3a5f;font-size:22px;font-weight:700}.filters-container{grid-gap:16px;align-items:end;background:#fff;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:0;padding:16px 24px}.filter-group{display:flex;flex-direction:column}.filter-group label{color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.filter-input,.filter-select{border:2px solid #eee;border-radius:6px;font-family:inherit;font-size:14px;padding:10px 12px;transition:all .3s ease}.filter-input:focus,.filter-select:focus{background:#f8f9fb;border-color:#1e3a5f;outline:none}.refresh-btn{background:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 30px;transition:background-color .2s;white-space:nowrap}.refresh-btn:hover:not(:disabled){background:#2a5080}.refresh-btn:disabled{cursor:not-allowed;opacity:.6}.games-table-container{background:#fff;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;overflow:hidden}.table-wrapper{overflow-x:auto}.games-table{border-collapse:collapse;font-size:14px;width:100%}.games-table thead{background:#1e3a5f;color:#fff;position:sticky;top:0}.games-table th{font-size:12px;font-weight:600;letter-spacing:.5px;padding:15px;text-align:left;text-transform:uppercase;white-space:nowrap}.games-table td{border-bottom:1px solid #eee;padding:12px 15px}.games-table tbody tr{transition:all .3s ease}.games-table tbody tr:hover{background:#f8f9fb}.games-table tbody tr.row-win{border-left:4px solid #51cf66}.games-table tbody tr.row-loss{border-left:4px solid #ff8787}.games-table tbody tr.row-in_progress{border-left:4px solid #ffd43b}.email-cell,.game-id-cell,.phrase-cell{color:#666;font-size:13px}.email-cell span,.game-id-cell code{display:inline-block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phrase-cell strong{color:#333}.date-cell{color:#999;font-size:12px}.center.success{color:#51cf66;font-weight:600}.center.error{color:#ff8787;font-weight:600}.center.bold{color:#1e3a5f;font-weight:700}.badge{border-radius:12px;display:inline-block;font-size:11px;letter-spacing:.5px;padding:4px 12px;width:fit-content}.badge-win{background:#d4edda;color:#155724}.badge-loss{background:#f8d7da;color:#721c24}.badge-progress{background:#fff3cd;color:#856404}.pagination{align-items:center;background:#f9f9f9;border-top:1px solid #eee;display:flex;gap:15px;justify-content:center;padding:20px}.pagination-btn{background:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:background-color .2s}.pagination-btn:hover:not(:disabled){background:#2a5080}.pagination-btn:disabled{background:#ccc;cursor:not-allowed;opacity:.5}.page-info{color:#666;font-size:13px;font-weight:600}.loading,.no-games{text-align:center}.loading,.no-games,.no-tournaments{color:#999;font-size:16px;padding:40px}.date-cell{color:#666;font-size:13px;white-space:nowrap}.center{text-align:center}.delete-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:6px 12px;transition:background-color .3s ease}.delete-btn:hover{background:#c82333}.badge-completed{background:#28a745;color:#fff}.badge-open{background:#ffc107;color:#212529}@media (max-width:1400px){.admin-container{grid-template-columns:1fr}.stats-container{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.games-table{font-size:12px}.games-table td,.games-table th{padding:8px}}@media (max-width:600px){.admin-container{padding:15px 10px}.admin-header{padding:15px}.header-left h1{font-size:24px}.stats-container{grid-template-columns:1fr}.stat-card{padding:15px}.games-table{font-size:11px}.games-table td,.games-table th{padding:6px}.email-cell span,.game-id-cell code,.phrase-cell strong{max-width:80px}.filters-container{gap:10px;grid-template-columns:1fr;padding:15px}}.tournaments-section{margin-top:40px}.tournaments-section h2{background:#1e3a5f;color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em;margin:0;padding:10px 24px;text-transform:uppercase}.tournaments-table-container{background:#fff;border-radius:0;box-shadow:none;padding:0}.tournaments-table{border-collapse:collapse;font-size:14px;width:100%}.tournaments-table td,.tournaments-table th{border-bottom:1px solid #e0e0e0;padding:12px 15px;text-align:left}.tournaments-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#333;font-weight:600}.tournaments-table tr:hover{background:#f8f9fa}.tournament-id-cell code{background:#f1f3f4;border-radius:3px;color:#666;font-size:12px;padding:2px 6px}.winner-cell{color:#28a745;font-weight:600}.create-admin-section{background:#fff;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;margin-bottom:0;padding:16px 24px}.create-admin-section h2{color:#1a1a2e;font-size:15px;margin:0 0 12px}.create-admin-form{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.create-admin-form input{border:2px solid #e0e0e0;border-radius:6px;flex:1 1;font-size:14px;min-width:160px;padding:10px 14px}.create-admin-form input:focus{border-color:#1e3a5f;outline:none}.create-admin-btn{background:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;white-space:nowrap}.create-admin-btn:hover{background:#2a5080}.success-message{background:#e8f5e9;border:1px solid #a5d6a7;color:#2e7d32;margin-bottom:12px;padding:10px 14px}.found-user{align-items:center;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;padding:12px 16px}.found-user-info{color:#333;flex:1 1;font-size:14px;font-weight:500}.admin-checkbox-label{align-items:center;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:6px}.admin-checkbox-label input[type=checkbox]{cursor:pointer;height:16px;width:16px}.expire-password-btn{background:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;white-space:nowrap}.expire-password-btn:hover{background:#2a5080}.deactivate-btn{background:#ff9800;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;white-space:nowrap}.deactivate-btn:hover{background:#e65100}.user-delete-btn{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;white-space:nowrap}.user-delete-btn:hover{background:#c82333}.confirm-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.confirm-dialog{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:30px;width:90%}.confirm-dialog p{color:#333;font-size:16px;line-height:1.5;margin:0 0 24px}.confirm-actions{display:flex;gap:12px;justify-content:flex-end}.confirm-cancel-btn{background:#e0e0e0;border:none;border-radius:6px;color:#333;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px}.confirm-cancel-btn:hover{background:#bdbdbd}.confirm-proceed-btn{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px}.confirm-proceed-btn:hover{background:#c82333}.user-deactivated-badge{background:#ff9800;border-radius:10px;color:#fff;font-size:11px;font-weight:700;margin-left:8px;padding:2px 8px;text-transform:uppercase}.audit-btn{background:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:5px 10px;transition:background-color .2s;white-space:nowrap}.audit-btn:hover{background:#2a5080}.audit-overlay{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.audit-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:80vh;max-width:800px;width:95%}.audit-modal-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #eee;border-radius:12px 12px 0 0;display:flex;gap:12px;padding:16px 24px}.audit-modal-header h3{color:#1a1a2e;font-size:15px;margin:0}.audit-game-id{color:#666;flex:1 1;font-size:13px}.audit-game-id code{background:#f1f3f4;border-radius:3px;font-size:12px;padding:2px 6px}.audit-close-btn{background:none;border:none;border-radius:4px;color:#999;cursor:pointer;font-size:20px;padding:4px 8px;transition:all .2s ease}.audit-close-btn:hover{background:#eee;color:#333}.audit-modal-body{overflow-y:auto;padding:16px 24px}.audit-table{border-collapse:collapse;font-size:13px;width:100%}.audit-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#333;font-size:11px;font-weight:600;letter-spacing:.5px;padding:10px 12px;text-align:left;text-transform:uppercase}.audit-table td{border-bottom:1px solid #eee;padding:8px 12px}.audit-table code{background:#f1f3f4;border-radius:3px;font-size:12px;padding:2px 6px}.audit-correct{background:#51cf660f}.audit-incorrect{background:#ff87870f}.expand-cell{text-align:center;width:30px}.expand-arrow{color:#1e3a5f;display:inline-block;font-size:10px;transition:transform .2s ease}.expand-arrow.open{transform:rotate(90deg)}.tournament-row:hover{background:#f8f9fb!important}.tournament-row.expanded{background:#f4f5f7}.tournament-detail-row>td{border-bottom:2px solid #1e3a5f;padding:0!important}.tournament-games-detail{background:#f8f9fb;padding:16px 24px}.loading-inline{color:#999;font-size:14px;padding:20px;text-align:center}.tournament-games-table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 8px #00000014;font-size:13px;overflow:hidden;width:100%}.tournament-games-table th{background:#eef2f7;border-bottom:2px solid #e2e5ea;color:#1a1a2e;font-size:11px;font-weight:600;letter-spacing:.5px;padding:10px 12px;text-align:left;text-transform:uppercase}.tournament-games-table td{border-bottom:1px solid #eee;padding:8px 12px}.tournament-games-table tbody tr:hover{background:#f4f5f7}.tournament-container{background:#f4f5f7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.4;margin:0 auto;max-width:900px;min-height:100vh;padding:0}.tournament-header{align-items:center;background:#1e3a5f;border-bottom:none;color:#fff;display:flex;justify-content:space-between;margin-bottom:0;padding:14px 24px}.header-left h1{color:#fff;font-size:18px;font-weight:700;letter-spacing:.02em;margin:0}.user-info{color:#ffffffb3;font-size:12px;margin:2px 0 0}.subscription-status{align-items:center;border-radius:4px;display:inline-flex;font-size:11px;font-weight:600;gap:6px;margin-top:6px;padding:4px 10px}.subscription-status.active{background-color:#4caf5033;border:1px solid #4caf5066;color:#81c784}.subscription-status.inactive{background-color:#f4433626;border:1px solid #f443364d;color:#ef9a9a}.status-icon{font-size:14px}.subscribe-btn{background-color:#4fc3f7;border:none;border-radius:3px;color:#1e3a5f;cursor:pointer;font-size:11px;font-weight:600;padding:3px 8px;transition:background-color .2s}.subscribe-btn:hover{background-color:#29b6f6}.header-actions{align-items:center;display:flex;gap:8px}.admin-btn,.back-btn,.create-btn,.logout-btn{border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px;transition:background-color .2s}.create-btn{background-color:#4fc3f7;color:#1e3a5f}.create-btn:hover{background-color:#29b6f6}.create-btn:disabled{background-color:#ffffff26;color:#fff6;cursor:not-allowed}.premium-required-note{color:#ef9a9a;font-size:11px;font-style:italic}.back-btn{background-color:#ffffff26;color:#fff}.back-btn:hover{background-color:#ffffff40}.logout-btn{background-color:#ffffff1a;color:#fffc}.logout-btn:hover{background-color:#f443364d;color:#fff}.error-message{background-color:#ffebee;border-bottom:1px solid #ffcdd2;color:#c62828;font-size:13px;margin:0;padding:12px 24px}.tournament-content{grid-gap:0;display:grid;gap:0;grid-template-columns:1fr;padding:0}.all-tournaments h2,.open-tournaments h2{color:#1a1a2e;font-size:15px;font-weight:700;margin-bottom:0}.loading{font-size:14px}.loading,.no-tournaments{color:#888;padding:40px 24px;text-align:center}.no-tournaments{background-color:#fff;border:none;border-bottom:1px solid #e2e5ea;border-radius:0}.no-tournaments p{font-size:14px;margin:6px 0}.tournaments-grid{grid-gap:0;display:grid;gap:0;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.tournament-card{background:#fff;border:none;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;padding:16px 24px;transition:background-color .15s}.tournament-card:hover{background-color:#f8f9fb;box-shadow:none;transform:none}.tournament-card .tournament-header{align-items:center;border-bottom:none;display:flex;justify-content:space-between;margin-bottom:10px;padding-bottom:0}.tournament-card h3{color:#1a1a2e;font-size:14px;margin:0}.tournament-details p{color:#6b7280;font-size:13px;margin:4px 0}.tournament-details strong{color:#1a1a2e}.join-btn{background-color:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:10px;transition:background-color .2s;width:100%}.join-btn:hover:not(:disabled){background-color:#2a5080}.join-btn:disabled{background-color:#d1d5db;color:#9ca3af;cursor:not-allowed}.badge{border-radius:3px;font-size:10px;font-weight:700;letter-spacing:.05em;padding:3px 8px;text-transform:uppercase}.badge-open{font-feature-settings:"tnum";background-color:#dcfce7;color:#166534;font-size:12px;font-variant-numeric:tabular-nums}.badge-urgent{animation:pulse-urgent 1s ease-in-out infinite;background-color:#fef2f2;color:#dc2626}@keyframes pulse-urgent{0%,to{opacity:1}50%{opacity:.6}}.badge-completed{background-color:#f3e8ff;color:#6b21a8}.tournaments-list{background:#fff;border:none;border-radius:0;box-shadow:none;overflow:hidden}.tournament-row{align-items:center;border-bottom:1px solid #e2e5ea;display:flex;justify-content:space-between;padding:12px 24px;transition:background-color .15s}.tournament-row:hover{background-color:#f8f9fb}.tournament-row:last-child{border-bottom:1px solid #e2e5ea}.tournament-info{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.tournament-id{color:#1a1a2e;font-size:14px;font-weight:600}.games,.participants,.winner{color:#6b7280;font-size:13px}.winner{color:#166534;font-weight:600}@media (max-width:768px){.tournament-header{flex-direction:column;gap:12px;padding:12px 16px;text-align:center}.header-actions{flex-wrap:wrap;justify-content:center}.tournaments-grid{grid-template-columns:1fr}.tournament-row{flex-direction:column;gap:8px;padding:12px 16px}.tournament-row,.tournament-times{align-items:flex-start}.tournament-summary{padding:12px 16px}.tournament-details{padding:16px}}.tournament-item{background:#fff;border:none;border-bottom:1px solid #e2e5ea;border-radius:0;margin-bottom:0;overflow:hidden}.tournament-item.closed{opacity:1}.tournament-summary{align-items:center;background:#fff;cursor:pointer;display:flex;justify-content:space-between;padding:12px 24px;transition:background-color .15s}.tournament-summary:hover{background:#f8f9fb}.tournament-main-info{align-items:center;display:flex;flex:1 1;gap:12px}.tournament-main-info h3{color:#1a1a2e;font-size:15px;font-weight:600;margin:0}.participant-count{background:none;color:#6b7280;font-size:13px;padding:0}.game-type-badge{background:#e8f0fa;border-radius:3px;color:#1e3a5f;font-size:12px;font-weight:600;letter-spacing:.03em;padding:2px 8px;text-transform:uppercase}.create-tournament-controls{align-items:center;display:flex;gap:8px}.game-type-select{background:#ffffff1a;border:1px solid #ffffff4d;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;padding:7px 12px;transition:border-color .2s}.game-type-select:focus{border-color:#4fc3f7;outline:none}.game-type-select:disabled{background:#ffffff0d;cursor:not-allowed;opacity:.5}.game-type-select option{background:#1e3a5f;color:#fff}.tournament-times{align-items:flex-end;color:#9ca3af;display:flex;flex-direction:column;font-size:12px;gap:2px}.expand-icon{color:#9ca3af;font-size:13px;margin-left:12px;transition:transform .2s}.join-inline-btn{background-color:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;margin-left:10px;padding:5px 14px;transition:background-color .2s;white-space:nowrap}.join-inline-btn:hover:not(:disabled){background-color:#2a5080}.join-inline-btn:disabled{background-color:#d1d5db;color:#9ca3af;cursor:not-allowed}.join-inline-btn.joined{background-color:#166534;color:#fff}.join-inline-btn.return-to-game{background-color:#1e40af}.join-inline-btn.return-to-game:hover{background-color:#1e3a8a}.join-inline-btn.game-complete{background-color:#166534;cursor:default}.join-inline-btn.game-lost{background-color:#991b1b;cursor:default}.tournament-details{background:#f8f9fb;border-top:1px solid #e2e5ea;padding:16px 24px}.tournament-info{margin-bottom:16px}.tournament-info p{color:#6b7280;font-size:13px;margin:4px 0}.participants-section h4{color:#6b7280;font-size:11px;font-weight:700;letter-spacing:.08em;margin:0 0 12px;text-transform:uppercase}.participants-list{display:flex;flex-direction:column;gap:0}.participant-item{align-items:center;background:#fff;border:none;border-bottom:1px solid #e2e5ea;border-radius:0;display:flex;justify-content:space-between;padding:8px 12px;transition:background-color .15s}.participant-item:hover{background-color:#f8f9fb;box-shadow:none}.participant-item:last-child{border-bottom:none}.participant-item.winner{background:#eef2f7;border-left:3px solid #1e3a5f}.participant-info{align-items:center;display:flex;gap:10px}.participant-name{color:#1a1a2e;font-size:14px;font-weight:600}.winner-badge,.winner-line-payout{background:#1e3a5f;border-radius:3px;color:#fff;font-size:11px;font-weight:700;margin-left:6px;padding:1px 6px}.winner-badge{box-shadow:none}.games-played{background:none;color:#6b7280;padding:0}.games-played,.participant-result{font-size:13px}.result-win{color:#166534;font-weight:600}.payout-amount{background:#1e3a5f;border-radius:3px;box-shadow:none;color:#fff;font-size:11px;font-weight:700;margin-left:6px;padding:1px 6px}.result-loss{color:#991b1b;font-weight:600}.result-pending{color:#92400e;font-weight:600}.result-active{align-items:center;color:#1e40af;display:flex;font-weight:600;gap:6px}.resume-game-btn{background-color:#1e3a5f;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:3px 8px;transition:background-color .2s}.resume-game-btn:hover{background-color:#2a5080}.tournament-actions{margin-top:16px;text-align:center}.winner-highlight{align-items:center;background:#1e3a5f;border-radius:0;color:#fff;display:flex;gap:12px;padding:12px 24px}.winner-highlight .winner-badge{background:none;color:#fff;font-size:26px;padding:0}.winner-info h4{color:#fff;font-size:16px;margin:0}.winner-highlight-payout{color:#4fc3f7;font-size:13px;font-weight:700;margin-left:8px}.winner-info p{color:#ffffffb3;font-size:13px;font-weight:500;margin:2px 0 0}.closed-tournaments-section,.open-tournaments-section{margin-bottom:0}.closed-tournaments-section h2,.open-tournaments-section h2{background:#1e3a5f;border-bottom:none;color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em;margin:0;padding:10px 24px;text-transform:uppercase}.closed-tournaments-section h2{border-bottom:none;border-top:2px solid #2a5080}.admin-btn{background-color:#ffffff26;color:#fff}.admin-btn:hover{background-color:#ffffff40}.invite-premium-banner{align-items:center;background:#1e3a5f;border-bottom:1px solid #2a5080;border-radius:0;color:#fff;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:0;padding:14px 24px}.invite-premium-text{display:flex;flex-direction:column;gap:2px}.invite-premium-text strong{font-size:14px}.invite-premium-text span{font-size:13px;opacity:.7}.invite-premium-actions{align-items:center;display:flex;flex-shrink:0;gap:8px}.invite-subscribe-btn{background:#4fc3f7;border:none;border-radius:4px;color:#1e3a5f;cursor:pointer;font-size:13px;font-weight:700;padding:7px 16px;white-space:nowrap}.invite-subscribe-btn:hover{background:#29b6f6}.invite-dismiss-btn{background:#0000;border:1px solid #fff3;border-radius:4px;color:#fff9;cursor:pointer;font-size:13px;padding:7px 12px;white-space:nowrap}.invite-dismiss-btn:hover{background:#ffffff1a;color:#fff}.invite-section{border-top:1px solid #e2e5ea;margin-top:12px;padding-top:12px}.invite-section h4{color:#6b7280;font-size:11px;font-weight:700;letter-spacing:.08em;margin:0 0 8px;text-transform:uppercase}.invite-form{align-items:center;display:flex;gap:6px}.invite-email-input{border:1px solid #d1d5db;border-radius:4px;flex:1 1;font-size:13px;outline:none;padding:7px 10px}.invite-email-input:focus{border-color:#1e3a5f}.invite-send-btn{background-color:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:7px 14px;white-space:nowrap}.invite-send-btn:hover:not(:disabled){background-color:#2a5080}.invite-send-btn:disabled{background-color:#d1d5db;color:#9ca3af;cursor:not-allowed}.invite-result{border-radius:4px;font-size:13px;margin-top:6px;padding:6px 10px}.invite-result.success{background-color:#dcfce7;color:#166534}.invite-result.error{background-color:#fef2f2;color:#991b1b}.invite-dev-link{font-size:12px;margin-top:4px;word-break:break-all}.invite-dev-link a{color:#1e40af}.invite-sent-list{color:#6b7280;font-size:13px;margin-top:8px}.invite-sent-list ul{margin:4px 0 0;padding-left:16px}.invite-sent-list li{margin:2px 0}.payment-container{background:#f4f5f7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0 auto;max-width:600px;min-height:100vh;padding:0}.payment-header{background:#1e3a5f;border-bottom:none;color:#fff;margin-bottom:0;padding:14px 24px;text-align:center}.payment-header h1{color:#fff;font-size:22px;font-weight:700;margin:0}.payment-header p{color:#ffffffb3;font-size:13px;margin:4px 0 0}.checkout-form{background:#fff;border-bottom:1px solid #e2e5ea;border-radius:0;box-shadow:none;padding:24px}.checkout-form h2{color:#1a1a2e;font-size:18px;margin:0 0 16px;text-align:center}.payment-details{background:#f4f5f7;border-radius:4px;margin-bottom:20px;padding:16px}.payment-details p{color:#6b7280;font-size:14px;margin:6px 0}.card-element-container{margin-bottom:25px}.card-element-container label{color:#333;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.payment-actions{display:flex;gap:15px;justify-content:center}.cancel-btn,.pay-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;padding:12px 30px;transition:all .3s ease}.cancel-btn{background:#6c757d;color:#fff}.cancel-btn:hover:not(:disabled){background:#5a6268;transform:translateY(-1px)}.pay-btn{background:#1e3a5f;color:#fff}.pay-btn:hover:not(:disabled){background:#2a5080}.pay-btn:disabled{cursor:not-allowed;opacity:.6}.mock-payment-notice{margin-bottom:25px;text-align:center}.mock-card-preview{background:#1e3a5f;border-radius:4px;box-shadow:none;color:#fff;padding:24px}.mock-card-preview p{font-size:14px;font-weight:600;margin:4px 0}.mock-card-preview p:first-child{font-size:16px;margin-bottom:8px}.error-message{background:#fee;border-left:4px solid #c33;color:#c33;padding:15px}.success-message{background:#efe;border-left:4px solid #363;color:#363;padding:15px}.payment-error{padding:40px}.payment-error h2{color:#c33;margin-bottom:20px}.payment-error p{margin-bottom:30px}.payment-error button{background:#667eea;border-radius:6px;padding:12px 30px;transition:background .3s}.payment-error button:hover{background:#5a67d8}.cancel-btn:disabled,.pay-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24}.error-message,.success-message{font-size:14px;margin-bottom:20px;padding:15px 20px}.success-message{background:#d4edda;border:1px solid #c3e6cb;border-radius:6px;color:#155724}.payment-error{padding:40px 20px;text-align:center}.payment-error h2{color:#dc3545;margin-bottom:15px}.payment-error p{color:#666;margin-bottom:20px}.payment-error button{background:#1e3a5f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:12px 24px}.payment-error button:hover{background:#2a5080}.StripeElement{background:#fff;border:1px solid #ccc;border-radius:4px;font-size:16px;line-height:1.5;padding:12px 16px}.StripeElement--focus{border-color:#1e3a5f;box-shadow:0 0 0 1px #1e3a5f}.StripeElement--invalid{border-color:#dc3545}.StripeElement--webkit-autofill{background-color:#fefde5!important}@media (max-width:600px){.payment-container{padding:15px 10px}.checkout-form{padding:20px}.payment-actions{flex-direction:column}.cancel-btn,.pay-btn{width:100%}}.app-container{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:20px;width:100%}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f5f7;color:#1a1a2e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:14px;line-height:1.4;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
/*# sourceMappingURL=main.d9ac935b.css.map*/