/* Shared trade navigation and compact page layout. */
.trade-hub-page .swap-main-fields,.trade-hub-page .swap-quote-details{display:contents}
.pool-simple-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 12px 0 0; font-size: 12px; }
.pool-simple-metrics > div { display: flex; justify-content: space-between; gap: 8px; }.pool-simple-metrics dd { margin: 0; overflow-wrap: anywhere; }
.launch-mode-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 8px 0 16px; }
.launch-mode { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 6px; background: #fff; border: 1px solid var(--jg-border, #dbe5f3); border-radius: 14px; min-width: 0; color: var(--jg-ink, #17233b); }
.launch-mode.is-active { border-color: var(--jg-brand, #0293fe); background: var(--jg-brand-soft, #eaf6ff); }
.launch-mode strong { font-size: 14px; }.launch-mode span { font-size: 10px; color: var(--jg-muted, #64748b); }
.launch-permissions { margin: 12px 0; padding: 12px; border: 1px solid var(--jg-border, #dbe5f3); border-radius: 12px; font-size: 12px; }
.launch-permissions > div { display: flex; justify-content: space-between; padding: 4px 0; }.launch-permissions p { color: var(--jg-muted, #64748b); }
.ln-page [hidden] { display: none !important; }
.swap-surface.swap-mode-compact .swap-hub-grid { display: block; padding: 0; max-width: none; }
.swap-surface.swap-mode-compact .swap-main-section { padding: 0 !important; }
.swap-surface.swap-mode-compact .swap-card { padding: 12px !important; }
.swap-surface.swap-mode-compact .swap-pay-block { padding: 8px 10px !important; }
.swap-surface.swap-mode-compact .swap-quote-summary .swap-quote-row:nth-child(n+3) { display: none; }
.swap-surface .swap-advanced { margin-top: 8px; border-top: 1px solid var(--jg-border, #dbe5f3); }
.swap-surface .swap-advanced-grid { display: grid; gap: 6px; font-size: 12px; }
.swap-surface .swap-advanced-grid > div { display: flex; justify-content: space-between; gap: 16px; }
.swap-surface .swap-advanced-grid strong { text-align: right; overflow-wrap: anywhere; min-width: 0; }
.swap-surface .swap-mev-control { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 12px; font-size: 12px; }
.swap-surface .swap-mev-control p { margin: 0; color: var(--jg-muted, #64748b); font-size: 11px; line-height: 1.6; }
.swap-surface .swap-approval-setting { display: flex; align-items: center; gap: 8px; font-size: 12px; margin-top: 14px; }
.trade-hub-page .trade-tabs { margin-top: 8px; }
.trade-hub-page .swap-card-header { margin-bottom: 8px; min-height: 44px; }
.trade-hub-page .swap-network-field { display: flex; align-items: center; gap: 10px; min-width: 0; }
.trade-hub-page .swap-network-field .swap-label { margin: 0; }
.trade-hub-page .swap-network-trigger { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 10px; border: 1px solid #dbe5f3; border-radius: 10px; color: #17233b; background: #f4f7fc; font-size: 13px; font-weight: 650; white-space: nowrap; }
.trade-hub-page #swap-current-network { display: inline-flex; align-items: center; gap: 7px; }
.trade-hub-page .swap-network-trigger:focus-visible, .trade-hub-page .swap-slippage-edit:focus-visible { outline: 2px solid #2154e8; outline-offset: 2px; }
.trade-hub-page .swap-slippage-edit { color: #2154e8; background: transparent; border: 0; padding: 0 2px; font: inherit; cursor: pointer; }
.trade-hub-page .swap-network-dialog { width: min(380px, calc(100vw - 32px)); max-height: calc(100dvh - 64px); margin: auto; padding: 16px; border: 1px solid #dbe5f3; border-radius: 18px; color: #17233b; background: #fff; box-shadow: 0 20px 70px #0f172a33; overflow-y: auto; overscroll-behavior: contain; }
.trade-hub-page .swap-network-dialog::backdrop { background: #0f172a80; }
.trade-hub-page .swap-network-dialog-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.trade-hub-page .swap-network-dialog-head h3 { font-size: 16px; font-weight: 650; margin: 0; }
.trade-hub-page .swap-network-dialog .swap-chain-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.trade-hub-page .swap-network-dialog .swap-chain-pill { min-height: 48px; justify-content: flex-start; gap: 10px; padding: 10px 12px; }
.trade-hub-page .swap-quote-row-status:has(.swap-quote-status:empty) { display: none; }
.trade-hub-page .swap-quote-row-status { min-height: 0; margin-top: 4px; }
.trade-hub-page .swap-quote-status { font-size: 11px; }
.trade-hub-page .swap-side { gap: 8px; align-items: stretch; }
.trade-hub-page .swap-side-card { flex: none; height: auto; padding: 10px 12px !important; }
.trade-hub-page .swap-recent-list { min-height: 0; gap: 2px; }
.trade-hub-page .swap-recent-item { padding: 6px 8px; }
.trade-hub-page .swap-recent-empty { padding: 4px 0 2px !important; text-align: left; align-items: flex-start; }
.trade-hub-page .swap-recent-empty p { margin: 0; font-size: 12px; line-height: 18px; }
.trade-hub-page .swap-recent-empty-sub { display: block; margin-top: 2px; font-size: 11px; line-height: 16px; color: #7b8ea3; }
.trade-hub-page .swap-side-card-header { margin-bottom: 6px; }
.trade-hub-page .swap-recent-item-status.submitted { color: #b45309; background: #fffbeb; }
.trade-hub-page #swap-route { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; }
.trade-hub-page .swap-quote-row > span:last-child { min-width: 0; }
.trade-hub-page #swap-action-btn { scroll-margin-bottom: calc(90px + env(safe-area-inset-bottom, 0px)); }
html[data-theme="dark"] .trade-hub-page .swap-network-dialog, html[data-theme="dark"] .trade-hub-page .swap-network-trigger { color: #e2e8f0; background: #111827; border-color: #334155; }
.trade-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; max-width: 960px; margin: 16px auto 0; padding: 4px; width: calc(100% - 32px); border: 1px solid #e2e8f0; border-radius: 14px; background: #fff; }
.trade-tab { display: flex; justify-content: center; align-items: center; gap: 7px; min-width: 0; min-height: 44px; padding: 8px 4px; border-radius: 10px; font-size: 13px; font-weight: 650; text-align: center; color: #64748b; text-decoration: none; }
.trade-tab.is-active { color: #2154e8; background: #edf3ff; }
.trade-tab:hover { color: #2154e8; background: #f4f7ff; }
.trade-tab:focus-visible, .trade-disclosure > summary:focus-visible { outline: 2px solid #2154e8; outline-offset: 2px; }
html[data-theme="dark"] .trade-tabs { background: #111827; border-color: #334155; }
html[data-theme="dark"] .trade-tab { color: #cbd5e1; }
html[data-theme="dark"] .trade-tab.is-active, html[data-theme="dark"] .trade-tab:hover { color: #93b4ff; background: #1e293b; }
.trade-disclosure > summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; min-height: 44px; gap: 12px; list-style: none; font-weight: 650; font-size: 13px; }
.trade-disclosure > summary::-webkit-details-marker { display: none; }
.trade-disclosure > summary::after { content: '+'; font-size: 18px; font-weight: 400; color: #64748b; }
.trade-disclosure[open] > summary::after { content: '−'; }
.trade-disclosure[open] > summary { margin-bottom: 10px; }
.trade-page .swap-term-head { max-width: 960px; padding: 14px 16px 0; }
.trade-page .swap-term-title { font-size: 20px; margin-bottom: 8px; }
.trade-page .swap-main-section { width: 100%; padding: 10px 0 20px !important; }
.trade-page .swap-hub-grid { max-width: 960px; padding: 0 16px; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; }
.trade-page .swap-card { width: 100%; max-width: none !important; margin: 0 !important; padding: 14px !important; border-radius: 16px; box-shadow: none; }
.trade-page .swap-panel { margin: 0 !important; max-width: none !important; }
html:not([data-theme="dark"]) .trade-page .swap-panel { background: #fff; border-color: #e2e8f0; box-shadow: 0 2px 8px rgba(15, 23, 42, .04); }
html:not([data-theme="dark"]) .trade-page .swap-token-input { background: #f4f7fc; border-color: #e2e8f0; }
html:not([data-theme="dark"]) .trade-page .mev-shield-box { background: #f0fdf4; border-color: #bbf7d0; }
.trade-page .swap-card-header { margin-bottom: 12px; }
.trade-page #swap-action-btn { position: relative; bottom: auto; z-index: auto; }
.trade-page .swap-pay-block { padding: 10px 12px !important; margin-bottom: 8px; }
.trade-page .swap-row { margin-bottom: 10px; }
.trade-page .swap-pay-label { margin-bottom: 6px; }
.trade-page .swap-pay-meta { margin-top: 6px; gap: 4px; }
.trade-page .swap-quote-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; margin-top: 6px; padding: 8px 10px !important; }
.trade-page .swap-quote-row { flex-wrap: wrap; gap: 4px; font-size: 11px; padding: 2px 0; }
.trade-page .swap-quote-row span:last-child { overflow-wrap: anywhere; }
.trade-page .swap-primary-btn { margin-top: 10px; min-height: 44px; padding: 12px 16px; }
.trade-page .swap-execution-off { margin: 10px 0 0; padding: 8px 10px; border-radius: 10px; background: #fff6e8; color: #8a5a12; font-size: 13px; line-height: 1.5; }
.trade-page[data-swap-execution="off"] #swap-action-btn,
.swap-surface[data-swap-execution="off"] #swap-action-btn { opacity: .72; cursor: not-allowed; }
html:not([data-theme="dark"]) .trade-page .swap-token-btn { color: #17233b !important; background: #edf3ff; border-color: #c8d8ff; }
html:not([data-theme="dark"]) .trade-page .swap-token-btn .swap-token-symbol { color: #17233b !important; }
html:not([data-theme="dark"]) .trade-page .swap-balance,
html:not([data-theme="dark"]) .trade-page .swap-balance span,
html:not([data-theme="dark"]) .trade-page .swap-usd-est { color: #64748b !important; }
.trade-page .swap-side { gap: 8px; }
.trade-page .swap-side-card { padding: 10px 12px; border-radius: 16px; }
.trade-page .swap-side-card.trade-disclosure { padding-top: 2px; padding-bottom: 2px; }
.trade-page .swap-side-card.trade-disclosure[open] { padding-bottom: 10px; }
.trade-page .swap-recent-empty { padding: 6px 2px; }
.trade-page .swap-demo-notice { max-width: 928px; margin: 16px auto 0; padding: 10px 14px; font-size: 11px; }
.trade-page input, .trade-page select, .trade-page textarea { min-width: 0; scroll-margin-bottom: 120px; }
.trade-pool-page code, .trade-pool-page .font-mono { overflow-wrap: anywhere; }
.trade-pool-page .pool-risk-note { font-size: 12px; line-height: 1.6; padding: 10px 12px; border: 1px solid #fcd34d; border-radius: 12px; background: #fffbeb; color: #92400e; margin-bottom: 16px; }
.trade-pool-page .pool-risk-note p { margin: 0; }
.trade-pool-page .pool-risk-note details { margin-top: 2px; }
.trade-pool-page .pool-risk-note summary { min-height: 36px; }
.trade-pool-page .pool-risk-note ul { padding-left: 16px; }
.trade-pool-page .pool-optional { padding-top: 4px; padding-bottom: 4px; }
.trade-pool-page .pool-optional[open] { padding-bottom: 16px; }
@media (max-width: 960px) {
  .trade-page .swap-hub-grid { grid-template-columns: minmax(0, 1fr); }
  .trade-page .swap-demo-notice { margin-left: 12px; margin-right: 12px; }
}
@media (max-width: 1023px) {
  .trade-page .swap-page-grid { display: flex; flex-direction: column; }
  .trade-page .swap-page-right { order: -1; width: 100%; min-width: 0; }
  .trade-page .swap-page-left { width: 100%; min-width: 0; }
  .trade-page .swap-page-left .card > .flex { flex-wrap: wrap; }
  .trade-page .swap-page-left .card > .flex > .flex { flex-wrap: wrap; }
  .trade-page #from-amount, .trade-page #to-amount { width: 0; min-width: 0; }
  .trade-pool-page input, .trade-pool-page select, .trade-pool-page textarea { font-size: 16px; min-height: 44px; max-width: 100%; }
  .trade-pool-page h1 { font-size: 21px; flex-wrap: wrap; }
}
@media (max-width: 430px) {
  .trade-tab { font-size: 12px; gap: 5px; }
  .trade-page .swap-flow { gap: 4px; }
  .trade-page .swap-flow li { font-size: 10px; }
  .trade-page .swap-card { padding: 14px; }
  .trade-page .swap-amount-input { font-size: 26px; }
  .trade-page .swap-token-btn { padding-left: 8px; padding-right: 8px; }
}
/* Full/compact share the canonical top-20 picker; provider readiness remains separate. */
.trade-hub-page .swap-network-trigger { min-width: 0; max-width: 100%; white-space: normal; }
.trade-hub-page #swap-current-network { min-width: 0; text-align: left; line-height: 1.35; }
.trade-hub-page #swap-current-network > .jg-icon { flex-shrink: 0; }
.trade-hub-page .swap-network-dialog { width: min(460px, calc(100vw - 28px)); }
.trade-hub-page .swap-network-dialog-head { position: sticky; top: -16px; background: inherit; z-index: 1; padding: 6px 0 10px; }
.trade-hub-page .swap-network-dialog .swap-chain-pill { min-width: 0; min-height: 62px; padding: 9px 10px; gap: 8px; white-space: normal; text-align: left; }
.trade-hub-page .swap-chain-copy { display: grid; gap: 3px; min-width: 0; }
.trade-hub-page .swap-chain-name { font-size: 12px; line-height: 1.35; overflow-wrap: normal; }
.trade-hub-page .swap-chain-capability { font-size: 10px; line-height: 1.2; color: #64748b; }
.trade-hub-page .swap-chain-pill.active .swap-chain-capability { color: #fff; }
.trade-hub-page .swap-network-capability { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 10px; margin: -3px 0 10px; color: #64748b; font-size: 11px; line-height: 1.5; }
.trade-hub-page .swap-network-capability[hidden] { display: none !important; }
.trade-hub-page .swap-network-capability a { color: #0293fe; }
@media (max-width: 600px) {
  .trade-hub-page .swap-network-field { gap: 6px; max-width: calc(100% - 42px); }
  .trade-hub-page .swap-network-field .swap-label { flex-shrink: 0; }
  .trade-hub-page .swap-network-dialog .swap-chain-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
/* Desktop uses the same input, quote, status and action nodes as the accepted mobile form. */
@media (min-width:1024px) {
  .trade-page .trade-tabs{max-width:1280px;width:calc(100% - 64px);margin-top:22px}
  .trade-hub-page.swap-mode-full .swap-hub-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:18px 24px;max-width:1344px;padding:0 32px;align-items:start}
  .trade-hub-page.swap-mode-full .swap-card{display:contents}
  .trade-hub-page.swap-mode-full .swap-card::before{display:none}
  .trade-hub-page.swap-mode-full .swap-main-fields{display:block;grid-column:1;grid-row:1 / 3;padding:24px;border:1px solid #dbe5f3;border-radius:18px;background:#fff;min-width:0}
  .trade-hub-page.swap-mode-full .swap-quote-details{display:block;grid-column:2;grid-row:1;padding:20px;border:1px solid #dbe5f3;border-radius:18px;background:#fff;min-width:0}
  .trade-hub-page.swap-mode-full .swap-advanced{grid-column:2;grid-row:2;margin:0;padding:18px 20px;border:1px solid #dbe5f3;border-radius:18px;background:#fff;min-width:0}
  .trade-hub-page.swap-mode-full .swap-quote-summary{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:0!important;margin:0;background:transparent;border:0}
  .trade-hub-page.swap-mode-full .swap-quote-row{display:flex;justify-content:space-between;gap:14px;font-size:13px;line-height:1.5;flex-wrap:nowrap}
  .trade-hub-page.swap-mode-full .swap-quote-row-status{margin:0 0 12px}
  .trade-hub-page.swap-mode-full .swap-advanced-grid{gap:12px;font-size:13px;line-height:1.5}
  .trade-hub-page.swap-mode-full #swap-action-btn{grid-column:1;grid-row:3;margin:0;min-height:50px}
  .trade-hub-page.swap-mode-full #swap-loop-status{grid-column:1;grid-row:4}
  .trade-hub-page.swap-mode-full .swap-side{grid-column:2;grid-row:3 / 5;min-width:0;gap:10px;align-self:start}
  .trade-hub-page.swap-mode-full .swap-pay-block{padding:18px!important;margin-bottom:12px;border-radius:14px}
  .trade-hub-page.swap-mode-full .swap-pay-input-row{min-width:0;gap:16px}
  .trade-hub-page.swap-mode-full .swap-amount-input{min-width:0;font-size:32px}
  .trade-hub-page.swap-mode-full .swap-token-btn{flex-shrink:0;max-width:48%}
  .trade-hub-page.swap-mode-full .swap-settings-content,.trade-hub-page.swap-mode-full .swap-token-content{width:min(520px,calc(100% - 64px));max-height:calc(100dvh - 96px);border-radius:20px;margin:auto}
  html[data-theme="dark"] .trade-hub-page.swap-mode-full :is(.swap-main-fields,.swap-quote-details,.swap-advanced){background:#111e2f;border-color:#334155}
}

/* 跨链闪兑 pills: native select overlaid transparently on a logo pill */
.xc-surface { max-width: 480px; margin: 0 auto; }
.xc-pill { position: relative; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.xc-pill .xc-overlay { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; font-size: 16px; }
.xc-ico { display: inline-flex; align-items: center; }
.xc-ico img, .xc-ico svg { width: 20px; height: 20px; border-radius: 50%; }
.xc-card .swap-network-trigger.xc-pill { margin-bottom: 8px; }
.xc-note { font-size: 12px; margin: 4px 0 8px; }
.xc-card .swap-quote-summary { display: block; } .xc-card .swap-quote-row { display: flex; justify-content: space-between; gap: 8px; padding: 4px 0; }
/* Tabs: equal width, one line in every locale */
.trade-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.trade-tab { white-space: nowrap; gap: 5px; padding: 8px 6px; font-size: clamp(11px, 3.3vw, 13px); }
.trade-tab > span { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.trade-tab > i { flex: none; }
@media (max-width: 400px) { .trade-tab > i { display: none; } .trade-tab { padding: 8px 4px; } }
/* Cross-chain network picker trigger (reuses swap-network-dialog) */
.xc-card .xc-chain-trigger { font: inherit; }
.trade-hub-page .xc-network-dialog .swap-chain-pill { min-height: 52px; align-items: center; }
/* Cross-chain execution stays unavailable: the primary control is a grey disabled label, not a connect-wallet action. */
html[data-theme] body .page-content .page-root #bridge-action-btn.swap-primary-btn:disabled {
  background: #e5e7eb !important;
  background-image: none !important;
  color: #64748b !important;
  border: 1px solid #d1d5db !important;
  box-shadow: none !important;
  opacity: 1 !important;
  cursor: not-allowed !important;
  transform: none !important;
}
html[data-theme] body .page-content .page-root #bridge-action-btn.swap-primary-btn:disabled :is(span, i, svg) { color: #64748b !important; }
html[data-theme="dark"] body .page-content .page-root #bridge-action-btn.swap-primary-btn:disabled {
  background: #334155 !important;
  color: #cbd5e1 !important;
  border-color: #475569 !important;
}
html[data-theme="dark"] body .page-content .page-root #bridge-action-btn.swap-primary-btn:disabled :is(span, i, svg) { color: #cbd5e1 !important; }
