:root{
  --bg:#0b0e13; --surface:#12161d; --surface2:#171c25; --fg:#e6eaf0; --muted:#8b95a5;
  --hair:#242b36; --accent:#2fb9a6; --accent-soft:#12302c;
  --buy:#2fa870; --sell:#c4553f; --warn:#c9a227;
  --mono:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace;
  --sans:-apple-system,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:13px}
button{font-family:inherit;font-size:inherit;cursor:pointer;border:1px solid var(--hair);background:transparent;color:var(--fg);border-radius:6px;padding:6px 10px}
button:hover{border-color:var(--accent)}
input{width:100%;background:var(--surface2);border:1px solid var(--hair);border-radius:6px;color:var(--fg);padding:9px 11px;font-family:var(--mono);font-size:13px}
input:focus{outline:none;border-color:var(--accent)}

.top{display:flex;align-items:center;gap:22px;padding:0 16px;height:52px;border-bottom:1px solid var(--hair);background:var(--surface)}
.brand{font-weight:700;letter-spacing:.02em;font-size:15px;color:var(--accent)}
.nav{display:flex;gap:4px}
.nav a{color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:6px}
.nav a.active{color:var(--fg);background:var(--surface2)}
.top-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.lang{display:flex;border:1px solid var(--hair);border-radius:6px;overflow:hidden}
.lang button{border:none;border-radius:0;padding:5px 9px;color:var(--muted);font-size:12px}
.lang button.on{background:var(--surface2);color:var(--fg)}
.connect{background:var(--accent);color:#04120f;border-color:var(--accent);font-weight:600}

.chainbar{display:flex;align-items:center;gap:8px;padding:6px 16px;background:var(--surface2);border-bottom:1px solid var(--hair);color:var(--muted);font-size:12px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--muted)}
.dot.ok{background:var(--buy)}
.dot.bad{background:var(--sell)}
.sep{width:1px;height:12px;background:var(--hair)}

.grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;grid-template-areas:"chart book order" "bottom bottom bottom";gap:10px;padding:10px;max-width:1500px;margin:0 auto}
.panel{background:var(--surface);border:1px solid var(--hair);border-radius:10px;overflow:hidden}
.chart{grid-area:chart;padding-bottom:8px}
.book{grid-area:book;display:flex;flex-direction:column}
.order{grid-area:order;padding:0 12px 12px}
.bottom{grid-area:bottom;padding:0}

.panel-head{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--hair);font-size:12px;color:var(--muted)}
.panel-head select{background:var(--surface2);color:var(--fg);border:1px solid var(--hair);border-radius:6px;padding:5px 8px;font-family:var(--mono)}
.price{font-family:var(--mono);font-size:15px;color:var(--fg);font-weight:600}
.chg{font-family:var(--mono);font-size:12px}
.src{margin-left:auto;font-size:11px}
canvas{display:block;width:100%;padding:0 8px}
.legend{font-family:var(--mono);font-size:11px;color:var(--muted);padding:0 14px 6px}

.cols{display:grid;grid-template-columns:1fr 1fr 1fr;padding:6px 12px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--hair)}
.asks,.bids{display:flex;flex-direction:column;font-family:var(--mono);font-size:11.5px;max-height:190px;overflow:hidden}
.asks{justify-content:flex-end}
.row{display:grid;grid-template-columns:1fr 1fr 1fr;padding:2.5px 12px;position:relative;z-index:1}
.row .bar{position:absolute;inset:0;z-index:-1;opacity:.14}
.asks .row{color:var(--sell)}
.bids .row{color:var(--buy)}
.mid{padding:7px 12px;font-family:var(--mono);font-size:14px;font-weight:600;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);text-align:center}

.tabs,.tabs2{display:flex;gap:2px}
.tabs button{border:none;padding:6px 14px;color:var(--muted);border-radius:6px 6px 0 0}
.tabs button.on{background:var(--surface2);color:var(--fg);font-weight:600}
.tabs button[data-side="buy"].on{color:var(--buy)}
.tabs button[data-side="sell"].on{color:var(--sell)}
.tabs2{padding:8px 10px 0;border-bottom:1px solid var(--hair)}
.tabs2 button{border:none;padding:6px 12px;color:var(--muted)}
.tabs2 button.on{color:var(--fg);border-bottom:2px solid var(--accent);border-radius:0}

.field{display:flex;align-items:center;gap:10px;margin-top:10px}
.field label{width:64px;color:var(--muted);font-size:12px;flex:none}
.seg{display:flex;gap:6px}
.seg button{font-size:12px;padding:4px 10px;color:var(--muted)}
.seg button.on{color:var(--fg);border-color:var(--accent)}
.pcts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;flex:1}
.pcts button{font-family:var(--mono);font-size:11px;padding:5px 0;color:var(--muted)}

