/* Admin Console */ /* Loading Animation Styles */ .loading-container { background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%); min-height: 500px; position: relative; overflow: hidden; } .loading-spinner { width: 60px; height: 60px; border: 4px solid rgba(255, 255, 255, 0.2); border-left: 4px solid #007bff; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loading-dots { display: inline-flex; align-items: center; gap: 4px; } .loading-dots span { width: 8px; height: 8px; border-radius: 50%; background: #007bff; animation: pulse 1.4s ease-in-out infinite both; } .loading-dots span:nth-child(1) { animation-delay: -0.32s; } .loading-dots span:nth-child(2) { animation-delay: -0.16s; } .loading-dots span:nth-child(3) { animation-delay: 0s; } @keyframes pulse { 0%, 80%, 100% { transform: scale(0.7); opacity: 0.5; } 40% { transform: scale(1); opacity: 1; } } .console-container { transition: all 0.5s ease-in-out; min-height: 500px; } .fade-transition { transition: opacity 0.4s ease-in-out; } .spinner-box { width: 300px; height: 300px; display: flex; justify-content: center; align-items: center; background-color: transparent; } .three-quarter-spinner { width: 50px; height: 50px; border: 3px solid #fb5b53; border-top: 3px solid transparent; border-radius: 50%; animation: spin 0.5s linear 0s infinite; } @keyframes spin { from { transform: rotate(0); } to { transform: rotate(359deg); } } /* User Console */ .console-container { background: #1a1a1a; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } .console-header { background: #2a2a2a; border-bottom: 1px solid #3a3a3a; padding: 12px 20px; } .control-panel { background: white; border-radius: 8px; border: 1px solid #e5e7eb; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .btn-primary { background: #3b82f6; color: white; border: none; padding: 8px 16px; border-radius: 6px; font-weight: 500; transition: background-color 0.2s; } .btn-primary:hover { background: #2563eb; } .btn-secondary { background: #f8f9fa; color: #374151; border: 1px solid #d1d5db; padding: 8px 16px; border-radius: 6px; font-weight: 500; transition: all 0.2s; } .btn-secondary:hover { background: #e5e7eb; } .input-field { width: 100%; padding: 8px 12px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 14px; transition: border-color 0.2s; } .input-field:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } .loading-spinner { width: 32px; height: 32px; border: 3px solid #e5e7eb; border-top: 3px solid #3b82f6; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .section-title { font-size: 16px; font-weight: 600; color: #111827; margin-bottom: 16px; } .status-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; } .status-connecting { background: #f59e0b; } .status-connected { background: #10b981; } .status-error { background: #ef4444; }