librelad eaafd1bb38 refactor(webui): relocate admin area into features/admin/ + shared extractions
- features/admin/: the 10 admin-owned config controllers, the 5 admin pages
  (overview/system/charts/metric/storage), ssh-page.js, peers-page.js, plus
  admin.css/ip-whitelist.css/ssh.css (eager). config-manager.js kept last in
  the load order (it news the sub-managers).
- shared/js/: config-shared.js + config-options.js (ConfigShared/ConfigOptions
  globals consumed cross-feature by backup/apps/tasks).
- shared/css/: forms.css + config.css (generic form + config-form primitives
  borrowed by apps/backup/admin).
- Updated all path strings in system-loader.js (config component) and
  config-manager.js (lazyLoad of admin/ssh/peers controllers); index.html CSS
  hrefs. No /js/components/{config,admin,ssh,peers}/ refs remain.

js/components/ now holds only shared UI (topbar, notifications, eo-modal,
update-notifier, mobile-menu, confirmation-dialog).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: librelad <librelad@digitalangels.vip>
2026-05-30 02:10:09 +01:00

92 lines
2.0 KiB
CSS

/* SSH Access page. Reuses the .backup-ssh-key-card / button styles from
backup.css for the cards; this file only adds page chrome + the key list. */
.ssh-page {
padding: 4px 2px 40px;
}
/* "Tools" group heading in the Admin (config) sidebar, above SSH Access. */
.sidebar-group-label {
margin: 14px 8px 4px;
padding-top: 10px;
border-top: 1px solid rgba(var(--text-rgb), 0.08);
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
color: rgba(var(--text-rgb), 0.45);
}
/* SSH Access uses the config page's section layout (.config-category /
.domains-wrapper); these just space the content inside each section. */
.ssh-section-body {
display: flex;
flex-direction: column;
gap: 10px;
padding: 2px 0;
}
.ssh-section-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 2px;
}
/* Login + Add-a-key are light on content, so sit them side by side (50/50) on
tablet/desktop; stack on mobile. Authorized keys stays full width below. */
.ssh-cols {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
align-items: stretch;
}
@media (max-width: 640px) {
.ssh-cols { grid-template-columns: 1fr; }
}
.ssh-key-list {
display: flex;
flex-direction: column;
gap: 8px;
}
.ssh-key-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 10px 12px;
border: 1px solid rgba(var(--text-rgb), 0.10);
border-radius: 8px;
background: var(--card-bg);
}
.ssh-key-row-main {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.ssh-key-type {
font-size: 0.72rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
color: var(--accent);
}
.ssh-key-comment {
font-size: 0.9rem;
font-weight: 600;
color: var(--text-primary);
}
.ssh-key-fp {
font-family: var(--font-mono, monospace);
font-size: 0.74rem;
color: rgba(var(--text-rgb), 0.6);
word-break: break-all;
}