@import "tailwindcss"; /* * Bindet die `dark:`-Utility-Variante an die `.dark`-Klasse. * * Tailwind 4 haengt `dark:` per Vorgabe an `prefers-color-scheme`, also an die * Einstellung des Betriebssystems. Diese Anwendung schaltet den Modus aber ueber * next-themes mit `attribute="class"` (siehe app/layout.tsx) — der Nutzer waehlt * hell/dunkel im Portal, unabhaengig von seinem System. * * Ohne diese Zeile klaffte beides auseinander: die Farbtokens unter `.dark` weiter * unten schalteten korrekt um, jede einzelne `dark:`-Utility im Quellcode blieb * dagegen wirkungslos, sobald System und Portal-Einstellung nicht zufaellig * uebereinstimmten. Betroffen waren ueber 100 Stellen — Status-, Warn- und * Fehlerfarben, Hinweisboxen und Badges in der Administration. Der Fehler fiel * lange nicht auf, weil Hintergrund und Textfarbe eben NICHT ueber `dark:` laufen, * die Oberflaeche also grundsaetzlich dunkel wurde und nur die Feinheiten fehlten. * * Aufgedeckt beim Logo-Einbau (Quick 260907-fgv, WINDOWS.md #13), dessen * Plattenkontur `dark:stroke-white/25` aus genau diesem Grund nicht griff. */ @custom-variant dark (&:where(.dark, .dark *)); @theme inline { --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-destructive: var(--destructive); --color-destructive-foreground: var(--destructive-foreground); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); /* Statusfarben (quick-260924-h7x): Flaechen (Balken, Punkte, Leisten) und die abgedunkelte bzw. aufgehellte Textvariante `-fg` fuer Schrift. */ --color-status-ok: var(--status-ok); --color-status-warn: var(--status-warn); --color-status-down: var(--status-down); --color-status-idle: var(--status-idle); --color-status-orphan: var(--status-orphan); --color-status-ok-fg: var(--status-ok-fg); --color-status-warn-fg: var(--status-warn-fg); --color-status-down-fg: var(--status-down-fg); --color-status-idle-fg: var(--status-idle-fg); --color-status-orphan-fg: var(--status-orphan-fg); --color-well: var(--well); --radius-sm: calc(var(--radius) - 2px); --radius-md: var(--radius); --radius-lg: calc(var(--radius) + 2px); } :root { --radius: 0.5rem; --font-sans: "Inter", system-ui, -apple-system, sans-serif; /* Layout dimensions */ --sidebar-width: 240px; --sidebar-width-collapsed: 64px; --header-height: 60px; /* Light mode colors (OKLCH) */ --background: oklch(0.99 0 0); --foreground: oklch(0.15 0 0); --card: oklch(1 0 0); --card-foreground: oklch(0.15 0 0); --primary: oklch(0.91 0.19 102); --primary-foreground: oklch(0.20 0.02 90); --secondary: oklch(0.96 0 0); --secondary-foreground: oklch(0.15 0 0); --muted: oklch(0.96 0 0); --muted-foreground: oklch(0.55 0 0); --accent: oklch(0.96 0 0); --accent-foreground: oklch(0.15 0 0); --destructive: oklch(0.55 0.2 27); --destructive-foreground: oklch(0.98 0 0); --border: oklch(0.90 0 0); --input: oklch(0.90 0 0); --ring: oklch(0.91 0.19 102); /* Sidebar tokens */ --sidebar: oklch(0.97 0 0); --sidebar-foreground: oklch(0.15 0 0); --sidebar-accent: oklch(0.93 0 0); --sidebar-accent-foreground: oklch(0.25 0 0); --sidebar-border: oklch(0.90 0 0); /* Statusfarben (quick-260924-h7x). Die Flaechentoene stammen aus dem Design-Plan; als Schrift auf Weiss erreichen sie aber nur 2,6:1 bis 4,9:1 (gemessen, WCAG-Formel). Fuer Text gibt es deshalb die `-fg`- Variante, gemessen auf --card: ok 5,6:1, warn 5,7:1, down 6,1:1, idle/orphan 6,0:1 (auf der Pille mit 12 % Statusflaeche >= 4,9:1). */ --status-ok: oklch(0.62 0.15 152); --status-warn: oklch(0.72 0.15 70); --status-down: oklch(0.58 0.21 27); --status-idle: oklch(0.62 0.02 260); --status-orphan: oklch(0.55 0.01 260); --status-ok-fg: oklch(0.50 0.13 152); --status-warn-fg: oklch(0.52 0.12 60); --status-down-fg: oklch(0.52 0.20 27); --status-idle-fg: oklch(0.50 0.02 260); --status-orphan-fg: oklch(0.50 0.01 260); /* Eingelassene Messfelder. */ --well: oklch(0.975 0.003 260); } .dark { --background: oklch(0.23 0.01 260); --foreground: oklch(0.95 0 0); --card: oklch(0.27 0.01 260); --card-foreground: oklch(0.95 0 0); --primary: oklch(0.91 0.19 102); --primary-foreground: oklch(0.20 0.02 90); --secondary: oklch(0.30 0.01 260); --secondary-foreground: oklch(0.95 0 0); --muted: oklch(0.30 0.01 260); --muted-foreground: oklch(0.65 0 0); --accent: oklch(0.30 0.01 260); --accent-foreground: oklch(0.95 0 0); --destructive: oklch(0.55 0.2 27); --destructive-foreground: oklch(0.98 0 0); --border: oklch(0.30 0.01 260); --input: oklch(0.30 0.01 260); --ring: oklch(0.91 0.19 102); /* Sidebar tokens (dark) */ --sidebar: oklch(0.20 0.01 260); --sidebar-foreground: oklch(0.95 0 0); --sidebar-accent: oklch(0.91 0.19 102 / 0.15); --sidebar-accent-foreground: oklch(0.91 0.19 102); --sidebar-border: oklch(0.30 0.01 260); /* Statusfarben (dark). Textvariante auf --card gemessen: ok 7,4:1, warn 8,5:1, down 6,1:1, idle 6,1:1, orphan 5,6:1. */ --status-ok: oklch(0.72 0.15 152); --status-warn: oklch(0.80 0.14 75); --status-down: oklch(0.68 0.19 27); --status-idle: oklch(0.60 0.02 260); --status-orphan: oklch(0.52 0.01 260); --status-ok-fg: oklch(0.76 0.15 152); --status-warn-fg: oklch(0.82 0.14 75); --status-down-fg: oklch(0.74 0.16 27); --status-idle-fg: oklch(0.72 0.02 260); --status-orphan-fg: oklch(0.70 0.01 260); --well: oklch(0.235 0.01 260); } body { font-family: var(--font-sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* App shell main content responsive margin */ @media (min-width: 768px) { .app-shell-main { margin-left: var(--current-sidebar-width, var(--sidebar-width)); } } /* Tailwind-Preflight setzt in @layer base `ul, ol { list-style: none }`; das Markdown-Stylesheet von @uiw/react-markdown-preview stellt es nicht wieder her — deshalb fehlten auf „Was ist neu“ und in der Notiz-Vorschau die Aufzaehlungspunkte. Diese Regel liegt bewusst NICHT in einem @layer, damit sie die Layer-Regel unabhaengig von Spezifitaet schlaegt. Aufgabenlisten mit Kaestchen (`- [ ]`) bleiben ohne Punkt (quick-260916-jvj). */ .wmde-markdown ul { list-style: disc; } .wmde-markdown ul ul { list-style: circle; } .wmde-markdown ol { list-style: decimal; } .wmde-markdown ul.contains-task-list, .wmde-markdown li.task-list-item { list-style: none; }