        /* ============ 基础 ============ */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box
        }

        :root {
            --bg0: #0a0c0f;
            --bg1: #10131a;
            --bg2: #171c25;
            --bg3: #1e2430;
            --line: #1f2632;
            --line2: #2b3444;
            --txt: #e9edf3;
            --txt2: #98a2b3;
            --txt3: #5b6675;
            --gold: #e8b04b;
            --gold2: #f5c76e;
            --up: #2dbd85;
            --dn: #e25565;
            --upbg: rgba(45, 189, 133, .12);
            --dnbg: rgba(226, 85, 101, .12);
        }

        html {
            scroll-behavior: smooth
        }

        body {
            background: var(--bg0);
            color: var(--txt);
            font-family: 'Space Grotesk', 'Noto Sans SC', sans-serif;
            font-size: 14px;
            -webkit-font-smoothing: antialiased
        }

        .mono {
            font-family: 'JetBrains Mono', monospace;
            font-variant-numeric: tabular-nums
        }

        button {
            font: inherit;
            color: inherit;
            background: none;
            border: 0;
            cursor: pointer
        }

        input {
            font: inherit;
            color: inherit;
            outline: none;
            background: none;
            border: 0
        }

        input::placeholder {
            color: var(--txt3)
        }

        ::-webkit-scrollbar {
            width: 6px;
            height: 6px
        }

        ::-webkit-scrollbar-track {
            background: transparent
        }

        ::-webkit-scrollbar-thumb {
            background: #2a3342;
            border-radius: 3px
        }

        ::-webkit-scrollbar-thumb:hover {
            background: #394356
        }

        :focus-visible {
            outline: 1px solid var(--gold);
            outline-offset: 2px
        }

        .f-box :focus-visible,
        .m-in :focus-visible {
            outline: none
        }

        .up {
            color: var(--up)
        }

        .dn {
            color: var(--dn)
        }

        .dim {
            color: var(--txt2)
        }

        svg.lucide {
            width: 16px;
            height: 16px;
            flex: none
        }

        @keyframes flu {
            0% {
                background: rgba(45, 189, 133, .30)
            }

            100% {
                background: transparent
            }
        }

        @keyframes fld {
            0% {
                background: rgba(226, 85, 101, .30)
            }

            100% {
                background: transparent
            }
        }

        .fl-u {
            animation: flu .8s
        }

        .fl-d {
            animation: fld .8s
        }

        @keyframes rise {
            from {
                opacity: 0;
                transform: translateY(8px)
            }

            to {
                opacity: 1;
                transform: none
            }
        }
        /* ============ 顶栏 ============ */
        .topbar {
            height: 56px;
            display: flex;
            align-items: center;
            gap: 24px;
            padding: 0 20px;
            background: var(--bg1);
            border-bottom: 1px solid var(--line);
            position: sticky;
            top: 0;
            z-index: 60
        }

        .brand {
            display: flex;
            align-items: center;
            gap: 11px;
            flex: none;
            text-decoration: none;
            color: inherit
        }

        .brand-txt b {
            display: block;
            font-size: 16px;
            font-weight: 700;
            letter-spacing: .16em
        }

        .brand-txt small {
            display: block;
            font-size: 9.5px;
            color: var(--txt2);
            letter-spacing: .34em;
            margin-top: 1px
        }

        .mainnav {
            display: flex;
            gap: 2px;
            height: 56px
        }

        .nav-it {
            position: relative;
            padding: 0 13px;
            display: flex;
            align-items: center;
            font-size: 13.5px;
            color: var(--txt2);
            transition: color .15s
        }

        .nav-it:hover {
            color: var(--txt)
        }

        .nav-it.on {
            color: var(--gold)
        }

        .nav-it.on::after {
            content: '';
            position: absolute;
            left: 13px;
            right: 13px;
            bottom: 0;
            height: 2px;
            background: var(--gold)
        }

        .cmd-trigger {
            display: flex;
            align-items: center;
            gap: 9px;
            background: var(--bg2);
            border: 1px solid var(--line);
            border-radius: 8px;
            padding: 0 11px;
            height: 34px;
            width: 252px;
            color: var(--txt3);
            transition: .15s;
            text-align: left
        }

        .cmd-trigger:hover {
            border-color: var(--gold);
            color: var(--txt2)
        }

        .cmd-trigger .cmd-ph {
            flex: 1;
            font-size: 12.5px;
            white-space: nowrap;
            overflow: hidden
        }

        .cmd-kbd {
            font-size: 10px;
            border: 1px solid var(--line2);
            border-radius: 5px;
            padding: 2px 7px;
            color: var(--txt3);
            letter-spacing: .05em;
            flex: none
        }

        .topright {
            margin-left: auto;
            display: flex;
            align-items: center;
            gap: 14px
        }

        .iconbtn {
            position: relative;
            width: 34px;
            height: 34px;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--txt2)
        }

        .iconbtn:hover {
            background: var(--bg2);
            color: var(--txt)
        }

        .iconbtn .badge {
            position: absolute;
            top: 3px;
            right: 2px;
            min-width: 15px;
            height: 15px;
            border-radius: 8px;
            background: var(--dn);
            color: #fff;
            font-size: 9px;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0 3px;
            font-weight: 600
        }

        .walletchip {
            display: flex;
            align-items: center;
            gap: 7px;
            font-size: 12.5px;
            color: var(--txt2);
            padding: 7px 11px;
            border-radius: 8px;
            border: 1px solid var(--line)
        }

        .walletchip:hover {
            border-color: var(--line2);
            color: var(--txt)
        }

        .wc-ch {
            color: var(--txt3)
        }

        .btn-ghost {
            padding: 8px 16px;
            border-radius: 8px;
            border: 1px solid var(--line2);
            font-size: 13px;
            color: var(--txt);
            transition: .15s
        }

        .btn-ghost:hover {
            border-color: var(--gold);
            color: var(--gold2)
        }

        .btn-solid {
            padding: 8px 18px;
            border-radius: 8px;
            background: var(--gold);
            color: #141005;
            font-weight: 600;
            font-size: 13px;
            transition: .15s
        }

        .btn-solid:hover {
            background: var(--gold2)
        }

        .langbtn {
            font-size: 12px;
            color: var(--txt2);
            padding: 7px 9px;
            border-radius: 6px
        }

        .langbtn:hover {
            background: var(--bg2);
            color: var(--txt)
        }

        /* ============ 下拉通用 ============ */
        .dropzone {
            position: relative
        }

        .uc-drop {
            position: absolute;
            right: 0;
            top: calc(100% + 10px);
            background: var(--bg2);
            border: 1px solid var(--line2);
            border-radius: 11px;
            min-width: 200px;
            padding: 6px;
            display: none;
            box-shadow: 0 14px 40px rgba(0, 0, 0, .5);
            z-index: 70
        }

        .dropzone.open .uc-drop {
            display: block;
            animation: rise .2s
        }

        .uc-drop-head {
            padding: 10px 12px 8px;
            border-bottom: 1px solid var(--line);
            margin-bottom: 5px
        }

        .uc-drop-head b {
            display: block;
            font-size: 12.5px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            max-width: 180px
        }

        .uc-drop-head span {
            display: block;
            font-size: 10.5px;
            color: var(--txt3);
            margin-top: 3px
        }

        .uc-drop button {
            display: flex;
            gap: 10px;
            align-items: center;
            width: 100%;
            padding: 9px 12px;
            border-radius: 7px;
            font-size: 13px;
            color: var(--txt2)
        }

        .uc-drop button:hover {
            background: var(--bg3);
            color: var(--txt)
        }

        /* 金色实心按钮在下拉内保持自身配色 */
        .uc-drop button.btn-solid {
            color: #141005
        }

        .uc-drop button.btn-solid:hover {
            background: var(--gold2);
            color: #141005
        }

        .userzone .uc-drop {
            min-width: 200px
        }

        /* ---- 通知中心下拉 ---- */
        .ntf-drop {
            width: 352px;
            max-width: calc(100vw - 32px);
            padding: 0;
            flex-direction: column
        }

        .dropzone.open .ntf-drop {
            display: flex
        }

        .ntf-head {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 13px 15px;
            border-bottom: 1px solid var(--line);
            flex: none
        }

        .ntf-head b {
            font-size: 13px
        }

        .ntf-head .cnt {
            font-size: 10.5px;
            color: var(--gold);
            margin-left: 8px
        }

        .ntf-head button {
            font-size: 11px;
            color: var(--txt3);
            width: auto;
            padding: 4px 8px;
            display: inline-flex
        }

        .ntf-head button:hover {
            color: var(--gold)
        }

        .ntf-list {
            max-height: 344px;
            overflow-y: auto
        }

        .ntf-item {
            display: flex;
            gap: 12px;
            padding: 12px 15px;
            border-bottom: 1px solid var(--line);
            cursor: pointer
        }

        .ntf-item:last-child {
            border-bottom: 0
        }

        .ntf-item:hover {
            background: var(--bg3)
        }

        .ntf-ic {
            width: 27px;
            height: 27px;
            border-radius: 8px;
            flex: none;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-top: 2px
        }

        .ntf-ic.t-sys {
            color: var(--gold);
            background: rgba(232, 176, 75, .12)
        }

        .ntf-ic.t-trade {
            color: var(--up);
            background: var(--upbg)
        }

        .ntf-ic.t-fund {
            color: #56b4d3;
            background: rgba(86, 180, 211, .12)
        }

        .ntf-body {
            flex: 1;
            min-width: 0
        }

        .ntf-body b {
            display: block;
            font-size: 12.5px;
            font-weight: 600
        }

        .ntf-body p {
            font-size: 11px;
            color: var(--txt3);
            margin-top: 4px;
            line-height: 1.55
        }

        .ntf-meta {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 10px;
            color: var(--txt3);
            margin-top: 6px
        }

        .ndot {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: var(--gold);
            flex: none
        }

        .ntf-empty {
            padding: 40px 20px;
            text-align: center;
            font-size: 12px;
            color: var(--txt3)
        }

        /* ---- 钱包速览下拉 ---- */
        .wallet-drop {
            width: 304px;
            max-width: calc(100vw - 32px);
            padding: 0;
            flex-direction: column
        }

        .dropzone.open .wallet-drop {
            display: flex
        }

        .wd-top {
            padding: 15px 15px 13px;
            display: flex;
            justify-content: space-between;
            align-items: flex-end;
            flex: none
        }

        .wd-top .lab {
            display: block;
            font-size: 10.5px;
            color: var(--txt3);
            margin-bottom: 5px
        }

        .wd-top b {
            font-size: 19px;
            font-weight: 600
        }

        .wd-pnl {
            font-size: 11.5px;
            text-align: right
        }

        .wd-pnl span {
            display: block;
            font-size: 10px;
            color: var(--txt3);
            margin-bottom: 3px
        }

        .wd-list {
            max-height: 196px;
            overflow-y: auto;
            border-top: 1px solid var(--line)
        }

        .wd-row {
            display: flex;
            align-items: center;
            gap: 11px;
            padding: 9px 15px;
            border-bottom: 1px solid var(--line)
        }

        .wd-row:last-child {
            border-bottom: 0
        }

        .wd-row:hover {
            background: var(--bg3)
        }

        .coin-av {
            width: 26px;
            height: 26px;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 11px;
            font-weight: 700;
            flex: none
        }

        .wd-b {
            flex: 1;
            min-width: 0
        }

        .wd-b b {
            display: block;
            font-size: 12px
        }

        .wd-b span {
            display: block;
            font-size: 10px;
            color: var(--txt3);
            margin-top: 1px
        }

        .wd-v {
            text-align: right
        }

        .wd-v b {
            display: block;
            font-size: 12px;
            font-weight: 500
        }

        .wd-v span {
            display: block;
            font-size: 10px;
            color: var(--txt3);
            margin-top: 1px
        }

        .wd-actions {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 7px;
            padding: 12px 13px;
            border-top: 1px solid var(--line);
            flex: none
        }

        .wd-actions button {
            border: 1px solid var(--line2);
            border-radius: 7px;
            padding: 7px 0;
            font-size: 11.5px;
            color: var(--txt2);
            width: auto;
            display: inline-flex;
            justify-content: center
        }

        .wd-actions button:hover {
            border-color: var(--gold);
            color: var(--gold)
        }

        .wd-login {
            padding: 22px 16px;
            text-align: center;
            font-size: 12px;
            color: var(--txt3);
            line-height: 1.8
        }

        .wd-login button {
            margin-top: 12px;
            width: auto;
            display: inline-flex;
            justify-content: center;
            padding: 8px 22px
        }

        /* ============ 跑马灯 ============ */
        .tickerbar {
            height: 34px;
            background: var(--bg0);
            border-bottom: 1px solid var(--line);
            display: flex;
            align-items: center;
            overflow: hidden
        }

        .live {
            display: flex;
            align-items: center;
            gap: 7px;
            padding: 0 16px;
            font-size: 11px;
            color: var(--txt2);
            letter-spacing: .12em;
            flex: none;
            border-right: 1px solid var(--line);
            height: 100%
        }

        .live i {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: var(--up);
            animation: pulse 1.6s infinite
        }

        @keyframes pulse {

            0%,
            100% {
                box-shadow: 0 0 0 0 rgba(45, 189, 133, .5)
            }

            60% {
                box-shadow: 0 0 0 5px rgba(45, 189, 133, 0)
            }
        }

        .tk-mask {
            flex: 1;
            overflow: hidden;
            height: 100%;
            display: flex;
            align-items: center
        }

        .tk-track {
            display: flex;
            width: max-content;
            animation: marq 42s linear infinite
        }

        .tk-track:hover {
            animation-play-state: paused
        }

        @keyframes marq {
            to {
                transform: translateX(-50%)
            }
        }

        .tk-g {
            display: flex
        }

        .tk-it {
            min-width: 190px;
            display: flex;
            align-items: center;
            gap: 9px;
            font-size: 12px;
            padding: 0 16px;
            white-space: nowrap;
            cursor: default
        }

        .tk-it b {
            color: var(--txt2);
            font-weight: 600;
            font-size: 11.5px;
            letter-spacing: .05em
        }

        /* ============ 通用区块 ============ */
        .wrap {
            max-width: 1440px;
            margin: 0 auto;
            padding: 26px 20px 0
        }

        .ordcard {
            background: var(--bg1);
            border: 1px solid var(--line);
            border-radius: 12px;
            overflow: hidden
        }

        .ord-head {
            display: flex;
            align-items: center;
            padding: 14px 18px;
            border-bottom: 1px solid var(--line);
            flex-wrap: wrap;
            gap: 10px
        }

        .ord-head h3 {
            font-size: 14px;
            font-weight: 600
        }

        .ord-tabs {
            display: flex;
            gap: 4px;
            margin-left: 26px
        }

        .otab,
        .uctab {
            font-size: 12.5px;
            color: var(--txt2);
            padding: 6px 12px;
            border-radius: 7px
        }

        .otab:hover,
        .uctab:hover {
            color: var(--txt)
        }

        .otab.on,
        .uctab.on {
            color: var(--gold);
            background: rgba(232, 176, 75, .10)
        }

        .ord-export {
            margin-left: auto;
            display: flex;
            align-items: center;
            gap: 7px;
            font-size: 12px;
            color: var(--txt2);
            border: 1px solid var(--line);
            padding: 7px 13px;
            border-radius: 8px;
            text-decoration: none
        }

        .ord-export:hover {
            border-color: var(--gold);
            color: var(--gold);
            text-decoration: none
        }

        .tbl-wrap {
            overflow-x: auto
        }

        table.ord {
            width: 100%;
            border-collapse: collapse;
            min-width: 820px
        }

        .ord th {
            font-size: 11px;
            color: var(--txt3);
            font-weight: 500;
            text-align: left;
            padding: 10px 18px;
            border-bottom: 1px solid var(--line);
            white-space: nowrap
        }

        .ord td {
            font-size: 12.5px;
            padding: 11px 18px;
            border-bottom: 1px solid var(--line);
            white-space: nowrap
        }

        .ord tr:last-child td {
            border-bottom: 0
        }

        .ord tbody tr:hover {
            background: var(--bg2)
        }

        .ord .r {
            text-align: right
        }

        .ord th.r {
            text-align: right
        }

        .pill {
            font-size: 11px;
            padding: 3px 9px;
            border-radius: 20px
        }

        .pill.wait {
            color: var(--gold);
            background: rgba(232, 176, 75, .12)
        }

        .pill.done {
            color: var(--up);
            background: var(--upbg)
        }

        .pill.cancel {
            color: var(--txt2);
            background: var(--bg3)
        }

        .cx {
            font-size: 11.5px;
            color: var(--txt2);
            border: 1px solid var(--line);
            border-radius: 6px;
            padding: 4px 10px
        }

        .cx:hover {
            color: var(--dn);
            border-color: var(--dn)
        }

        .empty-o {
            padding: 34px;
            text-align: center;
            font-size: 12.5px;
            color: var(--txt3)
        }

        /* ============ Toast ============ */
        #toasts {
            position: fixed;
            top: 70px;
            right: 20px;
            z-index: 110;
            display: flex;
            flex-direction: column;
            gap: 10px;
            pointer-events: none
        }

        .toast {
            display: flex;
            align-items: center;
            gap: 11px;
            background: var(--bg2);
            border: 1px solid var(--line2);
            border-radius: 10px;
            padding: 12px 16px;
            font-size: 12.5px;
            box-shadow: 0 10px 32px rgba(0, 0, 0, .45);
            animation: t-in .35s;
            max-width: 340px;
            pointer-events: auto
        }

        .toast.out {
            animation: t-out .3s forwards
        }

        @keyframes t-in {
            from {
                opacity: 0;
                transform: translateX(24px)
            }

            to {
                opacity: 1
            }
        }

        @keyframes t-out {
            to {
                opacity: 0;
                transform: translateX(24px)
            }
        }

        .toast .ti {
            flex: none;
            width: 18px;
            height: 18px;
            display: flex;
            align-items: center;
            justify-content: center
        }

        .toast.success .ti {
            color: var(--up)
        }

        .toast.error .ti {
            color: var(--dn)
        }

        .toast.info .ti {
            color: var(--gold)
        }

        /* ============ 模态 ============ */
        .m-mask {
            position: fixed;
            inset: 0;
            background: rgba(6, 8, 11, .72);
            backdrop-filter: blur(7px);
            z-index: 90;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 20px
        }

        .m-mask.show {
            display: flex
        }

        .modal {
            width: 400px;
            max-width: 100%;
            background: var(--bg1);
            border: 1px solid var(--line2);
            border-radius: 14px;
            padding: 26px 28px;
            position: relative;
            animation: rise .35s
        }

        .m-close {
            position: absolute;
            top: 14px;
            right: 14px
        }

        .m-head h3 {
            font-size: 18px;
            font-weight: 700
        }

        .m-head p {
            font-size: 12px;
            color: var(--txt3);
            margin: 6px 0 18px
        }

        .m-tabs {
            display: grid;
            grid-template-columns: 1fr 1fr;
            background: var(--bg2);
            border-radius: 9px;
            padding: 3px;
            margin-bottom: 18px
        }

        .m-tabs button {
            padding: 8px 0;
            border-radius: 7px;
            font-size: 13px;
            color: var(--txt2)
        }

        .m-tabs button.on {
            background: var(--bg3);
            color: var(--gold)
        }

        .m-form label {
            display: block;
            font-size: 11.5px;
            color: var(--txt2);
            margin: 13px 0 6px
        }

        .m-in {
            display: flex;
            align-items: center;
            gap: 9px;
            background: var(--bg2);
            border: 1px solid var(--line);
            border-radius: 9px;
            padding: 0 12px;
            height: 42px;
            transition: .15s
        }

        .m-in:focus-within {
            border-color: var(--gold);
            box-shadow: 0 0 0 3px rgba(232, 176, 75, .10)
        }

        .m-in svg {
            color: var(--txt3)
        }

        .m-in input {
            flex: 1;
            font-size: 13px;
            min-width: 0
        }

        .m-in select.cc {
            border: 0;
            border-right: 1px solid var(--line);
            background: none;
            color: var(--txt2);
            font-size: 12.5px;
            padding: 0 4px 0 0;
            height: 24px;
            cursor: pointer;
            outline: none
        }

        .m-in select.cc:focus-visible {
            border-color: var(--gold)
        }

        .m-in select.cc option {
            background: var(--bg2);
            color: var(--txt)
        }

        /* 区号下拉只在输入裸数字时才出现（填邮箱 / 已带 + 的号码时收起，判据见 common.ts bindAccountMode）。
           收的是外层容器的宽度而非 display：正在输入时元素消失会让字符硬跳一下，过渡一下更稳。 */
        .m-in .cc-wrap {
            display: flex;
            align-items: center;
            overflow: hidden;
            max-width: 160px;
            transition: max-width .22s ease, opacity .18s ease, margin .22s ease
        }

        /* 负 margin 吃掉 flex gap 留在两侧的两个 9px，否则收起后仍有一道 18px 空洞；
           visibility 延后到收起动画结束才生效，同时把它从无障碍树与 Tab 序里移出去
           （只用宽度收敛的话，键盘用户会 Tab 到一个看不见的下拉上） */
        .m-in .cc-wrap.off {
            max-width: 0;
            opacity: 0;
            margin: 0 -9px;
            visibility: hidden;
            transition: max-width .22s ease, opacity .18s ease, margin .22s ease, visibility 0s .22s
        }

        @media (prefers-reduced-motion: reduce) {
            .m-in .cc-wrap {
                transition: none
            }
        }

        .m-in .eyebtn {
            color: var(--txt3);
            display: flex
        }

        .m-in .eyebtn:hover {
            color: var(--txt)
        }

        .m-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 11.5px;
            color: var(--txt3);
            margin: 14px 0 18px
        }

        .m-row a {
            color: var(--txt2);
            text-decoration: none
        }

        .m-row a:hover {
            color: var(--gold)
        }

        .m-submit {
            width: 100%;
            height: 44px;
            margin-top: 18px;
            background: var(--gold);
            color: #141005;
            border-radius: 9px;
            font-size: 14px;
            font-weight: 700
        }

        .m-submit:hover {
            background: var(--gold2)
        }

        .m-foot {
            text-align: center;
            font-size: 11.5px;
            color: var(--txt3);
            margin-top: 16px
        }

        .m-foot b {
            color: var(--gold);
            cursor: pointer
        }

        .dp-quick {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 8px;
            margin: 12px 0 4px
        }

        .dp-quick button {
            border: 1px solid var(--line);
            border-radius: 7px;
            font-size: 12px;
            color: var(--txt2);
            padding: 7px 0
        }

        .dp-quick button:hover {
            border-color: var(--gold);
            color: var(--gold)
        }

        .dp-note {
            font-size: 11px;
            color: var(--txt3);
            line-height: 1.7;
            margin-top: 12px
        }

        /* ============ 全局命令面板 ============ */
        #cmdMask {
            align-items: flex-start;
            padding-top: 11vh;
            z-index: 95
        }

        .cmd-panel {
            width: 580px;
            max-width: 92vw;
            background: var(--bg1);
            border: 1px solid var(--line2);
            border-radius: 14px;
            overflow: hidden;
            box-shadow: 0 24px 70px rgba(0, 0, 0, .6);
            animation: rise .22s
        }

        .cmd-in {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 15px 18px;
            border-bottom: 1px solid var(--line);
            color: var(--txt3)
        }

        .cmd-in input {
            flex: 1;
            font-size: 15px;
            min-width: 0
        }

        .cmd-in .esc {
            font-size: 10px;
            color: var(--txt3);
            border: 1px solid var(--line2);
            border-radius: 5px;
            padding: 2px 7px;
            flex: none
        }

        #cmdResults {
            max-height: 390px;
            overflow-y: auto;
            padding: 8px
        }

        .cmd-group {
            font-size: 10.5px;
            color: var(--txt3);
            letter-spacing: .1em;
            padding: 9px 10px 5px
        }

        .cmd-item {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 8px 10px;
            border-radius: 9px;
            cursor: pointer
        }

        .cmd-item .ci {
            width: 30px;
            height: 30px;
            border-radius: 8px;
            background: var(--bg2);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--txt2);
            flex: none
        }

        .cmd-item .main {
            flex: 1;
            min-width: 0
        }

        .cmd-item .main b {
            display: block;
            font-size: 13px;
            font-weight: 600;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis
        }

        .cmd-item .main span {
            display: block;
            font-size: 10.5px;
            color: var(--txt3);
            margin-top: 2px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis
        }

        .cmd-item .side {
            font-size: 12px;
            white-space: nowrap
        }

        .cmd-item.sel {
            background: var(--bg2);
            box-shadow: inset 2px 0 0 var(--gold)
        }

        #cmdResults mark {
            background: none;
            color: var(--gold);
            font-weight: 600
        }

        .cmd-empty {
            padding: 38px 20px;
            text-align: center;
            font-size: 12.5px;
            color: var(--txt3);
            line-height: 2.1
        }

        .cmd-empty span {
            font-size: 11px
        }

        .cmd-foot {
            display: flex;
            gap: 18px;
            padding: 10px 18px;
            border-top: 1px solid var(--line);
            font-size: 10.5px;
            color: var(--txt3);
            flex-wrap: wrap
        }

        .cmd-foot b {
            font-family: 'JetBrains Mono', monospace;
            font-weight: 500;
            border: 1px solid var(--line2);
            border-radius: 4px;
            padding: 1px 5px;
            margin-right: 5px;
            color: var(--txt2)
        }

        /* ============ 移动端 ============ */
        .pair-chips {
            display: none;
            gap: 8px;
            overflow-x: auto;
            padding: 10px 14px;
            background: var(--bg1);
            border-bottom: 1px solid var(--line);
            scrollbar-width: none
        }

        .pair-chips::-webkit-scrollbar {
            display: none
        }

        .chip {
            flex: none;
            font-size: 12px;
            color: var(--txt2);
            border: 1px solid var(--line);
            border-radius: 20px;
            padding: 6px 14px
        }

        .chip.on {
            color: var(--gold);
            border-color: var(--gold)
        }

        /* 终端布局的断点规则在 trade.css 末尾（须与被覆盖的基础规则同文件才能生效） */
        @media (max-width:1360px) {
            .cmd-trigger {
                width: 190px
            }
        }

        @media (max-width:900px) {
            .pair-chips {
                display: flex
            }

            .cmd-trigger {
                display: none
            }

            .walletchip {
                display: none
            }

            #walletZone {
                display: none
            }
        }

        @media (max-width:640px) {
            .brand-txt small {
                display: none
            }

            .umail {
                display: none
            }

            /* 底部导航：小屏收起顶栏菜单，改为固定底栏（所有页面共用） */
            body {
                padding-bottom: 52px
            }

            .mainnav {
                position: fixed;
                left: 0;
                right: 0;
                bottom: 0;
                top: auto;
                height: 52px;
                background: var(--bg1);
                border-top: 1px solid var(--line);
                z-index: 55
            }

            .nav-it {
                flex: 1;
                justify-content: center;
                height: 100%
            }

            .nav-it.on::after {
                left: 25%;
                right: 25%
            }

            /* 防 iOS 在输入框聚焦时自动放大视口（触发阈值 16px） */
            .m-in input {
                font-size: 16px
            }
        }

        /* 顶部导航为跨页链接 */
        .nav-it {
            text-decoration: none
        }

