diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-08-01 02:39:59 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-08-01 02:39:59 +0200 |
| commit | 6df48c1413a14516e7ee8919f33fbc13f0141966 (patch) | |
| tree | d81df761eb6607a6f4508241c043375e9860679d /public/stylesheets/admin.css | |
| parent | f6c1f0f08f031778a491465d35ac694bfcdc12b0 (diff) | |
Show and extend the elevation window
A banner appears while elevated, counting down in minutes and carrying
extend and drop controls. Three extensions of 30 minutes are allowed, so
the window is at most two hours without a fresh code; a code resets the
budget. The countdown is advisory, the server-side check authoritative, so
it says "expired" rather than vanishing.
The post-login flash tells an admin the timer has started.
Diffstat (limited to 'public/stylesheets/admin.css')
| -rw-r--r-- | public/stylesheets/admin.css | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/public/stylesheets/admin.css b/public/stylesheets/admin.css index 7f286705..be8725d3 100644 --- a/public/stylesheets/admin.css +++ b/public/stylesheets/admin.css | |||
| @@ -276,6 +276,46 @@ span.warning a { | |||
| 276 | padding-left: 1.25rem; | 276 | padding-left: 1.25rem; |
| 277 | } | 277 | } |
| 278 | 278 | ||
| 279 | #elevation_banner { | ||
| 280 | display: flex; | ||
| 281 | flex-wrap: wrap; | ||
| 282 | align-items: center; | ||
| 283 | gap: 0.5rem 1rem; | ||
| 284 | margin-bottom: 1rem; | ||
| 285 | padding: 0.5rem 0.75rem; | ||
| 286 | border: 1px solid var(--accent); | ||
| 287 | border-radius: var(--radius); | ||
| 288 | background-color: var(--accent-surface); | ||
| 289 | } | ||
| 290 | |||
| 291 | #elevation_banner .elevation_state { | ||
| 292 | display: inline-flex; | ||
| 293 | align-items: center; | ||
| 294 | gap: 0.35rem; | ||
| 295 | } | ||
| 296 | |||
| 297 | #elevation_banner .elevation_actions { | ||
| 298 | display: inline-flex; | ||
| 299 | align-items: center; | ||
| 300 | gap: 0.5rem; | ||
| 301 | margin-left: auto; | ||
| 302 | } | ||
| 303 | |||
| 304 | #elevation_banner svg { | ||
| 305 | width: 1.25rem; | ||
| 306 | height: 1.25rem; | ||
| 307 | } | ||
| 308 | |||
| 309 | #elevation_banner #elevation_remaining { | ||
| 310 | color: var(--text-muted); | ||
| 311 | } | ||
| 312 | |||
| 313 | #elevation_banner.elevation_soon #elevation_remaining, | ||
| 314 | #elevation_banner.elevation_expired #elevation_remaining { | ||
| 315 | color: var(--accent); | ||
| 316 | font-weight: bold; | ||
| 317 | } | ||
| 318 | |||
| 279 | /* ============================================================ | 319 | /* ============================================================ |
| 280 | Pagination | 320 | Pagination |
| 281 | ============================================================ */ | 321 | ============================================================ */ |
