:root {
  --bg: #14120e;
  --bg-2: #1c1914;
  --ink: #f4efe6;
  --muted: #a39b90;
  --line: rgba(244, 239, 230, 0.16);
  --brass: #c4a574;
  --serif: "Newsreader", Georgia, serif;
  --sans: "Outfit", "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 400 16px/1.45 var(--sans);
}
a { color: inherit; }
.top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 22px 6vw;
  border-bottom: 1px solid var(--line);
}
.mark {
  font-family: var(--serif);
  letter-spacing: 0.18em;
  text-decoration: none;
}
.top form { margin: 0; }
.top button, .gate button, .scan-form button {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--line);
  font: 500 12px/1 var(--sans);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 10px 14px;
  cursor: pointer;
}
.gate {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 10vh 6vw;
  max-width: 440px;
}
.kicker {
  margin: 0 0 14px;
  color: var(--brass);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 12px;
}
h1 {
  margin: 0 0 28px;
  font-family: var(--serif);
  font-weight: 400;
  font-size: 64px;
  line-height: 0.95;
}
.gate label, .scan-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.gate input[type="password"] {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font: 400 18px/1.4 var(--sans);
  padding: 8px 0 12px;
}
.gate input:focus { outline: none; border-bottom-color: var(--brass); }
.gate button { margin-top: 22px; align-self: flex-start; background: var(--ink); color: var(--bg); border: 0; }
.err { color: #e0a090; min-height: 1.2em; }
.tools { padding: 48px 6vw 80px; }
.card {
  display: block;
  max-width: 420px;
  margin-top: 18px;
  padding: 28px;
  text-decoration: none;
  background: var(--bg-2);
  border: 1px solid var(--line);
}
.card h2 { margin: 0 0 8px; font-family: var(--serif); font-weight: 400; font-size: 32px; }
.card p { margin: 0; color: var(--muted); }
.scan { padding: 28px 6vw 64px; }
.scan h1 { font-size: 42px; }
.scan-form {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 16px 18px;
  align-items: end;
  margin: 18px 0 22px;
}
.scan-form input, .scan-form select {
  background: var(--bg-2);
  color: var(--ink);
  border: 1px solid var(--line);
  font: 400 14px var(--sans);
  padding: 8px;
}
.slider { grid-column: span 2; }
#status { color: var(--muted); }
#status.error { color: #e0a090; }
.wrap { overflow-x: auto; }
table { border-collapse: collapse; font-family: Consolas, monospace; font-size: 12px; }
th, td { border: 1px solid var(--line); padding: 4px 8px; white-space: nowrap; }
th { background: var(--bg-2); text-align: left; }
td.num { text-align: right; }
#tickers { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 4px; margin-top: 8px; }
#tickers span { background: var(--bg-2); padding: 4px 6px; font-family: Consolas, monospace; font-size: 12px; }
summary { cursor: pointer; color: var(--brass); }
