/* Status messages */ .status-container { position: fixed; top: calc(var(--header-height) + 20px); left: 50%; transform: translateX(-50%); z-index: 2000; max-width: 400px; width: 90%; } .status-message { padding: 12px 20px; border-radius: var(--border-radius); margin-bottom: 10px; display: flex; align-items: center; gap: 10px; animation: slideIn 0.3s ease; box-shadow: 0 2px 8px rgba(0,0,0,0.1); } @keyframes slideIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } .status-message.success { background-color: var(--success-color); color: white; } .status-message.error { background-color: var(--danger-color); color: white; } .status-message.warning { background-color: var(--warning-color); color: white; } .status-message.info { background-color: var(--primary-color); color: white; } /* Loading overlay */ .loading-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255,255,255,0.9); display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 4000; } .loading-overlay.hidden { display: none; } .spinner { width: 50px; height: 50px; border: 3px solid var(--light-color); border-top-color: var(--primary-color); border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } .loading-overlay p { margin-top: 20px; color: var(--dark-color); font-size: 16px; }