/* ============ 通用表格（交易页 / 量化页 / 用户中心共用） ============ */
        table.uT {
            width: 100%;
            border-collapse: collapse;
            min-width: 640px
        }

        .uT th {
            font-size: 11px;
            color: var(--txt3);
            font-weight: 500;
            text-align: left;
            padding: 10px 14px;
            border-bottom: 1px solid var(--line);
            white-space: nowrap;
            background: var(--bg1)
        }

        .uT td {
            font-size: 12.5px;
            padding: 11px 14px;
            border-bottom: 1px solid var(--line);
            white-space: nowrap;
            background: var(--bg1)
        }

        .uT tr:last-child td {
            border-bottom: 0
        }

        .uT tbody tr:hover {
            background: var(--bg2)
        }

        .uT .r {
            text-align: right
        }

        .uT th.r {
            text-align: right
        }

        .uT .tfit {
            border: 1px solid var(--line);
            border-radius: 6px;
            font-size: 11.5px;
            color: var(--txt2);
            padding: 5px 12px;
            margin-right: 6px
        }

        .uT .tfit:hover {
            color: var(--gold);
            border-color: var(--gold)
        }

        .uT .sum td {
            border-top: 1px solid var(--line2);
            color: var(--txt2);
            font-size: 12px
        }

        .uT-card {
            border: 1px solid var(--line);
            border-radius: 12px;
            overflow: hidden
        }

        /* 同一元素同时带 uT-card 与 tbl-wrap 时，后声明的 overflow:hidden 会覆盖横向滚动，
           需显式恢复 x 轴滚动（y 轴保留 hidden 以裁切圆角） */
        .uT-card.tbl-wrap {
            overflow-x: auto;
            overflow-y: hidden
        }

        @media (max-width:640px) {
            table.uT {
                min-width: 560px
            }

            .uT .hide-m,
            .ord .hide-m {
                display: none
            }
        }
