diff --git a/frontend/src/views/SettingsView.vue b/frontend/src/views/SettingsView.vue index dc7b975..813e83c 100644 --- a/frontend/src/views/SettingsView.vue +++ b/frontend/src/views/SettingsView.vue @@ -1165,7 +1165,7 @@ function formatUserDate(iso: string): string {

Click Detect to auto-fill from your browser.

- Saved! @@ -1190,7 +1190,7 @@ function formatUserDate(iso: string): string {

Set to 0 to keep deleted items forever (never auto-purge).

- Saved! @@ -1313,7 +1313,7 @@ function formatUserDate(iso: string): string {

- Saved! @@ -1361,7 +1361,7 @@ function formatUserDate(iso: string): string {
- + Saved!
@@ -1491,7 +1491,7 @@ function formatUserDate(iso: string): string {
- + Saved!
@@ -1501,7 +1501,7 @@ function formatUserDate(iso: string): string {

Topics you care about — used to personalise the journal's daily prep and chat responses.

- + Saved!
@@ -1533,7 +1533,7 @@ function formatUserDate(iso: string): string {
- + Saved!
@@ -1562,7 +1562,7 @@ function formatUserDate(iso: string): string {

Emails for logins, logouts, and password changes.

- Saved! @@ -1589,7 +1589,7 @@ function formatUserDate(iso: string): string { placeholder="Enter a search query..." @keydown="onSearchKeydown" /> -
@@ -1891,7 +1891,7 @@ function formatUserDate(iso: string): string { />
- Saved! @@ -1916,7 +1916,7 @@ function formatUserDate(iso: string): string { />
- Saved! @@ -1946,10 +1946,10 @@ function formatUserDate(iso: string): string {
- - Saved! @@ -2040,7 +2040,7 @@ function formatUserDate(iso: string): string {

Recommended for port 587. Implicit TLS is used automatically for port 465.

- Saved! @@ -2054,7 +2054,7 @@ function formatUserDate(iso: string): string { placeholder="test@example.com" class="input" /> -
@@ -2079,7 +2079,7 @@ function formatUserDate(iso: string): string {

When closed, new users can only be added by an administrator.

@@ -2122,7 +2122,7 @@ function formatUserDate(iso: string): string { {{ formatUserDate(inv.created_at) }} {{ formatUserDate(inv.expires_at) }} - @@ -2161,13 +2161,13 @@ function formatUserDate(iso: string): string { You @@ -2305,10 +2305,10 @@ function formatUserDate(iso: string): string { {{ g.description }}
- - +
@@ -2338,7 +2338,7 @@ function formatUserDate(iso: string): string {
  • {{ m.username }} {{ m.role }} - +
  • No members yet.
  • @@ -2564,54 +2564,6 @@ function formatUserDate(iso: string): string { flex-wrap: wrap; } /* Save: Moss action-primary per Hybrid */ -.btn-save { - padding: 0.4rem 0.9rem; - background: var(--color-action-primary); - color: var(--fs-text-on-action); - border: none; - border-radius: var(--radius-sm); - cursor: pointer; - font-size: 0.875rem; - font-family: inherit; - white-space: nowrap; - transition: background 0.15s; -} -.btn-save:disabled { opacity: 0.6; cursor: default; } -.btn-save:hover:not(:disabled) { background: var(--color-action-primary-hover); } - -/* Danger outline (Invalidate sessions, Clear observations, etc.): - Oxblood action-destructive ghost — fills on hover */ -.btn-danger-outline { - padding: 0.4rem 0.9rem; - background: none; - color: var(--color-action-destructive); - border: 1px solid var(--color-action-destructive); - border-radius: var(--radius-sm); - cursor: pointer; - font-size: 0.875rem; - font-family: inherit; - white-space: nowrap; - transition: background 0.15s, color 0.15s; -} -.btn-danger-outline:hover:not(:disabled) { - background: var(--color-action-destructive); - color: var(--fs-text-on-action); -} -.btn-danger-outline:disabled { opacity: 0.5; cursor: default; } - -/* Filled destructive: Oxblood action-destructive */ - -/* Secondary: Bronze action-secondary — alternate paths (Detect, Test, - Refresh, Add slot, etc.). Outline form for visual lightness. */ - -/* DB maintenance last-run summary */ -.db-maint-last { margin-top: 1rem; } -.db-maint-last-label { - display: block; - font-size: 0.8rem; - color: var(--color-text-muted); - margin-bottom: 0.4rem; -} .db-maint-table-list { list-style: none; margin: 0; @@ -2957,68 +2909,6 @@ function formatUserDate(iso: string): string { } .you-label { font-size: 0.8rem; color: var(--color-text-muted); } /* Per-row delete (users / invitations / etc.): ghost → Oxblood on hover */ -.btn-delete { - padding: 0.25rem 0.6rem; - background: transparent; - color: var(--color-text-muted); - border: 1px solid var(--color-border); - border-radius: var(--radius-sm); - cursor: pointer; - font-size: 0.8rem; -} -.btn-delete:hover:not(:disabled) { border-color: var(--color-action-destructive); color: var(--color-action-destructive); } -.btn-delete:disabled { opacity: 0.4; cursor: default; } -/* Two-stage destructive: Confirm = Oxblood filled, Cancel = Bronze ghost */ -.btn-confirm-delete { - padding: 0.25rem 0.6rem; - background: var(--color-action-destructive); - color: var(--fs-text-on-action); - border: none; - border-radius: var(--radius-sm); - cursor: pointer; - font-size: 0.8rem; - font-weight: 500; - margin-right: 0.25rem; - transition: background 0.15s; -} -.btn-confirm-delete:hover:not(:disabled) { background: var(--color-action-destructive-hover); } -.btn-confirm-delete:disabled { opacity: 0.6; cursor: default; } -.btn-cancel-delete { - padding: 0.25rem 0.6rem; - background: transparent; - color: var(--color-text-muted); - border: 1px solid var(--color-border); - border-radius: var(--radius-sm); - cursor: pointer; - font-size: 0.8rem; -} -.btn-cancel-delete:hover { color: var(--color-text); border-color: var(--color-text-muted); } -/* Toggle (Open/Close registration, etc.): Open = Moss, Close = Pewter ghost */ -.btn-toggle { - padding: 0.45rem 1rem; - border: none; - border-radius: var(--radius-sm); - cursor: pointer; - font-size: 0.9rem; - font-weight: 500; - white-space: nowrap; - transition: background 0.15s; -} -.btn-toggle:disabled { opacity: 0.6; cursor: default; } -.btn-toggle-open { background: var(--color-action-primary); color: var(--fs-text-on-action); } -.btn-toggle-open:hover:not(:disabled) { background: var(--color-action-primary-hover); } -.btn-toggle-close { - background: var(--color-bg-secondary); - color: var(--color-text); - border: 1px solid var(--color-border); -} -.btn-toggle-close:hover:not(:disabled) { border-color: var(--color-warning); color: var(--color-warning); } -.loading-msg, .empty-msg { - text-align: center; - color: var(--color-text-muted); - font-size: 0.9rem; - padding: 1rem 0; -} /* Logs panel */ .stats-section { padding: 1rem 1.25rem; } @@ -3202,32 +3092,6 @@ function formatUserDate(iso: string): string { flex-shrink: 0; } -.btn-sm { - padding: 0.25rem 0.6rem; - background: none; - border: 1px solid var(--color-border); - border-radius: 4px; - font-size: 0.78rem; - color: var(--color-text-secondary); - cursor: pointer; - font-family: inherit; - transition: border-color 0.15s, color 0.15s; -} -.btn-sm:hover { border-color: var(--color-primary); color: var(--color-primary); } -.btn-danger-sm:hover { border-color: var(--color-action-destructive); color: var(--color-action-destructive); } - -.group-members-panel { - padding: 0.75rem 1rem 1rem; - border-top: 1px solid var(--color-border); - background: var(--color-surface); -} - -.members-search { - display: flex; - gap: 0.5rem; - align-items: flex-start; - margin-bottom: 0.75rem; -} .member-search-wrap { flex: 1; @@ -3740,21 +3604,6 @@ function formatUserDate(iso: string): string { text-align: right; color: var(--color-text-secondary); } -.btn-remove-slot { - background: none; - border: 1px solid var(--color-border); - border-radius: var(--radius-sm); - color: var(--color-text-muted); - cursor: pointer; - font-size: 0.75rem; - padding: 0.2rem 0.45rem; - line-height: 1; - transition: color 0.15s, border-color 0.15s; -} -.btn-remove-slot:hover { - color: var(--color-danger, #e05555); - border-color: var(--color-danger, #e05555); -} .blend-actions { margin-top: 0.25rem; } @@ -3808,24 +3657,4 @@ function formatUserDate(iso: string): string { color: var(--color-text-muted); margin-bottom: 0.75rem; } -.btn-danger-outline { - padding: 0.45rem 1rem; - background: none; - border: 1px solid var(--color-action-destructive); - border-radius: var(--radius-sm); - color: var(--color-action-destructive); - font-size: 0.9rem; - cursor: pointer; - font-family: inherit; - transition: background 0.15s, color 0.15s; -} -.btn-danger-outline:hover:not(:disabled) { - background: var(--color-action-destructive); - color: var(--fs-text-on-action); -} -.btn-danger-outline:disabled { opacity: 0.5; cursor: default; } -@keyframes va-dot-bounce { - 0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; } - 40% { transform: scale(1); opacity: 1; } -} diff --git a/frontend/src/views/UserManagementView.vue b/frontend/src/views/UserManagementView.vue index 62bc563..ce0918f 100644 --- a/frontend/src/views/UserManagementView.vue +++ b/frontend/src/views/UserManagementView.vue @@ -167,7 +167,7 @@ function formatDate(iso: string): string {