diff --git a/crypto_monitor_binance/templates/index.html b/crypto_monitor_binance/templates/index.html
index b46331d..537846c 100644
--- a/crypto_monitor_binance/templates/index.html
+++ b/crypto_monitor_binance/templates/index.html
@@ -232,7 +232,7 @@
.stats-period-block h3{font-size:1rem;color:#dbe4ff;margin-bottom:4px}
.stats-period-block .sub{font-size:.78rem;color:#8892b0;margin-bottom:10px;line-height:1.4}
-
+
@@ -309,8 +309,8 @@
关键位历史
-
交易所
{{ exchange_display }}
-
+
交易所
{{ exchange_display }}
+
资金账户(USDT)
{% if funding_usdt is not none %}{{ funds_fmt(funding_usdt) }}U{% else %}—{% endif %}
diff --git a/crypto_monitor_gate/templates/index.html b/crypto_monitor_gate/templates/index.html
index 5dce04c..0d08e4b 100644
--- a/crypto_monitor_gate/templates/index.html
+++ b/crypto_monitor_gate/templates/index.html
@@ -232,7 +232,7 @@
.stats-period-block h3{font-size:1rem;color:#dbe4ff;margin-bottom:4px}
.stats-period-block .sub{font-size:.78rem;color:#8892b0;margin-bottom:10px;line-height:1.4}
-
+
@@ -309,8 +309,8 @@
关键位历史
-
交易所
{{ exchange_display }}
-
+
交易所
{{ exchange_display }}
+
资金账户(USDT)
{% if funding_usdt is not none %}{{ funds_fmt(funding_usdt) }}U{% else %}—{% endif %}
diff --git a/crypto_monitor_gate_bot/templates/index.html b/crypto_monitor_gate_bot/templates/index.html
index f43a2c0..c24cd94 100644
--- a/crypto_monitor_gate_bot/templates/index.html
+++ b/crypto_monitor_gate_bot/templates/index.html
@@ -269,7 +269,7 @@
.stats-split-row{grid-template-columns:1fr}
}
-
+
@@ -359,8 +359,8 @@
关键位历史
-
交易所
{{ exchange_display }}
-
+
交易所
{{ exchange_display }}
+
资金账户(USDT)
{% if funding_usdt is not none %}{{ money_fmt(funding_usdt) }}U{% else %}—{% endif %}
diff --git a/crypto_monitor_okx/templates/index.html b/crypto_monitor_okx/templates/index.html
index 9cf65ef..723d90d 100644
--- a/crypto_monitor_okx/templates/index.html
+++ b/crypto_monitor_okx/templates/index.html
@@ -232,7 +232,7 @@
.stats-period-block h3{font-size:1rem;color:#dbe4ff;margin-bottom:4px}
.stats-period-block .sub{font-size:.78rem;color:#8892b0;margin-bottom:10px;line-height:1.4}
-
+
@@ -309,8 +309,8 @@
关键位历史
-
交易所
{{ exchange_display }}
-
+
交易所
{{ exchange_display }}
+
资金账户(USDT)
{% if funding_usdt is not none %}{{ funds_fmt(funding_usdt) }}U{% else %}—{% endif %}
diff --git a/manual_trading_hub/static/app.css b/manual_trading_hub/static/app.css
index 100db95..787f0fa 100644
--- a/manual_trading_hub/static/app.css
+++ b/manual_trading_hub/static/app.css
@@ -2501,121 +2501,6 @@ body.login-page {
font-size: 15px;
}
- .ai-mobile-tabs {
- display: flex;
- gap: 8px;
- margin-bottom: 8px;
- flex-shrink: 0;
- }
-
- .ai-mobile-tab {
- flex: 1;
- min-height: 40px;
- padding: 8px 12px;
- border-radius: 8px;
- border: 1px solid var(--border-soft);
- background: var(--inset-surface);
- color: var(--muted);
- font-family: var(--font);
- font-size: 0.82rem;
- font-weight: 600;
- cursor: pointer;
- }
-
- .ai-mobile-tab.is-active {
- color: var(--text);
- border-color: var(--accent);
- background: var(--accent-dim);
- box-shadow: var(--glow);
- }
-
- body.hub-page-ai .app-shell {
- padding-bottom: max(8px, env(safe-area-inset-bottom));
- height: 100dvh;
- max-height: 100dvh;
- overflow: hidden;
- }
-
- body.hub-page-ai {
- overflow: hidden;
- }
-
- body.hub-page-ai #page-ai {
- overflow: hidden;
- }
-
- .ai-layout {
- grid-template-columns: 1fr;
- grid-template-rows: minmax(0, 1fr);
- overflow: hidden;
- }
-
- .ai-layout[data-ai-mobile-tab="chat"] .ai-summary-panel {
- display: none;
- }
-
- .ai-layout[data-ai-mobile-tab="summary"] .ai-chat-panel {
- display: none;
- }
-
- .ai-layout[data-ai-mobile-tab="chat"] .ai-chat-panel,
- .ai-layout[data-ai-mobile-tab="summary"] .ai-summary-panel {
- display: flex;
- min-height: 0;
- height: 100%;
- }
-
- .ai-chat-panel {
- padding-bottom: 0;
- }
-
- .ai-chat-messages {
- padding-bottom: 8px;
- }
-
- .ai-chat-form {
- position: sticky;
- bottom: 0;
- z-index: 3;
- margin: 0 -14px;
- padding: 10px 14px max(10px, env(safe-area-inset-bottom));
- background: color-mix(in srgb, var(--panel) 92%, transparent);
- backdrop-filter: blur(10px);
- border-top: 1px solid var(--border-soft);
- box-shadow: 0 -10px 28px rgba(0, 0, 0, 0.28);
- }
-
- .ai-chat-form textarea {
- min-height: 44px;
- max-height: 120px;
- font-size: 16px;
- }
-
- .ai-chat-compose-actions {
- display: grid;
- grid-template-columns: auto 1fr auto;
- gap: 8px;
- align-items: center;
- }
-
- .ai-chat-upload-btn,
- #btn-ai-chat-send {
- min-height: 44px;
- }
-
- #btn-ai-chat-send {
- min-width: 76px;
- font-weight: 600;
- }
-
- .ai-msg-row-user {
- max-width: 92%;
- }
-
- .ai-msg-row-coach {
- max-width: 96%;
- }
-
.page-head {
margin: 16px 0 12px;
}
@@ -3925,6 +3810,145 @@ body.hub-page-ai #page-ai {
.ai-mobile-tabs {
display: none;
}
+
+/* 手机 AI:须在 .ai-layout 双列定义之后,避免被覆盖成半屏 */
+@media (max-width: 720px) {
+ body.hub-page-ai .app-shell {
+ padding-bottom: max(8px, env(safe-area-inset-bottom));
+ height: 100dvh;
+ max-height: 100dvh;
+ overflow: hidden;
+ width: 100%;
+ max-width: none;
+ }
+
+ body.hub-page-ai {
+ overflow: hidden;
+ }
+
+ body.hub-page-ai #page-ai {
+ overflow: hidden;
+ width: 100%;
+ min-width: 0;
+ }
+
+ body.hub-page-ai .ai-mobile-tabs {
+ display: flex;
+ gap: 8px;
+ margin-bottom: 8px;
+ flex-shrink: 0;
+ width: 100%;
+ }
+
+ body.hub-page-ai .ai-mobile-tab {
+ flex: 1;
+ min-height: 40px;
+ padding: 8px 12px;
+ border-radius: 8px;
+ border: 1px solid var(--border-soft);
+ background: var(--inset-surface);
+ color: var(--muted);
+ font-family: var(--font);
+ font-size: 0.82rem;
+ font-weight: 600;
+ cursor: pointer;
+ }
+
+ body.hub-page-ai .ai-mobile-tab.is-active {
+ color: var(--text);
+ border-color: var(--accent);
+ background: var(--accent-dim);
+ box-shadow: var(--glow);
+ }
+
+ body.hub-page-ai .ai-layout {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ min-width: 0;
+ flex: 1 1 auto;
+ min-height: 0;
+ gap: 0;
+ overflow: hidden;
+ }
+
+ body.hub-page-ai .ai-layout[data-ai-mobile-tab="chat"] .ai-summary-panel,
+ body.hub-page-ai .ai-layout[data-ai-mobile-tab="summary"] .ai-chat-panel {
+ display: none !important;
+ }
+
+ body.hub-page-ai .ai-layout[data-ai-mobile-tab="chat"] .ai-chat-panel,
+ body.hub-page-ai .ai-layout[data-ai-mobile-tab="summary"] .ai-summary-panel {
+ display: flex;
+ flex: 1 1 auto;
+ width: 100%;
+ max-width: 100%;
+ min-height: 0;
+ min-width: 0;
+ }
+
+ body.hub-page-ai .ai-panel {
+ width: 100%;
+ max-width: 100%;
+ min-width: 0;
+ box-sizing: border-box;
+ }
+
+ body.hub-page-ai .ai-chat-panel {
+ padding-bottom: 0;
+ }
+
+ body.hub-page-ai .ai-chat-messages {
+ padding-bottom: 8px;
+ }
+
+ body.hub-page-ai .ai-chat-form {
+ position: sticky;
+ bottom: 0;
+ z-index: 3;
+ width: 100%;
+ margin: 0;
+ padding: 10px 0 max(10px, env(safe-area-inset-bottom));
+ background: color-mix(in srgb, var(--panel) 92%, transparent);
+ backdrop-filter: blur(10px);
+ border-top: 1px solid var(--border-soft);
+ box-shadow: 0 -10px 28px rgba(0, 0, 0, 0.28);
+ }
+
+ body.hub-page-ai .ai-chat-form textarea {
+ min-height: 44px;
+ max-height: 120px;
+ font-size: 16px;
+ width: 100%;
+ }
+
+ body.hub-page-ai .ai-chat-compose-actions {
+ display: grid;
+ grid-template-columns: auto 1fr auto;
+ gap: 8px;
+ align-items: center;
+ width: 100%;
+ }
+
+ body.hub-page-ai .ai-chat-upload-btn,
+ body.hub-page-ai #btn-ai-chat-send {
+ min-height: 44px;
+ }
+
+ body.hub-page-ai #btn-ai-chat-send {
+ min-width: 76px;
+ font-weight: 600;
+ }
+
+ body.hub-page-ai .ai-msg-row-user {
+ max-width: 92%;
+ }
+
+ body.hub-page-ai .ai-msg-row-coach {
+ max-width: 96%;
+ }
+}
+
.ai-panel {
background: var(--panel);
border: 1px solid var(--border-soft);
diff --git a/manual_trading_hub/static/index.html b/manual_trading_hub/static/index.html
index 1321419..1f09803 100644
--- a/manual_trading_hub/static/index.html
+++ b/manual_trading_hub/static/index.html
@@ -15,7 +15,7 @@
-
+
@@ -424,6 +424,6 @@
-
+