fix(shadcn): isolate Nexus CSS vars with --nx- prefix + admin password reset endpoint
CI - Build & Test / Backend (.NET) (push) Successful in 26s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 16s
CI - Build & Test / Security Check (push) Successful in 2s

This commit is contained in:
2026-06-11 10:06:53 +02:00
parent a538025049
commit b7b44494f0
59 changed files with 3267 additions and 1153 deletions
+42 -6
View File
@@ -101,7 +101,9 @@ function onQueueExecuteNow(id: string): void {
<style scoped>
.dashboard {
display: grid; grid-template-columns: 280px 1fr 320px; gap: 14px;
display: grid;
grid-template-columns: 280px 1fr 320px;
gap: 14px;
height: 100%; min-height: 0;
animation: fade-in 0.35s ease-out;
}
@@ -118,7 +120,7 @@ function onQueueExecuteNow(id: string): void {
/* Quote Pill */
.quote-pill {
background: var(--panel);
background: var(--nx-panel);
border: 1px solid rgba(139, 124, 246, 0.25);
border-radius: 14px;
padding: 14px 22px;
@@ -163,8 +165,8 @@ function onQueueExecuteNow(id: string): void {
justify-content: center;
gap: 24px;
padding: 12px 20px;
background: var(--panel);
border: 1px solid var(--line);
background: var(--nx-panel);
border: 1px solid var(--nx-line);
border-radius: 10px;
}
.legend-item {
@@ -200,8 +202,42 @@ function onQueueExecuteNow(id: string): void {
.col-right { display: flex; flex-direction: column; gap: 12px; overflow-y: auto; padding-left: 4px; }
.missions-section { display: flex; flex-direction: column; gap: 8px; }
.column-title { margin: 0; font-size: 13px; font-weight: 600; color: #e8eaf0; letter-spacing: 0.01em; }
/* Tablet: 2 columns — left+center together, right column alongside */
@media (max-width: 1100px) {
.dashboard { grid-template-columns: 1fr; }
.col-left, .col-center, .col-right { overflow: visible; padding: 0; }
.dashboard {
grid-template-columns: 1fr 320px;
grid-template-rows: auto auto;
}
.col-left {
grid-column: 1;
grid-row: 1;
}
.col-center {
grid-column: 1;
grid-row: 2;
}
.col-right {
grid-column: 2;
grid-row: 1 / 3;
}
}
/* Mobile: 1 column, everything stacked */
@media (max-width: 768px) {
.dashboard {
grid-template-columns: 1fr;
gap: 8px;
}
.col-left, .col-center, .col-right {
grid-column: 1;
grid-row: auto;
overflow: visible;
padding: 0;
}
.quote-pill { padding: 10px 14px; }
.quote-text { font-size: 10px; }
.team-title { font-size: 20px; }
.legend-row { gap: 12px; padding: 8px 12px; flex-wrap: wrap; }
.legend-item { font-size: 8px; gap: 4px; }
}
</style>
+2 -2
View File
@@ -439,7 +439,7 @@ onMounted(loadDocs)
padding: 12px;
border-radius: 8px;
background: #0d1016;
border: 1px solid var(--line);
border: 1px solid var(--nx-line);
overflow-x: auto;
}
.memory-rendered :deep(pre code) {
@@ -461,7 +461,7 @@ onMounted(loadDocs)
}
.memory-rendered :deep(hr) {
border: none;
border-top: 1px solid var(--line);
border-top: 1px solid var(--nx-line);
margin: 1.2em 0;
}
.memory-rendered :deep(strong) {
+2 -2
View File
@@ -410,7 +410,7 @@ onMounted(loadIncidents)
padding: 12px;
border-radius: 8px;
background: #0d1016;
border: 1px solid var(--line);
border: 1px solid var(--nx-line);
overflow-x: auto;
}
.incident-rendered :deep(pre code) {
@@ -432,7 +432,7 @@ onMounted(loadIncidents)
}
.incident-rendered :deep(hr) {
border: none;
border-top: 1px solid var(--line);
border-top: 1px solid var(--nx-line);
margin: 1.2em 0;
}
.incident-rendered :deep(strong) {
+2 -2
View File
@@ -417,7 +417,7 @@ onMounted(loadMemories)
padding: 12px;
border-radius: 8px;
background: #0d1016;
border: 1px solid var(--line);
border: 1px solid var(--nx-line);
overflow-x: auto;
}
.memory-rendered :deep(pre code) {
@@ -439,7 +439,7 @@ onMounted(loadMemories)
}
.memory-rendered :deep(hr) {
border: none;
border-top: 1px solid var(--line);
border-top: 1px solid var(--nx-line);
margin: 1.2em 0;
}
.memory-rendered :deep(strong) {
+5 -5
View File
@@ -282,8 +282,8 @@ onMounted(loadProject)
transition: all 0.15s;
}
.btn-icon:hover {
background: var(--accent-soft);
color: var(--accent);
background: var(--nx-accent-soft);
color: var(--nx-accent);
}
.btn-icon.btn-danger:hover {
background: rgba(239, 68, 68, 0.1);
@@ -321,7 +321,7 @@ onMounted(loadProject)
align-items: center;
gap: 0.35rem;
padding: 0.4rem 0.8rem;
background: var(--accent);
background: var(--nx-accent);
color: #fff;
border: none;
border-radius: 6px;
@@ -361,7 +361,7 @@ onMounted(loadProject)
.progress-bar i {
display: block;
height: 100%;
background: linear-gradient(90deg, var(--accent), var(--accent-secondary));
background: linear-gradient(90deg, var(--nx-accent), var(--accent-secondary));
border-radius: 4px;
transition: width 0.3s;
}
@@ -403,7 +403,7 @@ onMounted(loadProject)
.task-icon.done { color: rgb(34, 197, 94); }
.task-icon.blocked { color: rgb(239, 68, 68); }
.task-icon.backlog { color: var(--text-muted); }
.task-icon.in-progress { color: var(--accent); }
.task-icon.in-progress { color: var(--nx-accent); }
.task-info {
flex: 1;
}
+3 -3
View File
@@ -231,7 +231,7 @@ async function changePassword() {
align-items: center;
gap: 0.4rem;
padding: 0.55rem 1rem;
background: var(--accent);
background: var(--nx-accent);
color: #fff;
border: none;
border-radius: 8px;
@@ -267,8 +267,8 @@ async function changePassword() {
.badge {
display: inline-block;
padding: 0.15rem 0.5rem;
background: var(--accent-soft);
color: var(--accent);
background: var(--nx-accent-soft);
color: var(--nx-accent);
border-radius: 4px;
font-size: 0.8rem;
text-transform: uppercase;