﻿:root {
  --bg: #071015;
  --panel: rgba(12, 21, 28, .34);
  --panel2: rgba(17, 31, 39, .42);
  --line: rgba(147, 197, 253, .22);
  --text: #e8f3f8;
  --muted: #91a9b3;
  --good: #24c26a;
  --warn: #eab308;
  --bad: #f43f5e;
  --cyan: #22d3ee;
}
* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  color: var(--text);
  background: var(--bg);
  font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
}
#spread-bg {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: .94;
  z-index: 0;
  pointer-events: none;
}
#bg-price-label {
  position: fixed;
  right: 14px;
  top: 78px;
  transform: translateY(-50%);
  z-index: 3;
  pointer-events: none;
  border: 1px solid rgba(250, 204, 21, .95);
  border-radius: 8px;
  background: #111827;
  color: #facc15;
  padding: 7px 10px;
  font: 700 15px/1 Consolas, "Microsoft YaHei", monospace;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .35);
}
#login-view:not(.hidden) ~ #bg-price-label,
body.admin-page #bg-price-label,
body:has(#login-view:not(.hidden)) #bg-price-label {
  display: none;
}
main { position: relative; z-index: 1; min-height: 100%; padding: 18px; }
.hidden { display: none !important; }
.auth-shell {
  min-height: calc(100vh - 36px);
  display: grid;
  grid-template-columns: minmax(320px, 1.2fr) minmax(320px, 420px);
  gap: 24px;
  align-items: center;
  max-width: 1120px;
  margin: 0 auto;
}
.brand h1 {
  font-size: clamp(40px, 8vw, 82px);
  margin: 12px 0;
  letter-spacing: 0;
}
.brand p { color: var(--muted); font-size: 18px; line-height: 1.8; max-width: 680px; }
.brand-row {
  display: flex;
  align-items: center;
  gap: 14px;
}
.brand-logo {
  width: 70px;
  height: 70px;
  flex: 0 0 auto;
  filter: drop-shadow(0 12px 26px rgba(34, 211, 238, .22));
}
.trading-hero h1 { font-size: clamp(36px, 7vw, 72px); }
.market-console {
  width: min(680px, 100%);
  margin-top: 18px;
  border: 1px solid rgba(34, 211, 238, .36);
  border-radius: 8px;
  background: rgba(3, 8, 12, .62);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .26);
  overflow: hidden;
}
.market-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(147, 197, 253, .16);
  color: #dff8ff;
}
.market-head b { color: #facc15; }
.market-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(100px, 1fr));
  gap: 1px;
  background: rgba(147, 197, 253, .12);
}
.market-grid div {
  padding: 12px;
  background: rgba(7, 16, 21, .88);
}
.market-grid span {
  display: block;
  color: var(--muted);
  font-size: 12px;
}
.market-grid strong {
  display: block;
  margin-top: 7px;
  font: 700 21px/1 Consolas, monospace;
}
.market-grid .up { color: #86efac; }
.market-grid .down { color: #fda4af; }
.capability-grid strong {
  font-size: 19px;
  letter-spacing: .04em;
}
.capability-grid div {
  position: relative;
  overflow: hidden;
}
.capability-grid div::after {
  content: "";
  position: absolute;
  left: -40%;
  top: 0;
  width: 32%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .16), transparent);
  transform: skewX(-18deg);
  animation: tileShine 4.8s ease-in-out infinite;
}
.capability-grid div:nth-child(2)::after { animation-delay: .35s; }
.capability-grid div:nth-child(3)::after { animation-delay: .7s; }
.capability-grid div:nth-child(4)::after { animation-delay: 1.05s; }
.mini-chart {
  height: 96px;
  display: flex;
  align-items: end;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid rgba(147, 197, 253, .14);
}
.mini-chart i {
  position: relative;
  width: 22px;
  border-radius: 4px;
  background: rgba(36, 194, 106, .68);
}
.mini-chart i::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -12px;
  bottom: -12px;
  width: 2px;
  transform: translateX(-50%);
  background: rgba(232, 243, 248, .56);
}
.mini-chart i.red { background: rgba(244, 63, 94, .7); }
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0 14px 14px;
}
.pro-hero {
  position: relative;
  min-height: 720px;
  padding: 28px;
  border: 1px solid rgba(34, 211, 238, .2);
  border-radius: 8px;
  overflow: hidden;
  background:
    linear-gradient(140deg, rgba(2, 8, 13, .84), rgba(5, 20, 25, .58) 48%, rgba(4, 11, 18, .82)),
    radial-gradient(circle at 22% 22%, rgba(34, 211, 238, .18), transparent 32%),
    radial-gradient(circle at 82% 68%, rgba(36, 194, 106, .14), transparent 30%);
  box-shadow: 0 26px 80px rgba(0, 0, 0, .28);
}
.pro-hero::before,
.pro-hero::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.pro-hero::before {
  inset: 0;
  background:
    linear-gradient(115deg, transparent 0 28%, rgba(34, 211, 238, .16) 29%, transparent 30% 62%, rgba(250, 204, 21, .1) 63%, transparent 64%),
    repeating-linear-gradient(0deg, transparent 0 18px, rgba(232, 243, 248, .035) 18px 19px);
  mix-blend-mode: screen;
  animation: heroDataSweep 7.5s linear infinite;
}
.pro-hero::after {
  right: -80px;
  bottom: -90px;
  width: 280px;
  height: 280px;
  border: 1px solid rgba(34, 211, 238, .24);
  border-radius: 50%;
  box-shadow: inset 0 0 44px rgba(34, 211, 238, .12), 0 0 90px rgba(36, 194, 106, .12);
  animation: radarSpin 14s linear infinite;
}
.hero-grid-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .7;
  background-image:
    linear-gradient(rgba(34, 211, 238, .12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(34, 211, 238, .1) 1px, transparent 1px),
    linear-gradient(120deg, transparent 0 68%, rgba(250, 204, 21, .08) 68% 69%, transparent 69%);
  background-size: 42px 42px, 42px 42px, 170px 170px;
  animation: heroGridMove 16s linear infinite;
}
.hero-glow-line {
  position: absolute;
  left: -18%;
  top: 18%;
  width: 136%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(34, 211, 238, .95), rgba(250, 204, 21, .8), transparent);
  box-shadow: 0 0 22px rgba(34, 211, 238, .72);
  transform: rotate(-11deg);
  animation: heroPulseLine 3.8s ease-in-out infinite;
}
.hero-circuit-layer {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.circuit-node {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #22d3ee;
  box-shadow: 0 0 18px rgba(34, 211, 238, .9), 0 0 44px rgba(36, 194, 106, .24);
  animation: nodeBlink 2.2s ease-in-out infinite;
}
.circuit-node.n1 { left: 10%; top: 18%; animation-delay: 0s; }
.circuit-node.n2 { right: 18%; top: 24%; animation-delay: .35s; }
.circuit-node.n3 { left: 26%; bottom: 19%; animation-delay: .7s; }
.circuit-node.n4 { right: 10%; bottom: 33%; animation-delay: 1.05s; }
.circuit-line {
  position: absolute;
  height: 1px;
  transform-origin: left center;
  background: linear-gradient(90deg, transparent, rgba(34, 211, 238, .78), rgba(36, 194, 106, .42), transparent);
  box-shadow: 0 0 16px rgba(34, 211, 238, .42);
  animation: circuitFlow 3.4s ease-in-out infinite;
}
.circuit-line.l1 { left: 11%; top: 19%; width: 62%; transform: rotate(8deg); }
.circuit-line.l2 { left: 26%; bottom: 20%; width: 55%; transform: rotate(-18deg); animation-delay: .6s; }
.circuit-line.l3 { left: 48%; top: 54%; width: 44%; transform: rotate(27deg); animation-delay: 1.1s; }
.ticker-ribbon {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin: -6px 0 22px;
  padding: 8px 0;
  color: #dff8ff;
  font: 700 12px/1 Consolas, "Microsoft YaHei", monospace;
  letter-spacing: 0;
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.ticker-track {
  display: flex;
  width: max-content;
  animation: tickerSlide 16s linear infinite;
}
.ticker-group {
  display: flex;
  gap: 12px;
  padding-right: 12px;
}
.ticker-ribbon span {
  flex: 0 0 auto;
  border: 1px solid rgba(147, 197, 253, .22);
  border-radius: 999px;
  background: rgba(3, 8, 12, .58);
  padding: 7px 12px;
  box-shadow: inset 0 0 18px rgba(34, 211, 238, .08), 0 0 18px rgba(34, 211, 238, .06);
  white-space: nowrap;
}
.pro-brand-row {
  position: relative;
  z-index: 1;
}
.pro-console {
  position: relative;
  z-index: 1;
  isolation: isolate;
  background:
    linear-gradient(180deg, rgba(4, 13, 18, .9), rgba(3, 8, 12, .72)),
    repeating-linear-gradient(90deg, rgba(34, 211, 238, .05) 0 1px, transparent 1px 14px);
  box-shadow:
    0 24px 70px rgba(0, 0, 0, .34),
    0 0 0 1px rgba(34, 211, 238, .12),
    inset 0 0 38px rgba(34, 211, 238, .07);
}
.console-scan {
  position: absolute;
  inset: -35% 0 auto;
  height: 34%;
  z-index: -1;
  background: linear-gradient(180deg, transparent, rgba(34, 211, 238, .12), transparent);
  animation: consoleScan 4.4s ease-in-out infinite;
}
.holo-rings {
  position: absolute;
  right: 18px;
  top: 48px;
  width: 128px;
  height: 128px;
  pointer-events: none;
  opacity: .58;
}
.holo-rings span {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(34, 211, 238, .28);
  border-radius: 50%;
  box-shadow: inset 0 0 22px rgba(34, 211, 238, .08), 0 0 18px rgba(34, 211, 238, .08);
  animation: holoSpin 7s linear infinite;
}
.holo-rings span:nth-child(2) {
  inset: 18px;
  border-color: rgba(250, 204, 21, .26);
  animation-duration: 5.2s;
  animation-direction: reverse;
}
.holo-rings span:nth-child(3) {
  inset: 38px;
  border-color: rgba(36, 194, 106, .28);
  animation-duration: 3.8s;
}
.depth-panel {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 1px;
  background: rgba(147, 197, 253, .12);
  border-top: 1px solid rgba(147, 197, 253, .14);
}
.depth-book {
  display: grid;
  gap: 8px;
  padding: 14px;
  background: rgba(7, 16, 21, .88);
}
.depth-book span {
  position: relative;
  min-height: 24px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 8px;
  border-radius: 4px;
  overflow: hidden;
  color: #fecdd3;
  font: 700 12px/1 Consolas, "Microsoft YaHei", monospace;
}
.depth-book span::before {
  content: "";
  position: absolute;
  inset: 0 0 0 auto;
  width: var(--w);
  background: rgba(244, 63, 94, .18);
  border-left: 2px solid rgba(244, 63, 94, .72);
  z-index: -1;
}
.depth-book .buy {
  color: #bbf7d0;
}
.depth-book .buy::before {
  background: rgba(36, 194, 106, .18);
  border-left-color: rgba(36, 194, 106, .72);
}
.visual-book span::before {
  animation: depthPulse 2.8s ease-in-out infinite;
}
.visual-book span:nth-child(2)::before { animation-delay: .35s; }
.visual-book span:nth-child(3)::before { animation-delay: .7s; }
.visual-book span:nth-child(4)::before { animation-delay: 1.05s; }
.chart-stream {
  position: relative;
  min-height: 126px;
  display: flex;
  align-items: end;
  gap: 10px;
  padding: 14px 16px;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(7, 16, 21, .82), rgba(3, 8, 12, .84)),
    repeating-linear-gradient(0deg, transparent 0 22px, rgba(147, 197, 253, .08) 22px 23px);
}
.chart-stream::before {
  content: "";
  position: absolute;
  left: -35%;
  top: 0;
  width: 35%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(34, 211, 238, .2), transparent);
  animation: chartWave 3.6s linear infinite;
}
.chart-stream span {
  position: relative;
  width: 18px;
  height: var(--h);
  min-height: 22px;
  border-radius: 4px;
  background: rgba(36, 194, 106, .68);
  box-shadow: 0 0 18px rgba(36, 194, 106, .18);
  animation: barDance 1.8s ease-in-out infinite;
  animation-delay: var(--d);
}
.chart-stream span::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -13px;
  bottom: -13px;
  width: 2px;
  transform: translateX(-50%);
  background: rgba(232, 243, 248, .52);
}
.chart-stream span.red {
  background: rgba(244, 63, 94, .7);
  box-shadow: 0 0 18px rgba(244, 63, 94, .18);
}
.execution-flow {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto 1fr auto;
  gap: 9px;
  align-items: center;
  padding: 12px 14px;
  border-top: 1px solid rgba(147, 197, 253, .14);
  background: rgba(3, 8, 12, .48);
}
.execution-flow span {
  border: 1px solid rgba(34, 211, 238, .28);
  border-radius: 999px;
  padding: 7px 10px;
  color: #dff8ff;
  font-size: 12px;
  background: rgba(7, 16, 21, .78);
}
.execution-flow i {
  position: relative;
  height: 2px;
  overflow: hidden;
  background: rgba(147, 197, 253, .18);
}
.execution-flow i::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 -35%;
  width: 35%;
  background: linear-gradient(90deg, transparent, #22d3ee, #facc15, transparent);
  animation: flowPacket 1.8s linear infinite;
}
.execution-flow i:nth-of-type(2)::after { animation-delay: .35s; }
.execution-flow i:nth-of-type(3)::after { animation-delay: .7s; }
.signal-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  border-top: 1px solid rgba(147, 197, 253, .14);
  background: rgba(147, 197, 253, .12);
}
.signal-strip span {
  position: relative;
  padding: 11px 10px;
  background: rgba(4, 11, 16, .78);
  color: #dff8ff;
  font-size: 12px;
  text-align: center;
}
.signal-strip span::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 7px;
  border-radius: 50%;
  background: #24c26a;
  box-shadow: 0 0 12px rgba(36, 194, 106, .82);
}
@keyframes heroGridMove {
  from { background-position: 0 0, 0 0, 0 0; }
  to { background-position: 84px 42px, 84px 42px, 170px 170px; }
}
@keyframes heroPulseLine {
  0%, 100% { opacity: .22; transform: translateY(0) rotate(-11deg); }
  50% { opacity: .75; transform: translateY(28px) rotate(-11deg); }
}
@keyframes tickerSlide {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@keyframes consoleScan {
  0% { transform: translateY(-20%); opacity: 0; }
  35% { opacity: 1; }
  100% { transform: translateY(420%); opacity: 0; }
}
@keyframes heroDataSweep {
  from { background-position: -260px 0, 0 0; }
  to { background-position: 520px 0, 0 80px; }
}
@keyframes radarSpin {
  from { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.06); }
  to { transform: rotate(360deg) scale(1); }
}
@keyframes nodeBlink {
  0%, 100% { opacity: .38; transform: scale(.8); }
  50% { opacity: 1; transform: scale(1.35); }
}
@keyframes circuitFlow {
  0%, 100% { opacity: .16; filter: brightness(1); }
  50% { opacity: .86; filter: brightness(1.55); }
}
@keyframes tileShine {
  0%, 60% { left: -40%; opacity: 0; }
  72% { opacity: .9; }
  100% { left: 118%; opacity: 0; }
}
@keyframes depthPulse {
  0%, 100% { opacity: .42; transform: scaleX(.86); transform-origin: right center; }
  50% { opacity: 1; transform: scaleX(1); transform-origin: right center; }
}
@keyframes chartWave {
  from { left: -35%; }
  to { left: 110%; }
}
@keyframes barDance {
  0%, 100% { transform: scaleY(.82); filter: brightness(.92); }
  50% { transform: scaleY(1.08); filter: brightness(1.25); }
}
@keyframes flowPacket {
  from { left: -35%; }
  to { left: 110%; }
}
@keyframes flowPacketVertical {
  from { top: -35%; }
  to { top: 110%; }
}
@keyframes holoSpin {
  from { transform: rotate(0deg) scale(1); border-style: solid; }
  50% { transform: rotate(180deg) scale(1.08); border-style: dashed; }
  to { transform: rotate(360deg) scale(1); border-style: solid; }
}
.eyebrow { color: var(--cyan); font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.auth-panel, .panel, .card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 20px 54px rgba(0, 0, 0, .18);
  backdrop-filter: blur(2px);
}
.auth-panel { padding: 18px; }
.tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.admin-entry {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  color: var(--muted);
  background: rgba(3, 8, 12, .5);
  font-size: 13px;
  line-height: 1.5;
}
.admin-entry a { color: var(--cyan); text-decoration: none; }
.help-link {
  color: var(--cyan);
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 10px;
  background: rgba(3, 8, 12, .36);
}
.help-link:hover { border-color: rgba(34, 211, 238, .65); }
button {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: rgba(24, 44, 54, .95);
  cursor: pointer;
  padding: 8px 12px;
}
button:hover { border-color: rgba(34, 211, 238, .6); }
button.active, button.primary { background: #0f766e; border-color: rgba(45, 212, 191, .45); font-weight: 700; }
button.good { background: #167546; }
button.danger { background: #9f1239; }
button.compact { min-height: 30px; padding: 5px 9px; }
.wide { width: 100%; margin-top: 14px; }
label { display: block; margin: 12px 0 5px; color: var(--muted); font-size: 13px; }
input {
  width: 100%;
  min-height: 38px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: rgba(3, 8, 12, .8);
  color: var(--text);
  padding: 8px 10px;
}
select {
  width: 100%;
  min-height: 38px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: rgba(3, 8, 12, .8);
  color: var(--text);
  padding: 8px 10px;
}
.msg { color: #fda4af; margin-top: 10px; min-height: 20px; }
.dashboard { max-width: 1480px; margin: 0 auto; }
#client-panel {
  display: flex;
  flex-direction: column;
}
#client-panel > .cards { order: 1; }
#client-panel > .toolbar { order: 2; }
#client-panel > .manual-panel { order: 3; }
#client-panel > .orders-panel { order: 4; }
#client-panel > .signal-panel { order: 5; }
#client-panel > .split { order: 6; }
#client-panel > .logs-panel { order: 7; }
#client-panel > .params-panel { order: 9; }
.topbar, .toolbar, .top-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.topbar { margin-bottom: 12px; }
.topbar h2 { margin: 4px 0 0; }
.toolbar { justify-content: flex-start; background: rgba(0,0,0,.08); border: 1px solid var(--line); border-radius: 8px; padding: 10px; backdrop-filter: blur(2px); }
.manual-panel {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
  padding: 10px;
  border: 1px solid rgba(34, 211, 238, .28);
  border-radius: 8px;
  background: rgba(3, 8, 12, .26);
}
.manual-inputs {
  display: grid;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
  gap: 10px;
  align-items: end;
  flex: 1 1 auto;
}
.manual-buttons { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.manual-inputs label { min-width: 0; margin: 0; }
.manual-buttons button { min-width: 118px; }
.params-panel { margin-top: 12px; margin-bottom: 0; }
.param-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 10px;
}
.param-grid label { margin: 0; }
.param-grid input { margin-top: 5px; }
.param-actions { display: flex; justify-content: flex-end; margin-top: 10px; }
.pill { border: 1px solid var(--line); border-radius: 999px; padding: 6px 10px; }
.pill.good { color: #86efac; border-color: rgba(36, 194, 106, .55); }
.pill.warn { color: #fde68a; border-color: rgba(234, 179, 8, .55); }
.cards {
  margin: 12px 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 10px;
}
.admin-summary { grid-template-columns: repeat(4, minmax(150px, 1fr)); }
.card { padding: 12px; min-height: 82px; background: var(--panel2); }
.card span { display: block; color: var(--muted); font-size: 12px; }
.card strong { display: block; margin-top: 8px; font-size: 22px; font-variant-numeric: tabular-nums; }
.profit-card {
  border-color: rgba(36, 194, 106, .48);
  background: rgba(8, 47, 38, .52);
}
.profit-card strong { font-size: 28px; color: #86efac; }
.signal-panel { margin-bottom: 12px; min-height: 170px; }
.entry-detail {
  border: 1px solid rgba(34, 211, 238, .25);
  border-radius: 8px;
  padding: 10px;
  background: rgba(4, 11, 16, .48);
  color: #dff8ff;
  line-height: 1.6;
  height: 74px;
  overflow: auto;
  scrollbar-width: thin;
}
.entry-blockers {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 9px;
  min-height: 31px;
  max-height: 72px;
  overflow: auto;
  align-content: flex-start;
  scrollbar-width: thin;
}
.entry-blockers span {
  border: 1px solid rgba(234, 179, 8, .42);
  border-radius: 999px;
  padding: 5px 9px;
  color: #fde68a;
  background: rgba(113, 63, 18, .22);
  font-size: 12px;
}
.entry-blockers span.ok {
  border-color: rgba(36, 194, 106, .42);
  color: #86efac;
  background: rgba(8, 47, 38, .28);
}
.software-status-table-wrap table {
  min-width: 1080px;
  border-collapse: separate;
  border-spacing: 0;
}
.software-status-table-wrap th,
.software-status-table-wrap td {
  border-bottom: 1px solid rgba(147, 197, 253, .18);
  border-right: 1px solid rgba(147, 197, 253, .1);
  text-align: center;
  vertical-align: middle;
}
.software-status-table-wrap .merged-cell {
  vertical-align: middle;
  background: rgba(6, 18, 24, .58);
  font-weight: 700;
  color: #eafaff;
}
.software-status-table-wrap .status-total-row td {
  background: rgba(34, 211, 238, .1);
  font-weight: 700;
  color: #f5fdff;
}
.software-status-table-wrap tbody tr + tr td {
  border-top: 1px solid rgba(147, 197, 253, .12);
}
.software-status-table-wrap tbody tr:first-child td:first-child {
  border-top-left-radius: 8px;
}
.software-status-table-wrap tbody tr:first-child td:last-child {
  border-top-right-radius: 8px;
}
.orders-panel { margin-bottom: 12px; }
.orders-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(140px, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}
.orders-summary div {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: rgba(4, 11, 16, .48);
}
.orders-summary span, .order-grid span { color: var(--muted); font-size: 12px; }
.orders-summary strong {
  display: block;
  margin-top: 4px;
  color: #86efac;
  font-size: 22px;
  font-variant-numeric: tabular-nums;
}
.order-list {
  display: grid;
  gap: 8px;
  max-height: 320px;
  overflow: auto;
  color: var(--muted);
}
.order-row {
  border: 1px solid rgba(147, 197, 253, .2);
  border-radius: 8px;
  padding: 10px;
  background: rgba(4, 11, 16, .52);
}
.order-row.holding { border-color: rgba(36, 194, 106, .42); }
.order-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.order-main b { color: var(--text); }
.order-main span { color: #86efac; font-size: 12px; }
.order-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 8px;
}
.order-grid strong {
  display: block;
  margin-top: 3px;
  color: var(--text);
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}
.split { display: grid; grid-template-columns: 1.2fr .8fr; gap: 12px; margin-bottom: 12px; }
.panel { padding: 12px; }
.panel-title { font-weight: 700; margin-bottom: 10px; color: #dff8ff; }
.admin-card { margin-bottom: 12px; }
.license-form {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) 120px minmax(180px, 1.4fr) auto;
  gap: 10px;
  align-items: end;
}
.license-form label { margin: 0 0 5px; }
.table-wrap { overflow: auto; }
table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
}
th, td {
  text-align: left;
  border-bottom: 1px solid var(--line);
  padding: 10px 8px;
  color: var(--text);
}
th { color: var(--muted); font-size: 13px; font-weight: 600; }
.leg { border: 1px solid var(--line); border-radius: 8px; padding: 10px; margin-top: 8px; background: rgba(4, 11, 16, .54); }
.leg b, .leg span, .leg small { display: block; margin-top: 4px; }
.leg small { color: var(--muted); }
.secret-box code {
  display: block;
  white-space: pre-wrap;
  word-break: break-all;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(4, 11, 16, .72);
}
#spread-chart { width: 100%; height: 320px; display: block; background: rgba(3, 8, 12, .76); border-radius: 8px; }
pre { margin: 0; max-height: 240px; overflow: auto; white-space: pre-wrap; color: #cfe7ef; }
@media (max-width: 980px) {
  .auth-shell, .split { grid-template-columns: 1fr; }
  .cards, .admin-summary { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .param-grid { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .order-grid { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
  .license-form { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  main { padding: 8px; }
  #bg-price-label { top: 64px; right: 8px; padding: 6px 8px; font-size: 13px; }
  .auth-shell { min-height: auto; gap: 8px; align-items: start; }
  .pro-hero { min-height: auto; padding: 10px; }
  .pro-hero::after { width: 170px; height: 170px; right: -68px; bottom: -70px; }
  .hero-circuit-layer { opacity: .65; }
  .ticker-ribbon { margin: -3px 0 8px; padding: 5px 0; }
  .ticker-track { animation-duration: 10s; }
  .ticker-group { gap: 8px; padding-right: 8px; }
  .ticker-ribbon span { padding: 5px 9px; font-size: 10px; }
  .pro-console { margin-top: 8px; }
  .market-head { padding: 8px 10px; font-size: 12px; }
  .market-grid div { padding: 8px; }
  .market-grid strong { font-size: 15px; margin-top: 4px; }
  .depth-panel { grid-template-columns: 1fr; }
  .depth-book { padding: 8px; gap: 5px; }
  .depth-book span { min-height: 20px; font-size: 10px; }
  .chart-stream { min-height: 68px; gap: 6px; padding: 8px; }
  .chart-stream span { width: 12px; min-height: 16px; }
  .holo-rings { width: 80px; height: 80px; right: 8px; top: 38px; opacity: .42; }
  .execution-flow { grid-template-columns: repeat(4, 1fr); gap: 5px; padding: 8px; }
  .execution-flow span { padding: 5px 6px; font-size: 10px; text-align: center; }
  .execution-flow i { display: none; }
  /*
  .execution-flow i { height: 16px; width: 2px; margin: 0 auto; }
  .execution-flow i::after {
    inset: -35% 0 auto 0;
    width: 100%;
    height: 35%;
    background: linear-gradient(180deg, transparent, #22d3ee, #facc15, transparent);
    animation-name: flowPacketVertical;
  }
  */
  .signal-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .signal-strip span { padding: 7px 6px; font-size: 11px; }
  .hero-actions { padding: 0 10px 10px; gap: 6px; }
  .hero-actions .help-link { flex: 1 1 calc(50% - 6px); text-align: center; padding: 7px 6px; font-size: 12px; }
  .brand h1 { font-size: 26px; margin: 4px 0; }
  .brand p { font-size: 12px; line-height: 1.45; margin: 5px 0; }
  .brand-row { align-items: flex-start; gap: 9px; }
  .brand-logo { width: 42px; height: 42px; }
  .market-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mini-chart { height: 70px; gap: 8px; padding: 10px; }
  .release-hero { grid-template-columns: 1fr; padding: 12px; }
  .download-nav, .release-actions { width: 100%; }
  .download-btn, .download-nav .help-link { flex: 1 1 100%; text-align: center; }
  .auth-panel, .panel { padding: 9px; }
  .topbar { align-items: flex-start; }
  .topbar h2 { font-size: 17px; }
  .top-actions, .toolbar { width: 100%; }
  .manual-panel { align-items: stretch; flex-direction: column; padding: 7px; gap: 7px; }
  .manual-inputs { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .manual-buttons { width: 100%; gap: 7px; }
  .manual-buttons button { flex: 1 1 calc(50% - 7px); min-width: 0; }
  .toolbar { gap: 6px; padding: 7px; }
  .top-actions button, .toolbar button { flex: 1 1 calc(50% - 6px); min-height: 32px; padding: 6px 8px; font-size: 13px; }
  #client-panel > .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .signal-panel { min-height: 148px; margin-bottom: 8px; }
  .entry-detail { height: 70px; padding: 8px; line-height: 1.45; font-size: 13px; }
  .entry-blockers { min-height: 28px; max-height: 58px; gap: 5px; margin-top: 7px; }
  .entry-blockers span { padding: 4px 7px; font-size: 11px; }
  .admin-summary { grid-template-columns: 1fr; }
  .cards { gap: 6px; margin: 8px 0; }
  .card { min-height: 52px; padding: 7px; }
  .card strong { margin-top: 3px; font-size: 17px; }
  .param-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .orders-summary, .order-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .order-row { padding: 8px; }
  .order-list { max-height: 260px; }
  .param-grid { gap: 7px; }
  label { margin: 7px 0 3px; font-size: 12px; }
  input { min-height: 34px; padding: 6px 8px; }
  .param-actions button { width: 100%; }
  .license-form { grid-template-columns: 1fr; }
  .split { display: contents; }
  .split > .panel:first-child { order: 6; margin-bottom: 8px; }
  .split > .panel:last-child { order: 7; margin-bottom: 8px; }
  .leg { padding: 8px; margin-top: 6px; }
  #spread-chart { height: 240px; }
  pre { max-height: 150px; font-size: 12px; }
  .trade-query-form { grid-template-columns: 1fr; }
  .table-wrap table,
  .table-wrap thead,
  .table-wrap tbody,
  .table-wrap tr,
  .table-wrap th,
  .table-wrap td { display: block; min-width: 0; width: 100%; }
  .table-wrap thead { display: none; }
  .table-wrap tr {
    border: 1px solid var(--line);
    border-radius: 8px;
    margin-bottom: 10px;
    padding: 8px;
    background: rgba(4, 11, 16, .54);
  }
  .table-wrap td {
    border-bottom: 0;
    padding: 6px 4px;
    word-break: break-all;
  }
  .table-wrap td[data-label]::before {
        content: attr(data-label) "：";
    color: var(--muted);
    display: inline-block;
    min-width: 74px;
    margin-right: 6px;
  }
}

.trade-query-form {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 140px auto;
  gap: 10px;
  align-items: end;
}
.trade-query-form label { margin: 0; }
.trade-query-form input { margin-top: 5px; }
.trade-summary { margin: 10px 0; }
.admin-trade-table-wrap { max-height: 420px; overflow: auto; }
.admin-trade-table-wrap table { min-width: 1180px; }
.admin-trade-table-wrap td, .admin-trade-table-wrap th { white-space: nowrap; }

.download-page {
  max-width: 1180px;
  margin: 0 auto;
}
.download-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin: 18px 0 14px;
}
.download-top h1 {
  margin: 4px 0 0;
  font-size: clamp(30px, 6vw, 54px);
}
.download-nav, .release-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.release-hero {
  display: grid;
  grid-template-columns: 1.4fr auto;
  gap: 16px;
  align-items: center;
  padding: 18px;
  margin-bottom: 12px;
}
.release-hero h2 {
  margin: 6px 0;
  font-size: clamp(24px, 4vw, 38px);
}
.release-hero p {
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}
.download-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  margin: 3px;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid rgba(36, 194, 106, .55);
  color: #d1fae5;
  background: rgba(8, 47, 38, .7);
  text-decoration: none;
  font-weight: 700;
}
.download-btn:hover { border-color: rgba(134, 239, 172, .86); }
.release-table td:nth-child(1) strong { color: #facc15; }
.muted { color: var(--muted); }


