Files
2026-05-01 18:51:04 +02:00

234 lines
3.6 KiB
CSS

:root {
--bg: #0b1020;
--bg-soft: #121a2f;
--text: #dbe4ff;
--text-soft: #8b9cc8;
--accent: #6d7cff;
--accent-2: #30d1ff;
--error: #ff6b8a;
--ok: #6dffb5;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
background: radial-gradient(circle at top left, #111a32, var(--bg));
color: var(--text);
overflow: hidden;
}
.app-shell {
min-height: 100vh;
display: grid;
place-items: center;
padding: 24px;
position: relative;
z-index: 2;
}
.card {
width: min(560px, 100%);
background: linear-gradient(145deg, rgba(18, 26, 47, 0.85), rgba(11, 16, 32, 0.95));
border: 1px solid rgba(109, 124, 255, 0.25);
border-radius: 18px;
backdrop-filter: blur(10px);
box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
padding: 28px;
}
h1 {
margin-top: 0;
margin-bottom: 8px;
letter-spacing: 0.4px;
}
.sub {
margin-top: 0;
margin-bottom: 20px;
color: var(--text-soft);
}
.auth-panel {
border: 1px solid rgba(139, 156, 200, 0.2);
background: rgba(9, 13, 26, 0.45);
border-radius: 12px;
padding: 12px;
margin-bottom: 16px;
}
.auth-text {
margin: 0;
color: var(--text-soft);
}
.auth-actions {
display: flex;
gap: 8px;
margin-top: 10px;
}
.auth-link,
.ghost-btn {
appearance: none;
border: 1px solid rgba(109, 124, 255, 0.45);
background: rgba(109, 124, 255, 0.14);
color: var(--text);
border-radius: 10px;
padding: 8px 12px;
text-decoration: none;
cursor: pointer;
font: inherit;
font-weight: 600;
}
.auth-link:hover,
.ghost-btn:hover {
background: rgba(109, 124, 255, 0.28);
}
#quote-form.locked {
opacity: 0.6;
pointer-events: none;
}
label {
display: block;
margin-top: 14px;
margin-bottom: 8px;
font-weight: 600;
}
select,
textarea,
input[type="file"],
button {
width: 100%;
border-radius: 12px;
border: 1px solid rgba(139, 156, 200, 0.25);
background: rgba(9, 13, 26, 0.75);
color: var(--text);
font: inherit;
}
select,
textarea {
padding: 12px;
}
input[type="file"] {
padding: 10px;
}
input[type="file"]::file-selector-button {
margin-right: 10px;
border: 1px solid rgba(109, 124, 255, 0.45);
background: rgba(109, 124, 255, 0.14);
color: var(--text);
border-radius: 8px;
padding: 6px 10px;
cursor: pointer;
}
.hint {
margin: 8px 0 0;
color: var(--text-soft);
font-size: 0.9rem;
}
textarea {
min-height: 160px;
resize: vertical;
}
button {
margin-top: 16px;
padding: 12px;
font-weight: 700;
border: 0;
background: linear-gradient(90deg, var(--accent), var(--accent-2));
color: #061228;
cursor: pointer;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
button:hover {
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(48, 209, 255, 0.35);
}
button:disabled {
opacity: 0.55;
cursor: not-allowed;
}
.status {
min-height: 1.2em;
margin-top: 12px;
color: var(--text-soft);
}
.status.ok {
color: var(--ok);
}
.status.error {
color: var(--error);
}
.bg-glow {
position: absolute;
border-radius: 999px;
filter: blur(70px);
opacity: 0.35;
z-index: 1;
animation: float 8s ease-in-out infinite;
}
.bg-glow-a {
width: 260px;
height: 260px;
left: 10%;
top: 12%;
background: #526dff;
}
.bg-glow-b {
width: 320px;
height: 320px;
right: 10%;
bottom: 12%;
background: #18ccff;
animation-delay: -4s;
}
.fade-in-up {
animation: fadeInUp 0.65s ease forwards;
}
@keyframes float {
0%,
100% {
transform: translateY(0px);
}
50% {
transform: translateY(-16px);
}
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(14px);
}
to {
opacity: 1;
transform: translateY(0);
}
}