fix: Restore all files lost during destructive rebase

A previous `git pull --rebase origin main` dropped 177 local commits,
losing 3400+ files across admin-v2, backend, studio-v2, website,
klausur-service, and many other services. The partial restore attempt
(660295e2) only recovered some files.

This commit restores all missing files from pre-rebase ref 98933f5e
while preserving post-rebase additions (night-scheduler, night-mode UI,
NightModeWidget dashboard integration).

Restored features include:
- AI Module Sidebar (FAB), OCR Labeling, OCR Compare
- GPU Dashboard, RAG Pipeline, Magic Help
- Klausur-Korrektur (8 files), Abitur-Archiv (5+ files)
- Companion, Zeugnisse-Crawler, Screen Flow
- Full backend, studio-v2, website, klausur-service
- All compliance SDKs, agent-core, voice-service
- CI/CD configs, documentation, scripts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-02-09 09:51:32 +01:00
parent f7487ee240
commit bfdaf63ba9
2009 changed files with 749983 additions and 1731 deletions

View File

@@ -0,0 +1,124 @@
/* ==========================================
SUSPENSION OVERLAY STYLES
Account suspension/blocking display
========================================== */
.suspension-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.9);
z-index: 20000;
justify-content: center;
align-items: center;
backdrop-filter: blur(8px);
}
.suspension-overlay.active {
display: flex;
}
.suspension-content {
background: var(--bp-surface);
border-radius: 20px;
width: 90%;
max-width: 500px;
padding: 40px;
text-align: center;
box-shadow: 0 20px 60px rgba(0,0,0,0.5);
border: 1px solid var(--bp-danger);
}
.suspension-icon {
font-size: 64px;
margin-bottom: 20px;
}
.suspension-title {
font-size: 24px;
font-weight: 700;
color: var(--bp-danger);
margin-bottom: 16px;
}
.suspension-message {
font-size: 15px;
color: var(--bp-text-muted);
line-height: 1.6;
margin-bottom: 24px;
}
.suspension-reason {
background: rgba(239, 68, 68, 0.1);
border: 1px solid rgba(239, 68, 68, 0.3);
border-radius: 12px;
padding: 16px;
margin-bottom: 24px;
}
.suspension-reason-label {
font-size: 12px;
color: var(--bp-text-muted);
margin-bottom: 8px;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.suspension-reason-text {
font-size: 14px;
color: var(--bp-text);
}
.suspension-actions {
display: flex;
flex-direction: column;
gap: 12px;
}
.suspension-btn {
padding: 14px 24px;
border-radius: 10px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: all 0.2s ease;
border: none;
}
.suspension-btn-primary {
background: var(--bp-btn-primary-bg);
color: white;
}
.suspension-btn-primary:hover {
background: var(--bp-btn-primary-hover);
}
.suspension-btn-secondary {
background: transparent;
border: 1px solid var(--bp-border);
color: var(--bp-text);
}
.suspension-btn-secondary:hover {
border-color: var(--bp-primary);
color: var(--bp-primary);
}
.suspension-countdown {
font-size: 12px;
color: var(--bp-text-muted);
margin-top: 16px;
}
/* Light Mode Overrides */
[data-theme="light"] .suspension-content {
background: var(--bp-surface);
}
[data-theme="light"] .suspension-reason {
background: rgba(239, 68, 68, 0.05);
}