:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, sans-serif; background: #07130f; color: #eefaf4; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 80% 0, #123c2b 0, transparent 35%), #07130f; }
header { display: flex; justify-content: space-between; align-items: center; max-width: 980px; margin: auto; padding: 28px 24px; }
.brand { font-weight: 800; letter-spacing: -.04em; font-size: 22px; }
.brand span { color: #2ee584; }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.login-card { width: min(100%, 420px); }
.dashboard { width: min(100% - 48px, 900px); margin: 36px auto 80px; }
.monitor-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 20px; }
.metric { padding: 18px; border: 1px solid #214333; border-radius: 14px; background: rgba(12, 31, 23, .75); }
.metric span { display: block; color: #73a88f; font-size: 12px; margin-bottom: 8px; }
.metric strong { font-size: 15px; overflow-wrap: anywhere; }
.qr-card { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 20px; }
.qr-card[hidden] { display: none; }
.qr-card img { width: min(100%, 320px); height: auto; border-radius: 14px; background: #fff; }
.hero { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.eyebrow { text-transform: uppercase; color: #73b596; letter-spacing: .16em; font-size: 12px; font-weight: 700; }
h1 { margin: 4px 0 0; font-size: clamp(34px, 6vw, 58px); letter-spacing: -.055em; }
h2 { margin-top: 0; font-size: 24px; }
.card { padding: 28px; border: 1px solid #214333; border-radius: 18px; background: rgba(12, 31, 23, .88); box-shadow: 0 24px 70px rgba(0,0,0,.3); }
.muted { color: #9bb4a7; line-height: 1.55; }
form { display: grid; gap: 18px; }
label { display: grid; gap: 8px; color: #c8ddd2; font-size: 14px; font-weight: 650; }
input, textarea { width: 100%; border: 1px solid #315847; border-radius: 10px; background: #081b13; color: #fff; padding: 13px 14px; font: inherit; outline: none; }
input:focus, textarea:focus { border-color: #2ee584; box-shadow: 0 0 0 3px rgba(46,229,132,.12); }
button { border: 0; border-radius: 10px; background: #2ee584; color: #042014; padding: 13px 18px; font: inherit; font-weight: 800; cursor: pointer; }
button:hover { filter: brightness(1.08); }
button:disabled { opacity: .45; cursor: not-allowed; }
button.secondary { background: transparent; color: #c8ddd2; border: 1px solid #315847; padding: 9px 14px; }
.status { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #5a4432; border-radius: 999px; padding: 9px 13px; color: #d8b493; font: 700 12px/1 ui-monospace, monospace; }
.status i { width: 8px; height: 8px; border-radius: 50%; background: #c17d44; }
.status.connected { border-color: #246b49; color: #65e9a3; }
.status.connected i { background: #2ee584; box-shadow: 0 0 12px #2ee584; }
.alert { border-radius: 10px; padding: 12px 14px; margin: 16px 0; font-size: 14px; }
.alert.error { background: #3a1618; color: #ffb8bc; }
.alert.success { background: #103c29; color: #80efb2; }
code { color: #71e9a8; }
@media (max-width: 700px) { .hero, .qr-card { align-items: start; flex-direction: column; } .monitor-grid { grid-template-columns: repeat(2, 1fr); } .dashboard { width: min(100% - 28px, 900px); } .card { padding: 22px; } }
