.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-box{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px}.login-box h1{text-align:center;margin-bottom:2rem;color:#333}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#555;font-weight:500}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.form-group input:focus{outline:none;border-color:#667eea}.error{background:#fee;color:#c33;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}button{width:100%;padding:.75rem;background:#667eea;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}button:hover:not(:disabled){background:#5568d3}button:disabled{opacity:.6;cursor:not-allowed}.dashboard{display:flex;min-height:100vh}.sidebar{width:250px;background:#2c3e50;color:#fff;display:flex;flex-direction:column}.sidebar-header{padding:1.5rem;border-bottom:1px solid #34495e}.sidebar-header h2{font-size:1.5rem;margin:0}.sidebar-nav{flex:1;padding:1rem 0}.nav-item{display:block;padding:1rem 1.5rem;color:#ecf0f1;text-decoration:none;transition:background .2s}.nav-item:hover{background:#34495e}.nav-item.active{background:#3498db}.sidebar-footer{padding:1rem;border-top:1px solid #34495e}.logout-btn{width:100%;padding:.75rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.logout-btn:hover{background:#c0392b}.main-content{flex:1;padding:2rem;background:#f5f5f5}.games-page{max-width:1200px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{font-size:2rem;color:#333}.btn-primary{padding:.75rem 1.5rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500}.btn-primary:hover{background:#2980b9}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.game-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.game-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.game-card-header h3{margin:0;color:#333}.status{padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:500}.status.active{background:#d4edda;color:#155724}.status.inactive{background:#f8d7da;color:#721c24}.game-description{color:#666;margin-bottom:1rem;font-size:.9rem}.game-stats{display:flex;gap:1rem;margin-bottom:1rem;font-size:.9rem;color:#666}.game-actions{display:flex;gap:.5rem}.btn-secondary{flex:1;padding:.5rem;background:#95a5a6;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-secondary:hover{background:#7f8c8d}.btn-danger{flex:1;padding:.5rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-danger:hover{background:#c0392b}.game-detail{max-width:1200px;margin:0 auto}.back-btn{margin-bottom:1rem;padding:.5rem 1rem;background:#95a5a6;color:#fff;border:none;border-radius:4px;cursor:pointer}.detail-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.detail-header h1{margin:0;color:#333}.description{color:#666;margin-bottom:2rem}.sections{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.section{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.section h2{margin-top:0;margin-bottom:1rem;color:#333}.list{margin-top:1rem}.list-item{padding:1rem;border:1px solid #ddd;border-radius:4px;margin-bottom:.5rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .2s}.list-item:hover{background:#f5f5f5}.subtext{font-size:.875rem;color:#666;margin:.25rem 0 0}.code{font-family:monospace;background:#f5f5f5;padding:.25rem .5rem;border-radius:4px;word-break:break-all}.btn-danger-small{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem}.btn-danger-small:hover{background:#c0392b}.leaderboards-page{max-width:1200px;margin:0 auto}.leaderboards-page h1{margin-bottom:2rem;color:#333}.leaderboards-list{display:flex;flex-direction:column;gap:1rem}.leaderboard-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .2s}.leaderboard-card:hover{background:#f5f5f5}.leaderboard-card h3{margin:0 0 .5rem;color:#333}.meta{display:flex;gap:1rem;margin-top:.5rem;font-size:.875rem;color:#999}.arrow{color:#999;font-size:1.5rem}.leaderboard-detail{max-width:1200px;margin:0 auto}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.detail-header h1{margin:0 0 .5rem;color:#333}.game-name{color:#666;font-size:.9rem;margin:.25rem 0}.description{color:#666;margin:.5rem 0}.leaderboard-info{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.info-item{color:#666}.info-item strong{color:#333;display:block;margin-bottom:.25rem}.scores-section{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.scores-section h2{margin-top:0;margin-bottom:1rem;color:#333}.scores-table{overflow-x:auto}table{width:100%;border-collapse:collapse}thead{background:#f5f5f5}th,td{padding:.75rem;text-align:left;border-bottom:1px solid #ddd}th{font-weight:600;color:#333}tbody tr:hover{background:#f9f9f9}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem}.pagination button{padding:.5rem 1rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer}.pagination button:disabled{background:#bdc3c7;cursor:not-allowed}.pagination span{color:#666}.promotions-page{max-width:1200px;margin:0 auto}.promotions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.promo-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.promo-preview{padding:1rem;min-height:120px;position:relative}.promo-banner{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.3}.promo-content{position:relative;display:flex;align-items:center;gap:1rem;z-index:1}.promo-logo{width:60px;height:60px;border-radius:12px;object-fit:cover;background:#fff}.promo-text h4{margin:0 0 .5rem;font-size:1.1rem}.promo-text p{margin:0;font-size:.9rem;opacity:.9}.promo-info{padding:1rem}.promo-meta{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.platform-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.platform-badge.android{background:#3ddc84;color:#000}.platform-badge.ios{background:#007aff;color:#fff}.platform-badge.all{background:#6c757d;color:#fff}.priority{font-size:.8rem;color:#666;padding:.25rem .5rem;background:#f0f0f0;border-radius:4px}.promo-dates{display:flex;gap:1rem;font-size:.8rem;color:#666;margin-bottom:.75rem}.promo-target-apps{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem;padding:.5rem;background:#f8f9fa;border-radius:6px}.target-label{font-size:.75rem;color:#666;font-weight:500}.target-app-tag{font-size:.7rem;padding:.2rem .5rem;background:#e9ecef;border-radius:4px;color:#495057;font-weight:500}.form-hint{display:block;font-size:.75rem;color:#888;margin-top:.25rem}.promo-actions{display:flex;gap:.5rem}.promo-actions button{flex:1;padding:.5rem;font-size:.85rem}.btn-toggle{background:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-toggle.active{background:#ffc107;color:#000}.btn-toggle:hover{opacity:.9}.empty-state{grid-column:1 / -1;text-align:center;padding:3rem;background:#fff;border-radius:8px;color:#666}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #eee}.modal-header h2{margin:0}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666}.promo-form{padding:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;box-sizing:border-box}.form-group textarea{resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.color-input{display:flex;gap:.5rem}.color-input input[type=color]{width:50px;height:42px;padding:0;border:1px solid #ddd;border-radius:6px;cursor:pointer}.color-input input[type=text]{flex:1}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #eee}.app-checkboxes{border:1px solid #ddd;border-radius:6px;padding:.75rem;max-height:200px;overflow-y:auto}.app-checkboxes .no-apps-hint{color:#888;font-size:.9rem;margin:0}.app-checkboxes .no-apps-hint a{color:#3498db}.checkbox-label{display:flex;align-items:center;gap:.5rem;padding:.5rem;cursor:pointer;border-radius:4px}.checkbox-label:hover{background:#f8f9fa}.checkbox-label.all-apps{border-bottom:1px solid #eee;margin-bottom:.5rem;padding-bottom:.75rem}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label span{flex:1}.checkbox-label code{font-size:.75rem;background:#e9ecef;padding:.15rem .4rem;border-radius:3px;color:#666}.app-list{display:flex;flex-direction:column}.loading{padding:2rem;text-align:center;color:#666}.mobile-apps-page{max-width:1200px;margin:0 auto}.apps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.app-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.app-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.app-info h3{margin:0 0 .25rem;font-size:1.2rem}.app-slug{font-size:.8rem;background:#f0f0f0;padding:.2rem .5rem;border-radius:4px;color:#666}.app-description{color:#666;font-size:.9rem;margin:.5rem 0 1rem}.app-meta{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem}.store-link{font-size:.85rem;color:#007bff;text-decoration:none}.store-link:hover{text-decoration:underline}.app-actions{display:flex;gap:.5rem;flex-wrap:wrap}.app-actions button,.app-actions .btn-view{flex:1;min-width:80px;padding:.5rem;font-size:.85rem;text-align:center;text-decoration:none;border-radius:4px;cursor:pointer}.btn-view{background:#17a2b8;color:#fff;border:none}.btn-view:hover{background:#138496}.app-form .form-group{margin-bottom:1rem}.app-form label{display:block;margin-bottom:.5rem;font-weight:500}.app-form input,.app-form textarea,.app-form select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}.app-form textarea{resize:vertical}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.form-actions button{flex:1;padding:.75rem}.app-detail-page{max-width:1200px;margin:0 auto}.header-left{display:flex;flex-direction:column;gap:.5rem}.back-link{color:#666;text-decoration:none;font-size:.9rem}.back-link:hover{color:#333}.api-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1rem 1.5rem;margin-bottom:2rem}.api-info h3{margin:0 0 .5rem;font-size:1rem}.api-info code{display:block;background:#1a1a2e;color:#4ade80;padding:.75rem 1rem;border-radius:4px;font-size:.9rem;margin-bottom:.5rem}.api-info p{margin:0;font-size:.85rem;color:#666}.counters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.counter-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.counter-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.counter-info h3{margin:0 0 .25rem;font-size:1.1rem}.counter-slug{font-size:.75rem;background:#e9ecef;padding:.2rem .5rem;border-radius:4px;color:#495057}.counter-description{color:#666;font-size:.85rem;margin:.5rem 0}.counter-api{margin:1rem 0}.counter-api code{font-size:.75rem;background:#f0f0f0;padding:.4rem .6rem;border-radius:4px;color:#333}.counter-actions{display:flex;gap:.5rem;flex-wrap:wrap}.counter-actions button,.counter-actions .btn-view{flex:1;min-width:70px;padding:.5rem;font-size:.8rem;text-align:center;text-decoration:none;border-radius:4px;cursor:pointer}.counter-form .form-group{margin-bottom:1rem}.counter-form label{display:block;margin-bottom:.5rem;font-weight:500}.counter-form input,.counter-form textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}.counter-detail-page{max-width:1400px;margin:0 auto}.counter-path{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.counter-path .app-name{color:#666}.counter-path .separator{color:#ccc}.counter-path code{background:#f0f0f0;padding:.2rem .5rem;border-radius:4px;font-size:.85rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:#fff;border-radius:12px;padding:1.5rem;text-align:center;box-shadow:0 2px 8px #0000001a}.stat-card .stat-value{font-size:2rem;font-weight:700;margin-bottom:.25rem}.stat-card .stat-label{font-size:.85rem;color:#666}.stat-card.total .stat-value{color:#6366f1}.stat-card.today .stat-value{color:#22c55e}.stat-card.week .stat-value{color:#f59e0b}.stat-card.month .stat-value{color:#3b82f6}.stat-card.users .stat-value{color:#ec4899}.chart-section{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a}.chart-section h2{margin:0 0 1rem;font-size:1.1rem}.chart{display:flex;align-items:flex-end;gap:2px;height:200px;overflow-x:auto;padding-bottom:1.5rem}.chart-bar-container{flex:1;min-width:20px;display:flex;flex-direction:column;align-items:center;height:100%}.chart-bar{width:100%;background:linear-gradient(to top,#6366f1,#8b5cf6);border-radius:2px 2px 0 0;min-height:2px;transition:height .3s ease}.chart-bar:hover{background:linear-gradient(to top,#4f46e5,#7c3aed)}.chart-label{font-size:.6rem;color:#999;transform:rotate(-45deg);white-space:nowrap;margin-top:.5rem}.events-section{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.events-section h2{margin:0 0 1rem;font-size:1.1rem}.events-table-container{overflow-x:auto}.events-table{width:100%;border-collapse:collapse;font-size:.85rem}.events-table th{text-align:left;padding:.75rem;background:#f8f9fa;border-bottom:2px solid #e9ecef;font-weight:600;color:#495057}.events-table td{padding:.75rem;border-bottom:1px solid #e9ecef}.events-table tr:hover{background:#f8f9fa}.time-cell{white-space:nowrap;color:#666}.ip-cell{font-family:monospace;font-size:.8rem}.ua-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#888;font-size:.75rem}.metadata-cell code{font-size:.7rem;background:#f0f0f0;padding:.2rem .4rem;border-radius:3px}.empty{color:#ccc}.empty-row{text-align:center;color:#999;padding:2rem!important}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}
