@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,600;0,700&display=swap"); * { box-sizing: border-box; font-family: 'Plus Jakarta Sans', sans-serif; user-select: none; } body { margin: 0; background: transparent; color: #fff; overflow: hidden; } /* ---------------- BAN BOX (Castigo individual) ---------------- */ #ban-box { display: none; position: absolute; top: 50%; right: 5%; transform: translateY(-50%); background: linear-gradient(135deg, rgba(15, 15, 15, 0.95), rgba(35, 35, 35, 0.95)); padding: 28px 22px; width: 340px; border-radius: 20px; border: 1px solid rgba(255, 255, 255, 0.06); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 0 12px rgba(255, 255, 255, 0.05); color: #eaeaea; text-align: center; font-family: 'Plus Jakarta Sans', sans-serif; z-index: 9999; animation: floatUp 6s ease-in-out infinite; } #ban-logo { max-width: 90px; margin-bottom: 14px; filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.25)); } .ban-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 10px; color: #ffffff; text-shadow: 0 0 6px rgba(255, 255, 255, 0.15); } #ban-text p { font-size: 1.05rem; margin: 6px 0; color: #dcdcdc; text-shadow: 0 0 3px rgba(0, 0, 0, 0.3); } #ban-text p strong { color: #ffffff; font-weight: 700; } @keyframes floatUp { 0%, 100% { transform: translateY(-50%) translateX(0px); } 50% { transform: translateY(-52%) translateX(2px); } } /* ---------------- PANEL ADMIN ---------------- */ #panel { overflow: hidden; display: none; height: 100vh; width: 100vw; display: flex; animation: dashboardFadeIn 0.4s ease-out; justify-content: center; align-items: center; transform-style: preserve-3d; } /* Sidebar */ .sidebar { display: inline-block; background: linear-gradient(135deg, rgb(5, 5, 5), rgb(0, 0, 0)); padding: 20px; font-family: 'Plus Jakarta Sans', sans-serif; border-top-right-radius: 12px; border-bottom-right-radius: 12px; box-shadow: 0 0 15px rgba(0, 0, 0, 0.911); min-width: 240px; max-width: fit-content; } .sidebar h2 { font-size: 32px; text-align: center; color: white; text-shadow: 0 0 6px white; margin-bottom: 30px; padding: 0 10px; white-space: nowrap; } .sidebar ul { list-style: none; padding: 0; margin: 0; } .sidebar li { padding: 14px 20px; cursor: pointer; display: flex; align-items: center; gap: 10px; /* Añade separación entre ícono y texto */ border-radius: 10px; font-size: 18px; font-weight: bold; color: white; margin-bottom: 12px; transition: 0.2s ease; background: linear-gradient(135deg, rgba(0, 0, 0), rgb(19, 19, 19)); border: 1px solid rgba(99, 99, 99, 0.411) } .sidebar li:hover { background: white; color: black; } .sidebar li.active { background: white !important; color: black !important; font-weight: bold; box-shadow: 0 0 10px rgba(255, 255, 255, 0.4); } /* Contenido principal */ .main { flex: 1; max-width: 60%; width: 60%; background: linear-gradient(135deg, rgba(0, 0, 0), rgb(19, 19, 19)); padding: 10px 20px; border-radius: 14px; box-shadow: 0 0 25px rgba(0, 0, 0, 0.9); display: flex; flex-direction: column; align-items: stretch; position: relative; } /* Título */ .main h1 { text-align: center; font-size: 36px; text-shadow: 0 0 6px #fff; margin-top: 10px; margin-bottom: 20px; } .topbar-logo { height: 100px; display: block; margin: 0 auto 10px auto; filter: drop-shadow(0 0 6px #fff); } .notice { margin-top: 25px; background: rgba(255, 215, 0, 0.1); padding: 12px 16px; border-radius: 10px; color: #ffd700; font-weight: bold; font-size: 14px; text-align: center; border: 1px solid rgba(255, 215, 0, 0.3); text-shadow: 0 0 5px #ffd700; } .stats { display: flex; gap: 20px; margin-bottom: 20px; justify-content: center; width: 100%; } .stat-box { background: linear-gradient(145deg, #1e1e1e, #2c2c2c); padding: 20px 15px; border-radius: 18px; box-shadow: 0 0 10px rgba(255, 255, 255, 0.05), 0 4px 20px rgba(0, 0, 0, 0.6); width: 480px; height: 120px; /* Poco alto */ /* ancho más grande */ /* mínimo ancho asegurado */ text-align: center; border: 1px solid rgba(255, 255, 255, 0.05); transition: transform 0.2s ease, box-shadow 0.2s ease; } .stat-box:hover { transform: translateY(-5px); box-shadow: 0 6px 20px rgba(255, 255, 255, 0.1); } .stat-box span { display: block; margin-bottom: 6px; } .stat-box strong { font-size: 32px; color: #ffffff; text-shadow: 0 0 6px #fff; display: block; } .stat-box h2 { margin-bottom: -35px; font-size: 18px; text-transform: uppercase; color: #ccc; } .stat-box p { font-size: 32px; font-weight: bold; color: white; text-shadow: 0 0 6px #fff; display: block; } /* Botón cerrar */ .close-btn { position: absolute; top: 20px; right: 20px; background: #ff4444; border: none; padding: 6px 10px; border-radius: 6px; color: white; font-size: 16px; cursor: pointer; } .close-btn:hover { background: #cc0000; } /* Footer */ .footer { margin-top: 30px; background: rgba(255, 215, 0, 0.1); padding: 10px 20px; border-radius: 10px; color: #ffd700; font-weight: bold; border: 1px solid rgba(255, 215, 0, 0.3); text-shadow: 0 0 4px #ffd700; } /* Secciones ocultas */ .section { display: none; } .section:not(.hidden) { display: block; } /* Tablas generales */ table { width: 100%; border-collapse: collapse; background: #111; color: #fff; margin-top: 15px; font-size: 14px; border-radius: 10px; overflow: hidden; box-shadow: 0 0 10px rgba(255, 255, 255, 0.1); } th { background: #1c1c1c; color: #bbb; padding: 12px; text-align: left; text-transform: uppercase; font-weight: 600; } td { padding: 12px; border-top: 1px solid #222; } tbody tr:hover { background: #1a1a1a; } /* Estilo general para DataTables */ #bannedPlayersTable { font-size: 15px; border-collapse: separate; border-spacing: 0 8px; /* Espaciado entre filas */ } /* Cabecera de la tabla */ #bannedPlayersTable thead th { padding: 12px 15px; background-color: #111; color: #fff; text-align: left; border-bottom: 1px solid #333; } /* Celdas de la tabla */ #bannedPlayersTable tbody td { padding: 12px 15px; background-color: rgba(255, 255, 255, 0.03); color: #ddd; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } /* Hover de filas */ #bannedPlayersTable tbody tr:hover { background-color: rgba(255, 255, 255, 0.08); } /* Buscar y mostrar registros arriba */ .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter { margin-bottom: 12px; font-size: 14px; color: #fff; } /* Navegación inferior */ .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_paginate { margin-top: 10px; font-size: 13px; color: #ccc; } .dataTables_wrapper .dataTables_paginate .paginate_button { padding: 4px 10px; margin: 0 2px; background-color: #222; color: #fff !important; border: none; border-radius: 4px; } .dataTables_wrapper .dataTables_paginate .paginate_button.current { background-color: #0d6efd; font-weight: bold; } /* Estilo general para Active Punishments Table */ #activePunishmentsTable { font-size: 15px; border-collapse: separate; border-spacing: 0 8px; } /* Cabecera */ #activePunishmentsTable thead th { padding: 12px 15px; background-color: #111; color: #fff; text-align: left; border-bottom: 1px solid #333; } /* Celdas */ #activePunishmentsTable tbody td { padding: 12px 15px; background-color: rgba(255, 255, 255, 0.03); color: #ddd; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } /* Hover en filas */ #activePunishmentsTable tbody tr:hover { background-color: rgba(255, 255, 255, 0.08); } /* NUI DE CASTIGOOOOOOOOO ONLINE */ /* Estilo general para tabla de Jugadores Online */ #onlinePlayersTable { font-size: 15px; border-collapse: separate; border-spacing: 0 8px; } /* Cabecera */ #onlinePlayersTable thead th { padding: 12px 15px; background-color: #111; color: #fff; text-align: left; border-bottom: 1px solid #333; } /* Celdas */ #onlinePlayersTable tbody td { padding: 12px 15px; background-color: rgba(255, 255, 255, 0.03); color: #ddd; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .modal-content textarea { width: 100%; padding: 10px; margin-bottom: 15px; border-radius: 6px; border: none; font-size: 15px; background-color: #2e2e2e; color: white; resize: none; } /* Hover en filas */ #onlinePlayersTable tbody tr:hover { background-color: rgba(255, 255, 255, 0.08); } .hidden { display: none !important; } .nui-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.925); display: flex; justify-content: center; align-items: center; z-index: 99; } .modal-content { display: flex; flex-direction: column; gap: 14px; padding: 26px 28px; background: linear-gradient(135deg, rgba(0, 0, 0, 0.95), rgb(19, 19, 19)); border-radius: 16px; max-width: 440px; margin: auto; color: #ffffff; box-shadow: 0 10px 35px rgba(0, 0, 0, 0.6), 0 0 12px rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.07); animation: fadeInModal 0.3s ease-in-out; font-family: 'Plus Jakarta Sans', sans-serif; } .modal-content h2 { margin-bottom: 16px; text-align: center; font-size: 22px; font-weight: 800; color: #ffffff; text-shadow: 0 0 8px rgba(255, 255, 255, 0.2); letter-spacing: 0.3px; display: flex; align-items: center; justify-content: center; gap: 10px; } .modal-content h2 i { color: #4e9eff; font-size: 20px; text-shadow: 0 0 4px rgba(78, 158, 255, 0.5); } .modal-content label { margin-top: 4px; font-weight: 600; font-size: 13px; color: #bbbbbb; } .modal-content input, .modal-content select, .modal-content textarea { padding: 10px 12px; font-size: 15px; border-radius: 8px; border: 1px solid #2d2d2d; background: #1f1f1f; color: #fff; transition: border 0.2s ease, box-shadow 0.2s ease; } .modal-content input:focus, .modal-content select:focus, .modal-content textarea:focus { border-color: #4e9eff; outline: none; box-shadow: 0 0 8px rgba(78, 158, 255, 0.2); } .modal-buttons { display: flex; justify-content: center; gap: 16px; margin-top: 16px; } .modal-buttons button { padding: 12px 24px; font-size: 15px; border-radius: 10px; font-weight: 600; cursor: pointer; transition: all 0.25s ease-in-out; border: none; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25); } /* Confirmar */ .modal-buttons button:first-child { background: linear-gradient(135deg, #28a745, #45db6f); color: white; } .modal-buttons button:first-child:hover { background: linear-gradient(135deg, #1f9d3e, #36c961); transform: translateY(-2px); box-shadow: 0 6px 14px rgba(40, 167, 69, 0.4); } /* Cancelar */ .modal-buttons button:last-child { background: linear-gradient(135deg, #dc3545, #e74c3c); color: white; } .modal-buttons button:last-child:hover { background: linear-gradient(135deg, #c82333, #d83939); transform: translateY(-2px); box-shadow: 0 6px 14px rgba(220, 53, 69, 0.4); } @keyframes fadeInModal { from { opacity: 0; transform: translateY(20px) scale(0.97); } to { opacity: 1; transform: translateY(0) scale(1); } } /* Notificaciones*/ .custom-toast-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; background-color: rgba(0, 0, 0, 0.7); /* fondo oscuro translúcido */ z-index: 9999; } .toast-modal-content { background: #000000; border-radius: 10px; width: 320px; padding: 20px; box-shadow: 0 0 20px rgba(0, 0, 0, 0.6); color: white; font-family: 'Arial', sans-serif; animation: fadeInScale 0.3s ease; } .toast-modal-header { display: flex; justify-content: space-between; align-items: center; font-size: 20px; font-weight: bold; color: rgb(255, 255, 255); } .toast-modal-body { margin-top: 10px; font-size: 16px; } .toast-close-btn { margin-top: 15px; padding: 8px 15px; background: #0d6efd; border: none; border-radius: 5px; color: white; cursor: pointer; width: 100%; } .toast-close-btn:hover { background: #0a58ca; } .close-btn { background: none; border: none; color: white; font-size: 18px; cursor: pointer; } .lang-btn { background: linear-gradient(135deg, #3a8dff, #0057ff); color: white; border: none; padding: 10px 18px; font-size: 14px; font-weight: 600; border-radius: 10px; cursor: pointer; transition: all 0.25s ease-in-out; margin-left: auto; display: inline-flex; align-items: center; gap: 8px; box-shadow: 0 4px 12px rgba(0, 87, 255, 0.3); text-shadow: 0 0 4px rgba(0, 0, 0, 0.3); } .lang-btn i { font-size: 15px; color: white; opacity: 0.9; } .lang-btn:hover { background: linear-gradient(135deg, #004ae0, #003bb3); transform: scale(1.03); box-shadow: 0 6px 14px rgba(0, 87, 255, 0.5); } .punish-btn { background: linear-gradient(135deg, #ffffff, #b1b1b1); color: #000; font-weight: 600; border: 1px solid #000; padding: 6px 14px; border-radius: 6px; cursor: pointer; transition: all 0.25s ease; font-size: 14px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15); } .punish-btn:hover { background: linear-gradient(135deg, #000000, #333333); color: #fff; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); border: 1px solid #fff; } .offline-punish-button { background: linear-gradient(135deg, #f87171, #ef4444); /* Rojo degradado */ color: white; border: none; padding: 8px 18px; border-radius: 10px; font-weight: bold; font-size: 14px; box-shadow: 0 4px 10px rgba(239, 68, 68, 0.4); cursor: pointer; transition: all 0.25s ease; margin-bottom: 10px; } .offline-punish-button:hover { background: linear-gradient(135deg, #ef4444, #dc2626); transform: scale(1.05); box-shadow: 0 6px 14px rgba(239, 68, 68, 0.6); } .location-buttons { display: flex; flex-direction: row; justify-content: space-between; gap: 12px; margin-top: 12px; flex-wrap: wrap; /* permite mejor ajuste en pantallas más pequeñas */ } .location-buttons button { flex: 1; padding: 12px 16px; border: 1px solid #dcdcdc; background: linear-gradient(135deg, #f4f4f4, #ffffff); border-radius: 10px; font-weight: 600; font-size: 15px; color: #333; cursor: pointer; transition: all 0.25s ease-in-out; display: flex; align-items: center; justify-content: center; gap: 10px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); } .location-buttons button:hover { background: linear-gradient(145deg, #eeeeee, #ffffff); transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0, 0, 0, 0.15); } .location-buttons button.selected { background: linear-gradient(145deg, #28a745, #4CAF50); color: white; box-shadow: 0 0 12px rgba(72, 239, 119, 0.5); border: none; transform: scale(1.03); } @keyframes fadeIn { from { opacity: 0; transform: translate(-50%, 20px); } to { opacity: 1; transform: translate(-50%, 0); } } .remove-btn { background: linear-gradient(145deg, #ff4e4e, #ff2d2d); color: #fff; font-weight: 600; border: none; padding: 8px 14px; border-radius: 8px; cursor: pointer; font-size: 14px; display: flex; align-items: center; gap: 8px; transition: all 0.25s ease-in-out; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15); } .remove-btn:hover { background: linear-gradient(145deg, #e60000, #cc0000); transform: translateY(-2px); box-shadow: 0 5px 12px rgba(255, 0, 0, 0.3); } /* Animaciones */ @keyframes float { 0% { transform: perspective(800px) rotateY(-15deg) rotateX(8deg) translateY(-52%); } 50% { transform: perspective(800px) rotateY(-15deg) rotateX(8deg) translateY(-48%); } 100% { transform: perspective(800px) rotateY(-15deg) rotateX(8deg) translateY(-52%); } } @keyframes sirenBorder { 0%, 100% { box-shadow: 0 0 12px 2px white; border-color: white; } 50% { box-shadow: 0 0 12px 2px black; border-color: black; } } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes dashboardFadeIn { from { opacity: 0; transform: translateY(20px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } }