aboutsummaryrefslogtreecommitdiff
path: root/174bg/manager/src/theme.css
diff options
context:
space:
mode:
Diffstat (limited to '174bg/manager/src/theme.css')
-rw-r--r--174bg/manager/src/theme.css194
1 files changed, 186 insertions, 8 deletions
diff --git a/174bg/manager/src/theme.css b/174bg/manager/src/theme.css
index 907a77e..7694f0d 100644
--- a/174bg/manager/src/theme.css
+++ b/174bg/manager/src/theme.css
@@ -28,7 +28,6 @@ html {
body {
margin: 0;
min-height: 100vh;
- padding: 2.5rem 1.25rem 4rem;
color: var(--text);
background-color: var(--bg);
background-image:
@@ -44,11 +43,23 @@ body {
44px 44px,
44px 44px;
background-attachment: fixed;
+}
+
+/* Centered layout for the logged-out login screen ------------------- */
+.center-view {
+ width: 100%;
+ min-height: 100vh;
+ padding: 2.5rem 1.25rem;
display: flex;
flex-direction: column;
align-items: center;
}
+.center-view > * {
+ width: 100%;
+ max-width: 760px;
+}
+
h1 {
font-family: "Orbitron", sans-serif;
font-weight: 900;
@@ -83,12 +94,169 @@ a:hover {
border-bottom-color: var(--accent-2);
}
-body > h1,
-#anonymous,
-#oauth-status,
-#authed {
+/* App shell / sidebar navigation ------------------------------------ */
+.app-shell {
width: 100%;
- max-width: 760px;
+ min-height: 100vh;
+ display: grid;
+ grid-template-columns: 220px 1fr;
+}
+
+.sidebar {
+ position: sticky;
+ top: 0;
+ align-self: start;
+ height: 100vh;
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ background: var(--panel);
+ border-right: 1px solid var(--panel-border);
+ padding: 1.25rem 1rem;
+ overflow-y: auto;
+}
+
+.sidebar-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 0.5rem;
+}
+
+.sidebar-title {
+ font-family: "Orbitron", sans-serif;
+ font-size: 0.95rem;
+ letter-spacing: 0.04em;
+ color: var(--accent);
+}
+
+.sidebar-close {
+ display: none;
+ width: auto;
+ padding: 0.3rem 0.55rem;
+}
+
+.sidebar-user {
+ margin: 0;
+ font-size: 0.85rem;
+ color: var(--text-dim);
+}
+
+.sidebar-nav {
+ display: flex;
+ flex-direction: column;
+ gap: 0.35rem;
+}
+
+.sidebar-link {
+ display: block;
+ padding: 0.55rem 0.7rem;
+ border-radius: 8px;
+ color: var(--text);
+ font-weight: 600;
+ letter-spacing: 0.01em;
+ border-bottom: none;
+}
+
+.sidebar-link:hover {
+ border-bottom: none;
+ background: rgba(56, 189, 248, 0.1);
+}
+
+.sidebar-link-active,
+.sidebar-link-active:hover {
+ background: linear-gradient(120deg, var(--accent), var(--accent-2));
+ color: #04121f;
+}
+
+.sidebar-logout {
+ margin-top: auto;
+}
+
+.sidebar-backdrop {
+ display: none;
+}
+
+.app-content {
+ min-width: 0;
+ padding: 1.5rem 1.75rem 2.5rem;
+ display: flex;
+ flex-direction: column;
+ gap: 1.25rem;
+}
+
+.topbar {
+ display: none;
+ align-items: center;
+ gap: 0.75rem;
+ padding: 1rem 1.25rem 0;
+}
+
+.nav-toggle {
+ width: auto;
+ padding: 0.5rem 0.75rem;
+}
+
+.topbar-title {
+ font-family: "Orbitron", sans-serif;
+ font-size: 1rem;
+ letter-spacing: 0.03em;
+ color: var(--accent);
+}
+
+.page,
+.page-stack {
+ display: flex;
+ flex-direction: column;
+ gap: 1.25rem;
+ width: 100%;
+ max-width: 1000px;
+}
+
+@media (max-width: 900px) {
+ .app-shell {
+ display: block;
+ min-height: 0;
+ }
+
+ .topbar {
+ display: flex;
+ }
+
+ .app-content {
+ padding: 1rem 1rem 2rem;
+ }
+
+ .sidebar {
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ height: auto;
+ width: 78vw;
+ max-width: 300px;
+ border-right: 1px solid var(--panel-border);
+ box-shadow: 18px 0 48px rgba(0, 0, 0, 0.45);
+ transform: translateX(-100%);
+ transition: transform 0.25s ease;
+ z-index: 40;
+ }
+
+ .sidebar-open {
+ transform: translateX(0);
+ }
+
+ .sidebar-close {
+ display: inline-flex;
+ }
+
+ .sidebar-backdrop {
+ display: block;
+ position: fixed;
+ inset: 0;
+ background: rgba(2, 6, 16, 0.6);
+ z-index: 30;
+ }
}
/* Panels ----------------------------------------------------------- */
@@ -101,7 +269,7 @@ body > h1,
background: var(--panel);
border: 1px solid var(--panel-border);
border-radius: 14px;
- padding: 1.25rem 1.4rem;
+ padding: 1rem 1.15rem;
backdrop-filter: blur(10px);
box-shadow:
0 0 0 1px rgba(0, 0, 0, 0.3),
@@ -308,10 +476,15 @@ input[type="checkbox"] {
/* Responsive — tablet */
/* ================================================================= */
@media (max-width: 640px) {
- body {
+ .center-view {
padding: 1.5rem 0.85rem 3rem;
}
+ .app-content {
+ padding: 0.85rem 0.85rem 2rem;
+ gap: 1rem;
+ }
+
#anonymous,
#required-info,
#preferences,
@@ -346,6 +519,11 @@ input[type="checkbox"] {
width: 100%;
}
+ .nav-toggle,
+ .sidebar-close {
+ width: auto;
+ }
+
#preferences thead th:first-child,
#preferences tbody td:first-child {
white-space: normal;