web permissions2

This commit is contained in:
Priec
2026-08-11 14:33:24 +02:00
parent 5602140d05
commit 077d69d756
47 changed files with 2348 additions and 674 deletions

View File

@@ -178,6 +178,45 @@
.danger-panel h2 { color: #a12b2b; }
.form-actions button.danger-submit { background: #a12b2b; }
/* ---------- Permissions (pages/permissions) ---------- */
/* The three sections — roles, people, access — are separate pages, and this
is the switcher between them, rendered by pages/permissions/tabs.html. */
.tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.tab { display: grid; gap: 2px; padding: 10px 16px; border: 1px solid #d9dfe7; border-radius: 9px; color: #33415c; background: white; text-decoration: none; }
.tab small { color: #7c8796; font-size: 11px; }
.tab:hover { background: #f2f6fc; }
.tab.selected { border-color: #a9c7f6; background: #eaf2ff; }
.tab.selected span { font-weight: 700; color: #1d4ed8; }
.table-scroll { overflow-x: auto; }
.link-action { color: #2563eb; text-decoration: none; }
.notice { padding: 10px 12px; border: 1px solid #cfe0c4; border-radius: 8px; color: #21643a; background: #f2f9f3; }
/* The shortcut buttons — read everything, full access, clear — sit above the
matrix they fill in, so they are wider than the cell buttons and read as
sentences rather than as symbols. */
.shortcut-row { margin: 12px 0 4px; }
.shortcut-row button.secondary { margin-top: 0; padding: 8px 14px; }
/* Objects down the side, actions across the top. Each cell is its own form,
because a grant is one call to the server either way. */
.grant-matrix td, .grant-matrix th { white-space: normal; }
.grant-matrix th { text-transform: capitalize; }
.grant-matrix .object-label { display: block; font-weight: 600; color: #24324a; }
.grant-matrix td small { display: block; margin: 2px 0; color: #7c8796; }
.grant-matrix td code { font-size: 11px; color: #5b6678; }
.grant-cell { width: 82px; text-align: center; vertical-align: middle; }
.grant-cell .actions { justify-content: center; gap: 4px; }
.grant-cell form { margin: 0 auto; }
.grant-cell button { min-width: 34px; padding: 4px 9px; border-radius: 5px; cursor: pointer; }
button.cell-on { border: 1px solid #a9d3b4; color: #21643a; background: #eefaf1; }
button.cell-on:hover { border-color: #e0b7b3; color: #a12b2b; background: #fdf3f3; }
button.cell-off { border: 1px dashed #cdd5e0; color: #8a94a4; background: white; }
button.cell-off:hover { border-style: solid; border-color: #a9c7f6; color: #1d4ed8; background: #eef3fe; }
.cell-closed { color: #c3cad4; }
.cell-inherited { color: #1d4ed8; }
/* ---------- Narrow screens ---------- */
@media (max-width: 850px) {