151 lines
3.3 KiB
CSS
151 lines
3.3 KiB
CSS
/* ─────────────────────────────────────────
|
||
TravelDesk – Custom Styles
|
||
───────────────────────────────────────── */
|
||
|
||
:root {
|
||
--navy: #1E3A5F;
|
||
--accent: #F97316;
|
||
--surface: #F8FAFC;
|
||
}
|
||
|
||
* {
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
body {
|
||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, sans-serif;
|
||
background-color: var(--surface);
|
||
color: #1a1a2e;
|
||
}
|
||
|
||
/* ── Formular-Elemente ─────────────────── */
|
||
|
||
.label {
|
||
display: block;
|
||
font-size: 0.8125rem;
|
||
font-weight: 600;
|
||
color: #374151;
|
||
margin-bottom: 0.375rem;
|
||
}
|
||
|
||
.input {
|
||
width: 100%;
|
||
padding: 0.625rem 0.875rem;
|
||
border: 1.5px solid #e2e8f0;
|
||
border-radius: 0.625rem;
|
||
font-size: 0.9375rem;
|
||
color: #1a1a2e;
|
||
background: #fff;
|
||
transition: border-color 0.15s, box-shadow 0.15s;
|
||
outline: none;
|
||
}
|
||
|
||
.input:focus {
|
||
border-color: var(--accent);
|
||
box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.12);
|
||
}
|
||
|
||
.input::placeholder {
|
||
color: #a0aec0;
|
||
}
|
||
|
||
/* ── Karten ────────────────────────────── */
|
||
|
||
.card {
|
||
background: #ffffff;
|
||
border-radius: 1rem;
|
||
box-shadow: 0 1px 4px rgba(0,0,0,0.07), 0 4px 16px rgba(0,0,0,0.05);
|
||
padding: 1.25rem;
|
||
transition: box-shadow 0.2s, transform 0.2s;
|
||
}
|
||
|
||
.card:hover {
|
||
box-shadow: 0 4px 16px rgba(30,58,95,0.12), 0 8px 32px rgba(30,58,95,0.08);
|
||
transform: translateY(-2px);
|
||
}
|
||
|
||
/* ── Buttons ───────────────────────────── */
|
||
|
||
.btn-primary {
|
||
display: inline-block;
|
||
background: var(--accent);
|
||
color: #fff;
|
||
font-weight: 600;
|
||
border-radius: 0.625rem;
|
||
text-decoration: none;
|
||
transition: background 0.15s, transform 0.1s;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.btn-primary:hover {
|
||
background: #ea6c0a;
|
||
transform: translateY(-1px);
|
||
}
|
||
|
||
.btn-primary:active {
|
||
transform: translateY(0);
|
||
}
|
||
|
||
/* ── Ergebnis-Blöcke ───────────────────── */
|
||
|
||
.result-block {
|
||
animation: fadeInUp 0.35s ease both;
|
||
transition: box-shadow 0.2s;
|
||
}
|
||
|
||
.result-block:hover {
|
||
box-shadow: 0 8px 32px rgba(30,58,95,0.12);
|
||
}
|
||
|
||
/* ── Lade-Spinner ──────────────────────── */
|
||
|
||
.spinner {
|
||
width: 3rem;
|
||
height: 3rem;
|
||
border: 4px solid #e2e8f0;
|
||
border-top-color: var(--accent);
|
||
border-radius: 50%;
|
||
animation: spin 0.8s linear infinite;
|
||
}
|
||
|
||
@keyframes spin {
|
||
to { transform: rotate(360deg); }
|
||
}
|
||
|
||
/* ── Range Input ───────────────────────── */
|
||
|
||
input[type="range"] {
|
||
height: 6px;
|
||
cursor: pointer;
|
||
border-radius: 3px;
|
||
}
|
||
|
||
/* ── Responsive ────────────────────────── */
|
||
|
||
@media (max-width: 768px) {
|
||
.card {
|
||
padding: 1rem;
|
||
}
|
||
|
||
.grid-cols-3 {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
}
|
||
|
||
/* ── Animationen ───────────────────────── */
|
||
|
||
@keyframes fadeInUp {
|
||
from {
|
||
opacity: 0;
|
||
transform: translateY(16px);
|
||
}
|
||
to {
|
||
opacity: 1;
|
||
transform: translateY(0);
|
||
}
|
||
}
|
||
|
||
.card {
|
||
animation: fadeInUp 0.3s ease both;
|
||
}
|