html, body { background-color: rgb(17, 24, 39); margin: 0; padding: 0; } #root { background-color: rgb(17, 24, 39); min-height: 100vh; } .primary-button { background-color: #3b82f6; color: white; padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-weight: 500; border: 1px solid transparent; cursor: pointer; transition: all 200ms ease-in-out; position: relative; } .primary-button:hover { background-color: #2563eb; transform: translateY(-1px); border-color: #3b82f6; } .primary-button:focus { outline: none; } .primary-button:disabled { background-color: #93c5fd; cursor: not-allowed; transform: none; border-color: transparent; } .secondary-button { background-color: #0f172a; color: white; padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-weight: 500; border: 1px solid #1e293b; cursor: pointer; transition: all 200ms ease-in-out; position: relative; } .secondary-button:hover { background-color: #0f172a; border-color: #3b82f6; color: #60a5fa; transform: translateY(-1px); } .secondary-button:focus { outline: none; } .secondary-button:disabled { background-color: #e2e8f0; color: #94a3b8; cursor: not-allowed; transform: none; border-color: transparent; } .primary-button::before, .secondary-button::before { content: ""; position: absolute; inset: -4px; background-color: rgba(59, 130, 246, 0.1); border-radius: 0.625rem; opacity: 0; transition: opacity 200ms ease-in-out; filter: blur(8px); z-index: -1; } .primary-button:hover::before, .secondary-button:hover::before { opacity: 1; } .primary-button:disabled.loading, .secondary-button:disabled.loading { position: relative; color: transparent; } .primary-button:disabled.loading::after, .secondary-button:disabled.loading::after { content: ""; position: absolute; width: 1rem; height: 1rem; top: 50%; left: 50%; transform: translate(-50%, -50%); border: 2px solid rgba(255, 255, 255, 0.3); border-radius: 50%; border-top-color: white; animation: spin 1s linear infinite; } @keyframes spin { to { transform: translate(-50%, -50%) rotate(360deg); } }