/* SilkPeg Terminal Ã¢â‚¬â€ Bloomberg-inspired dark theme */
:root {
  --bg: #0a0a0a; --bg-panel: #111; --bg-panel-hover: #1a1a1a;
  --border: #333; --border-bright: #555;
  --text: #e0e0e0; --text-dim: #888; --text-bright: #fff;
  --amber: #ff631f; --amber-dim: #a64a19;
  --blue: #3b82f6; --red: #ef4444;
  --green: #00ff41; --red: #ff3333; --blue: #4d9fff; --cyan: #00d4ff;
  --hard-black: #000;
  --row-border: #1a1a1a;
  --font-mono: "Cascadia Code","SF Mono","Fira Code",Consolas,"Courier New",monospace;
}

/* ---- Light theme override ---- */
[data-theme="light"] {
  --bg: #f5f5f0; --bg-panel: #fff; --bg-panel-hover: #eaeae0;
  --border: #ccc; --border-bright: #999;
  --text: #1a1a1a; --text-dim: #666; --text-bright: #000;
  --amber: #cc4f15; --amber-dim: #a64a19;
  --blue: #2563eb; --red: #dc2626;
  --green: #16a34a; --red: #dc2626; --blue: #2563eb; --cyan: #0891b2;
  --hard-black: #1a1a1a;
  --row-border: #e0e0d6;
}
[data-theme="light"] .terminal-bar,
[data-theme="light"] .status-bar,
[data-theme="light"] .ticker-tape,
[data-theme="light"] .dash-sidebar { background: var(--bg-panel) !important; }
[data-theme="light"] .login-box input,
[data-theme="light"] .webhook-form input,
[data-theme="light"] .webhook-form select,
[data-theme="light"] .interval-bar select,
[data-theme="light"] .sc-row .expand-btn,
[data-theme="light"] .sc-expanded .detail-cell,
[data-theme="light"] .session-item,
[data-theme="light"] .webhook-item { background: var(--bg) !important; }
[data-theme="light"] .bg-noise { display: none; }

/* Additional light-mode overrides for hardcoded #000 backgrounds */
[data-theme="light"] .dl-btn,
[data-theme="light"] .admin-bar,
[data-theme="light"] .admin-tabs,
[data-theme="light"] .token-gen input,
[data-theme="light"] .token-gen select,
[data-theme="light"] .admin-login-box input,
[data-theme="light"] .seat-select input,
[data-theme="light"] .admin-login-box { background: var(--bg) !important; }
[data-theme="light"] .admin-login-box { background: var(--bg-panel) !important; }
[data-theme="light"] .token-gen input,
[data-theme="light"] .token-gen select,
[data-theme="light"] .admin-login-box input,
[data-theme="light"] .seat-select input { background: var(--bg) !important; }

/* ---- Theme toggle button ---- */
.theme-toggle {
  background: none; border: 1px solid var(--border); color: var(--text-dim);
  cursor: pointer; font-family: var(--font-mono); font-size: 14px;
  padding: 2px 8px; border-radius: 2px; line-height: 1; transition: border-color 0.15s, color 0.15s;
}
.theme-toggle:hover { border-color: var(--amber); color: var(--amber); }

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { background: var(--bg); color: var(--text); font-family: var(--font-mono); font-size: 13px; line-height: 1.5; }
a { color: var(--cyan); text-decoration: none; } a:hover { text-decoration: underline; }

.terminal-bar { display: flex; align-items: center; justify-content: space-between; background: #000; border-bottom: 1px solid var(--amber); padding: 0 16px; height: 36px; font-size: 12px; }
.terminal-bar .brand { color: var(--amber); font-weight: bold; letter-spacing: 1px; }
.terminal-bar .status { color: var(--text-dim); }
.terminal-bar .status .live { color: var(--green); }
.terminal-bar .pulse { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--green); margin-right: 4px; animation: pulse 2s infinite; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }

.login-screen { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; padding: 40px 20px; }
.login-box { background: var(--bg-panel); border: 1px solid var(--border); border-radius: 4px; padding: 40px; width: 100%; max-width: 420px; }
.login-box h1 { color: var(--amber); font-size: 20px; margin-bottom: 4px; letter-spacing: 1px; }
.login-box p { color: var(--text-dim); font-size: 12px; margin-bottom: 24px; }
.login-box label { display: block; color: var(--text-dim); font-size: 11px; margin-bottom: 4px; text-transform: uppercase; letter-spacing: 1px; }
.login-box input[type="text"], .login-box input[type="password"] { width: 100%; background: #000; border: 1px solid var(--border); color: var(--text); font-family: var(--font-mono); font-size: 14px; padding: 10px 12px; border-radius: 2px; margin-bottom: 16px; }
.login-box input:focus { outline: none; border-color: var(--amber); }
.login-box .btn { width: 100%; background: var(--amber); color: #000; border: none; cursor: pointer; font-family: var(--font-mono); font-weight: bold; font-size: 14px; padding: 12px; border-radius: 2px; letter-spacing: 1px; }
.login-box .btn:hover { background: #ff834d; } .login-box .btn:disabled { opacity: 0.5; cursor: not-allowed; }
.login-box .mfa-row { margin-top: 12px; }
.login-box .error { color: var(--red); font-size: 12px; margin-bottom: 12px; min-height: 16px; }
.login-box .warn { color: var(--amber); font-size: 11px; margin-top: 8px; }
.login-box .back-link { display: block; text-align: center; margin-top: 20px; font-size: 12px; }

.dashboard { display: grid; grid-template-rows: 36px 1fr auto; height: 100vh; }
.dashboard-main { display: grid; grid-template-columns: 1fr 340px; gap: 1px; background: var(--border); overflow: hidden; }
.dashboard-left { background: var(--bg); overflow-y: auto; padding: 12px; }
.dashboard-right { background: var(--bg); overflow-y: auto; padding: 12px; }

.panel { background: var(--bg-panel); border: 1px solid var(--border); border-radius: 2px; margin-bottom: 12px; }
.panel-header { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--border); padding: 6px 12px; font-size: 11px; color: var(--amber); text-transform: uppercase; letter-spacing: 1px; }
.panel-body { padding: 12px; }

#deviationChart { width: 100%; height: 240px; display: block; }

.data-grid { width: 100%; border-collapse: collapse; font-size: 12px; }
.data-grid th { text-align: left; color: var(--text-dim); border-bottom: 1px solid var(--border); padding: 6px 8px; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; }
.data-grid td { padding: 6px 8px; border-bottom: 1px solid #1a1a1a; }
.data-grid td.numeric { text-align: right; font-variant-numeric: tabular-nums; }
.data-grid .pos { color: var(--green); } .data-grid .neg { color: var(--red); }

.stat-row { display: flex; gap: 12px; margin-bottom: 12px; }
.stat-card { flex: 1; background: var(--bg-panel); border: 1px solid var(--border); border-radius: 2px; padding: 10px 14px; }
.stat-card .label { font-size: 10px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 1px; }
.stat-card .value { font-size: 22px; font-weight: bold; margin-top: 4px; }
.stat-card .value.pos { color: var(--green); } .stat-card .value.neg { color: var(--red); }
.stat-card .sub { font-size: 10px; color: var(--text-dim); margin-top: 2px; }

.status-bar { display: flex; align-items: center; justify-content: space-between; background: #000; border-top: 1px solid var(--amber); padding: 4px 16px; font-size: 11px; color: var(--text-dim); }
.status-bar .left, .status-bar .right { display: flex; gap: 16px; align-items: center; }
.status-bar .countdown { color: var(--amber); }

.webhook-form { display: flex; flex-direction: column; gap: 8px; }
.webhook-form input, .webhook-form select { background: #000; border: 1px solid var(--border); color: var(--text); font-family: var(--font-mono); font-size: 12px; padding: 8px; border-radius: 2px; }
.webhook-form input:focus, .webhook-form select:focus { outline: none; border-color: var(--amber); }
.webhook-form .btn-small { background: var(--amber); color: #000; border: none; cursor: pointer; font-family: var(--font-mono); font-weight: bold; font-size: 12px; padding: 8px; border-radius: 2px; }
.webhook-form .btn-small:hover { background: #ff834d; }
.webhook-list { margin-top: 12px; }
.webhook-item { display: flex; align-items: center; justify-content: space-between; background: #000; border: 1px solid var(--border); padding: 8px; border-radius: 2px; margin-bottom: 6px; font-size: 11px; }
.webhook-item .url { color: var(--text-dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 200px; }
.webhook-item .del { color: var(--red); cursor: pointer; background: none; border: none; font-family: var(--font-mono); }
.webhook-item .del:hover { text-decoration: underline; }

.mfa-box { text-align: center; }
.mfa-box .secret { color: var(--amber); font-size: 14px; word-break: break-all; margin: 12px 0; }
.mfa-box canvas { margin: 12px auto; }
.mfa-box input { width: 120px; text-align: center; font-size: 18px; letter-spacing: 4px; }

.audit-log { max-height: 200px; overflow-y: auto; }

/* ---- Compact stablecoin list ---- */
.sc-list { }
.sc-row {
  display: flex; align-items: center; gap: 12px;
  background: var(--bg-panel); border: 1px solid var(--border); border-radius: 2px;
  padding: 10px 14px; margin-bottom: 6px; cursor: pointer; transition: border-color 0.15s;
}
.sc-row:hover { border-color: var(--amber-dim); background: var(--bg-panel-hover); }
.sc-row .expand-btn {
  width: 24px; height: 24px; border: 1px solid var(--border); background: #000;
  color: var(--amber); font-size: 14px; cursor: pointer; border-radius: 2px;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.sc-row .expand-btn:hover { border-color: var(--amber); }
.sc-row .pair-name { color: var(--amber); font-weight: bold; min-width: 140px; font-size: 13px; }
.sc-row .pair-flag { font-size: 11px; color: var(--text-dim); min-width: 30px; }
.sc-row .pair-bps { font-size: 16px; font-weight: bold; font-variant-numeric: tabular-nums; min-width: 100px; text-align: right; }
.sc-row .pair-bps.pos { color: var(--green); }
.sc-row .pair-bps.neg { color: var(--red); }
.sc-row .pair-venue { color: var(--text-dim); font-size: 11px; margin-left: auto; }
.sc-row .pair-bid { color: var(--text-bright); font-size: 12px; min-width: 80px; text-align: right; }

/* ---- Expanded chart section ---- */
.sc-expanded {
  background: var(--bg-panel); border: 1px solid var(--amber-dim); border-radius: 2px;
  margin-bottom: 8px; overflow: hidden;
}
.sc-expanded .chart-area { padding: 12px; }
.sc-expanded canvas { width: 100%; height: 160px; display: block; }
.sc-expanded .detail-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; padding: 0 12px 12px;
}
.sc-expanded .detail-cell { background: #000; border: 1px solid var(--border); padding: 8px; border-radius: 2px; }
.sc-expanded .detail-cell .lbl { font-size: 10px; color: var(--text-dim); text-transform: uppercase; }
.sc-expanded .detail-cell .val { font-size: 14px; color: var(--text-bright); margin-top: 2px; }

/* ---- Refresh interval selector ---- */
.interval-bar {
  display: flex; align-items: center; gap: 8px; padding: 8px 12px;
  background: var(--bg-panel); border: 1px solid var(--border); border-radius: 2px; margin-bottom: 12px;
}
.interval-bar label { font-size: 11px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 1px; }
.interval-bar select {
  background: #000; border: 1px solid var(--border); color: var(--text); font-family: var(--font-mono);
  font-size: 12px; padding: 6px 8px; border-radius: 2px;
}
.interval-bar select:focus { outline: none; border-color: var(--amber); }
.interval-bar .locked { color: var(--text-dim); font-size: 11px; }
.interval-bar .account-link { margin-left: auto; color: var(--cyan); font-size: 12px; text-decoration: none; }
.interval-bar .account-link:hover { text-decoration: underline; }

/* ---- BPS reference matrix ---- */
.bps-matrix { font-size: 11px; }
.bps-matrix h3 { color: var(--amber); font-size: 12px; margin: 12px 0 6px; text-transform: uppercase; letter-spacing: 1px; }
.bps-matrix table { width: 100%; border-collapse: collapse; }
.bps-matrix th { text-align: left; color: var(--text-dim); border-bottom: 1px solid var(--border); padding: 4px 6px; font-size: 10px; }
.bps-matrix td { padding: 4px 6px; border-bottom: 1px solid #1a1a1a; vertical-align: top; }
.bps-matrix .pos-col { color: var(--green); }
.bps-matrix .neg-col { color: var(--red); }

/* ---- Slack connect button ---- */
.slack-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: #4A154B; color: #fff; border: none; cursor: pointer;
  font-family: var(--font-mono); font-weight: bold; font-size: 12px;
  padding: 10px 16px; border-radius: 4px;
}
.slack-btn:hover { background: #611f69; }
.slack-btn img { width: 16px; height: 16px; }

/* ---- Account page ---- */
.account-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.account-card { background: var(--bg-panel); border: 1px solid var(--border); border-radius: 2px; padding: 16px; }
.account-card h3 { color: var(--amber); font-size: 12px; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 12px; }
.account-card .row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #1a1a1a; font-size: 12px; }
.account-card .row .lbl { color: var(--text-dim); }
.account-card .row .val { color: var(--text-bright); }
.session-item {
  display: flex; align-items: center; gap: 8px; background: #000;
  border: 1px solid var(--border); padding: 8px; border-radius: 2px; margin-bottom: 6px; font-size: 11px;
}

/* ---- Public nav bar ---- */
.pub-nav { display: flex; align-items: center; justify-content: space-between; background: #000; border-bottom: 1px solid var(--amber); padding: 0 24px; height: 40px; }
.pub-nav .brand { color: var(--amber); font-weight: bold; letter-spacing: 1px; font-size: 14px; }
.pub-nav .links a { color: var(--text-dim); font-size: 12px; margin-left: 16px; text-decoration: none; }
.pub-nav .links a:hover { color: var(--amber); }

/* ---- Public footer ---- */
.pub-footer { text-align: center; padding: 32px 24px; border-top: 1px solid var(--border); font-size: 11px; color: var(--text-dim); }
.pub-footer a { color: var(--text-dim); margin: 0 8px; text-decoration: none; }
.pub-footer a:hover { color: var(--amber); }

/* ---- FAQ accordion ---- */
.faq-page { max-width: 700px; margin: 0 auto; padding: 40px 20px; }
.faq-page h1 { color: var(--amber); font-size: 22px; text-align: center; margin-bottom: 24px; }
.faq-item { background: var(--bg-panel); border: 1px solid var(--border); margin-bottom: 6px; border-radius: 2px; overflow: hidden; }
.faq-q { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; cursor: pointer; font-size: 13px; color: var(--text); }
.faq-q:hover { background: var(--bg-panel-hover); }
.faq-q .icon { color: var(--amber); font-size: 14px; }
.faq-a { display: none; padding: 0 16px 12px; font-size: 12px; color: var(--text-dim); line-height: 1.6; }
.faq-item.open .faq-a { display: block; }
.faq-item.open .faq-q .icon { transform: rotate(45deg); }

/* ---- Contact form ---- */
.contact-page { max-width: 700px; margin: 0 auto; padding: 40px 20px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-form { display: flex; flex-direction: column; gap: 12px; }
.contact-form input, .contact-form textarea { background: #000; border: 1px solid var(--border); color: var(--text); font-family: var(--font-mono); font-size: 13px; padding: 10px 12px; border-radius: 2px; }
.contact-form input:focus, .contact-form textarea:focus { outline: none; border-color: var(--amber); }
.contact-form textarea { min-height: 100px; resize: vertical; }
.contact-form .honeypot { position: absolute; left: -9999px; }
.map-placeholder { background: var(--bg-panel); border: 1px solid var(--border); border-radius: 2px; min-height: 280px; display: flex; align-items: center; justify-content: center; color: var(--text-dim); font-size: 12px; }

/* ---- Integration guide ---- */
.integ-page { max-width: 800px; margin: 0 auto; padding: 40px 20px; }
.integ-page h1 { color: var(--amber); font-size: 20px; margin-bottom: 16px; }
.code-tabs { display: flex; gap: 1px; background: var(--border); margin-bottom: 0; }
.code-tab { background: var(--bg-panel); border: none; color: var(--text-dim); font-family: var(--font-mono); font-size: 11px; padding: 8px 16px; cursor: pointer; }
.code-tab.active { background: var(--bg); color: var(--amber); border-bottom: 2px solid var(--amber); }
.code-block { background: #000; border: 1px solid var(--border); padding: 16px; font-size: 12px; overflow-x: auto; position: relative; display: none; }
.code-block.active { display: block; }
.code-block pre { color: var(--text); white-space: pre-wrap; word-break: break-all; }
.copy-btn { position: absolute; top: 8px; right: 8px; background: var(--amber); color: #000; border: none; font-family: var(--font-mono); font-size: 10px; padding: 4px 8px; cursor: pointer; border-radius: 2px; }
.copy-btn:hover { background: #ff834d; }
.rate-table { width: 100%; border-collapse: collapse; margin-top: 16px; font-size: 12px; }
.rate-table th { text-align: left; color: var(--text-dim); border-bottom: 1px solid var(--border); padding: 6px 8px; font-size: 10px; text-transform: uppercase; }
.rate-table td { padding: 6px 8px; border-bottom: 1px solid #1a1a1a; }
.setup-steps { list-style: none; counter-reset: step; margin: 16px 0; }
.setup-steps li { counter-increment: step; padding: 8px 0 8px 32px; position: relative; font-size: 12px; color: var(--text); }
.setup-steps li::before { content: counter(step); position: absolute; left: 0; top: 6px; width: 20px; height: 20px; background: var(--amber); color: #000; border-radius: 50%; font-size: 11px; font-weight: bold; display: flex; align-items: center; justify-content: center; }

/* ---- Quota progress bar ---- */
.quota-bar { background: #000; border: 1px solid var(--border); border-radius: 2px; height: 24px; overflow: hidden; position: relative; margin-top: 8px; }
.quota-fill { height: 100%; background: var(--amber); transition: width 0.3s; }
.quota-text { position: absolute; top: 0; left: 0; right: 0; text-align: center; line-height: 24px; font-size: 11px; color: var(--text-bright); }

/* ---- BPS pill badges ---- */
.bps-pill { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 12px; font-weight: bold; }
.bps-pill.healthy { background: rgba(59,130,246,0.2); color: var(--blue); }
.bps-pill.warning { background: rgba(255,149,0,0.2); color: var(--amber); }
.bps-pill.critical { background: rgba(239,68,68,0.2); color: var(--red); }

/* ---- Security banner ---- */
.sec-banner { background: rgba(59,130,246,0.1); border: 1px solid var(--blue); border-radius: 2px; padding: 8px 12px; font-size: 11px; color: var(--blue); margin-bottom: 16px; }

/* ---- Fingerprint indicator ---- */
.fp-status { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--text-dim); margin-bottom: 16px; }
.fp-status .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--blue); }

.session-item .current { color: var(--green); font-size: 10px; }
.session-item .del-btn {
  margin-left: auto; color: var(--red); cursor: pointer; background: none; border: none;
  font-family: var(--font-mono); font-size: 11px;
}
.session-item .del-btn:hover { text-decoration: underline; }

.audit-entry { padding: 4px 0; border-bottom: 1px solid #1a1a1a; font-size: 11px; display: flex; gap: 8px; }
.audit-entry .ts { color: var(--text-dim); white-space: nowrap; }
.audit-entry .action { color: var(--amber); min-width: 120px; }
.audit-entry .detail { color: var(--text); }

.tabs { display: flex; gap: 1px; background: var(--border); }
.tab { flex: 1; background: var(--bg-panel); border: none; color: var(--text-dim); font-family: var(--font-mono); font-size: 11px; padding: 8px; cursor: pointer; text-transform: uppercase; letter-spacing: 1px; }
.tab.active { background: var(--bg); color: var(--amber); border-bottom: 2px solid var(--amber); }

.toast { position: fixed; bottom: 40px; right: 20px; background: var(--bg-panel); border: 1px solid var(--amber); color: var(--text); padding: 12px 16px; border-radius: 2px; font-size: 12px; z-index: 100; max-width: 400px; animation: slideIn 0.3s ease; }
@keyframes slideIn { from { transform: translateX(100%); } to { transform: translateX(0); } }
.toast.error { border-color: var(--red); } .toast.success { border-color: var(--green); }

@media (max-width: 768px) { .dashboard-main { grid-template-columns: 1fr; } .stat-row { flex-direction: column; } }

/* ============================================================
   LANDING PAGE — editorial typographic minimalism × terminal
   ============================================================ */

/* ---- Editorial font stacks ---- */
:root {
  --serif: Georgia, "Times New Roman", "Iowan Old Style", serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* ---- Minimal fixed top nav ---- */
.lp-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  background: var(--bg); border-bottom: 1px solid var(--border);
  padding: 0 32px; height: 48px;
}
.lp-nav .logo { font-family: var(--sans); font-size: 15px; font-weight: 600; color: var(--text-bright); letter-spacing: -0.02em; }
.lp-nav .logo .peg { color: #ff631f; }
.lp-nav .nav-links { display: flex; align-items: center; gap: 24px; }
.lp-nav .nav-links a { font-family: var(--sans); font-size: 12px; color: var(--text-dim); text-decoration: none; }
.lp-nav .nav-links a:hover { color: #ff631f; }
.lp-nav .nav-links .signin { color: #ff631f; font-weight: 500; }

/* ---- General landing wrappers ---- */
.lp-wrap { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.lp-read { max-width: 680px; margin: 0 auto; padding: 0 32px; }
.lp-hero, .lp-highlights, .lp-features, .lp-pricing, .lp-includes, .pub-footer { position: relative; z-index: 1; }

/* ---- Hero ---- */
.lp-hero {
  min-height: 100vh; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center;
  padding: 80px 32px 96px;
}
.lp-hero .hero-eyebrow {
  font-family: var(--sans); font-size: 11px; color: #ff631f;
  letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 24px;
}
.lp-hero h1 {
  font-family: var(--serif); font-size: clamp(32px, 6vw, 56px); line-height: 1.15;
  color: var(--text-bright); max-width: 720px; margin-bottom: 24px; font-weight: 400;
}
.lp-hero h1 em { color: #ff631f; font-style: normal; }
.lp-hero .hero-sub {
  font-family: var(--serif); font-size: 20px; line-height: 1.6; color: var(--text-dim);
  max-width: 580px; margin-bottom: 40px;
}
.lp-hero .hero-ctas { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }
.lp-hero .cta-primary {
  font-family: var(--sans); font-size: 13px; font-weight: 500; letter-spacing: 0.03em;
  background: #ff631f; color: #000; padding: 12px 32px; border: none; text-decoration: none;
}
.lp-hero .cta-primary:hover { background: #ff834d; text-decoration: none; }
.lp-hero .cta-secondary {
  font-family: var(--sans); font-size: 13px; font-weight: 500; letter-spacing: 0.03em;
  background: transparent; color: var(--text); border: 1px solid var(--border-bright);
  padding: 12px 32px; text-decoration: none;
}
.lp-hero .cta-secondary:hover { border-color: #ff631f; text-decoration: none; }

/* ---- Live feed in hero ---- */
.lp-live-feed {
  margin-top: 56px; background: #000; border: 1px solid var(--border);
  width: 100%; max-width: 420px; padding: 20px; text-align: left; font-family: var(--sans);
}
.lp-live-feed .feed-header {
  display: flex; align-items: center; justify-content: space-between;
  border-bottom: 1px solid var(--border); padding-bottom: 10px; margin-bottom: 10px;
}
.lp-live-feed .feed-title { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: #ff631f; }
.lp-live-feed .feed-pulse { display: flex; align-items: center; gap: 5px; font-size: 10px; color: var(--green); }
.lp-live-feed .feed-pulse .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); animation: pulse 2s infinite; }
.lp-live-feed .feed-row { display: flex; justify-content: space-between; padding: 5px 0; font-size: 12px; }
.lp-live-feed .feed-label { color: var(--text-dim); }
.lp-live-feed .feed-val { color: var(--text-bright); font-variant-numeric: tabular-nums; }

/* ---- Highlights banner ---- */
.lp-highlights {
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
  padding: 96px 32px; text-align: center; background: #000;
}
.lp-highlights .section-eyebrow { font-family: var(--sans); font-size: 11px; color: #ff631f; letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 20px; }
.lp-highlights h2 { font-family: var(--serif); font-size: clamp(24px, 4vw, 36px); color: var(--text-bright); max-width: 600px; margin: 0 auto 16px; font-weight: 400; line-height: 1.3; }
.lp-highlights .hl-sub { font-family: var(--serif); font-size: 18px; color: var(--text-dim); max-width: 480px; margin: 0 auto 48px; line-height: 1.6; }

/* Video / screenshot placeholder */
.lp-video-slot {
  max-width: 800px; margin: 0 auto; aspect-ratio: 16/9; background: var(--bg-panel);
  border: 1px solid var(--border); display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; overflow: hidden;
}
.lp-video-slot .play-btn { width: 56px; height: 56px; border-radius: 50%; background: #ff631f; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.lp-video-slot .play-btn::after { content: ""; width: 0; height: 0; border-left: 16px solid #000; border-top: 10px solid transparent; border-bottom: 10px solid transparent; margin-left: 3px; }
.lp-video-slot .slot-label { font-family: var(--sans); font-size: 11px; color: var(--text-dim); margin-top: 16px; }

/* Highlight tiles strip */
.lp-hl-strip { display: flex; gap: 32px; max-width: 800px; margin: 48px auto 0; flex-wrap: wrap; justify-content: center; }
.lp-hl-tile { flex: 1; min-width: 200px; text-align: left; }
.lp-hl-tile .tile-title { font-family: var(--sans); font-size: 11px; color: #ff631f; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 8px; }
.lp-hl-tile .tile-desc { font-family: var(--serif); font-size: 15px; color: var(--text-dim); line-height: 1.6; }

/* ---- Features ---- */
.lp-features { padding: 96px 32px; }
.lp-features .section-eyebrow { font-family: var(--sans); font-size: 11px; color: #ff631f; letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 16px; text-align: center; }
.lp-features h2 { font-family: var(--serif); font-size: clamp(24px, 4vw, 36px); color: var(--text-bright); text-align: center; font-weight: 400; margin-bottom: 64px; }
.lp-feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 32px; max-width: 1000px; margin: 0 auto; }
.lp-feature-card { padding: 0; }
.lp-feature-card .fc-num { font-family: var(--sans); font-size: 11px; color: #ff631f; letter-spacing: 0.1em; margin-bottom: 12px; }
.lp-feature-card .fc-title { font-family: var(--serif); font-size: 20px; color: var(--text-bright); margin-bottom: 10px; font-weight: 400; }
.lp-feature-card .fc-desc { font-family: var(--serif); font-size: 16px; color: var(--text-dim); line-height: 1.6; }

/* ---- Pricing ---- */
.lp-pricing { border-top: 1px solid var(--border); padding: 96px 32px; background: #000; }
.lp-pricing .section-eyebrow { font-family: var(--sans); font-size: 11px; color: #ff631f; letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 16px; text-align: center; }
.lp-pricing h2 { font-family: var(--serif); font-size: clamp(24px, 4vw, 36px); color: var(--text-bright); text-align: center; font-weight: 400; margin-bottom: 8px; }
.lp-pricing .pricing-sub { font-family: var(--serif); font-size: 16px; color: var(--text-dim); text-align: center; margin-bottom: 64px; }

.lp-pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1px; max-width: 1000px; margin: 0 auto; background: var(--border); border: 1px solid var(--border); }
.lp-price-card { background: var(--bg); padding: 40px 28px; display: flex; flex-direction: column; position: relative; }
.lp-price-card:hover { background: var(--bg-panel); }
.lp-price-card.popular { background: var(--bg-panel); }
.lp-price-card.popular::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: #ff631f; }
.lp-price-card .popular-badge { font-family: var(--sans); font-size: 10px; font-weight: 600; color: #ff631f; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 8px; }
.lp-price-card .tier-name { font-family: var(--sans); font-size: 12px; color: #ff631f; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 6px; }
.lp-price-card .tier-desc { font-family: var(--serif); font-size: 14px; color: var(--text-dim); margin-bottom: 28px; min-height: 40px; line-height: 1.5; }
.lp-price-card .price { font-family: var(--serif); font-size: 36px; color: var(--text-bright); font-weight: 400; }
.lp-price-card .price .currency { font-size: 20px; color: var(--text-dim); }
.lp-price-card .price-period { font-family: var(--sans); font-size: 11px; color: var(--text-dim); margin-top: 2px; margin-bottom: 24px; }
.lp-price-card .tier-quota { border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 12px 0; margin-bottom: 24px; }
.lp-price-card .tier-quota .q-val { font-family: var(--serif); font-size: 22px; color: #ff631f; font-weight: 400; }
.lp-price-card .tier-quota .q-label { font-family: var(--sans); font-size: 10px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.05em; }
.lp-price-card .tier-cta { display: block; text-align: center; font-family: var(--sans); font-size: 12px; font-weight: 500; letter-spacing: 0.03em; background: #ff631f; color: #000; padding: 10px; text-decoration: none; margin-bottom: 28px; }
.lp-price-card .tier-cta:hover { background: #ff834d; text-decoration: none; }
.lp-price-card .tier-cta.outline { background: transparent; color: #ff631f; border: 1px solid #ff631f; }
.lp-price-card .tier-cta.outline:hover { background: rgba(255,99,31,0.08); }
.lp-price-card .tier-features { list-style: none; padding: 0; margin: 0; }
.lp-price-card .tier-features li { font-family: var(--sans); font-size: 12px; color: var(--text-dim); padding: 5px 0 5px 16px; position: relative; line-height: 1.5; }
.lp-price-card .tier-features li::before { content: "—"; position: absolute; left: 0; color: #ff631f; }

/* ---- Author strip (editorial) ---- */
.lp-author { display: flex; align-items: center; gap: 12px; margin-bottom: 48px; }
.lp-author .avatar { width: 32px; height: 32px; border-radius: 50%; background: #ff631f; display: flex; align-items: center; justify-content: center; font-family: var(--sans); font-size: 12px; font-weight: 600; color: #000; }
.lp-author .meta { font-family: var(--sans); font-size: 12px; color: var(--text-dim); }
.lp-author .meta .name { color: var(--text); }

/* ---- Includes strip ---- */
.lp-includes { border-top: 1px solid var(--border); padding: 64px 32px; text-align: center; }
.lp-includes .section-eyebrow { font-family: var(--sans); font-size: 11px; color: #ff631f; letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 32px; }
.lp-includes .inc-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 40px; max-width: 800px; margin: 0 auto; }
.lp-includes .inc-item { font-family: var(--sans); font-size: 12px; color: var(--text-dim); }

/* ---- Responsive ---- */
@media (max-width: 768px) {
  .lp-pricing-grid { grid-template-columns: 1fr; }
  .lp-feature-grid { grid-template-columns: 1fr; }
  .lp-hl-strip { flex-direction: column; }
  .lp-nav .nav-links a:not(.signin) { display: none; }
}


/* ============================================================
   BACKGROUND NOISE — decorative ASCII strings on landing
   ============================================================ */
.bg-noise { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.bg-noise span {
  position: absolute; font-family: var(--font-mono); font-size: 11px; color: #fff;
  opacity: 0; filter: blur(14px) brightness(3%); white-space: nowrap;
  animation: noiseDrift 30s linear infinite, noiseFade 10s ease-in-out infinite;
}
@keyframes noiseDrift { from { transform: translateY(0); } to { transform: translateY(-40px); } }
@keyframes noiseFade { 0%,100% { opacity: 0; } 50% { opacity: 0.06; } }

/* ============================================================
   DASHBOARD — sidebar, ticker tape, sub-tabs
   ============================================================ */
.dash-layout { display: grid; grid-template-columns: auto 1fr; height: 100vh; }
.dash-sidebar { width: 180px; background: #000; border-right: 1px solid var(--border); display: flex; flex-direction: column; padding: 8px 0; transition: width 0.15s; overflow: hidden; }
.dash-sidebar.collapsed { width: 44px; }
.dash-sidebar .sb-header { padding: 0 12px 8px; font-size: 10px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 1px; border-bottom: 1px solid var(--border); height: 36px; display: flex; align-items: center; gap: 8px; }
.dash-sidebar.collapsed .sb-header { font-size: 0; }
.dash-sidebar .sb-item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; font-size: 12px; color: var(--text-dim); cursor: pointer; text-decoration: none; }
.dash-sidebar .sb-item:hover { color: #ff631f; background: rgba(255,99,31,0.05); }
.dash-sidebar .sb-item.active { color: #ff631f; border-left: 2px solid #ff631f; }
.dash-sidebar .sb-icon { font-size: 14px; width: 20px; text-align: center; flex-shrink: 0; }
.dash-sidebar.collapsed .sb-item span:not(.sb-icon) { display: none; }
.dash-sidebar .sb-collapse { margin-top: auto; padding: 10px 12px; font-size: 11px; color: var(--text-dim); cursor: pointer; }
.dash-sidebar.collapsed .sb-collapse span { display: none; }
.dash-main { display: flex; flex-direction: column; overflow: hidden; }

/* ---- Ticker tape ---- */
.ticker-tape { background: #000; border-bottom: 1px solid var(--border); height: 24px; overflow: hidden; display: flex; align-items: center; }
.ticker-tape .tt-track { display: flex; gap: 32px; white-space: nowrap; animation: tickerScroll 60s linear infinite; padding-left: 100%; }
.ticker-tape .tt-item { font-size: 11px; color: var(--text-dim); font-variant-numeric: tabular-nums; }
.ticker-tape .tt-item .tt-pair { color: #ff631f; }
.ticker-tape .tt-item .tt-up { color: var(--green); }
.ticker-tape .tt-item .tt-down { color: var(--red); }
@keyframes tickerScroll { from { transform: translateX(0); } to { transform: translateX(-100%); } }

/* ---- Pair detail sub-tabs ---- */
.pd-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--border); margin-bottom: 8px; }
.pd-tab { background: none; border: none; color: var(--text-dim); font-family: var(--font-mono); font-size: 11px; padding: 6px 14px; cursor: pointer; border-bottom: 2px solid transparent; }
.pd-tab.active { color: #ff631f; border-bottom-color: #ff631f; }
.pd-panel { display: none; } .pd-panel.active { display: block; }
.mock-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.mock-table th { text-align: left; color: var(--text-dim); border-bottom: 1px solid var(--border); padding: 4px 8px; font-size: 10px; text-transform: uppercase; }
.mock-table td { padding: 4px 8px; border-bottom: 1px solid #1a1a1a; font-variant-numeric: tabular-nums; }

/* ---- Right gutter ---- */
.dash-gutter { display: flex; flex-direction: column; gap: 8px; padding: 8px 12px; border-left: 1px solid var(--border); min-width: 200px; }
.iso-clock { font-size: 14px; color: var(--text-bright); font-variant-numeric: tabular-nums; text-align: center; }
.latency-badge { font-size: 11px; color: var(--green); text-align: center; }
.latency-badge .lbl { color: var(--text-dim); }
.dl-btns { display: flex; gap: 8px; }
.dl-btn { font-family: var(--font-mono); font-size: 11px; background: #000; border: 1px solid var(--border); color: var(--text-dim); padding: 4px 10px; cursor: pointer; }
.dl-btn:hover { border-color: #ff631f; color: #ff631f; }


/* ============================================================
   ADMIN PANEL
   ============================================================ */
.admin-bar { display: flex; align-items: center; justify-content: space-between; background: #000; border-bottom: 1px solid #ff631f; padding: 0 24px; height: 40px; }
.admin-bar .brand { color: var(--text-bright); font-weight: bold; letter-spacing: 1px; font-size: 14px; }
.admin-bar .brand .peg { color: #ff631f; }
.admin-bar .status { font-size: 12px; color: var(--text-dim); }
.admin-tabs { display: flex; gap: 0; background: #000; border-bottom: 1px solid var(--border); }
.admin-tab { background: none; border: none; color: var(--text-dim); font-family: var(--font-mono); font-size: 12px; padding: 10px 20px; cursor: pointer; border-bottom: 2px solid transparent; text-transform: uppercase; letter-spacing: 1px; }
.admin-tab.active { color: #ff631f; border-bottom-color: #ff631f; }
.admin-tab:hover { color: var(--text); }
.admin-panel { display: none; padding: 24px; }
.admin-panel.active { display: block; }

.token-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.token-table th { text-align: left; color: var(--text-dim); border-bottom: 1px solid var(--border); padding: 8px; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; }
.token-table td { padding: 8px; border-bottom: 1px solid #1a1a1a; }
.token-table .token-prefix { font-family: var(--font-mono); color: #ff631f; }
.token-table .copy-icon { cursor: pointer; color: var(--text-dim); }
.token-table .copy-icon:hover { color: #ff631f; }
.token-table .revoke-btn { color: var(--red); cursor: pointer; background: none; border: none; font-family: var(--font-mono); font-size: 11px; }
.token-table .revoke-btn:hover { text-decoration: underline; }

.token-gen { display: flex; gap: 12px; margin-bottom: 24px; flex-wrap: wrap; }
.token-gen input, .token-gen select { background: #000; border: 1px solid var(--border); color: var(--text); font-family: var(--font-mono); font-size: 12px; padding: 8px 12px; }
.token-gen input:focus, .token-gen select:focus { outline: none; border-color: #ff631f; }
.token-gen .gen-btn { background: #ff631f; color: #000; border: none; font-family: var(--font-mono); font-weight: bold; font-size: 12px; padding: 8px 16px; cursor: pointer; }

.admin-login { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; }
.admin-login-box { background: var(--bg-panel); border: 1px solid var(--border); padding: 40px; width: 100%; max-width: 420px; }
.admin-login-box h1 { color: #ff631f; font-size: 18px; margin-bottom: 4px; }
.admin-login-box p { color: var(--text-dim); font-size: 12px; margin-bottom: 24px; }
.admin-login-box input { width: 100%; background: #000; border: 1px solid var(--border); color: var(--text); font-family: var(--font-mono); font-size: 14px; padding: 10px 12px; margin-bottom: 16px; }
.admin-login-box input:focus { outline: none; border-color: #ff631f; }
.admin-login-box .btn { width: 100%; background: #ff631f; color: #000; border: none; cursor: pointer; font-family: var(--font-mono); font-weight: bold; font-size: 14px; padding: 12px; }
.admin-login-box .btn:hover { background: #ff834d; }
.admin-login-box .error { color: var(--red); font-size: 12px; margin-bottom: 12px; min-height: 16px; }

.admin-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 24px; }
.admin-stat { background: var(--bg-panel); border: 1px solid var(--border); padding: 16px; }
.admin-stat .label { font-size: 10px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 1px; }
.admin-stat .value { font-size: 22px; font-weight: bold; margin-top: 4px; color: var(--text-bright); }
.admin-stat .value.orange { color: #ff631f; }

@media (max-width: 768px) { .admin-stats { grid-template-columns: repeat(2,1fr); } .dash-sidebar { width: 44px; } .dash-sidebar .sb-item span:not(.sb-icon) { display: none; } }

/* ---- Seat quantity selector on pricing cards ---- */
.seat-select { display: flex; align-items: center; gap: 8px; margin: 16px 0; font-family: var(--sans); }
.seat-select label { font-size: 11px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.05em; }
.seat-select input { width: 50px; background: #000; border: 1px solid var(--border); color: var(--text-bright); font-family: var(--sans); font-size: 14px; padding: 6px 8px; text-align: center; }
.seat-select input:focus { outline: none; border-color: #ff631f; }
.seat-select .seat-total { margin-left: auto; font-size: 13px; color: #ff631f; font-weight: 600; }