.summary{margin:14px 0 0;padding:10px 0 0;border-top:1px solid var(--hair);font-size:12px}
.summary div{display:flex;justify-content:space-between;padding:3px 0}
.summary dt{color:var(--muted);margin:0}
.summary dd{margin:0;font-family:var(--mono)}
.gasnote{color:var(--warn);font-size:11.5px;line-height:1.55;margin:10px 0}
.submit{width:100%;padding:11px;font-weight:600;font-size:14px;border-radius:8px;background:var(--buy);color:#04120f;border-color:var(--buy)}
.submit.sell{background:var(--sell);border-color:var(--sell);color:#fdf3f1}
.submit:disabled{opacity:.5;cursor:not-allowed}
.err{color:var(--sell);font-size:12px;min-height:16px;margin:8px 0 0;line-height:1.5}

.tw{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:12px;min-width:680px}
th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--hair);white-space:nowrap}
th{font-size:11px;color:var(--muted);font-weight:500}
td{font-family:var(--mono)}
td.buy{color:var(--buy)}td.sell{color:var(--sell)}
td button{padding:3px 8px;font-size:11px}
.empty{color:var(--muted);font-size:12px;padding:18px;margin:0;line-height:1.6}
.hide{display:none}

.foot{padding:12px 16px 24px;color:var(--muted);font-size:11.5px;max-width:1500px;margin:0 auto;line-height:1.6}

@media(max-width:1000px){
  .grid{grid-template-columns:1fr;grid-template-areas:"chart" "book" "order" "bottom"}
  .asks,.bids{max-height:140px}
}

/* 单栏页面（市场 / 上币 / 做市 / 返佣） */
.grid.single{display:flex;flex-direction:column;gap:12px}
.grid.single .panel{grid-area:auto}
.panel.pad{padding:0 14px 16px}
.mt{margin-top:16px;border-top:1px solid var(--hair)}
.note-line{color:var(--muted);font-size:12px;line-height:1.65;margin:10px 0;max-width:70ch}
.summary.wide{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2px 20px}
.summary.wide div{padding:6px 0}
.scan-result{margin-top:14px;font-family:var(--mono);font-size:12px;line-height:1.75;white-space:pre-wrap;color:var(--fg)}
.scan-result .risk-critical{color:var(--sell)}
.scan-result .risk-high{color:var(--warn)}
.scan-result .risk-medium{color:#c9a227}
.scan-result .risk-low{color:var(--muted)}
.scan-result .verdict-pass{color:var(--buy)}
.scan-result .verdict-review{color:var(--warn)}
.scan-result .verdict-block{color:var(--sell)}
.nav a{cursor:pointer}
@media(max-width:1000px){.summary.wide{grid-template-columns:1fr 1fr}}

/* 盘口来源标记：做市商签名流动性 */
.srcdot{display:inline-block;width:5px;height:5px;border-radius:50%;margin-left:5px;vertical-align:middle}
.srcdot.mm{background:var(--accent)}
.srcdot.both{background:linear-gradient(90deg,var(--accent) 50%,var(--muted) 50%)}

/* 上币模块·冷启动做市 */
.panel.pad.mt-panel{margin-top:0}
.panel-head.sub{margin-top:16px;border-top:1px solid var(--hair);color:var(--fg)}
.field.two{display:flex;align-items:flex-end;gap:10px}
.field.two>div{flex:1;display:flex;flex-direction:column;gap:6px}
.field.two .submit{flex:none;width:auto;min-width:120px}
.field.four{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:end}
.field.four>div{display:flex;flex-direction:column;gap:6px}
.field.four label,.field.two label{width:auto;color:var(--muted);font-size:12px}
.field.four input,.field.two input{width:100%}
#mmPairSel{background:var(--surface2);color:var(--fg);border:1px solid var(--hair);border-radius:6px;padding:7px 9px;font-family:var(--mono);width:100%}
.submit.slim{padding:9px 14px;font-size:13px}
.submit.ghost{background:transparent;color:var(--muted);border:1px solid var(--hair)}
.ladder-tbl{width:100%;border-collapse:collapse;margin-top:6px;font-family:var(--mono);font-size:12px}
.ladder-tbl th{text-align:left;padding:4px 8px;color:var(--muted);font-weight:500;border-bottom:1px solid var(--hair)}
.ladder-tbl td{padding:3px 8px}
.ladder-tbl tr.row-ask td{color:var(--sell)}
.ladder-tbl tr.row-bid td{color:var(--buy)}
.ladder-tot{margin-top:10px;font-family:var(--mono);font-size:12px;color:var(--fg)}
@media(max-width:700px){.field.four{grid-template-columns:1fr 1fr}.field.two{flex-wrap:wrap}.field.two .submit{width:100%}}
