add composer-unused, comprehensive docs, and project restructure

- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-22 15:27:35 +01:00
parent 3eb9cc0ac4
commit 25370a1a55
389 changed files with 40506 additions and 8071 deletions

View File

@@ -1,9 +1,24 @@
@layer components {
.app-tabs {
display: flex;
flex-direction: column;
gap: var(--app-spacing);
}
/* No-JS fallback: show only first tab panel. */
html.no-js [data-tabs] [data-tab-panel] {
display: none;
}
html.no-js [data-tabs] [data-tab-panel]:first-of-type {
display: block;
}
/* JS mode: keep panels hidden until tab init completed (prevents flash). */
html.js [data-tabs]:not([data-tabs-ready="1"]) [data-tab-panel] {
display: none !important;
}
.app-tabs-nav {
display: flex;
border-bottom: 1px solid var(--tabs-border);
@@ -42,6 +57,21 @@
border-color: var(--tabs-active);
}
.app-tabs-nav button.has-invalid,
.app-tabs-nav a.has-invalid {
color: var(--app-danger, #dc3545) !important;
}
[data-tab-panel][hidden] {
display: none;
}
html.js [data-tabs][data-tabs-ready="1"] [data-tab-panel]:not([hidden]) {
display: block;
}
/* Safety fallback when JS is available but the ready marker is missing. */
html:not(.no-js) [data-tabs] [data-tab-panel]:not([hidden]) {
display: block;
}
}