:root {
  --bg:#0d1418;
  --surface:#141e23;
  --border:#2b393f;
  --text:#e6efed;
  --muted:#a0b3b6;
  --accent:#83e4c1;
  --danger:#ffa6a6;
  --radius:8px;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:var(--bg);
  font-size:14px;
}
* {
  box-sizing:border-box;
}
body {
  margin:0;
}
a {
  color:var(--accent);
}
header {
  min-height:76px;
  padding:20px 4%;
  display:flex;
  align-items:center;
  gap:20px;
  border-bottom:1px solid var(--border);
}
header>a:last-child {
  margin-left:auto;
}
.brand {
  text-decoration:none;
  display:flex;
  gap:12px;
  align-items:center;
  font-weight:700;
  letter-spacing:2px;
  font-size:18px;
}
.badge {
  font-size:11px;
  letter-spacing:1px;
  color:var(--accent);
  border:1px solid var(--border);
  padding:6px 8px;
  border-radius:4px;
}
main {
  max-width:1440px;
  margin:auto;
  padding:32px 4%;
}
.heading,.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.heading {
  margin-bottom:24px;
}
.eyebrow {
  font-size:11px;
  letter-spacing:2px;
  color:var(--accent);
  margin:0 0 12px;
}
h1 {
  font-size:32px;
  letter-spacing:-1px;
  margin:0 0 8px;
}
h2 {
  font-size:18px;
  margin:0 0 12px;
}
h3 {
  font-size:20px;
  margin:0;
}
.muted,small {
  color:var(--muted);
}
p {
  line-height:1.6;
  margin:8px 0;
}
button,input,select {
  font:inherit;
  border:1px solid var(--border);
  border-radius:4px;
  padding:10px 14px;
  background:var(--bg);
  color:var(--text);
}
button {
  cursor:pointer;
  font-weight:600;
}
button:hover:enabled {
  border-color:var(--accent);
  color:var(--accent);
}
button:disabled {
  opacity:.45;
  cursor:not-allowed;
}
button[type=submit],#confirm-action {
  background:var(--accent);
  color:var(--bg);
}
input {
  min-width:0;
  width:100%;
}
label {
  display:block;
  font-size:13px;
  margin-bottom:8px;
}
.input-row {
  display:flex;
  gap:8px;
}
input:focus-visible,button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px;
}
.connection {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:24px;
  margin:20px 0;
  background:var(--surface);
}
#auth-message,#control-message {
  font-size:13px;
  color:var(--muted);
}
.metrics {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin:24px 0;
  border-block:1px solid var(--border);
}
.metrics article {
  padding:24px 16px;
  border-right:1px solid var(--border);
}
.metrics article:first-child {
  padding-left:0;
}
.metrics article:last-child {
  border:0;
}
.metrics strong {
  display:block;
  font-size:28px;
  font-weight:500;
  margin:12px 0;
  font-variant-numeric:tabular-nums;
}
.metrics small {
  display:block;
  font-size:12px;
}
.panel {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:24px;
  margin-bottom:24px;
  min-width:0;
}
.signals {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:16px;
  margin-top:16px;
}
.signal {
  background:var(--bg);
  padding:20px;
  border:1px solid var(--border);
  border-radius:4px;
}
.signal-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.score {
  font-size:32px;
  margin:20px 0 8px;
  font-variant-numeric:tabular-nums;
}
.score small {
  font-size:13px;
}
meter {
  width:100%;
  height:8px;
  margin-bottom:12px;
  accent-color:var(--accent);
}
.empty {
  padding:24px 0;
  color:var(--muted);
  grid-column:1/-1;
}
.notice {
  padding:12px 16px;
  border-left:3px solid var(--accent);
  background:var(--surface);
  line-height:1.6;
}
.notice.error {
  border-color:var(--danger);
}
.table-wrap {
  overflow-x:auto;
}
table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-variant-numeric:tabular-nums;
}
th {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:1px;
  color:var(--muted);
}
th,td {
  padding:16px 12px;
  border-bottom:1px solid var(--border);
  white-space:nowrap;
}
td pre {
  white-space:pre-wrap;
  min-width:220px;
}
.lower-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.controls {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:20px 0;
}
.danger {
  color:var(--danger);
}
details {
  margin-top:16px;
}
summary {
  cursor:pointer;
  color:var(--accent);
  padding:8px 0;
}
pre {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font-size:12px;
  line-height:1.7;
  color:var(--muted);
}
dl {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
dt {
  color:var(--muted);
}
dd {
  margin:0;
  text-align:right;
  overflow-wrap:anywhere;
}
footer {
  display:flex;
  justify-content:space-between;
  gap:16px;
  color:var(--muted);
  font-size:11px;
  letter-spacing:1px;
  padding:12px 0;
}
dialog {
  max-width:480px;
  width:calc(100% - 32px);
  background:var(--surface);
  color:var(--text);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:24px;
}
dialog::backdrop {
  background:#000a;
}
.skip {
  position:absolute;
  top:-100px;
}
.skip:focus {
  top:8px;
  background:var(--bg);
  padding:16px;
  z-index:2;
}
[hidden] {
  display:none!important;
}
@media(max-width:800px) {
  .connection,.lower-grid {
    grid-template-columns:1fr;
    gap:16px;
  }
  .metrics {
    grid-template-columns:1fr 1fr;
  }
  .metrics article:nth-child(2) {
    border:0;
  }
  .metrics article:nth-child(3) {
    padding-left:0;
  }
  .section-heading {
    align-items:flex-start;
    flex-direction:column;
  }
  header .badge {
    display:none;
  }
}
@media(max-width:480px) {
  main {
    padding:24px 16px;
  }
  header {
    padding:16px;
    gap:8px;
  }
  .brand {
    font-size:13px;
    letter-spacing:1px;
  }
  header>a:last-child {
    font-size:12px;
  }
  .heading {
    align-items:flex-start;
    flex-direction:column;
  }
  .panel,.connection {
    padding:16px;
  }
  .metrics strong {
    font-size:22px;
  }
  .input-row {
    flex-wrap:wrap;
  }
  .input-row input {
    flex-basis:100%;
  }
  footer {
    flex-direction:column;
  }
  .signals {
    grid-template-columns:1fr;
  }
}
/* Terminal identity */
.settings-form { display: grid; gap: 12px; align-content: start; }
.settings-form input { margin-top: 8px; }
.settings-form h3 { font-size: 16px; margin-block: 12px; }
:root {
  --bg: #080d0e;
  --surface: #10191a;
  --border: #253334;
  --text: #edf8f3;
  --muted: #9baead;
  --accent: #b3f5bf;
  --radius: 12px;
}
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { background: radial-gradient(ellipse at 85% 0%, #16332966, transparent 45%), var(--bg); }
header { background: #0a1112; position: relative; z-index: 2; padding-inline: 32px; }
.brand { color: var(--text); font-size: 15px; letter-spacing: 2px; }
.brand::first-letter { color: var(--accent); }
.account-nav { margin-left: auto; display: flex; align-items: center; gap: 24px; }
.session-label { color: var(--accent); font-size: 12px; }
.sidebar { width: 220px; position: fixed; top: 77px; bottom: 0; border-right: 1px solid var(--border); padding: 32px 20px; background: #0a1112; display: flex; flex-direction: column; }
.sidebar nav { display: grid; gap: 8px; margin-top: 20px; }
.sidebar nav a { padding: 14px 16px; border-radius: 8px; text-decoration: none; color: var(--muted); }
.sidebar nav a:hover, .sidebar nav .nav-active { background: #b3f5bf10; color: var(--accent); }
.sidebar-foot { margin-top: auto; padding: 20px 8px 0; font-size: 12px; line-height: 1.8; }
.sidebar-foot p { color: var(--muted); margin-block: 20px; }
.dashboard-page main { margin-left: 220px; max-width: 1800px; padding: 40px; }
.heading h1 { font-size: clamp(30px, 3vw, 44px); font-weight: 500; letter-spacing: -1.5px; }
.heading { margin-bottom: 32px; }
.notice { border: 1px solid var(--border); border-radius: 8px; color: var(--muted); font-size: 13px; }
.notice.error { border-color: var(--danger); }
.metrics { border: none; gap: 12px; }
.metrics article, .metrics article:first-child, .metrics article:last-child { padding: 24px; border: 1px solid var(--border); border-radius: var(--radius); background: #10191acc; }
.metrics strong { font-size: clamp(20px, 2vw, 30px); letter-spacing: -1px; overflow-wrap: anywhere; }
.metrics article:first-child { background: #b3f5bf; color: #10241a; }
.metrics article:first-child .muted, .metrics article:first-child small { color: #28503c; }
.panel { background: #10191acc; padding: 28px; }
.panel h2 { font-weight: 500; font-size: 20px; }
button, select, input { border-radius: 7px; }
button { transition: border-color .15s, background .15s; }
#refresh, [data-action="enable"] { background: var(--accent); color: #14241a; border-color: var(--accent); }
#refresh:hover, [data-action="enable"]:hover { background: #cdf9d5; color: #14241a; }
.signal { border-radius: 10px; }
.signal .badge { display: inline-block; }
.empty { border: 1px dashed var(--border); border-radius: 8px; text-align: center; padding: 40px 24px; width: 100%; }
.login-page { min-height: 100vh; }
.login-page header { border: 0; background: transparent; }
.login-page header .badge { margin-left: auto; }
.login-layout { min-height: calc(100vh - 145px); max-width: 1320px; display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: 80px; padding: 48px; }
.login-art h1 { font-size: clamp(36px, 4vw, 60px); line-height: 1.1; font-weight: 500; letter-spacing: -2px; margin-top: 24px; }
.login-art h1 span { color: var(--accent); }
.login-art .muted { margin-top: 24px; font-size: 16px; }
.orbit { width: 300px; height: 260px; position: relative; margin: 28px auto; display: grid; place-items: center; }
.orbit::before, .orbit::after, .orbit-ring { content: ''; position: absolute; border: 1px solid #79b68c55; border-radius: 50%; width: 260px; height: 140px; transform: rotate(-30deg); }
.orbit::after { transform: rotate(40deg); }
.orbit-ring { transform: rotate(90deg); }
.orbit-core { width: 96px; height: 96px; display: grid; place-items: center; font-size: 64px; border: 1px solid #b3f5bf66; border-radius: 24px; color: var(--accent); background: #142d22; box-shadow: 0 0 70px #a4efb21a; transform: rotate(-12deg); }
.orbit-label { position: absolute; border: 1px solid var(--border); background: #121e19; border-radius: 6px; padding: 6px 10px; font-size: 11px; letter-spacing: 1px; color: var(--accent); }
.label-btc { left: 0; top: 65px; }.label-eth { right: 0; top: 40px; }.label-sol { left: 50px; bottom: 20px; }.label-hype { right: 5px; bottom: 50px; }
.art-caption { font-size: 10px; letter-spacing: 2px; color: var(--muted); text-align: center; }.art-caption span { color: var(--accent); margin-inline: 12px; }
.login-card { background: #111b1bee; border: 1px solid #34423c; border-radius: 20px; padding: 40px; box-shadow: 0 24px 100px #0003; }
.login-card h2 { font-size: 32px; letter-spacing: -1px; font-weight: 500; margin: 28px 0 8px; }
.login-card form { margin-top: 32px; }
.login-card input { padding: 14px 16px; background: #0a1212; }
.login-card label { margin-top: 24px; }
.password-field { position: relative; }
.password-field input { padding-right: 70px; }
.password-field button { position: absolute; right: 4px; top: 5px; border: 0; background: transparent; color: var(--muted); font-size: 12px; }
#login-message { min-height: 44px; font-size: 12px; color: var(--muted); padding-top: 8px; }
.primary { width: 100%; padding: 15px 20px; display: flex; justify-content: space-between; }
.login-note { display: flex; gap: 16px; align-items: center; border-top: 1px solid var(--border); margin-top: 28px; padding-top: 20px; font-size: 12px; color: var(--muted); }
.login-note>span { color: var(--accent); font-size: 20px; }
.login-footer { padding: 24px 32px; }
@media(max-width:1100px) {
  .dashboard-page main { padding: 28px; }
  .metrics { grid-template-columns: repeat(2, 1fr); }
  .login-layout { gap: 40px; }
  .login-card { padding: 28px; }
  .lower-grid { grid-template-columns: 1fr; gap: 0; }
}
@media(max-width:800px) {
  .sidebar { position: static; width: auto; padding: 8px 16px; border-right: 0; border-bottom: 1px solid var(--border); }
  .sidebar>.eyebrow, .sidebar-foot { display: none; }
  .sidebar nav { display: flex; overflow-x: auto; margin: 0; white-space: nowrap; gap: 4px; }
  .sidebar nav a { padding: 10px; font-size: 12px; }
  .dashboard-page main { margin-left: 0; padding: 24px 16px; }
  .session-label { display: none; }
  .login-layout { grid-template-columns: 1fr; max-width: 540px; gap: 24px; padding: 32px 24px; }
  .login-art { text-align: center; }
  .login-art h1 { font-size: 36px; }
  .login-art .muted, .orbit, .art-caption { display: none; }
  .login-art .eyebrow { font-size: 9px; }
  .login-card h2 { font-size: 28px; }
}
@media(max-width:480px) {
  header { padding: 20px 16px; }
  .metrics article, .metrics article:first-child, .metrics article:last-child { padding: 16px; }
  .panel { padding: 20px 16px; }
  .login-layout { padding: 24px 16px; }
  .login-card { padding: 24px; }
  .login-footer { padding: 24px 16px; font-size: 9px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } button { transition: none; } }
