Aktueller Stand

This commit is contained in:
2026-01-15 16:24:09 +01:00
parent 5d2630a02f
commit 46eae2a2a9
70 changed files with 7866 additions and 447 deletions

View File

@@ -1,4 +1,5 @@
@import "@fontsource/space-grotesk/variable.css";
@import "leaflet/dist/leaflet.css";
@tailwind base;
@tailwind components;
@@ -7,18 +8,319 @@
:root {
color-scheme: light;
--surface: #ffffff;
--ink: #1f1a17;
--muted: #f7efe4;
--line: #e6dccf;
--accent: #ff6b4a;
--accent-strong: #e24a2b;
--ink: #0f0f10;
--muted: #f2f2ee;
--line: #deded6;
--accent: #6f7a4f;
--accent-strong: #4e5837;
--accent-glow: #aab790;
--cool: #2f3b2a;
}
body {
color: var(--ink);
background:
radial-gradient(65% 80% at 0% 0%, #fff1df 0%, transparent 60%),
radial-gradient(65% 80% at 100% 0%, #e9f0ff 0%, transparent 60%),
#f8f2e9;
font-family: "Space Grotesk", "Segoe UI", sans-serif;
radial-gradient(60% 80% at 0% 0%, rgba(170, 183, 144, 0.25) 0%, transparent 60%),
radial-gradient(60% 70% at 100% 0%, rgba(15, 15, 16, 0.08) 0%, transparent 60%),
linear-gradient(180deg, rgba(255, 255, 255, 0.7), transparent 25%),
#f4f4f0;
background-repeat: no-repeat;
background-size: cover;
font-family: "Sora", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}
html[data-theme="dark"] {
color-scheme: dark;
--surface: #0f1110;
--ink: #f8f7f2;
--muted: #161a18;
--line: #2b322c;
--accent: #8e9b6b;
--accent-strong: #a3b37a;
--accent-glow: #3b4a2a;
--cool: #c9d4b4;
}
html[data-theme="dark"] body {
color: var(--ink);
background:
radial-gradient(70% 90% at 0% 0%, rgba(142, 155, 107, 0.22) 0%, transparent 60%),
radial-gradient(80% 70% at 100% 0%, rgba(255, 255, 255, 0.06) 0%, transparent 60%),
linear-gradient(180deg, rgba(15, 17, 16, 0.95), transparent 25%),
#0b0d0c;
background-repeat: no-repeat;
background-size: cover;
}
@keyframes fadeUp {
from {
opacity: 0;
transform: translateY(16px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes glow {
0%,
100% {
box-shadow: 0 0 0 rgba(255, 155, 130, 0);
}
50% {
box-shadow: 0 0 40px rgba(255, 155, 130, 0.35);
}
}
@layer components {
.card {
@apply rounded-2xl border border-slate-200/70 bg-white/90 p-5 shadow-[0_20px_40px_rgba(15,15,16,0.08)];
}
.card-muted {
@apply rounded-2xl border border-slate-200/70 bg-white/70 p-5;
}
.btn-primary {
@apply rounded-full bg-slate-900 px-4 py-2 text-sm font-semibold text-white transition hover:-translate-y-0.5 hover:bg-slate-800;
}
.btn-accent {
@apply rounded-full bg-brand-500 px-4 py-2 text-sm font-semibold text-white transition hover:-translate-y-0.5 hover:bg-brand-700;
}
.btn-ghost {
@apply rounded-full border border-slate-300 px-4 py-2 text-sm font-semibold text-slate-700 transition hover:-translate-y-0.5 hover:bg-slate-100;
}
.fade-up {
animation: fadeUp 0.7s ease both;
}
.fade-up-delay {
animation: fadeUp 0.7s ease 0.15s both;
}
.glow {
animation: glow 5s ease-in-out infinite;
}
}
html[data-theme="dark"] .card {
border-color: rgba(71, 85, 105, 0.35);
background: rgba(15, 17, 16, 0.9);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.45);
}
html[data-theme="dark"] .card-muted {
border-color: rgba(71, 85, 105, 0.3);
background: rgba(15, 17, 16, 0.7);
}
html[data-theme="dark"] .btn-primary {
background: #f8f7f2;
color: #0f1110;
}
html[data-theme="dark"] .btn-primary:hover {
background: #e7e4da;
}
html[data-theme="dark"] .btn-accent {
background: var(--accent);
}
html[data-theme="dark"] .btn-accent:hover {
background: var(--accent-strong);
}
html[data-theme="dark"] .btn-ghost {
border-color: rgba(71, 85, 105, 0.6);
color: #e2e8f0;
background: rgba(15, 17, 16, 0.35);
}
html[data-theme="dark"] .btn-ghost:hover {
background: rgba(148, 163, 184, 0.12);
}
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
background: rgba(15, 17, 16, 0.65);
border-color: rgba(71, 85, 105, 0.5);
color: #f8fafc;
}
html[data-theme="dark"] header {
border-color: rgba(71, 85, 105, 0.35);
background: rgba(15, 17, 16, 0.8);
}
html[data-theme="dark"] .fc .fc-button {
border-color: rgba(71, 85, 105, 0.5);
background: rgba(15, 17, 16, 0.75);
color: #f8fafc;
}
html[data-theme="dark"] .fc .fc-button-primary:not(:disabled).fc-button-active,
html[data-theme="dark"] .fc .fc-button-primary:not(:disabled):active {
background: #f8f7f2;
color: #0f1110;
}
html[data-theme="dark"] .fc .fc-daygrid-event,
html[data-theme="dark"] .fc .fc-timegrid-event {
background: #e2e8f0;
color: #0f1110;
}
html[data-theme="dark"] .fc .fc-daygrid-event .fc-event-main,
html[data-theme="dark"] .fc .fc-timegrid-event .fc-event-main,
html[data-theme="dark"] .fc .fc-daygrid-event .fc-event-title,
html[data-theme="dark"] .fc .fc-timegrid-event .fc-event-title,
html[data-theme="dark"] .fc .fc-daygrid-event .fc-event-time,
html[data-theme="dark"] .fc .fc-timegrid-event .fc-event-time {
color: #0f1110;
}
html[data-theme="dark"] .fc .fc-day-today {
background: rgba(248, 247, 242, 0.08);
}
html[data-theme="dark"] .fc .fc-daygrid-day.fc-day-past {
background: rgba(148, 163, 184, 0.08);
}
html[data-theme="dark"] .fc .fc-daygrid-day.fc-day-past .fc-daygrid-day-number {
color: rgba(226, 232, 240, 0.7);
}
html[data-theme="dark"] .drag-handle {
border-color: rgba(71, 85, 105, 0.5);
color: #e2e8f0;
background: rgba(15, 17, 16, 0.8);
}
html[data-theme="dark"] .drag-handle:hover {
background: rgba(30, 41, 59, 0.9);
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35);
}
.fc .fc-toolbar-title {
font-size: 1.1rem;
font-weight: 600;
}
.fc .fc-button {
border-radius: 999px;
border: 1px solid #e2e8f0;
background: #ffffff;
color: #0f172a;
text-transform: none;
padding: 0.4rem 0.8rem;
}
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
background: #0f172a;
color: #ffffff;
}
.fc .fc-daygrid-event,
.fc .fc-timegrid-event {
border-radius: 0.6rem;
border: none;
background: #1f2937;
color: #ffffff;
}
.fc .fc-daygrid-event .fc-event-main,
.fc .fc-timegrid-event .fc-event-main,
.fc .fc-daygrid-event .fc-event-title,
.fc .fc-timegrid-event .fc-event-title,
.fc .fc-daygrid-event .fc-event-time,
.fc .fc-timegrid-event .fc-event-time {
color: #ffffff;
}
.fc .fc-daygrid-event .event-shell,
.fc .fc-timegrid-event .event-shell {
position: relative;
padding-right: 1.75rem;
}
.fc .fc-daygrid-event .event-toggle,
.fc .fc-timegrid-event .event-toggle {
position: absolute;
right: 0.3rem;
top: 0.3rem;
}
.drag-handle {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
border: 1px solid #e2e8f0;
padding: 0.35rem 0.55rem;
color: #475569;
background: #ffffff;
cursor: grab;
transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.drag-handle:hover {
transform: translateY(-1px);
background: #f8fafc;
box-shadow: 0 6px 16px rgba(15, 23, 42, 0.12);
}
.drag-handle:active {
cursor: grabbing;
transform: translateY(0);
}
.drag-card {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.drag-card.dragging {
opacity: 0.7;
box-shadow: 0 20px 40px rgba(15, 23, 42, 0.18);
}
.drag-card.drag-target {
outline: 2px dashed rgba(99, 102, 241, 0.35);
outline-offset: 4px;
}
.drag-card.shift-up {
transform: translateY(-10px);
}
.drag-card.shift-down {
transform: translateY(10px);
}
.fc .fc-day-today {
background: rgba(31, 41, 55, 0.08);
}
.fc .fc-daygrid-day.fc-day-past {
background: rgba(15, 23, 42, 0.03);
}
.fc .fc-daygrid-day.fc-day-past .fc-daygrid-day-number {
color: rgba(15, 23, 42, 0.5);
}
@media (max-width: 768px) {
.fc .fc-toolbar {
flex-direction: column;
gap: 0.5rem;
}
.fc .fc-toolbar-title {
font-size: 1rem;
}
.fc .fc-button {
padding: 0.35rem 0.7rem;
font-size: 0.75rem;
}
}