Merge: t-paliad-083 followup — sweep remaining hardcoded light-greys to tokens (agenda cards in dark mode)

This commit is contained in:
m
2026-04-30 10:36:03 +02:00

View File

@@ -2241,9 +2241,9 @@ input[type="range"]::-moz-range-thumb {
.form-warn {
margin-top: 0.75rem;
padding: 0.6rem 0.75rem;
border: 1px solid #f59e0b;
background: #fffbeb;
color: #78350f;
border: 1px solid var(--status-amber-border);
background: var(--status-amber-bg);
color: var(--status-amber-fg);
border-radius: 4px;
font-size: 0.85rem;
line-height: 1.4;
@@ -4030,8 +4030,8 @@ input[type="range"]::-moz-range-thumb {
padding: 1rem 1.25rem;
border: 1px solid var(--color-border);
border-radius: var(--radius);
background: #fff8e6;
color: #70520b;
background: var(--status-amber-bg);
color: var(--status-amber-fg);
margin-bottom: 1rem;
}
@@ -4117,8 +4117,8 @@ input[type="range"]::-moz-range-thumb {
}
.akten-status-chip {
background: #e5e7eb;
color: #374151;
background: var(--status-neutral-bg);
color: var(--status-neutral-fg-3);
}
/* F-23: hide STATUS column when every visible row shares the same value.
@@ -4130,18 +4130,18 @@ input[type="range"]::-moz-range-thumb {
}
.akten-status-active {
background: #dcfce7;
color: #166534;
background: var(--status-green-bg);
color: var(--status-green-fg);
}
.akten-status-completed {
background: #dbeafe;
color: #1e40af;
background: var(--status-blue-bg);
color: var(--status-blue-fg);
}
.akten-status-archived {
background: #f3f4f6;
color: #6b7280;
background: var(--status-neutral-bg);
color: var(--status-neutral-fg);
}
.akten-firmwide-chip {
@@ -4305,8 +4305,8 @@ input[type="range"]::-moz-range-thumb {
font-size: 0.7rem;
padding: 0.1rem 0.5rem;
border-radius: 999px;
background: #eef2f7;
color: #475569;
background: var(--status-neutral-bg);
color: var(--status-neutral-fg-2);
font-weight: 600;
}
@@ -4355,13 +4355,13 @@ input[type="range"]::-moz-range-thumb {
}
.projekt-tree-badge-overdue {
background: #fee2e2;
color: #b91c1c;
background: var(--status-red-bg);
color: var(--status-red-fg);
}
.projekt-tree-badge-open {
background: #fef3c7;
color: #92400e;
background: var(--status-amber-bg);
color: var(--status-amber-fg);
}
.projekt-tree-status {
@@ -4473,8 +4473,8 @@ input[type="range"]::-moz-range-thumb {
gap: 0.25rem;
padding: 0.2rem 0.6rem;
font-size: 0.8rem;
background: #eef2ff;
color: #4338ca;
background: var(--status-blue-soft-bg);
color: var(--status-blue-soft-fg);
border-radius: 999px;
}
@@ -4980,20 +4980,20 @@ input[type="range"]::-moz-range-thumb {
gap: 0.4rem;
padding: 0.2rem 0.6rem;
border-radius: 999px;
background: #f3f4f6;
background: var(--status-neutral-bg);
color: var(--color-text);
font-size: 0.85rem;
font-weight: 500;
}
.frist-due-chip.frist-urgency-overdue { background: #fee2e2; color: #991b1b; }
.frist-due-chip.frist-urgency-soon { background: #fef3c7; color: #92400e; }
.frist-due-chip.frist-urgency-later { background: #dcfce7; color: #166534; }
.frist-due-chip.frist-urgency-done { background: #f3f4f6; color: #6b7280; text-decoration: none; }
.frist-due-chip.frist-urgency-overdue { background: var(--status-red-bg); color: var(--status-red-fg); }
.frist-due-chip.frist-urgency-soon { background: var(--status-amber-bg); color: var(--status-amber-fg); }
.frist-due-chip.frist-urgency-later { background: var(--status-green-bg); color: var(--status-green-fg); }
.frist-due-chip.frist-urgency-done { background: var(--status-neutral-bg); color: var(--status-neutral-fg); text-decoration: none; }
.akten-status-chip.akten-status-pending { background: #fef3c7; color: #92400e; }
.akten-status-chip.akten-status-cancelled { background: #f3f4f6; color: #6b7280; }
.akten-status-chip.akten-status-waived { background: #f3f4f6; color: #6b7280; }
.akten-status-chip.akten-status-pending { background: var(--status-amber-bg); color: var(--status-amber-fg); }
.akten-status-chip.akten-status-cancelled { background: var(--status-neutral-bg); color: var(--status-neutral-fg); }
.akten-status-chip.akten-status-waived { background: var(--status-neutral-bg); color: var(--status-neutral-fg); }
.frist-detail-panel {
border: 1px solid var(--color-border);
@@ -5054,7 +5054,7 @@ input[type="range"]::-moz-range-thumb {
}
.frist-cal-weekday {
background: #f9fafb;
background: var(--color-surface-2);
color: var(--color-text-muted);
font-size: 0.78rem;
font-weight: 600;
@@ -5091,7 +5091,7 @@ input[type="range"]::-moz-range-thumb {
}
.frist-cal-cell-has:hover {
background: #f9fafb;
background: var(--color-bg-lime-tint);
}
.frist-cal-day {
@@ -5299,8 +5299,8 @@ input[type="range"]::-moz-range-thumb {
padding: 1rem 1.25rem;
border: 1px solid var(--color-border);
border-radius: var(--radius);
background: #fff8e6;
color: #70520b;
background: var(--status-amber-bg);
color: var(--status-amber-fg);
margin-bottom: 1.5rem;
font-size: 0.92rem;
}
@@ -5351,14 +5351,14 @@ input[type="range"]::-moz-range-thumb {
color: var(--color-text-muted);
}
.dashboard-card-red .dashboard-card-count { color: #b91c1c; }
.dashboard-card-red { border-left: 3px solid #b91c1c; }
.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-red .dashboard-card-count { color: var(--status-red-fg); }
.dashboard-card-red { border-left: 3px solid var(--status-red-fg); }
.dashboard-card-amber .dashboard-card-count { color: var(--status-amber-fg-2); }
.dashboard-card-amber { border-left: 3px solid var(--status-amber-fg-2); }
.dashboard-card-green .dashboard-card-count { color: var(--status-green-fg); }
.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; }
.dashboard-card-done .dashboard-card-count { color: var(--status-neutral-fg-2); }
.dashboard-card-done { border-left: 3px solid var(--status-neutral-fg-2); }
.dashboard-card-quiet .dashboard-card-count { color: var(--color-text-muted); }
.dashboard-card-quiet { border-left-color: var(--color-border); }
@@ -5514,10 +5514,10 @@ input[type="range"]::-moz-range-thumb {
white-space: nowrap;
}
.dashboard-urgency-overdue { background: #fee2e2; color: #b91c1c; }
.dashboard-urgency-today { background: #fef3c7; color: #92400e; }
.dashboard-urgency-urgent { background: #fef3c7; color: #b45309; }
.dashboard-urgency-soon { background: #ecfccb; color: #365314; }
.dashboard-urgency-overdue { background: var(--status-red-bg); color: var(--status-red-fg); }
.dashboard-urgency-today { background: var(--status-amber-bg); color: var(--status-amber-fg); }
.dashboard-urgency-urgent { background: var(--status-amber-bg); color: var(--status-amber-fg-2); }
.dashboard-urgency-soon { background: var(--status-green-soft-bg); color: var(--status-green-soft-fg); }
.dashboard-appt-time {
font-family: var(--font-mono);
@@ -6368,21 +6368,21 @@ input[type="range"]::-moz-range-thumb {
.agenda-chip {
appearance: none;
background: var(--color-surface-subtle, #f3f4f6);
background: var(--color-surface-muted);
border: 1px solid transparent;
border-radius: 999px;
padding: 0.35rem 0.85rem;
font-size: 0.85rem;
font-weight: 500;
color: var(--color-text, #1f2937);
color: var(--color-text);
cursor: pointer;
transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.agenda-chip:hover { background: var(--color-surface, #e5e7eb); }
.agenda-chip:hover { background: var(--color-overlay-subtle); }
.agenda-chip-active {
background: var(--color-accent-lime, var(--hlc-lime));
border-color: rgba(0,0,0,0.1);
color: #1a1a1a;
background: var(--color-accent);
border-color: var(--color-border);
color: var(--color-accent-dark);
}
.agenda-loading {
@@ -6433,15 +6433,15 @@ input[type="range"]::-moz-range-thumb {
align-items: center;
padding: 0.6rem 0.85rem;
border-radius: 8px;
border: 1px solid var(--color-border, #e5e7eb);
background: var(--color-surface-0, #ffffff);
border: 1px solid var(--color-border);
background: var(--color-surface);
text-decoration: none;
color: inherit;
transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}
.agenda-item-link:hover {
background: var(--color-surface-subtle, #f9fafb);
border-color: #d1d5db;
background: var(--color-bg-lime-tint);
border-color: var(--color-border-strong);
}
.agenda-item-icon {
@@ -6451,8 +6451,8 @@ input[type="range"]::-moz-range-thumb {
width: 2rem;
height: 2rem;
border-radius: 50%;
background: var(--color-surface-subtle, #f3f4f6);
color: var(--color-text-muted, #6b7280);
background: var(--color-surface-muted);
color: var(--color-text-muted);
}
.agenda-item-icon svg { width: 1.1rem; height: 1.1rem; }
@@ -6520,26 +6520,27 @@ input[type="range"]::-moz-range-thumb {
/* Urgency colour system — shares the red/amber/green vocabulary with the
* Fristen page (--frist-red / --frist-amber / --frist-green) so a user who
* learned the traffic lights there reads the agenda without relearning. */
.agenda-item-overdue .agenda-item-urgency { background: #fee2e2; color: #b91c1c; }
.agenda-item-overdue .agenda-item-icon { background: #fee2e2; color: #b91c1c; }
.agenda-item-overdue .agenda-item-link { border-left: 3px solid var(--frist-red, #ef4444); }
* learned the traffic lights there reads the agenda without relearning.
* Pulls from the shared --status-* tokens so dark mode swap is automatic. */
.agenda-item-overdue .agenda-item-urgency { background: var(--status-red-bg); color: var(--status-red-fg); }
.agenda-item-overdue .agenda-item-icon { background: var(--status-red-bg); color: var(--status-red-fg); }
.agenda-item-overdue .agenda-item-link { border-left: 3px solid var(--frist-red); }
.agenda-item-today .agenda-item-urgency { background: #fee2e2; color: #b91c1c; }
.agenda-item-today .agenda-item-icon { background: #fee2e2; color: #b91c1c; }
.agenda-item-today .agenda-item-link { border-left: 3px solid var(--frist-red, #ef4444); }
.agenda-item-today .agenda-item-urgency { background: var(--status-red-bg); color: var(--status-red-fg); }
.agenda-item-today .agenda-item-icon { background: var(--status-red-bg); color: var(--status-red-fg); }
.agenda-item-today .agenda-item-link { border-left: 3px solid var(--frist-red); }
.agenda-item-tomorrow .agenda-item-urgency { background: #fef3c7; color: #92400e; }
.agenda-item-tomorrow .agenda-item-icon { background: #fef3c7; color: #92400e; }
.agenda-item-tomorrow .agenda-item-link { border-left: 3px solid var(--frist-amber, #f59e0b); }
.agenda-item-tomorrow .agenda-item-urgency { background: var(--status-amber-bg); color: var(--status-amber-fg); }
.agenda-item-tomorrow .agenda-item-icon { background: var(--status-amber-bg); color: var(--status-amber-fg); }
.agenda-item-tomorrow .agenda-item-link { border-left: 3px solid var(--frist-amber); }
.agenda-item-this_week .agenda-item-urgency { background: #fef3c7; color: #b45309; }
.agenda-item-this_week .agenda-item-icon { background: #fef3c7; color: #b45309; }
.agenda-item-this_week .agenda-item-link { border-left: 3px solid var(--frist-amber, #f59e0b); }
.agenda-item-this_week .agenda-item-urgency { background: var(--status-amber-bg); color: var(--status-amber-fg-2); }
.agenda-item-this_week .agenda-item-icon { background: var(--status-amber-bg); color: var(--status-amber-fg-2); }
.agenda-item-this_week .agenda-item-link { border-left: 3px solid var(--frist-amber); }
.agenda-item-later .agenda-item-urgency { background: #ecfccb; color: #365314; }
.agenda-item-later .agenda-item-icon { background: #ecfccb; color: #365314; }
.agenda-item-later .agenda-item-link { border-left: 3px solid var(--frist-green, #22c55e); }
.agenda-item-later .agenda-item-urgency { background: var(--status-green-soft-bg); color: var(--status-green-soft-fg); }
.agenda-item-later .agenda-item-icon { background: var(--status-green-soft-bg); color: var(--status-green-soft-fg); }
.agenda-item-later .agenda-item-link { border-left: 3px solid var(--frist-green); }
/* ---------------------------------------------------------------------------
* Team directory (/team) — t-paliad-029
@@ -6697,8 +6698,8 @@ input[type="range"]::-moz-range-thumb {
align-items: center;
gap: 0.25rem;
padding: 0.15rem 0.5rem;
background: #ecfccb;
color: #365314;
background: var(--status-green-soft-bg);
color: var(--status-green-soft-fg);
border-radius: 999px;
font-weight: 500;
}
@@ -7549,21 +7550,21 @@ dialog.quick-add-sheet::backdrop {
}
.admin-audit-source-project {
background: #ecfeff;
border-color: #67e8f9;
color: #0e7490;
background: var(--status-blue-soft-bg);
border-color: var(--status-blue-soft-bg);
color: var(--status-blue-soft-fg);
}
.admin-audit-source-caldav {
background: #eff6ff;
border-color: #93c5fd;
color: #1d4ed8;
background: var(--status-blue-bg);
border-color: var(--status-blue-bg);
color: var(--status-blue-fg);
}
.admin-audit-source-reminder {
background: #fef3c7;
border-color: #fcd34d;
color: #92400e;
background: var(--status-amber-bg);
border-color: var(--status-amber-border);
color: var(--status-amber-fg);
}
.admin-audit-pagination {
@@ -7821,7 +7822,7 @@ dialog.quick-add-sheet::backdrop {
height: 600px;
border: 1px solid var(--color-border);
border-radius: var(--radius);
background: #f5f5f4;
background: var(--color-surface-2);
}
.admin-et-versions {
@@ -7905,21 +7906,9 @@ dialog.quick-add-sheet::backdrop {
color: var(--status-amber-fg);
}
/* Dashboard card counts + left-borders. Light mode keeps the saturated
Tailwind 700-shades; dark mode uses brightened pastels for AA. */
:root[data-theme="dark"] .dashboard-card-red .dashboard-card-count { color: var(--status-red-fg); }
:root[data-theme="dark"] .dashboard-card-red { border-left-color: var(--status-red-fg); }
:root[data-theme="dark"] .dashboard-card-amber .dashboard-card-count { color: var(--status-amber-fg-2); }
:root[data-theme="dark"] .dashboard-card-amber { border-left-color: var(--status-amber-fg-2); }
:root[data-theme="dark"] .dashboard-card-green .dashboard-card-count { color: var(--status-green-fg); }
:root[data-theme="dark"] .dashboard-card-done .dashboard-card-count { color: var(--status-neutral-fg-2); }
:root[data-theme="dark"] .dashboard-card-done { border-left-color: var(--status-neutral-fg-2); }
/* Dashboard urgency chips */
:root[data-theme="dark"] .dashboard-urgency-overdue { background: var(--status-red-bg); color: var(--status-red-fg); }
:root[data-theme="dark"] .dashboard-urgency-today { background: var(--status-amber-bg); color: var(--status-amber-fg); }
:root[data-theme="dark"] .dashboard-urgency-urgent { background: var(--status-amber-bg); color: var(--status-amber-fg-2); }
:root[data-theme="dark"] .dashboard-urgency-soon { background: var(--status-green-soft-bg); color: var(--status-green-soft-fg); }
/* Dashboard cards + urgency chips read --status-* tokens directly now
(see .dashboard-card-*, .dashboard-urgency-* rules above). The dark
swap is automatic via the token redef. */
/* Dashboard termin dots */
:root[data-theme="dark"] .dashboard-termin-hearing { background: var(--status-red-fg); }
@@ -7945,28 +7934,11 @@ dialog.quick-add-sheet::backdrop {
:root[data-theme="dark"] .termin-card-week .frist-summary-dot { background: var(--status-blue-fg-2); }
:root[data-theme="dark"] .termin-card-later .frist-summary-dot { background: var(--status-neutral-fg-2); }
/* Frist due-date chips */
:root[data-theme="dark"] .frist-due-chip.frist-urgency-overdue { background: var(--status-red-bg); color: var(--status-red-fg); }
:root[data-theme="dark"] .frist-due-chip.frist-urgency-soon { background: var(--status-amber-bg); color: var(--status-amber-fg); }
:root[data-theme="dark"] .frist-due-chip.frist-urgency-later { background: var(--status-green-bg); color: var(--status-green-fg); }
:root[data-theme="dark"] .frist-due-chip.frist-urgency-done { background: var(--status-neutral-bg); color: var(--status-neutral-fg); }
/* Akten-status chips (pending / cancelled / waived) */
:root[data-theme="dark"] .akten-status-chip.akten-status-pending { background: var(--status-amber-bg); color: var(--status-amber-fg); }
:root[data-theme="dark"] .akten-status-chip.akten-status-cancelled { background: var(--status-neutral-bg); color: var(--status-neutral-fg); }
:root[data-theme="dark"] .akten-status-chip.akten-status-waived { background: var(--status-neutral-bg); color: var(--status-neutral-fg); }
/* Agenda urgency markers */
:root[data-theme="dark"] .agenda-item-overdue .agenda-item-urgency,
:root[data-theme="dark"] .agenda-item-overdue .agenda-item-icon { background: var(--status-red-bg); color: var(--status-red-fg); }
:root[data-theme="dark"] .agenda-item-today .agenda-item-urgency,
:root[data-theme="dark"] .agenda-item-today .agenda-item-icon { background: var(--status-red-bg); color: var(--status-red-fg); }
:root[data-theme="dark"] .agenda-item-tomorrow .agenda-item-urgency,
:root[data-theme="dark"] .agenda-item-tomorrow .agenda-item-icon { background: var(--status-amber-bg); color: var(--status-amber-fg); }
:root[data-theme="dark"] .agenda-item-this_week .agenda-item-urgency,
:root[data-theme="dark"] .agenda-item-this_week .agenda-item-icon { background: var(--status-amber-bg); color: var(--status-amber-fg-2); }
:root[data-theme="dark"] .agenda-item-later .agenda-item-urgency,
:root[data-theme="dark"] .agenda-item-later .agenda-item-icon { background: var(--status-green-soft-bg); color: var(--status-green-soft-fg); }
/* Frist due-date chips, akten-status chips, agenda urgency markers all
read --status-*-{bg,fg} tokens directly now (see .frist-due-chip,
.akten-status-chip, .agenda-item-* rules above). The dark-mode swap
happens automatically via the token redef at :root[data-theme="dark"]
— no per-class override needed here. */
/* Tab-style selection borders (gebuehren-tab, akten-tab, etc.) read on
the lime accent in both themes — no override needed. */