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);
}
}