: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; } }