David Prince
Fix Dockerfile and requirements
75f8a84
Raw
History Blame Contribute Delete
3.13 kB
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;700;800&family=DM+Sans:wght@300;400;500&display=swap');
* { box-sizing: border-box; margin: 0; padding: 0; }
.auth-bg {
min-height: 100vh;
background: #050a14;
display: flex;
align-items: center;
justify-content: center;
font-family: 'DM Sans', sans-serif;
position: relative;
overflow: hidden;
}
.auth-glow {
position: absolute;
width: 500px;
height: 500px;
background: radial-gradient(circle, #1a3a6e44 0%, transparent 70%);
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
pointer-events: none;
}
.auth-card {
width: 100%;
max-width: 380px;
background: #0d1526;
border: 1px solid #1e2d4a;
border-radius: 20px;
padding: 40px 32px;
display: flex;
flex-direction: column;
gap: 16px;
animation: slideUp 0.5s ease;
position: relative;
z-index: 1;
}
@keyframes slideUp {
from { opacity: 0; transform: translateY(30px); }
to { opacity: 1; transform: translateY(0); }
}
.auth-logo {
font-family: 'Syne', sans-serif;
font-size: 2.4rem;
font-weight: 800;
color: white;
text-align: center;
letter-spacing: -1px;
}
.logo-d { color: #3b82f6; }
.logo-3 { color: #60a5fa; }
.auth-sub {
text-align: center;
color: #64748b;
font-size: 0.85rem;
letter-spacing: 2px;
text-transform: uppercase;
margin-top: -8px;
}
.auth-field {
display: flex;
flex-direction: column;
gap: 6px;
}
.auth-field label {
color: #94a3b8;
font-size: 0.8rem;
letter-spacing: 1px;
text-transform: uppercase;
}
.auth-field input {
background: #0a1220;
border: 1px solid #1e2d4a;
border-radius: 10px;
padding: 12px 16px;
color: white;
font-family: 'DM Sans', sans-serif;
font-size: 0.95rem;
outline: none;
transition: border 0.2s;
}
.auth-field input:focus { border-color: #3b82f6; }
.auth-field input::placeholder { color: #334155; }
.auth-btn {
background: linear-gradient(135deg, #2563eb, #1d4ed8);
color: white;
border: none;
border-radius: 10px;
padding: 14px;
font-family: 'Syne', sans-serif;
font-size: 1rem;
font-weight: 700;
cursor: pointer;
letter-spacing: 0.5px;
transition: all 0.2s;
margin-top: 4px;
display: flex;
align-items: center;
justify-content: center;
min-height: 48px;
}
.auth-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 24px #2563eb44; }
.auth-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.spinner {
width: 20px; height: 20px;
border: 2px solid #ffffff44;
border-top-color: white;
border-radius: 50%;
animation: spin 0.6s linear infinite;
display: inline-block;
}
@keyframes spin { to { transform: rotate(360deg); } }
.auth-error {
background: #1a0a0a;
border: 1px solid #ef444444;
color: #f87171;
padding: 10px 14px;
border-radius: 8px;
font-size: 0.85rem;
}
.auth-success {
background: #0a1a0a;
border: 1px solid #22c55e44;
color: #4ade80;
padding: 10px 14px;
border-radius: 8px;
font-size: 0.85rem;
}
.auth-link {
text-align: center;
color: #475569;
font-size: 0.85rem;
}
.auth-link a { color: #3b82f6; text-decoration: none; }