*{box-sizing:border-box;margin:0;padding:0}body{background:#0f0f23;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}.online-inline{align-items:center;color:#4caf50;display:flex;font-size:13px;gap:6px;justify-content:center;padding:0}.online-dot{animation:blink 2s infinite;background:#4caf50;border-radius:50%;display:inline-block;height:8px;width:8px}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.footer{color:#444;font-size:12px;margin-top:auto;padding:16px;text-align:center}.auth-container{display:flex;flex-direction:column;min-height:100vh}.auth-center{align-items:center;display:flex;flex:1 1;justify-content:center;padding:20px}.auth-card{background:#1a1a3e;border-radius:16px;max-width:400px;padding:40px;text-align:center;width:100%}.auth-card h1{font-size:2em;margin-bottom:10px}.auth-card h2{color:#aaa;font-size:1.3em;margin-bottom:20px}.auth-card form{display:flex;flex-direction:column;gap:12px}.auth-card input{background:#0f0f23;border:2px solid #333;border-radius:10px;color:#fff;font-size:16px;outline:none;padding:14px;transition:border-color .3s}.auth-card input:focus{border-color:#6c63ff}.password-field{position:relative}.password-field input{padding-right:48px;width:100%}.password-toggle{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;font-size:18px;padding:4px;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.password-toggle:hover{color:#aaa}.auth-card button[type=submit]{background:#6c63ff;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:14px;transition:background .3s}.auth-card button[type=submit]:hover{background:#5a52d5}.error{background:#ff4444aa;border-radius:8px;margin-bottom:10px;padding:10px}.auth-link{color:#888;margin-top:16px}.auth-link a{color:#6c63ff;text-decoration:none}.dashboard{display:flex;flex-direction:column;min-height:100vh}.dashboard-header{align-items:center;background:#1a1a3e;border-bottom:1px solid #333;display:flex;justify-content:space-between;padding:16px 24px}.header-right{align-items:center;display:flex;gap:16px}.username{color:#6c63ff;font-weight:700}.btn-logout{background:#0000;border:1px solid #666;border-radius:8px;color:#fff;cursor:pointer;padding:8px 16px}.dashboard-content{flex:1 1;margin:0 auto;max-width:800px;padding:24px;width:100%}.stats-card{background:#1a1a3e;border-radius:16px;margin-bottom:24px;padding:24px;text-align:center}.stats-card h2{margin-bottom:16px}.stats-grid{display:flex;justify-content:space-around;text-align:center}.stat-number{display:block;font-size:2.5em;font-weight:700}.stat-label{color:#888;font-size:.9em}.green{color:#4caf50}.red{color:#f44336}.gray{color:#888}.games-section,.history-section{background:#1a1a3e;border-radius:16px;margin-bottom:24px;padding:24px;text-align:center}.games-section h2,.history-section h2{margin-bottom:16px}.btn-play{background:#6c63ff;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:18px;font-weight:700;padding:16px 32px;transition:all .3s;width:100%}.btn-play:hover{background:#5a52d5;transform:scale(1.02)}.btn-play.big{font-size:22px;padding:20px 40px}.no-games{color:#666;padding:20px;text-align:center}.games-list{display:flex;flex-direction:column;gap:8px}.game-item{align-items:center;background:#0f0f23;border-radius:10px;display:flex;justify-content:space-between;padding:12px 16px}.game-result{font-weight:700;min-width:120px}.game-opponent{color:#aaa}.game-date{color:#666;font-size:.85em}.game-container{display:flex;flex-direction:column;min-height:100vh}.game-content{flex:1 1;margin:0 auto;max-width:600px;padding:20px;text-align:center;width:100%}.game-header{align-items:center;display:flex;gap:16px;margin-bottom:30px}.btn-back{background:#0000;border:1px solid #666;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:10px 16px}.game-menu{align-items:center;display:flex;flex-direction:column;gap:20px;margin-bottom:40px;margin-top:40px}.btn-cancel{background:#0000;border:1px solid #f44336;border-radius:8px;color:#f44336;cursor:pointer;font-size:16px;padding:12px 24px}.players-info{align-items:center;display:flex;font-size:1.1em;gap:16px;justify-content:center;margin-bottom:16px}.player{border-radius:8px;padding:6px 12px}.player.active{background:#6c63ff33;color:#6c63ff}.status-text{font-size:1.3em;margin-bottom:20px;min-height:40px}.board{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr);margin:0 auto 30px;max-width:320px}.cell{align-items:center;aspect-ratio:1;background:#1a1a3e;border-radius:12px;cursor:pointer;display:flex;font-size:2.5em;font-weight:700;justify-content:center;transition:all .2s;-webkit-user-select:none;user-select:none}.cell:hover:not(.filled){background:#2a2a5e}.cell.x{color:#6c63ff}.cell.o{color:#ff6b6b}.game-over-buttons{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:30px}.game-over-buttons .btn-back,.game-over-buttons .btn-play{width:auto}.loading{align-items:center;color:#888;display:flex;font-size:1.2em;justify-content:center;min-height:100vh}@media (max-width:480px){.auth-card{padding:24px}.dashboard-header{padding:12px 16px}.dashboard-header h1{font-size:1.2em}.dashboard-content{padding:16px}.game-item{flex-direction:column;gap:4px;text-align:center}.board{max-width:280px}.cell{font-size:2em}.players-info{font-size:.9em}}.admin-table{width:100%}.admin-table-header{background:#2a2a5e;color:#888;font-size:13px;font-weight:700;margin-bottom:8px}.admin-table-header,.admin-table-row{border-radius:10px;display:flex;padding:10px 16px}.admin-table-row{align-items:center;background:#0f0f23;font-size:14px;margin-bottom:4px}.admin-table-row.banned{opacity:.6}.col-id{width:50px}.col-login,.col-pass{width:150px}.col-pass{color:#666}.col-stats{color:#aaa;width:160px}.col-date{color:#666;width:120px}.col-actions{flex:1 1;text-align:right}@media (max-width:768px){.admin-table-header{display:none}.admin-table-row{flex-direction:column;gap:6px;padding:14px 16px}.admin-table-row span{text-align:left!important;width:100%!important}.col-id:before{color:#888;content:"ID: "}.col-login:before{color:#888;content:"Логин: "}.col-pass:before{color:#888;content:"Пароль: "}.col-stats:before{color:#888;content:"Статистика: "}.col-date:before{color:#888;content:"Регистрация: "}.col-actions{display:flex;gap:8px;margin-top:4px}}.admin-table-header span{color:#fff!important;font-weight:700}.admin-table-row .col-date,.admin-table-row .col-pass,.admin-table-row .col-stats,.admin-table-row span{color:#ccc!important}.history-section{max-width:100%}.dashboard-content{max-width:1100px}.col-id{min-width:60px;width:60px}.col-login,.col-pass,.col-stats{min-width:180px;width:180px}.col-actions,.col-date{min-width:140px;width:140px}.col-actions{flex:none!important;text-align:right!important;text-align:center!important}.admin-table-header,.admin-table-row{display:flex!important;justify-content:space-between!important}.admin-table-header span,.admin-table-row span{flex:1 1!important;min-width:auto!important;text-align:center!important;width:auto!important}.modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.modal-card{background:#1a1a3e;border-radius:16px;max-width:400px;padding:32px;text-align:center;width:90%}.modal-card h2{color:#f44336;margin-bottom:12px}.modal-card p{color:#ccc;font-size:16px;margin-bottom:24px}.modal-btn{background:#6c63ff;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:12px 40px}.modal-btn:hover{background:#5a52d5}.field-error{color:#f44336;font-size:13px;margin-top:-4px}.btn-google{align-items:center;background:#fff;border:2px solid #333;border-radius:10px;color:#333;cursor:pointer;display:flex;font-size:16px;font-weight:700;gap:10px;justify-content:center;padding:14px;transition:background .3s;width:100%}.btn-google:hover{background:#f0f0f0}.auth-divider{align-items:center;display:flex;margin:16px 0}.auth-divider:after,.auth-divider:before{background:#333;content:"";flex:1 1;height:1px}.auth-divider span{color:#666;font-size:14px;padding:0 12px}
/*# sourceMappingURL=main.cf9aee1e.css.map*/