feat(t-paliad-063): adopt HLC brand palette across paliad

Replace ad-hoc lime/forest-green system with the official 4-color HLC
palette. Lime + midnight are the primary pair; cyan + cream supporting.

Tokens
- :root now exposes --hlc-lime, --hlc-midnight, --hlc-cyan, --hlc-cream
  plus channel-token siblings (--hlc-*-rgb) so tints can be expressed as
  rgb(var(--hlc-*-rgb) / a) without hex literals.
- --color-bg → cream, --color-text/--color-hero-bg → midnight,
  --color-accent → lime, --color-accent-dark → midnight (foreground on
  lime; passes WCAG AA where #fff failed).
- New --sidebar-* tokens for the dark sidebar surface.

Sweep (frontend/src/styles/global.css)
- Replaced every hard-coded #c6f41c / #65a30d / #84cc16 / #b8e616 /
  #4d7c0f / #1a2e1a / #1a1a2e / #1a2e05 with the matching var(...).
- rgba(101,163,13,a) and rgba(198,244,28,a) collapsed to
  rgb(var(--hlc-lime-rgb) / a).
- text-on-lime now uses var(--color-accent-dark) instead of #fff;
  btn-danger keeps white on red.

Sidebar reskin (cronus's audit, F-30)
- Background: midnight; text: cream (muted via cream-channel alpha);
  active/hover: lime. Border + hover use cream-channel alphas so no
  rgba hex creep on the dark surface.

Brand assets
- manifest.json theme_color → lime, background_color → cream.
- icon.svg / icon-maskable.svg base recoloured to lime + midnight glyph.
- 32× <meta name="theme-color"> across pages updated to #BFF355.
- Email templates (base.html, invitation.html) lime accent updated;
  mail_service_test.go expectation tracks the new hex.

Deferred / out of scope
- PNG icons under public/icons/ are baked artefacts; regen left to the
  next deploy.
- Categorical chip colours (office tints, traffic-light red/amber/green,
  termin-type hues) are functional, not brand, and deliberately
  untouched.
- Dark mode is not in scope.

Verified
- bun run build clean.
- go build ./... clean; mail render tests pass.
- Visual sweep at 1280×900 against frontend/dist via Playwright on
  /, /login, /dashboard, /projects, /agenda, /team, /fristenrechner,
  /glossary — sidebar midnight + lime active, cream page bg, white
  cards, midnight text on lime CTAs.

Supersedes audit findings F-14, F-30, F-31.
This commit is contained in:
m
2026-04-27 20:15:17 +02:00
parent 5423a4e1f1
commit b21dacf15c
39 changed files with 206 additions and 176 deletions

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512">
<rect width="512" height="512" fill="#65a30d"/>
<rect width="512" height="512" fill="#BFF355"/>
<text x="256" y="340"
font-family="DejaVu Sans Mono, Liberation Mono, Menlo, Consolas, monospace"
font-size="288" font-weight="700"
fill="#ffffff"
fill="#002236"
text-anchor="middle"
textLength="170" lengthAdjust="spacingAndGlyphs">p</text>
</svg>

Before

Width:  |  Height:  |  Size: 452 B

After

Width:  |  Height:  |  Size: 452 B

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512">
<rect width="512" height="512" fill="#65a30d"/>
<rect width="512" height="512" fill="#BFF355"/>
<text x="256" y="376"
font-family="DejaVu Sans Mono, Liberation Mono, Menlo, Consolas, monospace"
font-size="384" font-weight="700"
fill="#ffffff"
fill="#002236"
text-anchor="middle"
textLength="220" lengthAdjust="spacingAndGlyphs">p</text>
</svg>

Before

Width:  |  Height:  |  Size: 452 B

After

Width:  |  Height:  |  Size: 452 B

View File

@@ -6,8 +6,8 @@
"scope": "/",
"display": "standalone",
"orientation": "portrait",
"theme_color": "#65a30d",
"background_color": "#ffffff",
"theme_color": "#BFF355",
"background_color": "#EEE5E1",
"lang": "de",
"dir": "ltr",
"id": "paliad",

View File

@@ -10,7 +10,7 @@ export function renderAdminTeam(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -55,7 +55,7 @@ export function renderAdmin(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -15,7 +15,7 @@ export function renderAgenda(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderAppointmentsCalendar(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderAppointmentsDetail(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderAppointmentsNew(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderAppointments(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderChangelog(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -14,7 +14,7 @@ export function renderChecklistsDetail(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -13,7 +13,7 @@ export function renderChecklistsInstance(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderChecklists(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderCourts(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -17,7 +17,7 @@ export function renderDashboard(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderDeadlinesCalendar(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderDeadlinesDetail(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderDeadlinesNew(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderDeadlines(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -32,7 +32,7 @@ export function renderDownloads(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -44,7 +44,7 @@ export function renderFristenrechner(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderGebuehrentabellen(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderGlossary(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -20,7 +20,7 @@ export function renderIndex(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -95,7 +95,7 @@ export function renderKostenrechner(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -10,7 +10,7 @@ export function renderLinks(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -9,7 +9,7 @@ export function renderLogin(loginJs: string): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -14,7 +14,7 @@ export function renderNotFound(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -9,7 +9,7 @@ export function renderOnboarding(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -15,7 +15,7 @@ export function renderProjectsDetail(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -14,7 +14,7 @@ export function renderProjectsNew(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -12,7 +12,7 @@ export function renderProjects(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -14,7 +14,7 @@ export function renderSettings(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -1,15 +1,44 @@
/* patholo — Patent Knowledge for Hogan Lovells */
/* Paliad — Patent Knowledge for HLC */
:root {
--color-bg: #fafafa;
--color-surface: #ffffff;
--color-text: #1a1a2e;
--color-text-muted: #64647a;
--color-accent: #65a30d; /* lime green */
--color-accent-light: #84cc16;
--color-border: #e5e5ed;
--color-hero-bg: #1a2e1a; /* dark forest */
--color-hero-text: #ffffff;
/* HLC brand palette (4 colors).
Lime + midnight are the primary pair. Cyan + cream are supporting. */
--hlc-lime: #BFF355;
--hlc-midnight: #002236;
--hlc-cyan: #9FE3D9;
--hlc-cream: #EEE5E1;
/* Channel tokens enable rgb(var(--*-rgb) / a) for tints without
hard-coded rgba values elsewhere. */
--hlc-lime-rgb: 191 243 85;
--hlc-midnight-rgb: 0 34 54;
--hlc-cyan-rgb: 159 227 217;
--hlc-cream-rgb: 238 229 225;
/* Surface + semantic tokens — re-pointed onto the brand palette. */
--color-bg: var(--hlc-cream);
--color-bg-subtle: #f7f3f0; /* slightly off-cream for table headers / soft surfaces */
--color-bg-lime-tint: rgb(var(--hlc-lime-rgb) / 0.10);
--color-surface: #ffffff; /* cards stay white for contrast */
--color-text: var(--hlc-midnight);
--color-text-muted: #5a6573;
--color-accent: var(--hlc-lime);
--color-accent-light: #d8f78a; /* lighter lime for hover */
--color-accent-dark: var(--hlc-midnight); /* foreground on lime — WCAG AA */
--color-border: #e1dcd6; /* derived from cream, neutral warm */
--color-hero-bg: var(--hlc-midnight);
--color-hero-text: #ffffff;
/* Sidebar — dark midnight surface with cream text + lime active.
Built from cream-channel alphas so contrast stays consistent
on the midnight base without spraying rgba() hex around. */
--sidebar-bg: var(--hlc-midnight);
--sidebar-text: var(--hlc-cream);
--sidebar-text-muted: rgb(var(--hlc-cream-rgb) / 0.66);
--sidebar-text-active: var(--hlc-lime);
--sidebar-border: rgb(var(--hlc-cream-rgb) / 0.12);
--sidebar-hover-bg: rgb(var(--hlc-cream-rgb) / 0.08);
--sidebar-input-bg: rgb(var(--hlc-cream-rgb) / 0.08);
--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
--font-mono: "JetBrains Mono", "Fira Code", monospace;
--radius: 8px;
@@ -408,7 +437,7 @@ main {
.login-input:focus {
border-color: var(--color-accent);
box-shadow: 0 0 0 3px rgba(101, 163, 13, 0.15);
box-shadow: 0 0 0 3px rgb(var(--hlc-lime-rgb) / 0.15);
}
.login-input::placeholder {
@@ -425,7 +454,7 @@ main {
border: none;
border-radius: var(--radius);
background: var(--color-accent);
color: #ffffff;
color: var(--color-accent-dark);
cursor: pointer;
transition: background 0.15s ease;
}
@@ -488,8 +517,9 @@ main {
top: 0;
bottom: 0;
width: var(--sidebar-collapsed);
background: var(--color-surface);
border-right: 1px solid var(--color-border);
background: var(--sidebar-bg);
color: var(--sidebar-text);
border-right: 1px solid var(--sidebar-border);
z-index: 40;
display: flex;
flex-direction: column;
@@ -512,7 +542,7 @@ main {
display: flex;
align-items: center;
height: 3.5rem;
border-bottom: 1px solid var(--color-border);
border-bottom: 1px solid var(--sidebar-border);
flex-shrink: 0;
overflow: hidden;
}
@@ -521,7 +551,7 @@ main {
display: flex;
align-items: center;
text-decoration: none;
color: var(--color-text);
color: var(--sidebar-text);
flex: 1;
min-width: 0;
height: 100%;
@@ -536,7 +566,7 @@ main {
.sidebar-pin {
background: none;
border: none;
color: var(--color-text-muted);
color: var(--sidebar-text-muted);
cursor: pointer;
padding: 0.35rem;
margin-right: 0.75rem;
@@ -554,8 +584,8 @@ main {
}
.sidebar-pin:hover {
color: var(--color-accent);
background: rgba(0, 0, 0, 0.04);
color: var(--sidebar-text-active);
background: var(--sidebar-hover-bg);
}
.sidebar-pin svg {
@@ -565,7 +595,7 @@ main {
}
.sidebar.pinned .sidebar-pin {
color: var(--color-accent);
color: var(--sidebar-text-active);
}
/* Vertical drag-strip on the sidebar's right edge. Only meaningful when
@@ -614,7 +644,7 @@ main {
display: flex;
align-items: center;
min-height: 2.5rem;
color: var(--color-text-muted);
color: var(--sidebar-text-muted);
text-decoration: none;
font-size: 0.85rem;
font-weight: 500;
@@ -630,12 +660,12 @@ main {
}
.sidebar-item:hover {
color: var(--color-text);
background: rgba(0, 0, 0, 0.03);
color: var(--sidebar-text);
background: var(--sidebar-hover-bg);
}
.sidebar-item.active {
color: var(--color-accent);
color: var(--sidebar-text-active);
}
.sidebar-item.active::after {
@@ -645,7 +675,7 @@ main {
top: 4px;
bottom: 4px;
width: 3px;
background: var(--color-accent);
background: var(--sidebar-text-active);
border-radius: 0 2px 2px 0;
}
@@ -683,7 +713,7 @@ main {
display: flex;
flex-direction: column;
padding: 0.5rem 0;
border-top: 1px solid var(--color-border);
border-top: 1px solid var(--sidebar-border);
flex-shrink: 0;
}
@@ -693,7 +723,7 @@ main {
.sidebar-lang-item:hover {
background: transparent;
color: var(--color-text-muted);
color: var(--sidebar-text-muted);
}
.sidebar-lang {
@@ -712,7 +742,7 @@ main {
border-radius: 50%;
border: none;
background: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
cursor: pointer;
align-items: center;
justify-content: center;
@@ -820,7 +850,7 @@ main {
.input-section select:focus {
border-color: var(--color-accent);
box-shadow: 0 0 0 3px rgba(101, 163, 13, 0.15);
box-shadow: 0 0 0 3px rgb(var(--hlc-lime-rgb) / 0.15);
}
/* Streitwert */
@@ -859,7 +889,7 @@ main {
.streitwert-field:focus {
border-color: var(--color-accent);
box-shadow: 0 0 0 3px rgba(101, 163, 13, 0.15);
box-shadow: 0 0 0 3px rgb(var(--hlc-lime-rgb) / 0.15);
}
input[type="range"] {
@@ -919,7 +949,7 @@ input[type="range"]::-moz-range-thumb {
.streitwert-presets button.active {
background: var(--color-accent);
border-color: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
}
/* Instance cards */
@@ -1155,19 +1185,19 @@ input[type="range"]::-moz-range-thumb {
.result-action-btn--accent {
background: var(--color-accent);
border-color: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
}
.result-action-btn--accent:hover {
background: var(--color-accent-light);
border-color: var(--color-accent-light);
color: #fff;
color: var(--color-accent-dark);
}
.result-action-btn.copied {
background: var(--color-accent);
border-color: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
}
/* Scenario comparison */
@@ -1219,7 +1249,7 @@ input[type="range"]::-moz-range-thumb {
.comparison-diff-card.diff-decrease {
border-color: var(--color-accent);
background: rgba(101, 163, 13, 0.04);
background: rgb(var(--hlc-lime-rgb) / 0.04);
}
.comparison-diff-card.diff-increase {
@@ -1300,7 +1330,7 @@ input[type="range"]::-moz-range-thumb {
height: 1.5rem;
border-radius: 50%;
background: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
font-size: 0.75rem;
font-weight: 700;
flex-shrink: 0;
@@ -1348,8 +1378,8 @@ input[type="range"]::-moz-range-thumb {
.proceeding-btn.active {
border-color: var(--color-accent);
background: rgba(101, 163, 13, 0.06);
box-shadow: 0 0 0 3px rgba(101, 163, 13, 0.15);
background: rgb(var(--hlc-lime-rgb) / 0.06);
box-shadow: 0 0 0 3px rgb(var(--hlc-lime-rgb) / 0.15);
}
.proceeding-btn strong {
@@ -1397,7 +1427,7 @@ input[type="range"]::-moz-range-thumb {
.date-input:focus {
border-color: var(--color-accent);
box-shadow: 0 0 0 3px rgba(101, 163, 13, 0.15);
box-shadow: 0 0 0 3px rgb(var(--hlc-lime-rgb) / 0.15);
}
.calculate-btn {
@@ -1408,7 +1438,7 @@ input[type="range"]::-moz-range-thumb {
border: none;
border-radius: var(--radius);
background: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
cursor: pointer;
transition: background 0.15s ease;
align-self: flex-start;
@@ -1655,7 +1685,7 @@ input[type="range"]::-moz-range-thumb {
padding: 0.55rem 1.1rem;
font-size: 0.85rem;
font-weight: 600;
color: #fff;
color: var(--color-accent-dark);
background: var(--color-accent);
border: none;
border-radius: var(--radius);
@@ -1749,7 +1779,7 @@ input[type="range"]::-moz-range-thumb {
.filter-pill.active {
background: var(--color-accent);
border-color: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
}
.glossar-table-wrap {
@@ -1780,7 +1810,7 @@ input[type="range"]::-moz-range-thumb {
}
.glossar-table tbody tr:hover {
background: rgba(101, 163, 13, 0.04);
background: rgb(var(--hlc-lime-rgb) / 0.04);
}
.glossar-table td {
@@ -1837,7 +1867,7 @@ input[type="range"]::-moz-range-thumb {
}
.glossar-feedback-btn:hover {
background: rgba(101, 163, 13, 0.1);
background: rgb(var(--hlc-lime-rgb) / 0.1);
color: var(--color-accent);
opacity: 1;
}
@@ -1967,7 +1997,7 @@ input[type="range"]::-moz-range-thumb {
border: none;
border-radius: var(--radius);
background: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
cursor: pointer;
font-family: var(--font-sans);
transition: background 0.15s ease;
@@ -2044,7 +2074,7 @@ input[type="range"]::-moz-range-thumb {
.download-card:hover .download-btn {
background: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
}
.download-icon {
@@ -2211,7 +2241,7 @@ input[type="range"]::-moz-range-thumb {
.links-pending-badge {
font-size: 0.78rem;
color: var(--color-accent);
background: rgba(101, 163, 13, 0.1);
background: rgb(var(--hlc-lime-rgb) / 0.1);
padding: 0.25rem 0.65rem;
border-radius: 999px;
font-weight: 600;
@@ -2225,7 +2255,7 @@ input[type="range"]::-moz-range-thumb {
padding: 0.5rem 1rem;
font-size: 0.85rem;
font-weight: 600;
color: #fff;
color: var(--color-accent-dark);
background: var(--color-accent);
border: none;
border-radius: var(--radius);
@@ -2264,7 +2294,7 @@ input[type="range"]::-moz-range-thumb {
.links-filter-btn.active {
background: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
border-color: var(--color-accent);
}
@@ -2451,7 +2481,7 @@ input[type="range"]::-moz-range-thumb {
padding: 0.5rem 1.25rem;
font-size: 0.85rem;
font-weight: 600;
color: #fff;
color: var(--color-accent-dark);
background: var(--color-accent);
border: none;
border-radius: var(--radius);
@@ -2509,17 +2539,17 @@ input[type="range"]::-moz-range-thumb {
.print-header {
padding: 1.5rem 0 1rem;
border-bottom: 2px solid #65a30d;
border-bottom: 2px solid var(--color-accent);
margin-bottom: 1.5rem;
}
.print-header-brand {
font-size: 1.2rem;
color: #1a1a2e;
color: var(--hlc-midnight);
}
.print-header-brand strong {
color: #65a30d;
color: var(--color-accent);
font-size: 1.4rem;
}
@@ -2624,13 +2654,13 @@ input[type="range"]::-moz-range-thumb {
.gebuehren-input:focus {
outline: none;
border-color: var(--color-accent);
box-shadow: 0 0 0 3px rgba(101, 163, 13, 0.15);
box-shadow: 0 0 0 3px rgb(var(--hlc-lime-rgb) / 0.15);
}
.btn-lookup {
padding: 0.5rem 1rem;
background: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
border: none;
border-radius: var(--radius);
font-weight: 500;
@@ -2780,11 +2810,11 @@ input[type="range"]::-moz-range-thumb {
}
.gebuehren-table tbody tr:hover {
background: rgba(101, 163, 13, 0.04);
background: rgb(var(--hlc-lime-rgb) / 0.04);
}
.gebuehren-table tbody tr.highlight {
background: rgba(101, 163, 13, 0.12);
background: rgb(var(--hlc-lime-rgb) / 0.12);
font-weight: 600;
}
@@ -2983,12 +3013,12 @@ input[type="range"]::-moz-range-thumb {
font-size: 0.72rem;
font-weight: 600;
letter-spacing: 0.04em;
background: rgba(101, 163, 13, 0.12);
background: rgb(var(--hlc-lime-rgb) / 0.12);
color: var(--color-accent);
}
.checklist-regime-UPC {
background: rgba(101, 163, 13, 0.12);
background: rgb(var(--hlc-lime-rgb) / 0.12);
color: var(--color-accent);
}
@@ -3234,7 +3264,7 @@ input[type="range"]::-moz-range-thumb {
}
.checklist-item:hover {
background: rgba(101, 163, 13, 0.04);
background: rgb(var(--hlc-lime-rgb) / 0.04);
}
.checklist-item.checked .checklist-item-text {
@@ -3402,7 +3432,7 @@ input[type="range"]::-moz-range-thumb {
}
.gericht-card:hover {
border-color: rgba(101, 163, 13, 0.4);
border-color: rgb(var(--hlc-lime-rgb) / 0.4);
}
.gericht-card.open {
@@ -3452,7 +3482,7 @@ input[type="range"]::-moz-range-thumb {
align-items: center;
padding: 0.12rem 0.55rem;
border-radius: 99px;
background: rgba(101, 163, 13, 0.1);
background: rgb(var(--hlc-lime-rgb) / 0.1);
color: var(--color-accent);
font-weight: 600;
font-size: 0.72rem;
@@ -3503,7 +3533,7 @@ input[type="range"]::-moz-range-thumb {
}
.gericht-feedback-btn:hover {
background: rgba(101, 163, 13, 0.1);
background: rgb(var(--hlc-lime-rgb) / 0.1);
color: var(--color-accent);
}
@@ -3526,7 +3556,7 @@ input[type="range"]::-moz-range-thumb {
.gericht-card.open .gericht-toggle {
background: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
border-color: var(--color-accent);
}
@@ -3650,7 +3680,7 @@ input[type="range"]::-moz-range-thumb {
.sidebar-group {
margin-top: 0.75rem;
padding-top: 0.75rem;
border-top: 1px solid var(--color-border);
border-top: 1px solid var(--sidebar-border);
}
.sidebar-group:first-of-type {
@@ -3663,7 +3693,7 @@ input[type="range"]::-moz-range-thumb {
font-size: 0.66rem;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--color-text-muted);
color: var(--sidebar-text-muted);
opacity: 0;
transition: opacity 0.15s ease;
white-space: nowrap;
@@ -3701,8 +3731,8 @@ input[type="range"]::-moz-range-thumb {
padding: 0.6rem 1.25rem;
font-size: 0.9rem;
font-weight: 600;
color: #1a1a2e;
background: #c6f41c;
color: var(--hlc-midnight);
background: var(--hlc-lime);
border: none;
border-radius: var(--radius);
cursor: pointer;
@@ -3711,7 +3741,7 @@ input[type="range"]::-moz-range-thumb {
}
.btn-cta-lime:hover {
background: #b8e616;
background: var(--color-accent-light);
}
.btn-cta-lime:active {
@@ -3725,7 +3755,7 @@ input[type="range"]::-moz-range-thumb {
}
.btn-cta-lime.btn-outline:hover {
background: rgba(198, 244, 28, 0.1);
background: rgb(var(--hlc-lime-rgb) / 0.1);
}
.akten-controls {
@@ -3803,7 +3833,7 @@ input[type="range"]::-moz-range-thumb {
letter-spacing: 0.04em;
color: var(--color-text-muted);
border-bottom: 1px solid var(--color-border);
background: #fafafa;
background: var(--color-bg-subtle);
}
.akten-table tbody tr {
@@ -3817,7 +3847,7 @@ input[type="range"]::-moz-range-thumb {
}
.akten-table tbody tr:hover {
background: #f8fbf0;
background: var(--color-bg-lime-tint);
}
.akten-table td {
@@ -3886,12 +3916,12 @@ input[type="range"]::-moz-range-thumb {
}
.akten-firmwide-chip {
background: #c6f41c;
color: #1a1a2e;
background: var(--hlc-lime);
color: var(--hlc-midnight);
}
.akten-firmwide-dot {
color: #c6f41c;
color: var(--hlc-lime);
font-size: 0.95em;
margin-left: 0.4rem;
text-shadow: 0 0 2px rgba(26, 26, 46, 0.35);
@@ -3968,13 +3998,13 @@ input[type="range"]::-moz-range-thumb {
}
.projekt-tree-row:hover {
background: #f8fbf0;
background: var(--color-bg-lime-tint);
}
.projekt-tree-row:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 1px;
background: #f8fbf0;
background: var(--color-bg-lime-tint);
}
.projekt-tree-toggle {
@@ -3999,7 +4029,7 @@ input[type="range"]::-moz-range-thumb {
}
.projekt-tree-toggle:hover {
background: rgba(198, 244, 28, 0.18);
background: rgb(var(--hlc-lime-rgb) / 0.18);
color: var(--color-text);
}
@@ -4099,7 +4129,7 @@ input[type="range"]::-moz-range-thumb {
}
.projekt-tree-node[aria-current="true"] > .projekt-tree-row {
background: rgba(198, 244, 28, 0.2);
background: rgb(var(--hlc-lime-rgb) / 0.2);
border-left: 3px solid var(--color-accent);
padding-left: calc(0.5rem - 3px);
}
@@ -4248,7 +4278,7 @@ input[type="range"]::-moz-range-thumb {
}
.akten-suggestion:hover {
background: #f8fbf0;
background: var(--color-bg-lime-tint);
}
.akten-suggestion-meta {
@@ -4352,7 +4382,7 @@ input[type="range"]::-moz-range-thumb {
.akten-tab.active {
color: var(--color-text);
border-bottom-color: #c6f41c;
border-bottom-color: var(--hlc-lime);
font-weight: 600;
}
@@ -4452,7 +4482,7 @@ input[type="range"]::-moz-range-thumb {
letter-spacing: 0.04em;
color: var(--color-text-muted);
border-bottom: 1px solid var(--color-border);
background: #fafafa;
background: var(--color-bg-subtle);
}
.akten-parteien-table td {
@@ -4573,7 +4603,7 @@ input[type="range"]::-moz-range-thumb {
}
.frist-summary-card:hover {
background: #fafafa;
background: var(--color-bg-subtle);
transform: translateY(-1px);
}
@@ -4659,9 +4689,9 @@ input[type="range"]::-moz-range-thumb {
}
.frist-reopen-btn:hover {
color: var(--color-accent, #65a30d);
border-color: var(--color-accent, #65a30d);
background: rgba(198, 244, 28, 0.08);
color: var(--color-accent, var(--color-accent));
border-color: var(--color-accent, var(--color-accent));
background: rgb(var(--hlc-lime-rgb) / 0.08);
}
.frist-reopen-btn:disabled {
@@ -4794,7 +4824,7 @@ input[type="range"]::-moz-range-thumb {
}
.frist-cal-cell-empty {
background: #fafafa;
background: var(--color-bg-subtle);
}
.frist-cal-cell-has {
@@ -4813,7 +4843,7 @@ input[type="range"]::-moz-range-thumb {
.frist-cal-today .frist-cal-day {
background: var(--color-accent);
color: white;
color: var(--color-accent-dark);
border-radius: 999px;
width: 1.5rem;
height: 1.5rem;
@@ -5067,7 +5097,7 @@ input[type="range"]::-moz-range-thumb {
.dashboard-card-amber .dashboard-card-count { color: #b45309; }
.dashboard-card-amber { border-left: 3px solid #f59e0b; }
.dashboard-card-green .dashboard-card-count { color: #15803d; }
.dashboard-card-green { border-left: 3px solid #65a30d; }
.dashboard-card-green { border-left: 3px solid var(--color-accent); }
.dashboard-card-done .dashboard-card-count { color: #475569; }
.dashboard-card-done { border-left: 3px solid #94a3b8; }
@@ -5249,7 +5279,7 @@ input[type="range"]::-moz-range-thumb {
.dashboard-termin-hearing { background: #b91c1c; }
.dashboard-termin-meeting { background: #2563eb; }
.dashboard-termin-consultation { background: #65a30d; }
.dashboard-termin-consultation { background: var(--color-accent); }
.dashboard-termin-deadline_hearing { background: #b45309; }
.dashboard-empty {
@@ -5367,7 +5397,7 @@ input[type="range"]::-moz-range-thumb {
}
.termin-type-hearing { background: #b91c1c; color: #b91c1c; }
.termin-type-meeting { background: #2563eb; color: #2563eb; }
.termin-type-consultation { background: #65a30d; color: #65a30d; }
.termin-type-consultation { background: var(--color-accent); color: var(--color-accent); }
.termin-type-deadline_hearing { background: #b45309; color: #b45309; }
.termin-type-default { background: #94a3b8; color: #64748b; }
@@ -5382,7 +5412,7 @@ input[type="range"]::-moz-range-thumb {
}
.termin-type-chip.termin-type-hearing { background: rgba(185, 28, 28, 0.10); }
.termin-type-chip.termin-type-meeting { background: rgba(37, 99, 235, 0.10); }
.termin-type-chip.termin-type-consultation { background: rgba(101, 163, 13, 0.10); }
.termin-type-chip.termin-type-consultation { background: rgb(var(--hlc-lime-rgb) / 0.10); }
.termin-type-chip.termin-type-deadline_hearing { background: rgba(180, 83, 9, 0.12); }
.termin-type-badge {
@@ -5399,7 +5429,7 @@ input[type="range"]::-moz-range-thumb {
}
.termin-type-badge.termin-type-hearing { background: rgba(185, 28, 28, 0.12); color: #b91c1c; }
.termin-type-badge.termin-type-meeting { background: rgba(37, 99, 235, 0.12); color: #2563eb; }
.termin-type-badge.termin-type-consultation { background: rgba(101, 163, 13, 0.12); color: #4d7c0f; }
.termin-type-badge.termin-type-consultation { background: rgb(var(--hlc-lime-rgb) / 0.12); color: var(--hlc-midnight); }
.termin-type-badge.termin-type-deadline_hearing { background: rgba(180, 83, 9, 0.14); color: #92400e; }
.termin-personal-tag {
@@ -5531,7 +5561,7 @@ input[type="range"]::-moz-range-thumb {
.notiz-form-editing {
border-color: var(--color-accent);
box-shadow: 0 0 0 2px rgba(101, 163, 13, 0.15);
box-shadow: 0 0 0 2px rgb(var(--hlc-lime-rgb) / 0.15);
}
.notiz-textarea {
@@ -5549,7 +5579,7 @@ input[type="range"]::-moz-range-thumb {
.notiz-textarea:focus {
outline: none;
border-color: var(--color-accent);
box-shadow: 0 0 0 2px rgba(101, 163, 13, 0.2);
box-shadow: 0 0 0 2px rgb(var(--hlc-lime-rgb) / 0.2);
}
.notiz-form-actions {
@@ -5694,7 +5724,7 @@ input[type="range"]::-moz-range-thumb {
}
.sidebar-search-icon {
color: var(--color-text-muted);
color: var(--sidebar-text-muted);
pointer-events: none;
}
@@ -5705,9 +5735,9 @@ input[type="range"]::-moz-range-thumb {
padding: 0 0.5rem;
font-size: 0.85rem;
font-family: var(--font-sans);
color: var(--color-text);
background: var(--color-bg);
border: 1px solid var(--color-border);
color: var(--sidebar-text);
background: var(--sidebar-input-bg);
border: 1px solid var(--sidebar-border);
border-radius: 6px;
outline: none;
opacity: 0;
@@ -5724,7 +5754,7 @@ input[type="range"]::-moz-range-thumb {
}
.sidebar-search-input:focus {
border-color: var(--color-accent);
border-color: var(--sidebar-text-active);
}
.sidebar-search-input::-webkit-search-cancel-button {
@@ -5737,10 +5767,10 @@ input[type="range"]::-moz-range-thumb {
font-family: var(--font-mono, monospace);
font-size: 0.7rem;
padding: 0.05rem 0.35rem;
border: 1px solid var(--color-border);
border: 1px solid var(--sidebar-border);
border-radius: 3px;
color: var(--color-text-muted);
background: var(--color-bg);
color: var(--sidebar-text-muted);
background: var(--sidebar-input-bg);
opacity: 0;
pointer-events: none;
transition: opacity 150ms ease;
@@ -5944,12 +5974,12 @@ input[type="range"]::-moz-range-thumb {
padding: 0 0.3rem;
border-radius: 999px;
background: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
font-size: 0.65rem;
font-weight: 700;
line-height: 1rem;
text-align: center;
box-shadow: 0 0 0 2px var(--color-bg, #fff);
box-shadow: 0 0 0 2px var(--sidebar-bg);
pointer-events: none;
transition: left 150ms ease;
}
@@ -6005,7 +6035,7 @@ input[type="range"]::-moz-range-thumb {
}
.changelog-tag-feature {
background: rgba(101, 163, 13, 0.14);
background: rgb(var(--hlc-lime-rgb) / 0.14);
color: var(--color-accent);
}
@@ -6085,7 +6115,7 @@ input[type="range"]::-moz-range-thumb {
}
.agenda-chip:hover { background: var(--color-surface, #e5e7eb); }
.agenda-chip-active {
background: var(--color-accent-lime, #c6f41c);
background: var(--color-accent-lime, var(--hlc-lime));
border-color: rgba(0,0,0,0.1);
color: #1a1a1a;
}
@@ -6293,7 +6323,7 @@ input[type="range"]::-moz-range-thumb {
.team-group-header h2 {
margin: 0;
font-size: 1.25rem;
color: var(--color-text, #1a1a2e);
color: var(--color-text, var(--hlc-midnight));
}
.team-group-sub {
@@ -6309,11 +6339,11 @@ input[type="range"]::-moz-range-thumb {
}
.team-dept-lead strong {
color: var(--color-text, #1a1a2e);
color: var(--color-text, var(--hlc-midnight));
}
.team-dept-lead a {
color: var(--color-accent, #65a30d);
color: var(--color-accent, var(--color-accent));
text-decoration: none;
}
@@ -6350,7 +6380,7 @@ input[type="range"]::-moz-range-thumb {
}
.team-card:hover {
border-color: var(--color-accent, #65a30d);
border-color: var(--color-accent, var(--color-accent));
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
@@ -6359,8 +6389,8 @@ input[type="range"]::-moz-range-thumb {
width: 40px;
height: 40px;
border-radius: 50%;
background: var(--color-accent-light, #84cc16);
color: #1a2e05;
background: var(--color-accent-light, var(--color-accent-light));
color: var(--hlc-midnight);
display: flex;
align-items: center;
justify-content: center;
@@ -6376,7 +6406,7 @@ input[type="range"]::-moz-range-thumb {
.team-card-name {
font-weight: 600;
color: var(--color-text, #1a1a2e);
color: var(--color-text, var(--hlc-midnight));
line-height: 1.2;
overflow-wrap: anywhere;
}
@@ -6430,7 +6460,7 @@ input[type="range"]::-moz-range-thumb {
gap: 0.35rem;
margin-top: 0.6rem;
font-size: 0.82rem;
color: var(--color-accent, #65a30d);
color: var(--color-accent, var(--color-accent));
text-decoration: none;
overflow-wrap: anywhere;
word-break: break-all;
@@ -6538,7 +6568,7 @@ input[type="range"]::-moz-range-thumb {
padding: 0 4px;
border-radius: 8px;
background: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
font-size: 0.65rem;
font-weight: 700;
line-height: 16px;
@@ -6569,7 +6599,7 @@ input[type="range"]::-moz-range-thumb {
height: 44px;
border-radius: 50%;
background: var(--color-accent);
color: #fff;
color: var(--color-accent-dark);
margin-top: -10px;
box-shadow: var(--shadow-md);
transition: background 150ms ease, transform 100ms ease;
@@ -6679,7 +6709,7 @@ dialog.quick-add-sheet::backdrop {
width: 40px;
height: 40px;
border-radius: 50%;
background: rgba(101, 163, 13, 0.1);
background: rgb(var(--hlc-lime-rgb) / 0.1);
color: var(--color-accent);
flex-shrink: 0;
}
@@ -6783,8 +6813,8 @@ dialog.quick-add-sheet::backdrop {
width: 38px;
height: 38px;
border-radius: 10px;
background: #65a30d;
color: #ffffff;
background: var(--color-accent);
color: var(--color-accent-dark);
display: grid;
place-items: center;
font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
@@ -6817,7 +6847,7 @@ dialog.quick-add-sheet::backdrop {
justify-content: center;
vertical-align: -4px;
margin: 0 0.15rem;
color: var(--color-accent, #65a30d);
color: var(--color-accent, var(--color-accent));
}
.pwa-install-cta {
@@ -6825,8 +6855,8 @@ dialog.quick-add-sheet::backdrop {
padding: 0.55rem 0.95rem;
border: none;
border-radius: 10px;
background: #65a30d;
color: #ffffff;
background: var(--color-accent);
color: var(--color-accent-dark);
font-family: var(--font-sans);
font-weight: 600;
font-size: 0.85rem;
@@ -6834,7 +6864,7 @@ dialog.quick-add-sheet::backdrop {
}
.pwa-install-cta:hover {
background: #4d7c0f;
background: var(--hlc-midnight);
}
.pwa-install-dismiss {
@@ -6897,7 +6927,7 @@ dialog.quick-add-sheet::backdrop {
}
.admin-team-table tbody tr:hover {
background: #f8fbf0;
background: var(--color-bg-lime-tint);
}
.admin-team-loading {
@@ -6934,7 +6964,7 @@ dialog.quick-add-sheet::backdrop {
}
.admin-team-edit-row {
background: #fdfff5;
background: var(--color-bg-lime-tint);
}
.admin-team-input {
@@ -6967,7 +6997,7 @@ dialog.quick-add-sheet::backdrop {
}
.sidebar-admin-group .sidebar-group-label {
color: #c6f41c;
color: var(--hlc-lime);
}
/* --- Project breadcrumb (t-paliad-049) ---------------------------------
@@ -7001,9 +7031,9 @@ dialog.quick-add-sheet::backdrop {
.projekt-crumb-link:hover,
.projekt-crumb-link:focus-visible {
border-color: var(--color-accent, #c6f41c);
background: rgba(198, 244, 28, 0.12);
color: var(--color-text, #1a1a2e);
border-color: var(--color-accent, var(--hlc-lime));
background: rgb(var(--hlc-lime-rgb) / 0.12);
color: var(--color-text, var(--hlc-midnight));
outline: none;
}
@@ -7019,7 +7049,7 @@ dialog.quick-add-sheet::backdrop {
.projekt-crumb-link:hover .projekt-crumb-icon,
.projekt-crumb-link:focus-visible .projekt-crumb-icon {
color: var(--color-text, #1a1a2e);
color: var(--color-text, var(--hlc-midnight));
}
.projekt-crumb-icon svg {
@@ -7036,9 +7066,9 @@ dialog.quick-add-sheet::backdrop {
}
.projekt-crumb-current {
color: var(--color-text, #1a1a2e);
color: var(--color-text, var(--hlc-midnight));
font-weight: 700;
background: #fafafa;
background: var(--color-bg-subtle);
border-color: #d4d4d8;
}

View File

@@ -10,7 +10,7 @@ export function renderTeam(): string {
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#65a30d" />
<meta name="theme-color" content="#BFF355" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<PWAHead />

View File

@@ -55,7 +55,7 @@ func TestRenderTemplateDeadlineReminder(t *testing.T) {
for _, want := range []string{
"Paliad", "Schriftsatz einreichen", "2026-04-21", "2026/0042",
"Mustermann ./. Musterfrau", "https://paliad.de/deadlines/123",
"morgen", "#c6f41c",
"morgen", "#BFF355",
} {
if !strings.Contains(html, want) {
t.Errorf("rendered html missing %q", want)

View File

@@ -10,11 +10,11 @@
<tr><td align="center">
<table role="presentation" width="560" cellpadding="0" cellspacing="0" border="0" style="background:#ffffff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.06);">
<tr>
<td style="background:#c6f41c;padding:20px 28px;">
<td style="background:#BFF355;padding:20px 28px;">
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="left" style="font-size:20px;font-weight:700;color:#1c1917;letter-spacing:-0.01em;">
<span style="display:inline-block;width:28px;height:28px;background:#1c1917;color:#c6f41c;border-radius:6px;text-align:center;line-height:28px;font-weight:800;vertical-align:middle;margin-right:10px;">p</span>
<span style="display:inline-block;width:28px;height:28px;background:#1c1917;color:#BFF355;border-radius:6px;text-align:center;line-height:28px;font-weight:800;vertical-align:middle;margin-right:10px;">p</span>
<span style="vertical-align:middle;">Paliad</span>
</td>
</tr>

View File

@@ -3,7 +3,7 @@
<h1 style="margin:0 0 16px 0;font-size:20px;line-height:1.3;color:#1c1917;">{{.InviterName}} invites you to Paliad</h1>
<p style="margin:0 0 12px 0;">Paliad is the patent practice platform for HLC &mdash; matter management, deadline calculations, knowledge tools, and more.</p>
{{if .Message}}
<div style="background:#f5f5f4;border-left:3px solid #c6f41c;padding:14px 16px;margin:20px 0;border-radius:0 6px 6px 0;font-size:14px;line-height:1.55;color:#44403c;white-space:pre-wrap;">{{.Message}}</div>
<div style="background:#f5f5f4;border-left:3px solid #BFF355;padding:14px 16px;margin:20px 0;border-radius:0 6px 6px 0;font-size:14px;line-height:1.55;color:#44403c;white-space:pre-wrap;">{{.Message}}</div>
{{end}}
<p style="margin:20px 0 24px 0;">Sign up with your HLC email to get started:</p>
<p style="margin:0;">
@@ -16,7 +16,7 @@
<h1 style="margin:0 0 16px 0;font-size:20px;line-height:1.3;color:#1c1917;">{{.InviterName}} l&auml;dt Sie zu Paliad ein</h1>
<p style="margin:0 0 12px 0;">Paliad ist die Patent-Praxis-Plattform f&uuml;r HLC &mdash; Aktenverwaltung, Fristenberechnung, Wissenswerkzeuge und mehr.</p>
{{if .Message}}
<div style="background:#f5f5f4;border-left:3px solid #c6f41c;padding:14px 16px;margin:20px 0;border-radius:0 6px 6px 0;font-size:14px;line-height:1.55;color:#44403c;white-space:pre-wrap;">{{.Message}}</div>
<div style="background:#f5f5f4;border-left:3px solid #BFF355;padding:14px 16px;margin:20px 0;border-radius:0 6px 6px 0;font-size:14px;line-height:1.55;color:#44403c;white-space:pre-wrap;">{{.Message}}</div>
{{end}}
<p style="margin:20px 0 24px 0;">Registrieren Sie sich mit Ihrer HLC-E-Mail-Adresse:</p>
<p style="margin:0;">