/* Reset and Base Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; background: linear-gradient(135deg, #830c16 0%, #940909 50%, #ff3838 100%); min-height: 100vh; color: #333; } /* Dashboard Layout */ .dashboard { display: grid; grid-template-areas: "header header" "nav main"; grid-template-columns: 250px 1fr; grid-template-rows: 70px 1fr; min-height: 100vh; } /* Header */ .header { grid-area: header; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(255, 255, 255, 0.2); display: flex; align-items: center; padding: 0 2rem; } .header-content { display: flex; justify-content: space-between; align-items: center; width: 100%; } .header h1 { color: white; font-size: 1.5rem; font-weight: 600; } .bot-status { display: flex; align-items: center; gap: 0.5rem; } .status-indicator { display: flex; align-items: center; gap: 0.5rem; color: white; font-size: 0.9rem; } .status-indicator i { font-size: 0.5rem; } .status-indicator.connected i { color: #4ade80; } .status-indicator.disconnected i { color: #ef4444; } /* Navigation */ .nav { grid-area: nav; background: rgba(0, 0, 0, 0.2); backdrop-filter: blur(10px); padding: 1rem; display: flex; flex-direction: column; gap: 0.5rem; } .nav-btn { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 1rem; background: transparent; border: none; color: rgba(255, 255, 255, 0.8); border-radius: 8px; cursor: pointer; transition: all 0.3s ease; font-size: 0.9rem; } .nav-btn:hover { background: rgba(255, 255, 255, 0.1); color: white; } .nav-btn.active { background: rgba(255, 255, 255, 0.2); color: white; } /* Main Content */ .main-content { grid-area: main; padding: 2rem; overflow-y: auto; } .section { display: none; animation: fadeIn 0.3s ease; } .section.active { display: block; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .section-header { margin-bottom: 2rem; } .section-header h2 { color: white; font-size: 1.75rem; font-weight: 600; } /* Stats Grid */ .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; } .stat-card { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 12px; padding: 2rem; text-align: center; transition: transform 0.3s ease; } .stat-card:hover { transform: translateY(-5px); } .stat-card i { font-size: 2.5rem; color: #4ade80; margin-bottom: 1rem; } .stat-card h3 { color: white; font-size: 1.1rem; margin-bottom: 0.5rem; } .stat-card p { color: rgba(255, 255, 255, 0.9); font-size: 2rem; font-weight: bold; } /* Guilds Section */ .guilds-container { display: grid; grid-template-columns: 1fr 300px; gap: 2rem; } .guilds-list { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: 12px; padding: 1.5rem; min-height: 400px; } .guild-item { display: flex; align-items: center; gap: 1rem; padding: 1rem; background: rgba(255, 255, 255, 0.05); border-radius: 8px; margin-bottom: 0.5rem; transition: background 0.3s ease; } .guild-item:hover { background: rgba(255, 255, 255, 0.1); } .guild-icon { width: 40px; height: 40px; border-radius: 50%; background: #4ade80; display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; } .guild-info h4 { color: white; margin-bottom: 0.25rem; } .guild-info p { color: rgba(255, 255, 255, 0.7); font-size: 0.9rem; } .scraping-controls { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: 12px; padding: 1.5rem; height: fit-content; } /* Embed Builder */ .embed-builder { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; } .embed-form { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: 12px; padding: 1.5rem; } .form-group { margin-bottom: 1.5rem; } .form-group label { display: block; color: white; margin-bottom: 0.5rem; font-weight: 500; } .form-control { width: 100%; padding: 0.75rem; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 8px; background: rgba(255, 255, 255, 0.1); color: white; font-size: 0.9rem; } .form-control::placeholder { color: rgba(255, 255, 255, 0.6); } .form-control:focus { outline: none; border-color: #4ade80; } .embed-preview { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: 12px; padding: 1.5rem; } .embed-preview h3 { color: white; margin-bottom: 1rem; } .discord-embed { background: #2f3136; border-radius: 8px; padding: 1rem; border-left: 4px solid #4ade80; } .embed-content h4 { color: white; margin-bottom: 0.5rem; } .embed-content p { color: #b9bbbe; margin-bottom: 1rem; } /* Campaign Section */ .campaign-controls { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: 12px; padding: 2rem; } .campaign-info { margin-bottom: 2rem; } .campaign-info h3 { color: white; margin-bottom: 1rem; } .progress-container { display: flex; align-items: center; gap: 1rem; } .progress-bar { flex: 1; height: 8px; background: rgba(255, 255, 255, 0.2); border-radius: 4px; overflow: hidden; } .progress-fill { height: 100%; background: #4ade80; transition: width 0.3s ease; } #campaignStats { color: white; font-weight: 500; } .campaign-actions { display: flex; gap: 1rem; margin-bottom: 1.5rem; } .timeout-options { display: flex; align-items: center; gap: 1rem; color: white; } /* Logs Section */ .logs-container { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: 12px; padding: 1.5rem; } .logs-tabs { display: flex; gap: 0.5rem; margin-bottom: 1rem; } .log-tab { padding: 0.5rem 1rem; background: rgba(255, 255, 255, 0.1); border: none; color: rgba(255, 255, 255, 0.8); border-radius: 6px; cursor: pointer; transition: all 0.3s ease; } .log-tab.active { background: #4ade80; color: white; } .log-panel { display: none; max-height: 400px; overflow-y: auto; } .log-panel.active { display: block; } .log-entries { font-family: 'Courier New', monospace; font-size: 0.9rem; color: #b9bbbe; } .log-entry { padding: 0.5rem; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } /* Buttons */ .btn { padding: 0.75rem 1.5rem; border: none; border-radius: 8px; cursor: pointer; font-size: 0.9rem; font-weight: 500; transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 0.5rem; } .btn-primary { background: #3b82f6; color: white; } .btn-primary:hover { background: #2563eb; } .btn-success { background: #10b981; color: white; } .btn-success:hover { background: #059669; } .btn-info { background: #06b6d4; color: white; } .btn-info:hover { background: #0891b2; } .btn-secondary { background: #6b7280; color: white; } .btn-secondary:hover { background: #4b5563; } .btn:disabled { opacity: 0.5; cursor: not-allowed; } /* Responsive Design */ @media (max-width: 768px) { .dashboard { grid-template-columns: 1fr; grid-template-areas: "header" "main"; } .nav { display: none; } .guilds-container, .embed-builder { grid-template-columns: 1fr; } .campaign-actions { flex-direction: column; } } /* Scrollbar Styling */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.1); } ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.3); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.5); }