/* 视觉基准：app-native/pages，经典黑／简约白共用；不改变业务状态。 */
:root { --font:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif; --numbers:var(--font); }
body { line-height:1.45; }
.trade-head { display:flex; gap:0; min-height:56px; padding:calc(8px + env(safe-area-inset-top)) 12px 8px; }
.trade-head > .tool-button { flex:0 0 40px; width:40px; height:40px; }
.contract-name { flex:1; min-width:0; margin-left:8px; line-height:1.45; }
.contract-name small { font-family:var(--font); margin-top:4px; }
.chart-head .contract-name small { margin-top:0; }
.head-actions { flex:0 0 40px; }
.order-head .contract-name { margin-left:0; }
.account-page .contract-name { margin-left:8px; }
.market-sort { position:relative; padding-left:12px; gap:0; }
.market-sort > span:first-child { display:none; }
.market-sort select { position:absolute; inset:0; width:100%; opacity:0; z-index:1; }
.market-sort-value { display:flex; align-items:center; gap:6px; min-height:44px; padding-right:2px; color:var(--muted); font-size:12px; }
.market-sort-value i { font-size:15px; font-style:normal; }
.market-sort:focus-within { outline:2px solid var(--orange); outline-offset:2px; border-radius:4px; }
.market-tools label,.market-section,.market-filters button,.market-label,.contract-cell > small,.quote-change,.market-footnote { color:var(--muted); }
.market-tools label { border:0; }
.market-tools label:focus-within { outline:1px solid var(--orange); }
.contract-cell > small { letter-spacing:0; }
.bottom-nav a { color:var(--theme-muted,#999ca4); }
.auth-page label { color:var(--muted); }
.auth-heading h1 { line-height:42px; }
.auth-heading p { margin-top:8px; }
.auth-tabs button { appearance:none; height:44px; line-height:20px; border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; }
.auth-submit { font-size:14px; }
.auth-footer { color:var(--muted); }
.auth-page > .content-links { min-height:44px; }
.auth-content-links a { color:var(--orange); text-decoration:none; min-height:28px; display:flex; align-items:center; }
.auth-content-links a:focus-visible { outline:2px solid var(--orange); outline-offset:2px; }
.quote-info { padding:16px 16px 14px; gap:0 10px; }
.quote-main strong { line-height:35px; }
.quote-stats { column-gap:12px; row-gap:7px; }
.quote-stats > span { color:var(--muted); }
.quote-stats b { color:var(--text); }
.quote-status-note { grid-column:1/-1; margin:10px 0 0; color:var(--muted); font-size:11px; line-height:18px; overflow-wrap:anywhere; }
.native-demo-strip { grid-column:1/-1; margin:14px -16px -14px; padding:7px 16px; color:var(--muted); font-size:11px; border-block:1px solid var(--line); }
.chart-readout-heading.trading-time { display:flex; align-items:center; justify-content:space-between; gap:4px; margin:0; padding:0; border:0; }
.chart-readout-heading .chart-readout-time { flex:1; min-width:0; line-height:16px; }
.chart-readout-heading .expand-chart { flex:0 0 36px; width:36px; height:32px; min-height:32px; margin:-5px -8px -5px 4px; }
.chart-readout dl { gap:0; }
.chart-readout dl > div { padding:2px 8px 2px 0; }
.chart-readout dd { text-align:right; }
.detail-page:not(.chart-fullscreen) .chart-layout { grid-template-columns:minmax(0,1fr) 36%; }
.chart-meta { min-height:35px; color:var(--text); }
.chart-meta > b { color:var(--orange); font-weight:400; }
.book h3 { font-size:12px; color:var(--text); }
.depth-row { grid-template-columns:26px minmax(0,1fr) 23px; gap:0; color:var(--muted); }
.depth-row em { color:var(--text); }
.order-layout > .live-book { padding:12px 10px; border-left:1px solid var(--line); }
.order-layout .live-book .depth-row { grid-template-columns:24px minmax(0,1fr) 24px; padding:7px 0; font-size:12px; }
.order-layout .live-book .depth-row b { font-size:14px; }
.order-layout .live-book .depth-row em { font-size:13px; }
.order-layout .live-book h3 { margin:0 0 9px; padding:0; font-size:12px; color:var(--muted); }
.order-layout .book-divider { margin:6px 0; }
.contract-input { padding:0 8px; }
.contract-input input { flex:1; min-width:0; padding:0; }
.contract-input .contract-code { flex:none; font-size:10px; margin-left:6px; color:var(--muted); }
.contract-input .tool-button { width:18px; height:36px; flex:0 0 18px; }
.order-types { grid-template-columns:repeat(2,minmax(0,1fr)); }
.order-types button { border:1px solid transparent; color:var(--muted); line-height:34px; }
.order-types button.selected { border-color:var(--orange); outline:0; background:var(--bg); }
.step-field button { color:var(--muted); }
.order-validity { color:var(--muted); font-size:11px; }
.order-validity > span:first-child { font-size:12px; }
.balance-grid b { font-weight:400; }
.balance-grid .market-mode { font-size:12px; padding:1px 6px; }
.trade-estimate button { min-height:36px; padding:5px 10px; border:1px solid var(--theme-border,#454b4b); border-radius:5px; background:transparent; font-size:11px; line-height:24px; }
.account-list [data-theme-label] { font-size:12px; }
.account-card button { padding:0 10px; }
.account-card .orange-button { color:var(--theme-on-accent,#171915); }
.record-meta,.record small { font-size:10px; }
.agent-scope { line-height:19px; }
.agent-filters { margin:16px 0 8px; }
.agent-filters input,.agent-filters select { border-color:var(--theme-border,#363d3f); }
dialog label { line-height:17px; }
.trade-confirm { width:calc(100% - 32px); max-width:420px; }
.chart-fullscreen .chart-readout-heading { flex:0 0 auto; }
.chart-fullscreen .chart-readout-heading .expand-chart { display:none; }
/* 逐页以APP当前模板校准。浏览器使用border-box，明确行高避免继承1.45放大标题/盘口。 */
.trade-head .contract-name { line-height:21px; }
.trade-head .contract-name small { line-height:17px; }
.market-categories { gap:16px; }
.market-filters button { min-height:48px; }
.market-section,.market-label { line-height:17px; }
.contract-cell > span { line-height:22px; }
.contract-cell > small,.quote-change { line-height:15px; }
.market-footnote { padding-top:36px; }
.balance-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; }
.balance-grid > div:nth-child(2) { border-left:1px solid var(--line); padding-left:12px; }
.balance-grid b { line-height:24px; white-space:nowrap; font-size:20px; }
.balance-grid.balance-wide { grid-template-columns:1fr; }
.balance-grid.balance-wide > div:nth-child(2) { padding-left:0; border:0; }
.balance-grid.balance-wide > .market-mode { justify-self:end; }
.order-types button { height:36px; min-width:0; padding:0; font-size:12px; }
.step-field label { margin-top:12px; margin-bottom:6px; line-height:18px; }
.step-field > div { height:44px; }
.step-field button { font-size:20px; line-height:42px; }
.order-validity { line-height:17px; gap:6px; }
.order-validity > span:last-child { flex:1; text-align:right; }
.order-layout .live-book .depth-row,.order-book p { line-height:17px; }
.order-book p { grid-template-columns:24px minmax(0,1fr) 24px; gap:0; }
.order-book p b { font-size:14px; }
.order-book p small { color:var(--text); font-size:13px; }
.order-book h3 b { text-align:left; font-size:24px; font-weight:400; line-height:29px; margin:7px 0 10px; }
.trade-actions button { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0 4px; }
.trade-actions button > span { font-size:19px; line-height:24px; white-space:nowrap; }
.trade-actions small { font-size:12px; line-height:17px; margin:0; }
.trade-actions .close-open { color:var(--text); }
.order-page > .demo-note:empty,.content-links:empty { display:none; }
.order-tabs { border-top:0; margin-top:0; }
.order-tabs button { line-height:20px; }
.order-page .position-empty { min-height:0; padding:22px 14px; }
.order-page .position-empty > .icon { display:none; }
.trade-record { padding:12px; }
.trade-record header { align-items:center; margin:0 0 10px; }
.trade-record header strong { display:flex; flex-direction:column; min-width:0; font-size:13px; font-weight:500; }
.trade-record header strong small { margin:3px 0 0; font-size:10px; color:var(--muted); font-weight:400; }
.trade-record header > span { font-size:12px; }
.trade-record dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; margin:0 0 10px; }
.trade-record dl > div { display:flex; min-width:0; gap:6px; align-items:center; }
.trade-record dl dt { color:var(--muted); font-size:12px; }
.trade-record dl dd { flex:1; min-width:0; margin:0; color:var(--text); text-align:right; font-size:12px; overflow-wrap:anywhere; }
.trade-record dl dd[aria-label] { font-size:15px; font-weight:600; }
.trade-record .execution-time,.trade-record > .muted { margin:4px 0 0; color:var(--muted); font-size:11px; line-height:17px; }
.trade-record footer { display:flex; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:8px; margin-top:10px; }
.trade-record footer > small { flex:1; min-width:0; font-size:10px; color:var(--muted); }
.trade-record footer button,.batch-close-status button { flex:none; min-height:34px; padding:0 10px; border:1px solid var(--theme-border,#363d3f); border-radius:4px; background:transparent; font-size:11px; color:var(--orange); }
.trade-record .execution-lot { margin-top:8px; }
.batch-close-status { margin:10px 12px; padding:10px 12px; border:1px solid var(--line); border-radius:5px; font-size:11px; line-height:18px; color:var(--muted); }
.batch-close-status p { margin:0 0 8px; }
.account-page .account-title > button { height:40px; padding:0; }
.account-card > div:first-child b { line-height:36px; }
.account-list > div,.account-list > button { line-height:20px; }
.account-page .demo-note { padding:9px 12px; margin:0; line-height:17px; }
.auth-heading h1 { margin-top:7px; margin-bottom:8px; }
.auth-tabs { gap:24px; }
.auth-tabs button { position:relative; flex:0 0 48px; padding:0 0 8px; border-bottom:0; }
.auth-tabs button.active { border-bottom:0; }
.auth-tabs button.active::after { content:''; position:absolute; left:10px; bottom:0; width:28px; height:2px; border-radius:1px; background:var(--orange); }
.auth-page .auth-content-links { padding:8px 0 0; min-height:52px; align-items:center; font-size:12px; }
.auth-page label { line-height:17px; }
.auth-page .auth-heading + form .auth-tabs { margin-top:0; }
.detail-page:not(.chart-fullscreen) .depth-row { padding:5px 9px; line-height:14px; }
.detail-page:not(.chart-fullscreen) .tape p { line-height:16px; }
.detail-page:not(.chart-fullscreen) .volume-chart { height:80px; }
.detail-page:not(.chart-fullscreen) .indicator { height:112px; }
.detail-page:not(.chart-fullscreen) .macd-indicator { height:112px; }
.period-options { gap:0; padding:0; }
.period-options > button { min-width:max(32px,calc((min(100vw,480px) - 40px) / 8)); padding:0; }
.period-options .active::after { left:0; right:0; }
.chart-landscape-button { background:var(--panel); }
/* APP正常图表不显示长说明；保留键盘操作的无障碍描述。异常仍由行情状态提示。 */
.detail-page > .chart-foot { position:absolute; width:1px; height:1px; padding:0; border:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.agent-invitation { margin:0; padding:0 20px 14px; }
.agent-invitation > strong { font-size:13px; font-weight:500; }
.agent-invitation p { line-height:17px; }
.agent-tabs { padding-inline:20px; }
.agent-filters { margin:16px 20px 8px; }
.agent-scope { margin:12px 20px; }
.agent-fields { width:100%; margin:0; }
.agent-fields > div { display:flex; justify-content:space-between; min-height:54px; padding:8px 0; align-items:center; border-bottom:1px solid var(--line); }
.agent-fields dt { color:var(--muted); }
.agent-fields dd { margin:0; }
.content-list,.content-article { padding-inline:20px; }
/* 下单页紧凑版：消除标签和字段重复留白，正文统一灰蓝；行情红绿仍用原语义色。 */
.order-page { --text:#bac4cf; --theme-text:#bac4cf; --muted:#96a2af; --theme-muted:#96a2af; color:var(--text); }
:root[data-theme="light"] .order-page { --text:#364152; --theme-text:#364152; --muted:#626b78; --theme-muted:#626b78; }
.order-page .account-bar { margin-bottom:4px; }
.order-page .account-bar > button { height:40px; }
.order-page .balance-grid { padding-block:8px; }
.order-page .balance-grid b { margin-top:2px; color:var(--text); }
.order-page .balance-grid b.margin-risk { color:var(--red); }
.order-page .order-quote-summary { padding-block:6px; }
.order-page .order-form { padding-block:10px; }
.order-page .order-types { margin-top:8px; }
.order-page .step-field { margin-top:8px; }
.order-page .step-field label { margin-top:0; margin-bottom:4px; }
.order-page .order-validity { padding-top:8px; }
.order-page .order-layout > .live-book { padding-block:10px; }
.order-page .trade-actions { padding-top:8px; }
.order-page .trade-actions button { height:52px; color:#e0e7ef; }
.order-page .trade-actions .close-open { color:var(--text); }
@media(max-width:360px) {
 .market-top,.market-row { padding-inline:12px; }
 .market-row { gap:8px; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 72px; }
 .contract-cell > span { font-size:14px; }
 .price-cell > b { font-size:15px; }
 .percent { min-width:65px; font-size:13px; }
 .order-form { padding:10px 8px; }
 .order-layout,.account-bar { margin-inline:8px; }
 .trade-actions { padding-inline:8px; }
 .order-types button { font-size:10px; }
 .step-field input { font-size:14px; }
 .contract-input input { font-size:13px; }
 .contract-input .contract-code { max-width:44px; font-size:9px; overflow:hidden; text-overflow:ellipsis; }
 .order-layout .live-book { padding:10px 7px; }
 .order-layout .live-book .depth-row { grid-template-columns:20px minmax(0,1fr) 19px; }
 .order-layout .live-book .depth-row b { font-size:13px; }
}
