507 lines
9.3 KiB
CSS
507 lines
9.3 KiB
CSS
*,
|
|
*::before,
|
|
*::after {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html,
|
|
body,
|
|
div,
|
|
span,
|
|
applet,
|
|
object,
|
|
iframe,
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4,
|
|
h5,
|
|
h6,
|
|
p,
|
|
blockquote,
|
|
pre,
|
|
a,
|
|
abbr,
|
|
acronym,
|
|
address,
|
|
big,
|
|
cite,
|
|
code,
|
|
del,
|
|
dfn,
|
|
em,
|
|
img,
|
|
ins,
|
|
kbd,
|
|
q,
|
|
s,
|
|
samp,
|
|
small,
|
|
strike,
|
|
strong,
|
|
sub,
|
|
sup,
|
|
tt,
|
|
var,
|
|
b,
|
|
u,
|
|
i,
|
|
center,
|
|
dl,
|
|
dt,
|
|
dd,
|
|
ol,
|
|
ul,
|
|
li,
|
|
fieldset,
|
|
form,
|
|
label,
|
|
legend,
|
|
table,
|
|
caption,
|
|
tbody,
|
|
tfoot,
|
|
thead,
|
|
tr,
|
|
th,
|
|
td,
|
|
article,
|
|
aside,
|
|
canvas,
|
|
details,
|
|
embed,
|
|
figure,
|
|
figcaption,
|
|
footer,
|
|
header,
|
|
hgroup,
|
|
menu,
|
|
nav,
|
|
output,
|
|
ruby,
|
|
section,
|
|
summary,
|
|
time,
|
|
mark,
|
|
audio,
|
|
video {
|
|
margin: 0;
|
|
padding: 0;
|
|
border: 0;
|
|
font-size: 100%;
|
|
font: inherit;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
article,
|
|
aside,
|
|
details,
|
|
figcaption,
|
|
figure,
|
|
footer,
|
|
header,
|
|
hgroup,
|
|
menu,
|
|
nav,
|
|
section {
|
|
display: block;
|
|
}
|
|
|
|
ol,
|
|
ul {
|
|
list-style: none;
|
|
}
|
|
|
|
blockquote,
|
|
q {
|
|
quotes: none;
|
|
}
|
|
|
|
blockquote::before,
|
|
blockquote::after,
|
|
q::before,
|
|
q::after {
|
|
content: "";
|
|
}
|
|
|
|
table {
|
|
border-collapse: collapse;
|
|
border-spacing: 0;
|
|
}
|
|
|
|
:root {
|
|
--page-bg: #f5f7fb;
|
|
--page-bg-soft: #eef3fb;
|
|
--surface: rgba(255, 255, 255, 0.76);
|
|
--surface-strong: rgba(255, 255, 255, 0.92);
|
|
--surface-border: rgba(120, 136, 164, 0.22);
|
|
--text: #111827;
|
|
--text-muted: #667085;
|
|
--text-soft: #8a94a6;
|
|
--control-bg: rgba(255, 255, 255, 0.86);
|
|
--control-border: rgba(111, 124, 145, 0.24);
|
|
--control-border-hover: rgba(88, 101, 123, 0.38);
|
|
--accent: #007aff;
|
|
--accent-hover: #147efb;
|
|
--accent-active: #0062cc;
|
|
--danger: #ff3b30;
|
|
--success: #34c759;
|
|
--info: #007aff;
|
|
--shadow: 0 28px 70px rgba(42, 56, 86, 0.14);
|
|
--shadow-soft: 0 12px 28px rgba(42, 56, 86, 0.1);
|
|
color-scheme: light;
|
|
}
|
|
|
|
body {
|
|
min-height: 100vh;
|
|
width: 100vw;
|
|
margin: 0;
|
|
overflow-x: hidden;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 48px 24px;
|
|
background:
|
|
radial-gradient(circle at 18% 16%, rgba(255, 255, 255, 0.98), transparent 28%),
|
|
radial-gradient(circle at 82% 18%, rgba(213, 226, 248, 0.72), transparent 34%),
|
|
linear-gradient(145deg, #fbfcff 0%, var(--page-bg) 48%, var(--page-bg-soft) 100%);
|
|
color: var(--text);
|
|
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", Arial, sans-serif;
|
|
line-height: 1.45;
|
|
-webkit-font-smoothing: antialiased;
|
|
text-rendering: optimizeLegibility;
|
|
}
|
|
|
|
body::before {
|
|
content: "";
|
|
position: fixed;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
background-image: linear-gradient(rgba(255, 255, 255, 0.42) 1px, transparent 1px),
|
|
linear-gradient(90deg, rgba(255, 255, 255, 0.38) 1px, transparent 1px);
|
|
background-size: 46px 46px;
|
|
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.34), transparent 72%);
|
|
}
|
|
|
|
.container {
|
|
position: relative;
|
|
width: min(100%, 404px);
|
|
display: flex;
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
padding: 34px;
|
|
color: var(--text);
|
|
background: var(--surface);
|
|
border: 1px solid var(--surface-border);
|
|
border-radius: 28px;
|
|
box-shadow: var(--shadow);
|
|
backdrop-filter: blur(26px) saturate(1.35);
|
|
-webkit-backdrop-filter: blur(26px) saturate(1.35);
|
|
}
|
|
|
|
.container::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 1px;
|
|
pointer-events: none;
|
|
border-radius: 27px;
|
|
border: 1px solid rgba(255, 255, 255, 0.74);
|
|
}
|
|
|
|
.logo {
|
|
display: block;
|
|
width: 118px;
|
|
height: 118px;
|
|
object-fit: contain;
|
|
align-self: center;
|
|
margin: 0 0 18px;
|
|
filter: drop-shadow(0 18px 28px rgba(62, 83, 117, 0.18));
|
|
}
|
|
|
|
.title {
|
|
margin: 0 0 26px;
|
|
color: var(--text);
|
|
text-align: center;
|
|
font-size: 2rem;
|
|
font-weight: 700;
|
|
line-height: 1.12;
|
|
}
|
|
|
|
.title.register {
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
form,
|
|
.fields-group {
|
|
width: 100%;
|
|
}
|
|
|
|
.form-fields {
|
|
display: flex;
|
|
align-items: stretch;
|
|
gap: 26px;
|
|
}
|
|
|
|
.subtitle {
|
|
color: var(--text);
|
|
font-size: 0.84rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.divider {
|
|
display: block;
|
|
width: 100%;
|
|
height: 1px;
|
|
margin: 12px 0 18px;
|
|
background: linear-gradient(90deg, transparent, rgba(117, 132, 158, 0.28), transparent);
|
|
}
|
|
|
|
.divider.vertical {
|
|
width: 1px;
|
|
height: auto;
|
|
min-height: 188px;
|
|
margin: 34px 0 14px;
|
|
background: linear-gradient(180deg, transparent, rgba(117, 132, 158, 0.28), transparent);
|
|
flex: 0 0 1px;
|
|
}
|
|
|
|
.form-field {
|
|
width: 100%;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
label {
|
|
display: block;
|
|
margin-bottom: 7px;
|
|
color: var(--text-muted);
|
|
font-size: 0.83rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
input {
|
|
width: 100%;
|
|
min-width: 0;
|
|
height: 44px;
|
|
padding: 0 14px;
|
|
color: var(--text);
|
|
background: var(--control-bg);
|
|
border: 1px solid var(--control-border);
|
|
border-radius: 12px;
|
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78), 0 1px 2px rgba(32, 42, 60, 0.04);
|
|
font: inherit;
|
|
font-size: 0.96rem;
|
|
outline: none;
|
|
transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
|
|
}
|
|
|
|
input:enabled:hover {
|
|
border-color: var(--control-border-hover);
|
|
background: rgba(255, 255, 255, 0.94);
|
|
}
|
|
|
|
input:enabled:focus {
|
|
border-color: rgba(0, 122, 255, 0.72);
|
|
box-shadow: 0 0 0 4px rgba(0, 122, 255, 0.13), inset 0 1px 0 rgba(255, 255, 255, 0.86);
|
|
}
|
|
|
|
input:disabled {
|
|
opacity: 0.54;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
input.error {
|
|
border-color: rgba(255, 59, 48, 0.84);
|
|
box-shadow: 0 0 0 4px rgba(255, 59, 48, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.78);
|
|
}
|
|
|
|
.btn {
|
|
width: 100%;
|
|
min-height: 44px;
|
|
margin-top: 2px;
|
|
padding: 0 18px;
|
|
color: #ffffff;
|
|
background: linear-gradient(180deg, var(--accent-hover), var(--accent));
|
|
border: 1px solid rgba(0, 98, 204, 0.2);
|
|
border-radius: 999px;
|
|
box-shadow: 0 10px 24px rgba(0, 122, 255, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.32);
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-size: 0.94rem;
|
|
font-weight: 700;
|
|
transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease, opacity 160ms ease;
|
|
}
|
|
|
|
.btn:disabled {
|
|
opacity: 0.54;
|
|
cursor: not-allowed;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.btn:not(:disabled):hover {
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 14px 28px rgba(0, 122, 255, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.34);
|
|
}
|
|
|
|
.btn:not(:disabled):active {
|
|
transform: translateY(0);
|
|
background: linear-gradient(180deg, var(--accent), var(--accent-active));
|
|
}
|
|
|
|
a {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 32px;
|
|
color: var(--accent);
|
|
text-decoration: none;
|
|
border-radius: 999px;
|
|
font-size: 0.9rem;
|
|
font-weight: 600;
|
|
transition: color 160ms ease, background-color 160ms ease;
|
|
}
|
|
|
|
a:hover {
|
|
color: var(--accent-active);
|
|
}
|
|
|
|
a:focus-visible {
|
|
outline: 3px solid rgba(0, 122, 255, 0.2);
|
|
outline-offset: 4px;
|
|
}
|
|
|
|
.toast-container {
|
|
position: fixed;
|
|
top: 22px;
|
|
right: 22px;
|
|
z-index: 9999;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
width: min(340px, calc(100vw - 44px));
|
|
}
|
|
|
|
.toast-container .toast {
|
|
width: 100%;
|
|
height: auto;
|
|
min-width: 150px;
|
|
max-width: 400px;
|
|
padding: 15px 16px;
|
|
color: var(--text);
|
|
text-align: left;
|
|
word-wrap: break-word;
|
|
background: var(--surface-strong);
|
|
border: 1px solid var(--surface-border);
|
|
border-radius: 16px;
|
|
box-shadow: var(--shadow-soft);
|
|
opacity: 0;
|
|
backdrop-filter: blur(20px) saturate(1.25);
|
|
-webkit-backdrop-filter: blur(20px) saturate(1.25);
|
|
transition: opacity 240ms ease, transform 240ms ease;
|
|
transform: translateY(-6px);
|
|
}
|
|
|
|
.toast-container .toast.show {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.toast-container .toast.hide {
|
|
opacity: 0;
|
|
transform: translateY(-6px);
|
|
}
|
|
|
|
.toast-container .toast.success {
|
|
color: #157f3b;
|
|
background: rgba(240, 253, 244, 0.94);
|
|
border-color: rgba(52, 199, 89, 0.28);
|
|
}
|
|
|
|
.toast-container .toast.info {
|
|
color: #0759b8;
|
|
background: rgba(239, 246, 255, 0.94);
|
|
border-color: rgba(0, 122, 255, 0.26);
|
|
}
|
|
|
|
.toast-container .toast.error {
|
|
color: #b42318;
|
|
background: rgba(255, 241, 240, 0.94);
|
|
border-color: rgba(255, 59, 48, 0.28);
|
|
}
|
|
|
|
@media (min-width: 781px) {
|
|
.container.register-container {
|
|
width: min(100%, 664px);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 780px) {
|
|
body {
|
|
align-items: flex-start;
|
|
padding: 34px 18px;
|
|
}
|
|
|
|
.container {
|
|
width: min(100%, 420px);
|
|
padding: 30px 24px;
|
|
border-radius: 24px;
|
|
}
|
|
|
|
.container::before {
|
|
border-radius: 23px;
|
|
}
|
|
|
|
.form-fields {
|
|
display: block;
|
|
}
|
|
|
|
.divider.vertical {
|
|
display: none !important;
|
|
}
|
|
|
|
.subtitle {
|
|
margin-top: 2px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 420px) {
|
|
body {
|
|
min-height: 100vh;
|
|
padding: 0;
|
|
background: linear-gradient(180deg, #fbfcff 0%, #eef3fb 100%);
|
|
}
|
|
|
|
body::before {
|
|
display: none;
|
|
}
|
|
|
|
.container {
|
|
width: 100%;
|
|
min-height: 100vh;
|
|
justify-content: center;
|
|
padding: 34px 24px;
|
|
border: none;
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
background: rgba(255, 255, 255, 0.68);
|
|
}
|
|
|
|
.container::before {
|
|
display: none;
|
|
}
|
|
|
|
.logo {
|
|
width: 108px;
|
|
height: 108px;
|
|
}
|
|
|
|
.title {
|
|
font-size: 1.84rem;
|
|
}
|
|
|
|
.toast-container {
|
|
top: 12px;
|
|
right: 12px;
|
|
width: calc(100vw - 24px);
|
|
}
|
|
}
|