Smail/frontend/src/views/PublicPasswordReset/PublicPasswordReset.css
smail 581e70b2ca
Some checks are pending
Security Checks / security (push) Waiting to run
完善独立匿名密码恢复页面
2026-09-16 13:06:15 +08:00

219 lines
3.6 KiB
CSS

:global(html),
:global(body),
:global(#app) {
width: 100%;
min-height: 100%;
margin: 0;
}
:global(body) {
color: #172033;
background:
radial-gradient(circle at 0% 0%, rgba(37, 99, 235, 0.16), transparent 34%),
linear-gradient(135deg, #eef4ff, #f8fafc 55%, #edf5ff);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
:global(*) {
box-sizing: border-box;
}
.public-recovery-page {
display: grid;
min-height: 100vh;
min-height: 100dvh;
padding: 24px;
place-items: center;
}
.public-recovery-card {
width: min(100%, 520px);
padding: clamp(28px, 5vw, 42px);
background: rgba(255, 255, 255, 0.94);
border: 1px solid rgba(148, 163, 184, 0.3);
border-radius: 24px;
box-shadow: 0 24px 70px rgba(30, 64, 175, 0.16);
}
.public-recovery-header {
display: flex;
align-items: center;
gap: 14px;
margin-bottom: 28px;
}
.public-recovery-logo {
width: 46px;
height: 46px;
border-radius: 14px;
object-fit: contain;
box-shadow: 0 6px 16px rgba(37, 99, 235, 0.2);
}
.public-recovery-eyebrow {
margin: 0 0 3px;
color: #2563eb;
font-size: 13px;
font-weight: 700;
letter-spacing: 0.08em;
}
h1,
h2 {
margin: 0;
color: #111827;
}
h1 {
font-size: clamp(23px, 4vw, 28px);
line-height: 1.25;
}
.public-recovery-form {
display: grid;
gap: 10px;
}
.public-recovery-copy,
.public-recovery-complete p {
margin: 0 0 10px;
color: #526174;
font-size: 14px;
line-height: 1.65;
}
label {
margin-top: 6px;
color: #344156;
font-size: 14px;
font-weight: 700;
}
input {
width: 100%;
min-height: 46px;
padding: 11px 13px;
color: #172033;
font: inherit;
background: #f8fafc;
border: 1px solid #cbd5e1;
border-radius: 12px;
outline: none;
transition: border-color 0.16s ease, box-shadow 0.16s ease;
}
input:focus {
border-color: #2563eb;
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14);
}
input:disabled,
button:disabled {
cursor: not-allowed;
opacity: 0.65;
}
.public-recovery-status {
margin: 4px 0 0;
padding: 10px 12px;
color: #475569;
font-size: 13px;
line-height: 1.5;
background: #f1f5f9;
border-radius: 10px;
}
.public-recovery-status.success {
color: #166534;
background: #f0fdf4;
}
.public-recovery-status.error {
color: #b42318;
background: #fff1f2;
}
.public-recovery-actions {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-top: 18px;
}
.single-action {
justify-content: flex-end;
}
button {
min-height: 44px;
padding: 0 18px;
color: #fff;
font: inherit;
font-weight: 700;
cursor: pointer;
background: #2563eb;
border: 1px solid #2563eb;
border-radius: 12px;
transition: background 0.16s ease, transform 0.16s ease;
}
button:not(:disabled):hover {
background: #1d4ed8;
transform: translateY(-1px);
}
.text-button {
color: #2563eb;
background: transparent;
border-color: transparent;
}
.text-button:not(:disabled):hover {
background: #eff6ff;
}
.public-recovery-complete {
display: grid;
justify-items: center;
gap: 13px;
padding: 12px 0 4px;
text-align: center;
}
.public-recovery-complete h2 {
font-size: 22px;
}
.public-recovery-success-icon {
display: grid;
width: 66px;
height: 66px;
color: #fff;
font-size: 34px;
font-weight: 800;
background: #16a34a;
border-radius: 50%;
place-items: center;
}
@media (max-width: 520px) {
.public-recovery-page {
padding: 14px;
}
.public-recovery-card {
padding: 24px 20px;
border-radius: 20px;
}
.public-recovery-actions {
align-items: stretch;
flex-direction: column-reverse;
}
.public-recovery-actions button {
width: 100%;
}
}