/* static/admin/css/main.css */ /* Bulk Action Section Styling */ .bulk-actions-section { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); border: 1px solid #dee2e6; border-left: 4px solid #007cba; border-radius: 8px; padding: 20px; margin: 20px 0; box-shadow: 0 2px 4px rgba(0,0,0,0.05); } .bulk-actions-section h3 { color: #007cba; margin-top: 0; display: flex; align-items: center; gap: 8px; font-size: 18px; } .bulk-actions-section p { color: #6c757d; margin-bottom: 15px; line-height: 1.5; } /* Action Button Styles */ .server-action-btn, .bulk-action-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 15px; border-radius: 6px; text-decoration: none; font-weight: 500; font-size: 14px; border: none; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 2px 4px rgba(0,0,0,0.1); position: relative; overflow: hidden; } .server-action-btn:before, .bulk-action-btn:before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); transition: left 0.5s; } .server-action-btn:hover:before, .bulk-action-btn:hover:before { left: 100%; } .server-action-btn:hover, .bulk-action-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.15); text-decoration: none; } /* Specific button colors */ .btn-move-clients { background-color: #007cba; color: white; } .btn-move-clients:hover { background-color: #005a8b !important; color: white; } .btn-purge-users { background-color: #dc3545; color: white; } .btn-purge-users:hover { background-color: #c82333 !important; color: white; } /* Server list action buttons */ .field-server_actions { min-width: 160px; } .field-server_actions .server-action-btn { padding: 5px 8px; font-size: 11px; gap: 4px; margin: 2px; } /* Server statistics section */ .server-stats-section { background-color: #e8f4fd; border: 1px solid #bee5eb; border-radius: 6px; padding: 12px; margin: 15px 0; } .server-stats-grid { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; } .stat-item { display: flex; align-items: center; gap: 5px; } .stat-label { color: #495057; font-weight: 500; } .stat-value { color: #007cba; font-weight: bold; } /* Tip section styling */ .tip-section { background-color: rgba(255, 243, 205, 0.8); border-left: 4px solid #ffc107; border-radius: 4px; padding: 12px; margin-top: 15px; } .tip-section small { color: #856404; line-height: 1.4; } /* Loading states */ .server-action-btn.loading { pointer-events: none; opacity: 0.7; } .server-action-btn.loading:after { content: ''; position: absolute; width: 16px; height: 16px; margin: auto; border: 2px solid transparent; border-top-color: #ffffff; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Responsive design */ @media (max-width: 768px) { .bulk-actions-section { padding: 15px; } .server-action-btn, .bulk-action-btn { width: 100%; justify-content: center; margin-bottom: 8px; } .server-stats-grid { flex-direction: column; align-items: flex-start; gap: 10px; } .field-server_actions > div { flex-direction: column; } .field-server_actions .server-action-btn { width: 100%; justify-content: center; margin: 2px 0; } } @media (max-width: 480px) { .bulk-actions-section h3 { font-size: 16px; } .server-action-btn, .bulk-action-btn { font-size: 13px; padding: 8px 12px; } } /* Dark mode support */ @media (prefers-color-scheme: dark) { .bulk-actions-section { background: linear-gradient(135deg, #2d3748 0%, #4a5568 100%); border-color: #4a5568; color: #e2e8f0; } .bulk-actions-section h3 { color: #63b3ed; } .bulk-actions-section p { color: #a0aec0; } .server-stats-section { background-color: #2d3748; border-color: #4a5568; color: #e2e8f0; } .stat-label { color: #a0aec0; } .stat-value { color: #63b3ed; } }