Files
wg/web/static/app.css
T

87 lines
4.7 KiB
CSS

:root {
--bg-deep: #050508;
--bg-card: rgba(12, 14, 22, 0.9);
--border: rgba(0, 212, 255, 0.15);
--border-bright: rgba(0, 212, 255, 0.4);
--accent: #00d4ff;
--accent-dim: #00a8cc;
--accent-glow: rgba(0, 212, 255, 0.25);
--text: #e8ecf4;
--text-muted: #8b95a8;
--error-bg: rgba(255, 82, 82, 0.12);
--error-border: rgba(255, 82, 82, 0.35);
--error-text: #ff9e9e;
--success-bg: rgba(0, 230, 118, 0.12);
--success-text: #00e676;
--font-mono: 'JetBrains Mono', monospace;
--font-sans: 'Outfit', system-ui, sans-serif;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: var(--font-sans);
background: var(--bg-deep);
color: var(--text);
min-height: 100vh;
}
.bg-pattern {
position: fixed; inset: 0; z-index: 0; pointer-events: none;
background:
linear-gradient(180deg, transparent 0%, rgba(0, 212, 255, 0.02) 50%, transparent 100%),
repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0, 212, 255, 0.03) 2px, rgba(0, 212, 255, 0.03) 4px),
repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(0, 212, 255, 0.03) 2px, rgba(0, 212, 255, 0.03) 4px);
}
.bg-glow {
position: fixed; width: 120%; height: 55vh; top: -10%; left: -10%; z-index: 0; pointer-events: none;
background: radial-gradient(ellipse at 50% 0%, var(--accent-glow) 0%, transparent 55%);
}
.wrap { position: relative; z-index: 1; max-width: 1000px; margin: 0 auto; padding: 1.5rem; }
.card {
background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; padding: 1.5rem; margin-bottom: 1.25rem;
}
h1, .title { font-family: var(--font-mono); color: var(--accent); }
.muted { color: var(--text-muted); }
.btn {
display: inline-block; padding: 0.75rem 1.2rem; font-family: var(--font-mono); font-size: 0.9rem;
color: var(--bg-deep); background: var(--accent); border: 1px solid var(--accent); border-radius: 10px;
text-decoration: none; cursor: pointer;
}
.btn:hover { background: var(--accent-dim); box-shadow: 0 0 20px var(--accent-glow); }
.btn-ghost {
background: transparent; color: var(--accent);
}
.btn-ghost:hover { background: rgba(0, 212, 255, 0.1); }
.btn-danger { background: transparent; color: var(--error-text); border-color: var(--error-border); }
input[type=text], input[type=password], input[type=email], textarea, input[type=file] {
width: 100%; padding: 0.85rem 1rem; color: var(--text); background: rgba(255,255,255,0.04);
border: 1px solid var(--border); border-radius: 10px; outline: none; font-family: var(--font-sans);
}
input:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-glow); }
label { display: block; font-family: var(--font-mono); font-size: 0.8rem; color: var(--text-muted); margin-bottom: 0.45rem; text-transform: uppercase; letter-spacing: 0.04em; }
.form-group { margin-bottom: 1.1rem; }
.alert { padding: 0.9rem 1rem; border-radius: 10px; margin-bottom: 1rem; }
.alert.error { background: var(--error-bg); border: 1px solid var(--error-border); color: var(--error-text); }
.alert.success { background: var(--success-bg); border: 1px solid rgba(0,230,118,0.3); color: var(--success-text); }
.nav { display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; margin-bottom: 1.5rem; }
.nav a { color: var(--accent); text-decoration: none; font-family: var(--font-mono); font-size: 0.9rem; }
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { text-align: left; padding: 0.75rem 0.5rem; border-bottom: 1px solid var(--border); font-size: 0.92rem; vertical-align: top; }
.table th { color: var(--text-muted); font-family: var(--font-mono); font-weight: 500; }
code { font-family: var(--font-mono); color: var(--accent); }
.pager { display: flex; gap: 0.75rem; margin-top: 1rem; align-items: center; }
.login-box {
position: relative; z-index: 1; width: 100%; max-width: 420px; margin: 8vh auto;
background: var(--bg-card); border: 1px solid var(--border); border-radius: 16px; padding: 2.25rem;
}
.center { text-align: center; }
.qr img { border-radius: 12px; border: 1px solid var(--border); }
pre.config {
font-family: var(--font-mono); font-size: 0.8rem; line-height: 1.5; white-space: pre-wrap; word-break: break-all;
background: rgba(0,0,0,0.35); border: 1px solid var(--border); border-radius: 10px; padding: 1rem; max-height: 320px; overflow: auto;
}
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
.stat { padding: 1.2rem; border: 1px solid var(--border); border-radius: 12px; background: rgba(0,0,0,0.25); }
.stat .n { font-family: var(--font-mono); font-size: 1.8rem; color: var(--accent); }
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { transition-duration: 0.01ms !important; }
}