@@ -29,7 +29,7 @@
|
||||
|
||||
<p>
|
||||
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square&logo=apache" alt="License"></a>
|
||||
<img src="https://img.shields.io/badge/Version-2.2.3-orange?style=flat-square" alt="Version">
|
||||
<img src="https://img.shields.io/badge/Version-3.0.1-orange?style=flat-square" alt="Version">
|
||||
<img src="https://img.shields.io/badge/Python-3.10+-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python">
|
||||
<img src="https://img.shields.io/badge/Docker-One%20Click-2496ED?style=flat-square&logo=docker&logoColor=white" alt="Docker">
|
||||
<img src="https://img.shields.io/badge/Vibe%20Coding-Ready-FF6B6B?style=flat-square&logo=sparkles&logoColor=white" alt="Vibe Coding">
|
||||
@@ -53,6 +53,7 @@
|
||||
- [🎯 Why QuantDinger?](#-why-quantdinger)
|
||||
- [📸 Visual Tour](#-visual-tour--watch-video-demo)
|
||||
- [✨ Key Features](#-key-features)
|
||||
- [🔗 QuantDinger exchange signup (referral)](#quantdinger-exchange-signup-referral)
|
||||
- [🔌 Supported Exchanges & Brokers](#-supported-exchanges--brokers)
|
||||
- [🏗️ Architecture & Configuration](#️-architecture--configuration)
|
||||
- [📚 Documentation Index](#-documentation-index)
|
||||
@@ -394,6 +395,23 @@ flowchart TB
|
||||
|
||||
---
|
||||
|
||||
## 🔗 QuantDinger exchange signup (referral)
|
||||
|
||||
These are **QuantDinger** partner / invite links. Registering through them may qualify you for trading fee rebates (for example up to about **20%** commission rebate — subject to each exchange’s rules and campaigns).
|
||||
|
||||
| Exchange | Invite / signup link |
|
||||
|----------|----------------------|
|
||||
| Binance | [Register](https://www.bsmkweb.cc/register?ref=QUANTDINGER) |
|
||||
| Bitget | [Register](https://partner.hdmune.cn/bg/7r4xz8kd) |
|
||||
| Bybit | [Register](https://partner.bybit.com/b/DINGER) |
|
||||
| OKX | [Register](https://www.xqmnobxky.com/join/QUANTDINGER) |
|
||||
| Gate.io | [Register](https://www.gateport.company/share/DINGER) |
|
||||
| HTX | [Register](https://www.htx.com/invite/zh-cn/1f?invite_code=dinger) |
|
||||
|
||||
The same links are available in the web app under **Profile → Open account** (after sign-in).
|
||||
|
||||
---
|
||||
|
||||
## 🔌 Supported Exchanges & Brokers
|
||||
|
||||
### Cryptocurrency (Direct API Trading)
|
||||
@@ -418,13 +436,9 @@ flowchart TB
|
||||
| **Forex** | MetaTrader 5 (MT5), OANDA | ✅ Via MT5 |
|
||||
| **Futures** | Exchange APIs | ⚡ Data + Notify |
|
||||
|
||||
### Exchange Rebate Links
|
||||
### Exchange rebate links
|
||||
|
||||
If you are opening a new exchange account, use a rebate link from the start. Many traders actively look for fee-rebate links anyway, and these links give you a straightforward 20% trading fee discount at no extra cost.
|
||||
|
||||
- **OKX**: [Open account with 20% fee rebate](https://www.promooboost.com/join/QUANTDINGER)
|
||||
- **Bitget**: [Open account with 20% fee rebate](https://partner.bitget.com/bg/dinger)
|
||||
- **Bitget (backup link)**: [Alternate 20% fee rebate signup link](https://partner.hdmune.cn/bg/7r4xz8kd)
|
||||
See the dedicated section: [QuantDinger exchange signup (referral)](#quantdinger-exchange-signup-referral).
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -265,44 +265,27 @@ def run_backtest():
|
||||
'message': '使用标准K线回测'
|
||||
}
|
||||
|
||||
# Persist backtest run for AI optimization / history
|
||||
run_id = None
|
||||
try:
|
||||
with get_db_connection() as db:
|
||||
cur = db.cursor()
|
||||
cur.execute(
|
||||
"""
|
||||
INSERT INTO qd_backtest_runs
|
||||
(user_id, indicator_id, market, symbol, timeframe, start_date, end_date,
|
||||
initial_capital, commission, slippage, leverage, trade_direction,
|
||||
strategy_config, status, error_message, result_json, created_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())
|
||||
""",
|
||||
(
|
||||
user_id,
|
||||
int(indicator_id) if indicator_id is not None else None,
|
||||
market,
|
||||
symbol,
|
||||
timeframe,
|
||||
start_date_str,
|
||||
end_date_str,
|
||||
initial_capital,
|
||||
commission,
|
||||
slippage,
|
||||
leverage,
|
||||
trade_direction,
|
||||
json.dumps(strategy_config or {}, ensure_ascii=False),
|
||||
'success',
|
||||
'',
|
||||
json.dumps(result or {}, ensure_ascii=False)
|
||||
)
|
||||
)
|
||||
run_id = cur.lastrowid
|
||||
db.commit()
|
||||
cur.close()
|
||||
except Exception:
|
||||
# Do not break the main backtest response if persistence fails.
|
||||
logger.warning("Failed to persist backtest run", exc_info=True)
|
||||
run_id = backtest_service.persist_run(
|
||||
user_id=user_id,
|
||||
indicator_id=int(indicator_id) if indicator_id is not None else None,
|
||||
run_type='indicator',
|
||||
market=market,
|
||||
symbol=symbol,
|
||||
timeframe=timeframe,
|
||||
start_date_str=start_date_str,
|
||||
end_date_str=end_date_str,
|
||||
initial_capital=initial_capital,
|
||||
commission=commission,
|
||||
slippage=slippage,
|
||||
leverage=leverage,
|
||||
trade_direction=trade_direction,
|
||||
strategy_config=strategy_config,
|
||||
config_snapshot={'indicatorId': int(indicator_id) if indicator_id is not None else None},
|
||||
status='success',
|
||||
error_message='',
|
||||
result=result,
|
||||
code=indicator_code,
|
||||
)
|
||||
|
||||
return jsonify({
|
||||
'code': 1,
|
||||
@@ -323,42 +306,31 @@ def run_backtest():
|
||||
except Exception as e:
|
||||
logger.error(f"Backtest failed: {str(e)}")
|
||||
logger.error(traceback.format_exc())
|
||||
# Best-effort persist failed run (if we have enough context)
|
||||
try:
|
||||
data = data if isinstance(data, dict) else {}
|
||||
user_id = g.user_id
|
||||
indicator_id = data.get('indicatorId')
|
||||
with get_db_connection() as db:
|
||||
cur = db.cursor()
|
||||
cur.execute(
|
||||
"""
|
||||
INSERT INTO qd_backtest_runs
|
||||
(user_id, indicator_id, market, symbol, timeframe, start_date, end_date,
|
||||
initial_capital, commission, slippage, leverage, trade_direction,
|
||||
strategy_config, status, error_message, result_json, created_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())
|
||||
""",
|
||||
(
|
||||
user_id,
|
||||
int(indicator_id) if indicator_id is not None else None,
|
||||
str(data.get('market', '') or ''),
|
||||
str(data.get('symbol', '') or ''),
|
||||
str(data.get('timeframe', '') or ''),
|
||||
str(data.get('startDate', '') or ''),
|
||||
str(data.get('endDate', '') or ''),
|
||||
float(data.get('initialCapital', 0) or 0),
|
||||
float(data.get('commission', 0) or 0),
|
||||
float(data.get('slippage', 0) or 0),
|
||||
int(data.get('leverage', 1) or 1),
|
||||
str(data.get('tradeDirection', 'long') or 'long'),
|
||||
json.dumps(data.get('strategyConfig') or {}, ensure_ascii=False),
|
||||
'failed',
|
||||
str(e),
|
||||
''
|
||||
)
|
||||
)
|
||||
db.commit()
|
||||
cur.close()
|
||||
backtest_service.persist_run(
|
||||
user_id=user_id,
|
||||
indicator_id=int(indicator_id) if indicator_id is not None else None,
|
||||
run_type='indicator',
|
||||
market=str(data.get('market', '') or ''),
|
||||
symbol=str(data.get('symbol', '') or ''),
|
||||
timeframe=str(data.get('timeframe', '') or ''),
|
||||
start_date_str=str(data.get('startDate', '') or ''),
|
||||
end_date_str=str(data.get('endDate', '') or ''),
|
||||
initial_capital=float(data.get('initialCapital', 0) or 0),
|
||||
commission=float(data.get('commission', 0) or 0),
|
||||
slippage=float(data.get('slippage', 0) or 0),
|
||||
leverage=int(data.get('leverage', 1) or 1),
|
||||
trade_direction=str(data.get('tradeDirection', 'long') or 'long'),
|
||||
strategy_config=data.get('strategyConfig') or {},
|
||||
config_snapshot={'indicatorId': int(indicator_id) if indicator_id is not None else None},
|
||||
status='failed',
|
||||
error_message=str(e),
|
||||
result=None,
|
||||
code=str(data.get('indicatorCode', '') or ''),
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
return jsonify({
|
||||
@@ -391,53 +363,22 @@ def get_backtest_history():
|
||||
offset = max(0, offset)
|
||||
|
||||
indicator_id = request.args.get('indicatorId')
|
||||
strategy_id = request.args.get('strategyId')
|
||||
run_type = (request.args.get('runType') or '').strip()
|
||||
symbol = (request.args.get('symbol') or '').strip()
|
||||
market = (request.args.get('market') or '').strip()
|
||||
timeframe = (request.args.get('timeframe') or '').strip()
|
||||
|
||||
where = ["user_id = ?"]
|
||||
params = [user_id]
|
||||
if indicator_id is not None and str(indicator_id).strip() != "":
|
||||
try:
|
||||
where.append("indicator_id = ?")
|
||||
params.append(int(indicator_id))
|
||||
except Exception:
|
||||
pass
|
||||
if symbol:
|
||||
where.append("symbol = ?")
|
||||
params.append(symbol)
|
||||
if market:
|
||||
where.append("market = ?")
|
||||
params.append(market)
|
||||
if timeframe:
|
||||
where.append("timeframe = ?")
|
||||
params.append(timeframe)
|
||||
where_sql = " AND ".join(where)
|
||||
|
||||
with get_db_connection() as db:
|
||||
cur = db.cursor()
|
||||
cur.execute(
|
||||
f"""
|
||||
SELECT id, user_id, indicator_id, market, symbol, timeframe,
|
||||
start_date, end_date, initial_capital, commission, slippage,
|
||||
leverage, trade_direction, strategy_config, status, error_message,
|
||||
created_at
|
||||
FROM qd_backtest_runs
|
||||
WHERE {where_sql}
|
||||
ORDER BY id DESC
|
||||
LIMIT ? OFFSET ?
|
||||
""",
|
||||
(*params, limit, offset)
|
||||
)
|
||||
rows = cur.fetchall() or []
|
||||
cur.close()
|
||||
|
||||
# Parse strategy_config JSON best-effort
|
||||
for r in rows:
|
||||
try:
|
||||
r['strategy_config'] = json.loads(r.get('strategy_config') or '{}')
|
||||
except Exception:
|
||||
pass
|
||||
rows = backtest_service.list_runs(
|
||||
user_id=user_id,
|
||||
limit=limit,
|
||||
offset=offset,
|
||||
indicator_id=int(indicator_id) if indicator_id is not None and str(indicator_id).strip() != "" else None,
|
||||
strategy_id=int(strategy_id) if strategy_id is not None and str(strategy_id).strip() != "" else None,
|
||||
run_type=run_type or None,
|
||||
symbol=symbol,
|
||||
market=market,
|
||||
timeframe=timeframe,
|
||||
)
|
||||
|
||||
return jsonify({'code': 1, 'msg': 'OK', 'data': rows})
|
||||
except Exception as e:
|
||||
@@ -461,35 +402,10 @@ def get_backtest_run():
|
||||
if not run_id:
|
||||
return jsonify({'code': 0, 'msg': 'runId is required', 'data': None}), 400
|
||||
|
||||
with get_db_connection() as db:
|
||||
cur = db.cursor()
|
||||
cur.execute(
|
||||
"""
|
||||
SELECT id, user_id, indicator_id, market, symbol, timeframe,
|
||||
start_date, end_date, initial_capital, commission, slippage,
|
||||
leverage, trade_direction, strategy_config, status, error_message,
|
||||
result_json, created_at
|
||||
FROM qd_backtest_runs
|
||||
WHERE id = ? AND user_id = ?
|
||||
""",
|
||||
(run_id, user_id),
|
||||
)
|
||||
row = cur.fetchone()
|
||||
cur.close()
|
||||
|
||||
row = backtest_service.get_run(user_id=user_id, run_id=run_id)
|
||||
if not row:
|
||||
return jsonify({'code': 0, 'msg': 'run not found', 'data': None}), 404
|
||||
|
||||
try:
|
||||
row['strategy_config'] = json.loads(row.get('strategy_config') or '{}')
|
||||
except Exception:
|
||||
pass
|
||||
try:
|
||||
row['result'] = json.loads(row.get('result_json') or '{}')
|
||||
except Exception:
|
||||
row['result'] = {}
|
||||
row.pop('result_json', None)
|
||||
|
||||
return jsonify({'code': 1, 'msg': 'OK', 'data': row})
|
||||
except Exception as e:
|
||||
logger.error(f"get_backtest_run failed: {e}")
|
||||
@@ -724,6 +640,7 @@ def ai_analyze_backtest_runs():
|
||||
try:
|
||||
data = request.get_json() or {}
|
||||
user_id = g.user_id
|
||||
backtest_service.ensure_storage_schema()
|
||||
lang = _normalize_lang(data.get('lang'))
|
||||
run_ids = data.get('runIds') or []
|
||||
if not isinstance(run_ids, list) or not run_ids:
|
||||
@@ -740,9 +657,9 @@ def ai_analyze_backtest_runs():
|
||||
cur = db.cursor()
|
||||
cur.execute(
|
||||
f"""
|
||||
SELECT id, user_id, indicator_id, market, symbol, timeframe,
|
||||
SELECT id, user_id, indicator_id, strategy_id, strategy_name, run_type, market, symbol, timeframe,
|
||||
start_date, end_date, initial_capital, commission, slippage,
|
||||
leverage, trade_direction, strategy_config, status, error_message,
|
||||
leverage, trade_direction, strategy_config, config_snapshot, status, error_message,
|
||||
result_json, created_at
|
||||
FROM qd_backtest_runs
|
||||
WHERE user_id = ? AND id IN ({placeholders})
|
||||
@@ -759,6 +676,10 @@ def ai_analyze_backtest_runs():
|
||||
r['strategy_config'] = json.loads(r.get('strategy_config') or '{}')
|
||||
except Exception:
|
||||
r['strategy_config'] = {}
|
||||
try:
|
||||
r['config_snapshot'] = json.loads(r.get('config_snapshot') or '{}')
|
||||
except Exception:
|
||||
r['config_snapshot'] = {}
|
||||
try:
|
||||
r['result'] = json.loads(r.get('result_json') or '{}')
|
||||
except Exception:
|
||||
@@ -806,6 +727,9 @@ def ai_analyze_backtest_runs():
|
||||
"selectedRuns": [
|
||||
{
|
||||
"id": r.get("id"),
|
||||
"strategy_id": r.get("strategy_id"),
|
||||
"strategy_name": r.get("strategy_name"),
|
||||
"run_type": r.get("run_type"),
|
||||
"market": r.get("market"),
|
||||
"symbol": r.get("symbol"),
|
||||
"timeframe": r.get("timeframe"),
|
||||
@@ -814,6 +738,7 @@ def ai_analyze_backtest_runs():
|
||||
"leverage": r.get("leverage"),
|
||||
"trade_direction": r.get("trade_direction"),
|
||||
"strategy_config": r.get("strategy_config") or {},
|
||||
"config_snapshot": r.get("config_snapshot") or {},
|
||||
"result": r.get("result") or {},
|
||||
"status": r.get("status"),
|
||||
}
|
||||
@@ -833,7 +758,7 @@ def ai_analyze_backtest_runs():
|
||||
{"role": "user", "content": json.dumps(user_payload, ensure_ascii=False)},
|
||||
],
|
||||
},
|
||||
timeout=120,
|
||||
timeout=30,
|
||||
)
|
||||
try:
|
||||
resp.raise_for_status()
|
||||
|
||||
@@ -40,7 +40,7 @@ def list_credentials():
|
||||
cur = db.cursor()
|
||||
cur.execute(
|
||||
"""
|
||||
SELECT id, user_id, name, exchange_id, api_key_hint, created_at, updated_at
|
||||
SELECT id, user_id, name, exchange_id, api_key_hint, encrypted_config, created_at, updated_at
|
||||
FROM qd_exchange_credentials
|
||||
WHERE user_id = %s
|
||||
ORDER BY id DESC
|
||||
@@ -50,7 +50,20 @@ def list_credentials():
|
||||
rows = cur.fetchall() or []
|
||||
cur.close()
|
||||
|
||||
return jsonify({'code': 1, 'msg': 'success', 'data': {'items': rows}})
|
||||
items = []
|
||||
for row in rows:
|
||||
item = dict(row or {})
|
||||
item['enable_demo_trading'] = False
|
||||
try:
|
||||
plain = decrypt_credential_blob(item.get('encrypted_config'))
|
||||
cfg = json.loads(plain) if plain else {}
|
||||
item['enable_demo_trading'] = bool(cfg.get('enable_demo_trading') or cfg.get('enableDemoTrading'))
|
||||
except Exception:
|
||||
item['enable_demo_trading'] = False
|
||||
item.pop('encrypted_config', None)
|
||||
items.append(item)
|
||||
|
||||
return jsonify({'code': 1, 'msg': 'success', 'data': {'items': items}})
|
||||
except Exception as e:
|
||||
logger.error(f"list_credentials failed: {str(e)}")
|
||||
logger.error(traceback.format_exc())
|
||||
@@ -59,7 +72,7 @@ def list_credentials():
|
||||
|
||||
CRYPTO_EXCHANGES = [
|
||||
'binance', 'okx', 'bitget', 'bybit', 'coinbaseexchange',
|
||||
'kraken', 'kucoin', 'gate', 'bitfinex', 'deepcoin'
|
||||
'kraken', 'kucoin', 'gate', 'bitfinex', 'deepcoin', 'htx'
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -65,9 +65,17 @@ def _convert_usdt_to_base_qty(client, symbol: str, usdt_amount: float, market_ty
|
||||
logger.info(f"Using limit price {limit_price} for USDT conversion")
|
||||
else:
|
||||
# Try to get current market price from exchange
|
||||
if hasattr(client, "get_ticker"):
|
||||
try:
|
||||
ticker = client.get_ticker(symbol=symbol)
|
||||
if isinstance(ticker, dict):
|
||||
current_price = float(ticker.get("last") or ticker.get("lastPx") or ticker.get("close") or ticker.get("price") or 0)
|
||||
except Exception:
|
||||
current_price = 0.0
|
||||
|
||||
# OKX
|
||||
from app.services.live_trading.okx import OkxClient
|
||||
if isinstance(client, OkxClient):
|
||||
if current_price <= 0 and isinstance(client, OkxClient):
|
||||
try:
|
||||
from app.services.live_trading.symbols import to_okx_spot_inst_id, to_okx_swap_inst_id
|
||||
inst_id = to_okx_spot_inst_id(symbol) if market_type == "spot" else to_okx_swap_inst_id(symbol)
|
||||
@@ -88,7 +96,7 @@ def _convert_usdt_to_base_qty(client, symbol: str, usdt_amount: float, market_ty
|
||||
# Binance - try to get price from public API
|
||||
from app.services.live_trading.binance import BinanceFuturesClient
|
||||
from app.services.live_trading.binance_spot import BinanceSpotClient
|
||||
if isinstance(client, (BinanceFuturesClient, BinanceSpotClient)):
|
||||
if current_price <= 0 and isinstance(client, (BinanceFuturesClient, BinanceSpotClient)):
|
||||
try:
|
||||
# Binance public ticker endpoint
|
||||
base_url = getattr(client, "base_url", "")
|
||||
@@ -284,10 +292,10 @@ def place_order():
|
||||
market_type = "spot" if leverage == 1 else "swap"
|
||||
if market_type in ("futures", "future", "perp", "perpetual"):
|
||||
market_type = "swap"
|
||||
# Override: if leverage > 1, force swap; if leverage = 1, force spot
|
||||
# Override only when user did not explicitly choose market_type.
|
||||
if leverage > 1:
|
||||
market_type = "swap"
|
||||
elif leverage == 1:
|
||||
elif leverage == 1 and not str(body.get("market_type") or "").strip():
|
||||
market_type = "spot"
|
||||
|
||||
# ---- build exchange client ----
|
||||
@@ -485,6 +493,8 @@ def _limit_order_kwargs(client, symbol, amount, price, side, market_type, client
|
||||
from app.services.live_trading.binance import BinanceFuturesClient
|
||||
from app.services.live_trading.binance_spot import BinanceSpotClient
|
||||
from app.services.live_trading.okx import OkxClient
|
||||
from app.services.live_trading.bybit import BybitClient
|
||||
from app.services.live_trading.deepcoin import DeepcoinClient
|
||||
|
||||
if isinstance(client, (BinanceFuturesClient, BinanceSpotClient)):
|
||||
return {"quantity": amount, "price": price, "client_order_id": client_order_id}
|
||||
@@ -497,6 +507,8 @@ def _limit_order_kwargs(client, symbol, amount, price, side, market_type, client
|
||||
pos_side = "long" if side.lower() == "buy" else "short"
|
||||
kwargs["pos_side"] = pos_side
|
||||
return kwargs
|
||||
if isinstance(client, (BybitClient, DeepcoinClient)):
|
||||
return {"qty": amount, "price": price, "client_order_id": client_order_id}
|
||||
# Generic fallback
|
||||
return {"size": amount, "price": price, "client_order_id": client_order_id}
|
||||
|
||||
@@ -592,6 +604,26 @@ def _parse_balance(raw: Any, exchange_id: str, market_type: str) -> Dict[str, An
|
||||
result["available"] = float(c.get("availableToWithdraw") or c.get("walletBalance") or 0)
|
||||
result["total"] = float(c.get("walletBalance") or 0)
|
||||
return result
|
||||
# HTX spot
|
||||
if isinstance(data, dict) and isinstance(data.get("list"), list):
|
||||
for item in data.get("list") or []:
|
||||
if str(item.get("currency") or "").upper() == "USDT" and str(item.get("type") or "").lower() in ("trade", "available", ""):
|
||||
avail = float(item.get("balance") or 0)
|
||||
result["available"] = avail
|
||||
total = 0.0
|
||||
for item in data.get("list") or []:
|
||||
if str(item.get("currency") or "").upper() == "USDT":
|
||||
total += float(item.get("balance") or 0)
|
||||
if total > 0 or result["available"] > 0:
|
||||
result["total"] = total or result["available"]
|
||||
return result
|
||||
# HTX swap
|
||||
if isinstance(data, list) and data and isinstance(data[0], dict):
|
||||
first = data[0]
|
||||
if "margin_available" in first or "margin_balance" in first or "withdraw_available" in first:
|
||||
result["available"] = float(first.get("margin_available") or first.get("withdraw_available") or 0)
|
||||
result["total"] = float(first.get("margin_balance") or first.get("margin_static") or 0)
|
||||
return result
|
||||
# Fallback: try to find any USDT-like values
|
||||
if isinstance(raw, dict):
|
||||
for k, v in raw.items():
|
||||
@@ -679,7 +711,7 @@ def _parse_positions(raw: Any) -> list:
|
||||
# SWAP: posAmt, pos
|
||||
# SPOT: bal (balance), availBal (available balance)
|
||||
size = float(item.get("posAmt") or item.get("pos") or item.get("size") or item.get("contracts") or
|
||||
item.get("bal") or item.get("availBal") or 0)
|
||||
item.get("bal") or item.get("availBal") or item.get("volume") or 0)
|
||||
if abs(size) < 1e-10:
|
||||
continue
|
||||
|
||||
@@ -693,15 +725,21 @@ def _parse_positions(raw: Any) -> list:
|
||||
pos_side = str(item.get("posSide", "")).strip().lower()
|
||||
if pos_side in ("long", "short"):
|
||||
side = pos_side
|
||||
elif item.get("direction"):
|
||||
dir_side = str(item.get("direction") or "").strip().lower()
|
||||
if dir_side in ("buy", "long"):
|
||||
side = "long"
|
||||
elif dir_side in ("sell", "short"):
|
||||
side = "short"
|
||||
|
||||
result.append({
|
||||
"symbol": item.get("symbol") or item.get("instId") or "",
|
||||
"side": side,
|
||||
"size": abs(size),
|
||||
"entry_price": float(item.get("entryPrice") or item.get("avgCost") or item.get("avgPx") or item.get("avgPx") or 0),
|
||||
"unrealized_pnl": float(item.get("unRealizedProfit") or item.get("upl") or item.get("unrealisedPnl") or item.get("pnl") or 0),
|
||||
"entry_price": float(item.get("entryPrice") or item.get("avgCost") or item.get("avgPx") or item.get("cost_open") or 0),
|
||||
"unrealized_pnl": float(item.get("unRealizedProfit") or item.get("upl") or item.get("unrealisedPnl") or item.get("profit_unreal") or item.get("pnl") or 0),
|
||||
"leverage": float(item.get("leverage") or item.get("lever") or 1),
|
||||
"mark_price": float(item.get("markPrice") or item.get("markPx") or item.get("last") or 0),
|
||||
"mark_price": float(item.get("markPrice") or item.get("markPx") or item.get("last_price") or item.get("last") or 0),
|
||||
})
|
||||
except Exception as e:
|
||||
logger.warning(f"_parse_positions error: {e}")
|
||||
|
||||
@@ -2,12 +2,15 @@
|
||||
Trading Strategy API Routes
|
||||
"""
|
||||
from flask import Blueprint, request, jsonify, g
|
||||
from datetime import datetime
|
||||
import json
|
||||
import traceback
|
||||
import time
|
||||
|
||||
from app.services.strategy import StrategyService
|
||||
from app.services.strategy_compiler import StrategyCompiler
|
||||
from app.services.backtest import BacktestService
|
||||
from app.services.strategy_snapshot import StrategySnapshotResolver
|
||||
from app import get_trading_executor
|
||||
from app.utils.logger import get_logger
|
||||
from app.utils.db import get_db_connection
|
||||
@@ -21,6 +24,7 @@ strategy_bp = Blueprint('strategy', __name__)
|
||||
# Local mode: avoid heavy initialization during module import.
|
||||
# Instantiate services lazily on first use to keep startup clean.
|
||||
_strategy_service = None
|
||||
_backtest_service = None
|
||||
|
||||
def get_strategy_service() -> StrategyService:
|
||||
global _strategy_service
|
||||
@@ -29,6 +33,13 @@ def get_strategy_service() -> StrategyService:
|
||||
return _strategy_service
|
||||
|
||||
|
||||
def get_backtest_service() -> BacktestService:
|
||||
global _backtest_service
|
||||
if _backtest_service is None:
|
||||
_backtest_service = BacktestService()
|
||||
return _backtest_service
|
||||
|
||||
|
||||
@strategy_bp.route('/strategies', methods=['GET'])
|
||||
@login_required
|
||||
def list_strategies():
|
||||
@@ -63,6 +74,168 @@ def get_strategy_detail():
|
||||
return jsonify({'code': 0, 'msg': str(e), 'data': None}), 500
|
||||
|
||||
|
||||
@strategy_bp.route('/strategies/backtest', methods=['POST'])
|
||||
@login_required
|
||||
def run_strategy_backtest():
|
||||
try:
|
||||
payload = request.get_json() or {}
|
||||
user_id = g.user_id
|
||||
strategy_id = int(payload.get('strategyId') or 0)
|
||||
if not strategy_id:
|
||||
return jsonify({'code': 0, 'msg': 'strategyId is required', 'data': None}), 400
|
||||
|
||||
start_date_str = str(payload.get('startDate') or '').strip()
|
||||
end_date_str = str(payload.get('endDate') or '').strip()
|
||||
if not start_date_str or not end_date_str:
|
||||
return jsonify({'code': 0, 'msg': 'startDate and endDate are required', 'data': None}), 400
|
||||
|
||||
strategy = get_strategy_service().get_strategy(strategy_id, user_id=user_id)
|
||||
if not strategy:
|
||||
return jsonify({'code': 0, 'msg': 'Strategy not found', 'data': None}), 404
|
||||
|
||||
resolver = StrategySnapshotResolver(user_id=user_id)
|
||||
snapshot = resolver.resolve(strategy, payload.get('overrideConfig') or {})
|
||||
snapshot['user_id'] = user_id
|
||||
|
||||
start_date = datetime.strptime(start_date_str, '%Y-%m-%d')
|
||||
end_date = datetime.strptime(end_date_str, '%Y-%m-%d').replace(hour=23, minute=59, second=59)
|
||||
|
||||
days_diff = (end_date - start_date).days
|
||||
timeframe = snapshot.get('timeframe') or '1D'
|
||||
if timeframe == '1m':
|
||||
max_days = 30
|
||||
max_range_text = '1 month'
|
||||
elif timeframe == '5m':
|
||||
max_days = 180
|
||||
max_range_text = '6 months'
|
||||
elif timeframe in ['15m', '30m']:
|
||||
max_days = 365
|
||||
max_range_text = '1 year'
|
||||
else:
|
||||
max_days = 1095
|
||||
max_range_text = '3 years'
|
||||
if days_diff > max_days:
|
||||
return jsonify({
|
||||
'code': 0,
|
||||
'msg': f'Backtest range exceeds limit: timeframe {timeframe} supports up to {max_range_text} ({max_days} days), but you selected {days_diff} days',
|
||||
'data': None
|
||||
}), 400
|
||||
|
||||
svc = get_backtest_service()
|
||||
result = svc.run_strategy_snapshot(snapshot, start_date=start_date, end_date=end_date)
|
||||
run_id = svc.persist_run(
|
||||
user_id=user_id,
|
||||
indicator_id=snapshot.get('indicator_id'),
|
||||
strategy_id=snapshot.get('strategy_id'),
|
||||
strategy_name=snapshot.get('strategy_name') or '',
|
||||
run_type=snapshot.get('run_type') or 'strategy_indicator',
|
||||
market=snapshot.get('market') or '',
|
||||
symbol=snapshot.get('symbol') or '',
|
||||
timeframe=snapshot.get('timeframe') or '',
|
||||
start_date_str=start_date_str,
|
||||
end_date_str=end_date_str,
|
||||
initial_capital=float(snapshot.get('initial_capital') or 0),
|
||||
commission=float(snapshot.get('commission') or 0),
|
||||
slippage=float(snapshot.get('slippage') or 0),
|
||||
leverage=int(snapshot.get('leverage') or 1),
|
||||
trade_direction=str(snapshot.get('trade_direction') or 'long'),
|
||||
strategy_config=snapshot.get('strategy_config') or {},
|
||||
config_snapshot=snapshot.get('config_snapshot') or {},
|
||||
status='success',
|
||||
error_message='',
|
||||
result=result,
|
||||
code=snapshot.get('code') or '',
|
||||
)
|
||||
return jsonify({'code': 1, 'msg': 'success', 'data': {'runId': run_id, 'result': result}})
|
||||
except ValueError as e:
|
||||
return jsonify({'code': 0, 'msg': str(e), 'data': None}), 400
|
||||
except Exception as e:
|
||||
logger.error(f"run_strategy_backtest failed: {str(e)}")
|
||||
logger.error(traceback.format_exc())
|
||||
try:
|
||||
payload = payload if isinstance(payload, dict) else {}
|
||||
strategy_id = int(payload.get('strategyId') or 0)
|
||||
strategy = get_strategy_service().get_strategy(strategy_id, user_id=g.user_id) if strategy_id else None
|
||||
if strategy:
|
||||
resolver = StrategySnapshotResolver(user_id=g.user_id)
|
||||
snapshot = resolver.resolve(strategy, payload.get('overrideConfig') or {})
|
||||
snapshot['user_id'] = g.user_id
|
||||
get_backtest_service().persist_run(
|
||||
user_id=g.user_id,
|
||||
indicator_id=snapshot.get('indicator_id'),
|
||||
strategy_id=snapshot.get('strategy_id'),
|
||||
strategy_name=snapshot.get('strategy_name') or '',
|
||||
run_type=snapshot.get('run_type') or 'strategy_indicator',
|
||||
market=snapshot.get('market') or '',
|
||||
symbol=snapshot.get('symbol') or '',
|
||||
timeframe=snapshot.get('timeframe') or '',
|
||||
start_date_str=str(payload.get('startDate') or ''),
|
||||
end_date_str=str(payload.get('endDate') or ''),
|
||||
initial_capital=float(snapshot.get('initial_capital') or 0),
|
||||
commission=float(snapshot.get('commission') or 0),
|
||||
slippage=float(snapshot.get('slippage') or 0),
|
||||
leverage=int(snapshot.get('leverage') or 1),
|
||||
trade_direction=str(snapshot.get('trade_direction') or 'long'),
|
||||
strategy_config=snapshot.get('strategy_config') or {},
|
||||
config_snapshot=snapshot.get('config_snapshot') or {},
|
||||
status='failed',
|
||||
error_message=str(e),
|
||||
result=None,
|
||||
code=snapshot.get('code') or '',
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
return jsonify({'code': 0, 'msg': str(e), 'data': None}), 500
|
||||
|
||||
|
||||
@strategy_bp.route('/strategies/backtest/history', methods=['GET'])
|
||||
@login_required
|
||||
def get_strategy_backtest_history():
|
||||
try:
|
||||
user_id = g.user_id
|
||||
strategy_id = int(request.args.get('strategyId') or request.args.get('id') or 0)
|
||||
if not strategy_id:
|
||||
return jsonify({'code': 0, 'msg': 'strategyId is required', 'data': None}), 400
|
||||
limit = max(1, min(int(request.args.get('limit') or 50), 200))
|
||||
offset = max(0, int(request.args.get('offset') or 0))
|
||||
symbol = (request.args.get('symbol') or '').strip()
|
||||
market = (request.args.get('market') or '').strip()
|
||||
timeframe = (request.args.get('timeframe') or '').strip()
|
||||
rows = get_backtest_service().list_runs(
|
||||
user_id=user_id,
|
||||
strategy_id=strategy_id,
|
||||
limit=limit,
|
||||
offset=offset,
|
||||
symbol=symbol,
|
||||
market=market,
|
||||
timeframe=timeframe,
|
||||
)
|
||||
rows = [r for r in rows if str(r.get('run_type') or '').startswith('strategy_')]
|
||||
return jsonify({'code': 1, 'msg': 'success', 'data': rows})
|
||||
except Exception as e:
|
||||
logger.error(f"get_strategy_backtest_history failed: {str(e)}")
|
||||
logger.error(traceback.format_exc())
|
||||
return jsonify({'code': 0, 'msg': str(e), 'data': None}), 500
|
||||
|
||||
|
||||
@strategy_bp.route('/strategies/backtest/get', methods=['GET'])
|
||||
@login_required
|
||||
def get_strategy_backtest_run():
|
||||
try:
|
||||
user_id = g.user_id
|
||||
run_id = int(request.args.get('runId') or 0)
|
||||
if not run_id:
|
||||
return jsonify({'code': 0, 'msg': 'runId is required', 'data': None}), 400
|
||||
row = get_backtest_service().get_run(user_id=user_id, run_id=run_id)
|
||||
if not row or not str(row.get('run_type') or '').startswith('strategy_'):
|
||||
return jsonify({'code': 0, 'msg': 'run not found', 'data': None}), 404
|
||||
return jsonify({'code': 1, 'msg': 'success', 'data': row})
|
||||
except Exception as e:
|
||||
logger.error(f"get_strategy_backtest_run failed: {str(e)}")
|
||||
logger.error(traceback.format_exc())
|
||||
return jsonify({'code': 0, 'msg': str(e), 'data': None}), 500
|
||||
|
||||
|
||||
@strategy_bp.route('/strategies/create', methods=['POST'])
|
||||
@login_required
|
||||
def create_strategy():
|
||||
@@ -695,7 +868,7 @@ def test_connection():
|
||||
return jsonify({'code': 0, 'msg': 'Please provide API key and secret key', 'data': None})
|
||||
|
||||
# Pass the resolved config (with actual keys) to the service
|
||||
result = get_strategy_service().test_exchange_connection(resolved)
|
||||
result = get_strategy_service().test_exchange_connection(resolved, user_id=user_id)
|
||||
|
||||
if result['success']:
|
||||
return jsonify({'code': 1, 'msg': result.get('message') or 'Connection successful', 'data': result.get('data')})
|
||||
@@ -1079,9 +1252,12 @@ def ai_generate_strategy():
|
||||
Generate Python strategy code that follows this framework:
|
||||
- def on_init(ctx): Initialize strategy parameters using ctx.param(name, default)
|
||||
- def on_bar(ctx, bar): Core logic called on each K-line bar
|
||||
- bar has: open, high, low, close, volume, timestamp
|
||||
- bar supports both bar.close and bar['close'] access, and has: open, high, low, close, volume, timestamp
|
||||
- ctx.buy(price, amount), ctx.sell(price, amount), ctx.close_position()
|
||||
- ctx.position (current position), ctx.balance, ctx.equity
|
||||
- ctx.position supports both numeric checks and dict-style fields:
|
||||
- if not ctx.position / if ctx.position > 0 / if ctx.position < 0
|
||||
- ctx.position['side'], ctx.position['size'], ctx.position['entry_price']
|
||||
- ctx.balance, ctx.equity
|
||||
- ctx.bars(n) to get last N bars, ctx.log(message) to log
|
||||
- def on_order_filled(ctx, order): Optional callback when order fills
|
||||
- def on_stop(ctx): Optional cleanup when strategy stops
|
||||
|
||||
@@ -873,16 +873,48 @@ def get_system_strategies():
|
||||
page: int (default 1)
|
||||
page_size: int (default 20, max 100)
|
||||
status: str (optional, filter by status: running/stopped/all)
|
||||
execution_mode: str (optional, live/signal — omit or all for any)
|
||||
search: str (optional, search by strategy name/symbol/username)
|
||||
sort_by: str (optional, whitelist; default status+updated_at)
|
||||
sort_order: str (optional, asc or desc; default desc when sort_by set)
|
||||
"""
|
||||
try:
|
||||
page = request.args.get('page', 1, type=int)
|
||||
page_size = request.args.get('page_size', 20, type=int)
|
||||
status_filter = request.args.get('status', '', type=str).strip().lower()
|
||||
execution_filter = request.args.get('execution_mode', '', type=str).strip().lower()
|
||||
search = request.args.get('search', '', type=str).strip()
|
||||
sort_by = request.args.get('sort_by', '', type=str).strip().lower()
|
||||
sort_order = request.args.get('sort_order', 'desc', type=str).strip().lower()
|
||||
if sort_order not in ('asc', 'desc'):
|
||||
sort_order = 'desc'
|
||||
page_size = min(100, max(1, page_size))
|
||||
offset = (page - 1) * page_size
|
||||
|
||||
sort_sql_map = {
|
||||
'id': 's.id',
|
||||
'updated_at': 's.updated_at',
|
||||
'created_at': 's.created_at',
|
||||
'initial_capital': 's.initial_capital',
|
||||
'strategy_name': 's.strategy_name',
|
||||
'symbol': 's.symbol',
|
||||
'status': 's.status',
|
||||
'execution_mode': 's.execution_mode',
|
||||
'leverage': 's.leverage',
|
||||
}
|
||||
sort_expr_map = {
|
||||
'total_pnl': (
|
||||
"(COALESCE((SELECT SUM(unrealized_pnl) FROM qd_strategy_positions p WHERE p.strategy_id = s.id), 0)"
|
||||
" + COALESCE((SELECT SUM(profit) FROM qd_strategy_trades t WHERE t.strategy_id = s.id), 0))"
|
||||
),
|
||||
'trade_count': '(SELECT COUNT(*) FROM qd_strategy_trades t WHERE t.strategy_id = s.id)',
|
||||
'position_count': '(SELECT COUNT(*) FROM qd_strategy_positions p WHERE p.strategy_id = s.id)',
|
||||
'total_equity': (
|
||||
'COALESCE((SELECT SUM(equity) FROM qd_strategy_positions p WHERE p.strategy_id = s.id), 0)'
|
||||
),
|
||||
}
|
||||
direction = 'ASC' if sort_order == 'asc' else 'DESC'
|
||||
|
||||
with get_db_connection() as db:
|
||||
cur = db.cursor()
|
||||
|
||||
@@ -894,6 +926,10 @@ def get_system_strategies():
|
||||
conditions.append("s.status = ?")
|
||||
params.append(status_filter)
|
||||
|
||||
if execution_filter in ('live', 'signal'):
|
||||
conditions.append("s.execution_mode = ?")
|
||||
params.append(execution_filter)
|
||||
|
||||
if search:
|
||||
conditions.append(
|
||||
"(s.strategy_name ILIKE ? OR s.symbol ILIKE ? OR u.username ILIKE ? OR u.nickname ILIKE ?)"
|
||||
@@ -905,6 +941,13 @@ def get_system_strategies():
|
||||
if conditions:
|
||||
where_clause = "WHERE " + " AND ".join(conditions)
|
||||
|
||||
if sort_by in sort_sql_map:
|
||||
order_clause = f"ORDER BY {sort_sql_map[sort_by]} {direction}, s.id DESC"
|
||||
elif sort_by in sort_expr_map:
|
||||
order_clause = f"ORDER BY {sort_expr_map[sort_by]} {direction}, s.id DESC"
|
||||
else:
|
||||
order_clause = "ORDER BY s.status DESC, s.updated_at DESC, s.id DESC"
|
||||
|
||||
# Get total count
|
||||
count_sql = f"""
|
||||
SELECT COUNT(*) as cnt
|
||||
@@ -941,7 +984,7 @@ def get_system_strategies():
|
||||
FROM qd_strategies_trading s
|
||||
LEFT JOIN qd_users u ON u.id = s.user_id
|
||||
{where_clause}
|
||||
ORDER BY s.status DESC, s.updated_at DESC
|
||||
{order_clause}
|
||||
LIMIT ? OFFSET ?
|
||||
"""
|
||||
cur.execute(query_sql, tuple(params) + (page_size, offset))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -19,13 +19,14 @@ from app.services.live_trading.symbols import to_binance_futures_symbol
|
||||
|
||||
|
||||
class BinanceFuturesClient(BaseRestClient):
|
||||
def __init__(self, *, api_key: str, secret_key: str, base_url: str = None, enable_demo_trading: bool = False, timeout_sec: float = 15.0):
|
||||
def __init__(self, *, api_key: str, secret_key: str, base_url: str = None, enable_demo_trading: bool = False, timeout_sec: float = 15.0, broker_id: str = ""):
|
||||
if not base_url:
|
||||
base_url = "https://demo-fapi.binance.com" if enable_demo_trading else "https://fapi.binance.com"
|
||||
|
||||
super().__init__(base_url=base_url, timeout_sec=timeout_sec)
|
||||
self.api_key = (api_key or "").strip()
|
||||
self.secret_key = (secret_key or "").strip()
|
||||
self.broker_id = (broker_id or "").strip()
|
||||
if not self.api_key or not self.secret_key:
|
||||
raise LiveTradingError("Missing Binance api_key/secret_key")
|
||||
|
||||
@@ -162,6 +163,21 @@ class BinanceFuturesClient(BaseRestClient):
|
||||
def _signed_headers(self) -> Dict[str, str]:
|
||||
return {"X-MBX-APIKEY": self.api_key}
|
||||
|
||||
def _format_client_order_id(self, client_order_id: Optional[str]) -> str:
|
||||
raw = str(client_order_id or "").strip()
|
||||
broker_id = str(self.broker_id or "").strip()
|
||||
if not raw:
|
||||
return ""
|
||||
if not broker_id:
|
||||
return raw[:36]
|
||||
prefix = f"x-{broker_id}"
|
||||
if raw.startswith(prefix):
|
||||
return raw[:36]
|
||||
suffix_budget = max(0, 36 - len(prefix))
|
||||
if suffix_budget <= 0:
|
||||
return prefix[:36]
|
||||
return f"{prefix}{raw[:suffix_budget]}"
|
||||
|
||||
def _signed_request(self, method: str, path: str, *, params: Dict[str, Any]) -> Dict[str, Any]:
|
||||
p = dict(params or {})
|
||||
# Use server-accepted timestamp in ms.
|
||||
@@ -649,8 +665,9 @@ class BinanceFuturesClient(BaseRestClient):
|
||||
}
|
||||
if reduce_only:
|
||||
params["reduceOnly"] = "true"
|
||||
if client_order_id:
|
||||
params["newClientOrderId"] = str(client_order_id)
|
||||
client_order_id_norm = self._format_client_order_id(client_order_id)
|
||||
if client_order_id_norm:
|
||||
params["newClientOrderId"] = client_order_id_norm
|
||||
|
||||
# Hedge mode requires explicit positionSide (LONG/SHORT). One-way mode should not use LONG/SHORT.
|
||||
dual_side = self.get_dual_side_position()
|
||||
@@ -787,8 +804,9 @@ class BinanceFuturesClient(BaseRestClient):
|
||||
}
|
||||
if reduce_only:
|
||||
params["reduceOnly"] = "true"
|
||||
if client_order_id:
|
||||
params["newClientOrderId"] = str(client_order_id)
|
||||
client_order_id_norm = self._format_client_order_id(client_order_id)
|
||||
if client_order_id_norm:
|
||||
params["newClientOrderId"] = client_order_id_norm
|
||||
|
||||
dual_side = self.get_dual_side_position()
|
||||
pos_norm = self._normalize_position_side(position_side)
|
||||
|
||||
@@ -16,13 +16,14 @@ from app.services.live_trading.symbols import to_binance_futures_symbol
|
||||
|
||||
|
||||
class BinanceSpotClient(BaseRestClient):
|
||||
def __init__(self, *, api_key: str, secret_key: str, base_url: str = None, enable_demo_trading: bool = False, timeout_sec: float = 15.0):
|
||||
def __init__(self, *, api_key: str, secret_key: str, base_url: str = None, enable_demo_trading: bool = False, timeout_sec: float = 15.0, broker_id: str = ""):
|
||||
if not base_url:
|
||||
base_url = "https://demo-api.binance.com" if enable_demo_trading else "https://api.binance.com"
|
||||
|
||||
super().__init__(base_url=base_url, timeout_sec=timeout_sec)
|
||||
self.api_key = (api_key or "").strip()
|
||||
self.secret_key = (secret_key or "").strip()
|
||||
self.broker_id = (broker_id or "").strip()
|
||||
if not self.api_key or not self.secret_key:
|
||||
raise LiveTradingError("Missing Binance api_key/secret_key")
|
||||
|
||||
@@ -157,6 +158,21 @@ class BinanceSpotClient(BaseRestClient):
|
||||
def _signed_headers(self) -> Dict[str, str]:
|
||||
return {"X-MBX-APIKEY": self.api_key}
|
||||
|
||||
def _format_client_order_id(self, client_order_id: Optional[str]) -> str:
|
||||
raw = str(client_order_id or "").strip()
|
||||
broker_id = str(self.broker_id or "").strip()
|
||||
if not raw:
|
||||
return ""
|
||||
if not broker_id:
|
||||
return raw[:36]
|
||||
prefix = f"x-{broker_id}"
|
||||
if raw.startswith(prefix):
|
||||
return raw[:36]
|
||||
suffix_budget = max(0, 36 - len(prefix))
|
||||
if suffix_budget <= 0:
|
||||
return prefix[:36]
|
||||
return f"{prefix}{raw[:suffix_budget]}"
|
||||
|
||||
def _signed_request(self, method: str, path: str, *, params: Dict[str, Any]) -> Dict[str, Any]:
|
||||
p = dict(params or {})
|
||||
p["timestamp"] = int(time.time() * 1000)
|
||||
@@ -382,8 +398,9 @@ class BinanceSpotClient(BaseRestClient):
|
||||
"quantity": self._dec_str(q_dec, strict_precision=qty_precision),
|
||||
"price": self._dec_str(px_dec),
|
||||
}
|
||||
if client_order_id:
|
||||
params["newClientOrderId"] = str(client_order_id)
|
||||
client_order_id_norm = self._format_client_order_id(client_order_id)
|
||||
if client_order_id_norm:
|
||||
params["newClientOrderId"] = client_order_id_norm
|
||||
try:
|
||||
raw = self._signed_request("POST", "/api/v3/order", params=params)
|
||||
except LiveTradingError as e:
|
||||
@@ -423,8 +440,9 @@ class BinanceSpotClient(BaseRestClient):
|
||||
"type": "MARKET",
|
||||
"quantity": self._dec_str(q_dec, strict_precision=qty_precision),
|
||||
}
|
||||
if client_order_id:
|
||||
params["newClientOrderId"] = str(client_order_id)
|
||||
client_order_id_norm = self._format_client_order_id(client_order_id)
|
||||
if client_order_id_norm:
|
||||
params["newClientOrderId"] = client_order_id_norm
|
||||
try:
|
||||
raw = self._signed_request("POST", "/api/v3/order", params=params)
|
||||
except LiveTradingError as e:
|
||||
|
||||
@@ -40,12 +40,14 @@ class BitgetMixClient(BaseRestClient):
|
||||
base_url: str = "https://api.bitget.com",
|
||||
timeout_sec: float = 15.0,
|
||||
channel_api_code: str = "qvz9x",
|
||||
simulated_trading: bool = False,
|
||||
):
|
||||
super().__init__(base_url=base_url, timeout_sec=timeout_sec)
|
||||
self.api_key = (api_key or "").strip()
|
||||
self.secret_key = (secret_key or "").strip()
|
||||
self.passphrase = (passphrase or "").strip()
|
||||
self.channel_api_code = (channel_api_code or "").strip()
|
||||
self.simulated_trading = bool(simulated_trading)
|
||||
if not self.api_key or not self.secret_key or not self.passphrase:
|
||||
raise LiveTradingError("Missing Bitget api_key/secret_key/passphrase")
|
||||
|
||||
@@ -193,6 +195,8 @@ class BitgetMixClient(BaseRestClient):
|
||||
"ACCESS-PASSPHRASE": self.passphrase,
|
||||
"Content-Type": "application/json",
|
||||
}
|
||||
if self.simulated_trading:
|
||||
headers["PAPTRADING"] = "1"
|
||||
clean_path = str(request_path or "").split("?", 1)[0]
|
||||
if self.channel_api_code and clean_path in self._CHANNEL_API_CODE_ORDER_PATHS:
|
||||
headers["X-CHANNEL-API-CODE"] = self.channel_api_code
|
||||
|
||||
@@ -41,12 +41,14 @@ class BitgetSpotClient(BaseRestClient):
|
||||
base_url: str = "https://api.bitget.com",
|
||||
timeout_sec: float = 15.0,
|
||||
channel_api_code: str = "qvz9x",
|
||||
simulated_trading: bool = False,
|
||||
):
|
||||
super().__init__(base_url=base_url, timeout_sec=timeout_sec)
|
||||
self.api_key = (api_key or "").strip()
|
||||
self.secret_key = (secret_key or "").strip()
|
||||
self.passphrase = (passphrase or "").strip()
|
||||
self.channel_api_code = (channel_api_code or "").strip()
|
||||
self.simulated_trading = bool(simulated_trading)
|
||||
if not self.api_key or not self.secret_key or not self.passphrase:
|
||||
raise LiveTradingError("Missing Bitget api_key/secret_key/passphrase")
|
||||
|
||||
@@ -167,6 +169,8 @@ class BitgetSpotClient(BaseRestClient):
|
||||
"ACCESS-PASSPHRASE": self.passphrase,
|
||||
"Content-Type": "application/json",
|
||||
}
|
||||
if self.simulated_trading:
|
||||
h["PAPTRADING"] = "1"
|
||||
clean_path = str(request_path or "").split("?", 1)[0]
|
||||
if self.channel_api_code and clean_path in self._CHANNEL_API_CODE_ORDER_PATHS:
|
||||
h["X-CHANNEL-API-CODE"] = self.channel_api_code
|
||||
@@ -474,4 +478,14 @@ class BitgetSpotClient(BaseRestClient):
|
||||
"""
|
||||
return self._signed_request("GET", "/api/v2/spot/account/assets")
|
||||
|
||||
def get_ticker(self, *, symbol: str) -> Dict[str, Any]:
|
||||
sym = to_bitget_um_symbol(symbol)
|
||||
raw = self._public_request("GET", "/api/v2/spot/market/tickers", params={"symbol": sym})
|
||||
data = raw.get("data") if isinstance(raw, dict) else None
|
||||
if isinstance(data, list) and data and isinstance(data[0], dict):
|
||||
return data[0]
|
||||
if isinstance(data, dict):
|
||||
return data
|
||||
return {}
|
||||
|
||||
|
||||
|
||||
@@ -33,12 +33,15 @@ class BybitClient(BaseRestClient):
|
||||
timeout_sec: float = 15.0,
|
||||
category: str = "linear", # "linear" (USDT perpetual) or "spot"
|
||||
recv_window_ms: int = 5000,
|
||||
broker_referer: str = "",
|
||||
hedge_mode: bool = False,
|
||||
):
|
||||
super().__init__(base_url=base_url, timeout_sec=timeout_sec)
|
||||
self.api_key = (api_key or "").strip()
|
||||
self.secret_key = (secret_key or "").strip()
|
||||
self.category = (category or "linear").strip().lower()
|
||||
self.broker_referer = self._DEFAULT_BROKER_REFERER
|
||||
self.broker_referer = (broker_referer or self._DEFAULT_BROKER_REFERER).strip()
|
||||
self.hedge_mode = bool(hedge_mode)
|
||||
if self.category not in ("linear", "spot"):
|
||||
self.category = "linear"
|
||||
try:
|
||||
@@ -158,8 +161,9 @@ class BybitClient(BaseRestClient):
|
||||
def _sign(self, prehash: str) -> str:
|
||||
return hmac.new(self.secret_key.encode("utf-8"), prehash.encode("utf-8"), hashlib.sha256).hexdigest()
|
||||
|
||||
@staticmethod
|
||||
def _resolve_position_idx(pos_side: str) -> Optional[int]:
|
||||
def _resolve_position_idx(self, pos_side: str) -> Optional[int]:
|
||||
if not self.hedge_mode:
|
||||
return None
|
||||
ps = str(pos_side or "").strip().lower()
|
||||
if ps == "long":
|
||||
return 1
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
Translate a strategy signal into a direct-exchange order call.
|
||||
|
||||
Supports:
|
||||
- Crypto exchanges: Binance, OKX, Bitget, Bybit, Coinbase, Kraken, KuCoin, Gate, Bitfinex, Deepcoin
|
||||
- Crypto exchanges: Binance, OKX, Bitget, Bybit, Coinbase, Kraken, KuCoin, Gate, Bitfinex, Deepcoin, HTX
|
||||
- Traditional brokers: Interactive Brokers (IBKR) for US stocks
|
||||
- Forex brokers: MetaTrader 5 (MT5)
|
||||
"""
|
||||
@@ -29,6 +29,9 @@ from app.services.live_trading.bitfinex import BitfinexClient, BitfinexDerivativ
|
||||
# Lazy import Deepcoin
|
||||
DeepcoinClient = None
|
||||
|
||||
# Lazy import HTX
|
||||
HtxClient = None
|
||||
|
||||
# Lazy import IBKR
|
||||
IBKRClient = None
|
||||
|
||||
@@ -98,6 +101,26 @@ def _signal_to_sides(signal_type: str) -> Tuple[str, str, bool]:
|
||||
raise LiveTradingError(f"Unsupported signal_type: {signal_type}")
|
||||
|
||||
|
||||
def _quote_amount_from_base_qty(client: BaseRestClient, *, symbol: str, base_qty: float) -> float:
|
||||
if float(base_qty or 0.0) <= 0:
|
||||
return 0.0
|
||||
if not hasattr(client, "get_ticker"):
|
||||
return float(base_qty or 0.0)
|
||||
try:
|
||||
ticker = client.get_ticker(symbol=symbol)
|
||||
except Exception:
|
||||
return float(base_qty or 0.0)
|
||||
if not isinstance(ticker, dict):
|
||||
return float(base_qty or 0.0)
|
||||
try:
|
||||
price = float(ticker.get("last") or ticker.get("lastPr") or ticker.get("lastPrice") or ticker.get("price") or 0.0)
|
||||
except Exception:
|
||||
price = 0.0
|
||||
if price <= 0:
|
||||
return float(base_qty or 0.0)
|
||||
return float(base_qty or 0.0) * price
|
||||
|
||||
|
||||
def place_order_from_signal(
|
||||
client: BaseRestClient,
|
||||
*,
|
||||
@@ -171,11 +194,13 @@ def place_order_from_signal(
|
||||
client_order_id=client_order_id,
|
||||
)
|
||||
if isinstance(client, BitgetSpotClient):
|
||||
# For spot market BUY, Bitget may expect quote size; we pass base size here and let caller override if needed.
|
||||
spot_size = qty
|
||||
if side == "buy":
|
||||
spot_size = _quote_amount_from_base_qty(client, symbol=symbol, base_qty=qty)
|
||||
return client.place_market_order(
|
||||
symbol=symbol,
|
||||
side=side,
|
||||
size=qty,
|
||||
size=spot_size,
|
||||
client_order_id=client_order_id,
|
||||
)
|
||||
if isinstance(client, BybitClient):
|
||||
@@ -192,12 +217,19 @@ def place_order_from_signal(
|
||||
if isinstance(client, KrakenClient):
|
||||
return client.place_market_order(symbol=symbol, side=side, size=qty, client_order_id=client_order_id)
|
||||
if isinstance(client, KucoinSpotClient):
|
||||
# KuCoin market BUY often requires quote funds; this simplified path does not convert.
|
||||
return client.place_market_order(symbol=symbol, side=side, size=qty, client_order_id=client_order_id, quote_size=False)
|
||||
quote_size = False
|
||||
kucoin_size = qty
|
||||
if side == "buy":
|
||||
kucoin_size = _quote_amount_from_base_qty(client, symbol=symbol, base_qty=qty)
|
||||
quote_size = kucoin_size > 0 and kucoin_size != qty
|
||||
return client.place_market_order(symbol=symbol, side=side, size=kucoin_size, client_order_id=client_order_id, quote_size=quote_size)
|
||||
if isinstance(client, KucoinFuturesClient):
|
||||
return client.place_market_order(symbol=symbol, side=side, size=qty, reduce_only=reduce_only, client_order_id=client_order_id)
|
||||
if isinstance(client, GateSpotClient):
|
||||
return client.place_market_order(symbol=symbol, side=side, size=qty, client_order_id=client_order_id)
|
||||
gate_size = qty
|
||||
if side == "buy":
|
||||
gate_size = _quote_amount_from_base_qty(client, symbol=symbol, base_qty=qty)
|
||||
return client.place_market_order(symbol=symbol, side=side, size=gate_size, client_order_id=client_order_id)
|
||||
if isinstance(client, GateUsdtFuturesClient):
|
||||
return client.place_market_order(symbol=symbol, side=side, size=qty, reduce_only=reduce_only, client_order_id=client_order_id)
|
||||
if isinstance(client, BitfinexClient):
|
||||
@@ -226,6 +258,24 @@ def place_order_from_signal(
|
||||
client_order_id=client_order_id,
|
||||
)
|
||||
|
||||
global HtxClient
|
||||
if HtxClient is None:
|
||||
try:
|
||||
from app.services.live_trading.htx import HtxClient as _HtxClient
|
||||
HtxClient = _HtxClient
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
if HtxClient is not None and isinstance(client, HtxClient):
|
||||
return client.place_market_order(
|
||||
symbol=symbol,
|
||||
side=side,
|
||||
qty=qty,
|
||||
reduce_only=reduce_only,
|
||||
pos_side=pos_side,
|
||||
client_order_id=client_order_id,
|
||||
)
|
||||
|
||||
# Check for IBKR client (lazy import to avoid circular dependency)
|
||||
global IBKRClient
|
||||
if IBKRClient is None:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
Factory for direct exchange clients.
|
||||
|
||||
Supports:
|
||||
- Crypto exchanges: Binance, OKX, Bitget, Bybit, Coinbase, Kraken, KuCoin, Gate, Bitfinex
|
||||
- Crypto exchanges: Binance, OKX, Bitget, Bybit, Coinbase, Kraken, KuCoin, Gate, Bitfinex, Deepcoin, HTX
|
||||
- Traditional brokers: Interactive Brokers (IBKR) for US stocks
|
||||
- Forex brokers: MetaTrader 5 (MT5)
|
||||
"""
|
||||
@@ -25,6 +25,7 @@ from app.services.live_trading.kucoin import KucoinSpotClient, KucoinFuturesClie
|
||||
from app.services.live_trading.gate import GateSpotClient, GateUsdtFuturesClient
|
||||
from app.services.live_trading.bitfinex import BitfinexClient, BitfinexDerivativesClient
|
||||
from app.services.live_trading.deepcoin import DeepcoinClient
|
||||
from app.services.live_trading.htx import HtxClient
|
||||
|
||||
# Lazy import IBKR to avoid ImportError if ib_insync not installed
|
||||
IBKRClient = None
|
||||
@@ -68,14 +69,16 @@ def create_client(exchange_config: Dict[str, Any], *, market_type: str = "swap")
|
||||
is_demo = _demo_enabled(exchange_config)
|
||||
|
||||
if exchange_id == "binance":
|
||||
spot_broker_id = _get(exchange_config, "spot_broker_id", "spotBrokerId", "broker_id", "brokerId") or "A2NAPZAC"
|
||||
futures_broker_id = _get(exchange_config, "futures_broker_id", "futuresBrokerId", "broker_id", "brokerId") or "HBpUbQjT"
|
||||
if mt == "spot":
|
||||
default_url = "https://demo-api.binance.com" if is_demo else "https://api.binance.com"
|
||||
base_url = _get(exchange_config, "base_url", "baseUrl") or default_url
|
||||
return BinanceSpotClient(api_key=api_key, secret_key=secret_key, base_url=base_url, enable_demo_trading=is_demo)
|
||||
return BinanceSpotClient(api_key=api_key, secret_key=secret_key, base_url=base_url, enable_demo_trading=is_demo, broker_id=spot_broker_id)
|
||||
# Default to USDT-M futures
|
||||
default_url = "https://demo-fapi.binance.com" if is_demo else "https://fapi.binance.com"
|
||||
base_url = _get(exchange_config, "base_url", "baseUrl") or default_url
|
||||
return BinanceFuturesClient(api_key=api_key, secret_key=secret_key, base_url=base_url, enable_demo_trading=is_demo)
|
||||
return BinanceFuturesClient(api_key=api_key, secret_key=secret_key, base_url=base_url, enable_demo_trading=is_demo, broker_id=futures_broker_id)
|
||||
if exchange_id == "okx":
|
||||
base_url = _get(exchange_config, "base_url", "baseUrl") or "https://www.okx.com"
|
||||
broker_code = "56fa80b0ce8cBCDE"
|
||||
@@ -92,21 +95,48 @@ def create_client(exchange_config: Dict[str, Any], *, market_type: str = "swap")
|
||||
base_url = _get(exchange_config, "base_url", "baseUrl") or "https://api.bitget.com"
|
||||
if mt == "spot":
|
||||
channel_api_code = _get(exchange_config, "channel_api_code", "channelApiCode") or "qvz9x"
|
||||
return BitgetSpotClient(api_key=api_key, secret_key=secret_key, passphrase=passphrase, base_url=base_url, channel_api_code=channel_api_code)
|
||||
return BitgetSpotClient(
|
||||
api_key=api_key,
|
||||
secret_key=secret_key,
|
||||
passphrase=passphrase,
|
||||
base_url=base_url,
|
||||
channel_api_code=channel_api_code,
|
||||
simulated_trading=is_demo,
|
||||
)
|
||||
channel_api_code = _get(exchange_config, "channel_api_code", "channelApiCode") or "qvz9x"
|
||||
return BitgetMixClient(api_key=api_key, secret_key=secret_key, passphrase=passphrase, base_url=base_url, channel_api_code=channel_api_code)
|
||||
return BitgetMixClient(
|
||||
api_key=api_key,
|
||||
secret_key=secret_key,
|
||||
passphrase=passphrase,
|
||||
base_url=base_url,
|
||||
channel_api_code=channel_api_code,
|
||||
simulated_trading=is_demo,
|
||||
)
|
||||
|
||||
if exchange_id == "bybit":
|
||||
default_bybit = "https://api-testnet.bybit.com" if is_demo else "https://api.bybit.com"
|
||||
base_url = _get(exchange_config, "base_url", "baseUrl") or default_bybit
|
||||
category = "spot" if mt == "spot" else "linear"
|
||||
recv_window_ms = int(exchange_config.get("recv_window_ms") or exchange_config.get("recvWindow") or 5000)
|
||||
broker_referer = _get(exchange_config, "bybit_referer", "broker_referer", "brokerReferer") or "Ri001020"
|
||||
hedge_mode_raw = exchange_config.get("hedge_mode")
|
||||
if hedge_mode_raw is None:
|
||||
hedge_mode_raw = exchange_config.get("hedgeMode")
|
||||
if hedge_mode_raw is None:
|
||||
hedge_mode_raw = exchange_config.get("position_mode") or exchange_config.get("positionMode")
|
||||
hedge_mode = False
|
||||
if isinstance(hedge_mode_raw, bool):
|
||||
hedge_mode = hedge_mode_raw
|
||||
else:
|
||||
hedge_mode = str(hedge_mode_raw or "").strip().lower() in ("true", "1", "yes", "hedge", "both_side")
|
||||
return BybitClient(
|
||||
api_key=api_key,
|
||||
secret_key=secret_key,
|
||||
base_url=base_url,
|
||||
category=category,
|
||||
recv_window_ms=recv_window_ms,
|
||||
broker_referer=broker_referer,
|
||||
hedge_mode=hedge_mode,
|
||||
)
|
||||
|
||||
if exchange_id in ("coinbaseexchange", "coinbase_exchange"):
|
||||
@@ -135,13 +165,14 @@ def create_client(exchange_config: Dict[str, Any], *, market_type: str = "swap")
|
||||
return KucoinFuturesClient(api_key=api_key, secret_key=secret_key, passphrase=passphrase, base_url=fut_url)
|
||||
|
||||
if exchange_id == "gate":
|
||||
gate_channel_id = _get(exchange_config, "gate_channel_id", "gateChannelId") or "dinger"
|
||||
if mt == "spot":
|
||||
default_gate = "https://api-testnet.gateio.ws" if is_demo else "https://api.gateio.ws"
|
||||
base_url = _get(exchange_config, "base_url", "baseUrl") or default_gate
|
||||
return GateSpotClient(api_key=api_key, secret_key=secret_key, base_url=base_url)
|
||||
default_fut = "https://fx-api-testnet.gateio.ws" if is_demo else "https://api.gateio.ws"
|
||||
return GateSpotClient(api_key=api_key, secret_key=secret_key, base_url=base_url, channel_id=gate_channel_id)
|
||||
default_fut = "https://fx-api-testnet.gateio.ws" if is_demo else "https://fx-api.gateio.ws"
|
||||
base_url = _get(exchange_config, "base_url", "baseUrl") or default_fut
|
||||
return GateUsdtFuturesClient(api_key=api_key, secret_key=secret_key, base_url=base_url)
|
||||
return GateUsdtFuturesClient(api_key=api_key, secret_key=secret_key, base_url=base_url, channel_id=gate_channel_id)
|
||||
|
||||
if exchange_id == "bitfinex":
|
||||
# Same REST host; use keys from Bitfinex paper/sub-account where applicable.
|
||||
@@ -151,6 +182,8 @@ def create_client(exchange_config: Dict[str, Any], *, market_type: str = "swap")
|
||||
return BitfinexDerivativesClient(api_key=api_key, secret_key=secret_key, base_url=base_url)
|
||||
|
||||
if exchange_id == "deepcoin":
|
||||
if is_demo and not (_get(exchange_config, "base_url", "baseUrl")):
|
||||
raise LiveTradingError("Deepcoin demo/testnet is not configured in this project yet. Please disable demo mode or provide an explicit testnet base_url.")
|
||||
base_url = _get(exchange_config, "base_url", "baseUrl") or "https://api.deepcoin.com"
|
||||
return DeepcoinClient(
|
||||
api_key=api_key,
|
||||
@@ -160,6 +193,21 @@ def create_client(exchange_config: Dict[str, Any], *, market_type: str = "swap")
|
||||
market_type=mt,
|
||||
)
|
||||
|
||||
if exchange_id == "htx":
|
||||
if is_demo and not (_get(exchange_config, "base_url", "baseUrl") or _get(exchange_config, "futures_base_url", "futuresBaseUrl")):
|
||||
raise LiveTradingError("HTX demo/testnet is not configured in this project yet. Please disable demo mode or provide explicit testnet base_url/futures_base_url.")
|
||||
spot_url = _get(exchange_config, "base_url", "baseUrl") or "https://api.huobi.pro"
|
||||
futures_url = _get(exchange_config, "futures_base_url", "futuresBaseUrl") or "https://api.hbdm.com"
|
||||
broker_id = _get(exchange_config, "broker_id", "brokerId") or "AA7b890547"
|
||||
return HtxClient(
|
||||
api_key=api_key,
|
||||
secret_key=secret_key,
|
||||
base_url=spot_url,
|
||||
futures_base_url=futures_url,
|
||||
market_type=mt,
|
||||
broker_id=broker_id,
|
||||
)
|
||||
|
||||
# Traditional brokers (IBKR for US stocks only)
|
||||
if exchange_id == "ibkr":
|
||||
# Note: Market category validation should be done at the caller level
|
||||
|
||||
@@ -25,10 +25,11 @@ from app.services.live_trading.symbols import to_gate_currency_pair
|
||||
|
||||
|
||||
class _GateBase(BaseRestClient):
|
||||
def __init__(self, *, api_key: str, secret_key: str, base_url: str = "https://api.gateio.ws", timeout_sec: float = 15.0):
|
||||
def __init__(self, *, api_key: str, secret_key: str, base_url: str = "https://api.gateio.ws", timeout_sec: float = 15.0, channel_id: str = ""):
|
||||
super().__init__(base_url=base_url, timeout_sec=timeout_sec)
|
||||
self.api_key = (api_key or "").strip()
|
||||
self.secret_key = (secret_key or "").strip()
|
||||
self.channel_id = (channel_id or "").strip()
|
||||
if not self.api_key or not self.secret_key:
|
||||
raise LiveTradingError("Missing Gate api_key/secret_key")
|
||||
|
||||
@@ -37,7 +38,25 @@ class _GateBase(BaseRestClient):
|
||||
return hmac.new(self.secret_key.encode("utf-8"), msg.encode("utf-8"), hashlib.sha512).hexdigest()
|
||||
|
||||
def _headers(self, ts: str, sign: str) -> Dict[str, str]:
|
||||
return {"KEY": self.api_key, "Timestamp": ts, "SIGN": sign, "Content-Type": "application/json"}
|
||||
headers = {"KEY": self.api_key, "Timestamp": ts, "SIGN": sign, "Content-Type": "application/json"}
|
||||
if self.channel_id:
|
||||
headers["X-Gate-Channel-Id"] = self.channel_id[:19]
|
||||
return headers
|
||||
|
||||
def _format_text(self, client_order_id: Optional[str]) -> str:
|
||||
raw = str(client_order_id or "").strip()
|
||||
if not raw:
|
||||
return ""
|
||||
normalized = []
|
||||
for ch in raw:
|
||||
if ch.isalnum() or ch in ("-", "_", "."):
|
||||
normalized.append(ch)
|
||||
text = "".join(normalized).strip()
|
||||
if not text:
|
||||
return ""
|
||||
if not text.startswith("t-"):
|
||||
text = f"t-{text}"
|
||||
return text[:28]
|
||||
|
||||
def _signed_request(self, method: str, path: str, *, params: Optional[Dict[str, Any]] = None, json_body: Optional[Dict[str, Any]] = None) -> Any:
|
||||
m = str(method or "GET").upper()
|
||||
@@ -87,8 +106,9 @@ class GateSpotClient(_GateBase):
|
||||
"price": str(px),
|
||||
"time_in_force": "gtc",
|
||||
}
|
||||
if client_order_id:
|
||||
body["text"] = str(client_order_id)
|
||||
text = self._format_text(client_order_id)
|
||||
if text:
|
||||
body["text"] = text
|
||||
raw = self._signed_request("POST", "/api/v4/spot/orders", json_body=body)
|
||||
oid = str(raw.get("id") or "") if isinstance(raw, dict) else ""
|
||||
return LiveOrderResult(exchange_id="gate", exchange_order_id=oid, filled=0.0, avg_price=0.0, raw=raw if isinstance(raw, dict) else {"raw": raw})
|
||||
@@ -106,8 +126,9 @@ class GateSpotClient(_GateBase):
|
||||
"type": "market",
|
||||
"amount": str(qty),
|
||||
}
|
||||
if client_order_id:
|
||||
body["text"] = str(client_order_id)
|
||||
text = self._format_text(client_order_id)
|
||||
if text:
|
||||
body["text"] = text
|
||||
raw = self._signed_request("POST", "/api/v4/spot/orders", json_body=body)
|
||||
oid = str(raw.get("id") or "") if isinstance(raw, dict) else ""
|
||||
return LiveOrderResult(exchange_id="gate", exchange_order_id=oid, filled=0.0, avg_price=0.0, raw=raw if isinstance(raw, dict) else {"raw": raw})
|
||||
@@ -162,8 +183,8 @@ class GateSpotClient(_GateBase):
|
||||
|
||||
|
||||
class GateUsdtFuturesClient(_GateBase):
|
||||
def __init__(self, *, api_key: str, secret_key: str, base_url: str = "https://api.gateio.ws", timeout_sec: float = 15.0):
|
||||
super().__init__(api_key=api_key, secret_key=secret_key, base_url=base_url, timeout_sec=timeout_sec)
|
||||
def __init__(self, *, api_key: str, secret_key: str, base_url: str = "https://api.gateio.ws", timeout_sec: float = 15.0, channel_id: str = ""):
|
||||
super().__init__(api_key=api_key, secret_key=secret_key, base_url=base_url, timeout_sec=timeout_sec, channel_id=channel_id)
|
||||
# Best-effort cache for contract metadata to convert base qty -> contracts.
|
||||
self._contract_cache: Dict[str, Tuple[float, Dict[str, Any]]] = {}
|
||||
self._contract_cache_ttl_sec = 300.0
|
||||
@@ -263,8 +284,9 @@ class GateUsdtFuturesClient(_GateBase):
|
||||
body: Dict[str, Any] = {"contract": contract, "size": signed_size, "price": "0", "tif": "ioc"}
|
||||
if reduce_only:
|
||||
body["reduce_only"] = True
|
||||
if client_order_id:
|
||||
body["text"] = str(client_order_id)
|
||||
text = self._format_text(client_order_id)
|
||||
if text:
|
||||
body["text"] = text
|
||||
raw = self._signed_request("POST", "/api/v4/futures/usdt/orders", json_body=body)
|
||||
oid = str(raw.get("id") or "") if isinstance(raw, dict) else ""
|
||||
return LiveOrderResult(exchange_id="gate", exchange_order_id=oid, filled=0.0, avg_price=0.0, raw=raw if isinstance(raw, dict) else {"raw": raw})
|
||||
@@ -293,8 +315,9 @@ class GateUsdtFuturesClient(_GateBase):
|
||||
body: Dict[str, Any] = {"contract": contract, "size": signed_size, "price": str(px), "tif": "gtc"}
|
||||
if reduce_only:
|
||||
body["reduce_only"] = True
|
||||
if client_order_id:
|
||||
body["text"] = str(client_order_id)
|
||||
text = self._format_text(client_order_id)
|
||||
if text:
|
||||
body["text"] = text
|
||||
raw = self._signed_request("POST", "/api/v4/futures/usdt/orders", json_body=body)
|
||||
oid = str(raw.get("id") or "") if isinstance(raw, dict) else ""
|
||||
return LiveOrderResult(exchange_id="gate", exchange_order_id=oid, filled=0.0, avg_price=0.0, raw=raw if isinstance(raw, dict) else {"raw": raw})
|
||||
|
||||
@@ -0,0 +1,529 @@
|
||||
"""
|
||||
HTX (Huobi) direct REST client for spot and USDT-margined perpetual swap.
|
||||
|
||||
References:
|
||||
- Spot base URL: https://api.huobi.pro
|
||||
- USDT swap base URL: https://api.hbdm.com
|
||||
- Spot auth: query params with HmacSHA256 signature
|
||||
- Swap auth: query params with HmacSHA256 signature, request body in JSON
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import base64
|
||||
import hashlib
|
||||
import hmac
|
||||
from decimal import Decimal, ROUND_DOWN
|
||||
from typing import Any, Dict, Optional, Tuple
|
||||
from urllib.parse import urlencode, urlparse
|
||||
import datetime
|
||||
import time
|
||||
|
||||
from app.services.live_trading.base import BaseRestClient, LiveOrderResult, LiveTradingError
|
||||
from app.services.live_trading.symbols import to_htx_contract_code, to_htx_spot_symbol
|
||||
|
||||
|
||||
class HtxClient(BaseRestClient):
|
||||
def __init__(
|
||||
self,
|
||||
*,
|
||||
api_key: str,
|
||||
secret_key: str,
|
||||
base_url: str = "https://api.huobi.pro",
|
||||
futures_base_url: str = "https://api.hbdm.com",
|
||||
timeout_sec: float = 15.0,
|
||||
market_type: str = "swap",
|
||||
broker_id: str = "",
|
||||
):
|
||||
chosen_base = futures_base_url if str(market_type or "").strip().lower() == "swap" else base_url
|
||||
super().__init__(base_url=chosen_base, timeout_sec=timeout_sec)
|
||||
self.spot_base_url = (base_url or "https://api.huobi.pro").rstrip("/")
|
||||
self.futures_base_url = (futures_base_url or "https://api.hbdm.com").rstrip("/")
|
||||
self.api_key = (api_key or "").strip()
|
||||
self.secret_key = (secret_key or "").strip()
|
||||
self.market_type = (market_type or "swap").strip().lower()
|
||||
self.broker_id = (broker_id or "").strip()
|
||||
if self.market_type not in ("spot", "swap"):
|
||||
self.market_type = "swap"
|
||||
if not self.api_key or not self.secret_key:
|
||||
raise LiveTradingError("Missing HTX api_key/secret_key")
|
||||
|
||||
self._spot_account_id: Optional[str] = None
|
||||
self._contract_cache: Dict[str, Tuple[float, Dict[str, Any]]] = {}
|
||||
self._contract_cache_ttl_sec = 300.0
|
||||
self._lever_cache: Dict[str, int] = {}
|
||||
|
||||
def _format_spot_client_order_id(self, client_order_id: Optional[str]) -> str:
|
||||
prefix = str(self.broker_id or "").strip()
|
||||
raw = str(client_order_id or "").strip()
|
||||
if not prefix and not raw:
|
||||
return ""
|
||||
|
||||
if not raw:
|
||||
raw = str(int(time.time() * 1000))
|
||||
|
||||
allowed = []
|
||||
for ch in raw:
|
||||
if ch.isalnum() or ch in ("_", "-"):
|
||||
allowed.append(ch)
|
||||
suffix = "".join(allowed).strip("-_")
|
||||
if not suffix:
|
||||
suffix = str(int(time.time() * 1000))
|
||||
|
||||
if prefix:
|
||||
if suffix.startswith(prefix):
|
||||
combined = suffix
|
||||
else:
|
||||
combined = f"{prefix}-{suffix}"
|
||||
else:
|
||||
combined = suffix
|
||||
return combined[:64]
|
||||
|
||||
@staticmethod
|
||||
def _utc_ts() -> str:
|
||||
return datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S")
|
||||
|
||||
@staticmethod
|
||||
def _to_dec(x: Any) -> Decimal:
|
||||
try:
|
||||
return Decimal(str(x))
|
||||
except Exception:
|
||||
return Decimal("0")
|
||||
|
||||
@staticmethod
|
||||
def _floor_to_int(value: Decimal) -> int:
|
||||
try:
|
||||
return int(value.to_integral_value(rounding=ROUND_DOWN))
|
||||
except Exception:
|
||||
return 0
|
||||
|
||||
def _sign_params(self, *, method: str, base_url: str, path: str, params: Dict[str, Any]) -> Dict[str, Any]:
|
||||
signed = dict(params or {})
|
||||
signed["AccessKeyId"] = self.api_key
|
||||
signed["SignatureMethod"] = "HmacSHA256"
|
||||
signed["SignatureVersion"] = "2"
|
||||
signed["Timestamp"] = self._utc_ts()
|
||||
encoded = urlencode(sorted((str(k), str(v)) for k, v in signed.items()))
|
||||
host = urlparse(base_url).netloc
|
||||
payload = "\n".join([str(method or "GET").upper(), host, path, encoded])
|
||||
digest = hmac.new(self.secret_key.encode("utf-8"), payload.encode("utf-8"), hashlib.sha256).digest()
|
||||
signed["Signature"] = base64.b64encode(digest).decode("utf-8")
|
||||
return signed
|
||||
|
||||
def _spot_public_request(self, method: str, path: str, *, params: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
|
||||
old_base = self.base_url
|
||||
self.base_url = self.spot_base_url
|
||||
try:
|
||||
code, data, text = self._request(method, path, params=params)
|
||||
finally:
|
||||
self.base_url = old_base
|
||||
if code >= 400:
|
||||
raise LiveTradingError(f"HTX spot HTTP {code}: {text[:500]}")
|
||||
if isinstance(data, dict) and str(data.get("status") or "").lower() == "error":
|
||||
raise LiveTradingError(f"HTX spot error: {data}")
|
||||
return data if isinstance(data, dict) else {"raw": data}
|
||||
|
||||
def _spot_private_request(self, method: str, path: str, *, params: Optional[Dict[str, Any]] = None, json_body: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
|
||||
signed_params = self._sign_params(method=method, base_url=self.spot_base_url, path=path, params=params or {})
|
||||
old_base = self.base_url
|
||||
self.base_url = self.spot_base_url
|
||||
try:
|
||||
code, data, text = self._request(method, path, params=signed_params, json_body=json_body)
|
||||
finally:
|
||||
self.base_url = old_base
|
||||
if code >= 400:
|
||||
raise LiveTradingError(f"HTX spot HTTP {code}: {text[:500]}")
|
||||
if isinstance(data, dict) and str(data.get("status") or "").lower() == "error":
|
||||
raise LiveTradingError(f"HTX spot error: {data}")
|
||||
return data if isinstance(data, dict) else {"raw": data}
|
||||
|
||||
def _swap_private_request(self, method: str, path: str, *, params: Optional[Dict[str, Any]] = None, json_body: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
|
||||
signed_params = self._sign_params(method=method, base_url=self.futures_base_url, path=path, params=params or {})
|
||||
old_base = self.base_url
|
||||
self.base_url = self.futures_base_url
|
||||
try:
|
||||
code, data, text = self._request(method, path, params=signed_params, json_body=json_body)
|
||||
finally:
|
||||
self.base_url = old_base
|
||||
if code >= 400:
|
||||
raise LiveTradingError(f"HTX swap HTTP {code}: {text[:500]}")
|
||||
if isinstance(data, dict) and str(data.get("status") or "").lower() == "error":
|
||||
raise LiveTradingError(f"HTX swap error: {data}")
|
||||
return data if isinstance(data, dict) else {"raw": data}
|
||||
|
||||
def _swap_public_request(self, method: str, path: str, *, params: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
|
||||
old_base = self.base_url
|
||||
self.base_url = self.futures_base_url
|
||||
try:
|
||||
code, data, text = self._request(method, path, params=params)
|
||||
finally:
|
||||
self.base_url = old_base
|
||||
if code >= 400:
|
||||
raise LiveTradingError(f"HTX swap HTTP {code}: {text[:500]}")
|
||||
if isinstance(data, dict) and str(data.get("status") or "").lower() == "error":
|
||||
raise LiveTradingError(f"HTX swap error: {data}")
|
||||
return data if isinstance(data, dict) else {"raw": data}
|
||||
|
||||
def ping(self) -> bool:
|
||||
try:
|
||||
if self.market_type == "spot":
|
||||
self._spot_public_request("GET", "/v1/common/timestamp")
|
||||
else:
|
||||
self._swap_public_request("GET", "/linear-swap-api/v1/swap_contract_info")
|
||||
return True
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
def _get_spot_account_id(self) -> str:
|
||||
if self._spot_account_id:
|
||||
return self._spot_account_id
|
||||
raw = self._spot_private_request("GET", "/v1/account/accounts")
|
||||
data = raw.get("data") or []
|
||||
if isinstance(data, list):
|
||||
for item in data:
|
||||
if not isinstance(item, dict):
|
||||
continue
|
||||
if str(item.get("type") or "").lower() == "spot" and str(item.get("state") or "").lower() in ("working", ""):
|
||||
self._spot_account_id = str(item.get("id") or "")
|
||||
if self._spot_account_id:
|
||||
return self._spot_account_id
|
||||
for item in data:
|
||||
if isinstance(item, dict) and item.get("id"):
|
||||
self._spot_account_id = str(item.get("id"))
|
||||
return self._spot_account_id
|
||||
raise LiveTradingError("HTX spot account id not found")
|
||||
|
||||
def get_accounts(self) -> Any:
|
||||
if self.market_type == "spot":
|
||||
return self._spot_private_request("GET", "/v1/account/accounts")
|
||||
return self.get_balance()
|
||||
|
||||
def get_balance(self) -> Any:
|
||||
if self.market_type == "spot":
|
||||
account_id = self._get_spot_account_id()
|
||||
return self._spot_private_request("GET", f"/v1/account/accounts/{account_id}/balance")
|
||||
raw = self._swap_private_request("POST", "/linear-swap-api/v1/swap_cross_account_info", json_body={"margin_account": "USDT"})
|
||||
data = raw.get("data")
|
||||
if data:
|
||||
return raw
|
||||
return self._swap_private_request("POST", "/linear-swap-api/v1/swap_account_info", json_body={})
|
||||
|
||||
def get_positions(self, *, symbol: str = "") -> Any:
|
||||
if self.market_type == "spot":
|
||||
balance = self.get_balance()
|
||||
items = (((balance.get("data") or {}).get("list")) if isinstance(balance, dict) else None) or []
|
||||
base_asset = ""
|
||||
if symbol:
|
||||
base_asset = str(symbol).split("/", 1)[0].split(":", 1)[0].strip().upper()
|
||||
rows = []
|
||||
for item in items:
|
||||
if not isinstance(item, dict):
|
||||
continue
|
||||
ccy = str(item.get("currency") or "").upper()
|
||||
if not ccy or (base_asset and ccy != base_asset):
|
||||
continue
|
||||
bal = self._to_dec(item.get("balance") or "0")
|
||||
if bal <= 0:
|
||||
continue
|
||||
rows.append({
|
||||
"symbol": f"{ccy}/USDT",
|
||||
"bal": float(bal),
|
||||
"availBal": float(self._to_dec(item.get("balance") or "0")),
|
||||
"cost_open": 0,
|
||||
"profit_unreal": 0,
|
||||
})
|
||||
return {"data": rows}
|
||||
|
||||
body = {"contract_code": to_htx_contract_code(symbol)} if symbol else {}
|
||||
raw = self._swap_private_request("POST", "/linear-swap-api/v1/swap_cross_position_info", json_body=body)
|
||||
data = raw.get("data")
|
||||
if data:
|
||||
return raw
|
||||
return self._swap_private_request("POST", "/linear-swap-api/v1/swap_position_info", json_body=body)
|
||||
|
||||
def get_ticker(self, *, symbol: str) -> Dict[str, Any]:
|
||||
if self.market_type == "spot":
|
||||
raw = self._spot_public_request("GET", "/market/detail/merged", params={"symbol": to_htx_spot_symbol(symbol)})
|
||||
else:
|
||||
raw = self._swap_public_request("GET", "/linear-swap-ex/market/detail/merged", params={"contract_code": to_htx_contract_code(symbol)})
|
||||
tick = raw.get("tick") if isinstance(raw, dict) else {}
|
||||
return tick if isinstance(tick, dict) else {}
|
||||
|
||||
def get_contract_info(self, *, symbol: str) -> Dict[str, Any]:
|
||||
key = to_htx_contract_code(symbol)
|
||||
cached = self._contract_cache.get(key)
|
||||
now = time.time()
|
||||
if cached:
|
||||
ts, obj = cached
|
||||
if obj and (now - float(ts or 0)) <= float(self._contract_cache_ttl_sec or 300):
|
||||
return obj
|
||||
raw = self._swap_public_request("GET", "/linear-swap-api/v1/swap_contract_info", params={"contract_code": key})
|
||||
data = raw.get("data") or []
|
||||
obj = data[0] if isinstance(data, list) and data and isinstance(data[0], dict) else {}
|
||||
if obj:
|
||||
self._contract_cache[key] = (now, obj)
|
||||
return obj
|
||||
|
||||
def _base_to_contracts(self, *, symbol: str, qty: float) -> int:
|
||||
req = self._to_dec(qty)
|
||||
if req <= 0:
|
||||
return 0
|
||||
info = self.get_contract_info(symbol=symbol) or {}
|
||||
contract_size = self._to_dec(info.get("contract_size") or info.get("contractSize") or "1")
|
||||
if contract_size <= 0:
|
||||
contract_size = Decimal("1")
|
||||
contracts = req / contract_size
|
||||
val = self._floor_to_int(contracts)
|
||||
return val if val > 0 else 1
|
||||
|
||||
def set_leverage(self, *, symbol: str, leverage: float) -> bool:
|
||||
if self.market_type == "spot":
|
||||
return False
|
||||
contract_code = to_htx_contract_code(symbol)
|
||||
try:
|
||||
lv = int(float(leverage or 1))
|
||||
except Exception:
|
||||
lv = 1
|
||||
if lv < 1:
|
||||
lv = 1
|
||||
try:
|
||||
self._swap_private_request(
|
||||
"POST",
|
||||
"/linear-swap-api/v1/swap_cross_switch_lever_rate",
|
||||
json_body={"contract_code": contract_code, "lever_rate": lv, "margin_account": "USDT"},
|
||||
)
|
||||
self._lever_cache[contract_code] = lv
|
||||
return True
|
||||
except Exception:
|
||||
try:
|
||||
self._swap_private_request(
|
||||
"POST",
|
||||
"/linear-swap-api/v1/swap_switch_lever_rate",
|
||||
json_body={"contract_code": contract_code, "lever_rate": lv},
|
||||
)
|
||||
self._lever_cache[contract_code] = lv
|
||||
return True
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
def place_market_order(
|
||||
self,
|
||||
*,
|
||||
symbol: str,
|
||||
side: str,
|
||||
qty: float,
|
||||
reduce_only: bool = False,
|
||||
pos_side: str = "",
|
||||
client_order_id: Optional[str] = None,
|
||||
) -> LiveOrderResult:
|
||||
if self.market_type == "spot":
|
||||
account_id = self._get_spot_account_id()
|
||||
sd = str(side or "").strip().lower()
|
||||
if sd not in ("buy", "sell"):
|
||||
raise LiveTradingError(f"Invalid side: {side}")
|
||||
amount = float(qty or 0)
|
||||
if amount <= 0:
|
||||
raise LiveTradingError("Invalid qty")
|
||||
order_type = f"{sd}-market"
|
||||
if sd == "buy":
|
||||
tick = self.get_ticker(symbol=symbol)
|
||||
last = float(tick.get("close") or tick.get("price") or tick.get("lastPrice") or 0)
|
||||
if last <= 0:
|
||||
raise LiveTradingError("HTX spot market buy requires latest price for qty->value conversion")
|
||||
amount = amount * last
|
||||
body = {
|
||||
"account-id": account_id,
|
||||
"symbol": to_htx_spot_symbol(symbol),
|
||||
"type": order_type,
|
||||
"amount": f"{amount:.12f}".rstrip("0").rstrip("."),
|
||||
"source": "spot-api",
|
||||
}
|
||||
formatted_client_order_id = self._format_spot_client_order_id(client_order_id)
|
||||
if formatted_client_order_id:
|
||||
body["client-order-id"] = formatted_client_order_id
|
||||
raw = self._spot_private_request("POST", "/v1/order/orders/place", json_body=body)
|
||||
data = raw.get("data")
|
||||
oid = str(data or "")
|
||||
return LiveOrderResult(exchange_id="htx", exchange_order_id=oid, filled=0.0, avg_price=0.0, raw=raw)
|
||||
|
||||
contract_code = to_htx_contract_code(symbol)
|
||||
volume = self._base_to_contracts(symbol=symbol, qty=qty)
|
||||
if volume <= 0:
|
||||
raise LiveTradingError("Invalid HTX swap volume")
|
||||
sd = str(side or "").strip().lower()
|
||||
if sd not in ("buy", "sell"):
|
||||
raise LiveTradingError(f"Invalid side: {side}")
|
||||
offset = "close" if reduce_only else "open"
|
||||
lever_rate = int(self._lever_cache.get(contract_code) or 5)
|
||||
body = {
|
||||
"contract_code": contract_code,
|
||||
"volume": volume,
|
||||
"direction": sd,
|
||||
"offset": offset,
|
||||
"lever_rate": lever_rate,
|
||||
"order_price_type": "opponent",
|
||||
}
|
||||
if self.broker_id:
|
||||
body["channel_code"] = self.broker_id
|
||||
if client_order_id:
|
||||
body["client_order_id"] = str(client_order_id)[:64]
|
||||
raw = self._swap_private_request("POST", "/linear-swap-api/v1/swap_order", json_body=body)
|
||||
data = raw.get("data") or {}
|
||||
oid = str(data.get("order_id_str") or data.get("order_id") or "")
|
||||
return LiveOrderResult(exchange_id="htx", exchange_order_id=oid, filled=0.0, avg_price=0.0, raw=raw)
|
||||
|
||||
def place_limit_order(
|
||||
self,
|
||||
*,
|
||||
symbol: str,
|
||||
side: str,
|
||||
size: float,
|
||||
price: float,
|
||||
reduce_only: bool = False,
|
||||
pos_side: str = "",
|
||||
client_order_id: Optional[str] = None,
|
||||
) -> LiveOrderResult:
|
||||
px = float(price or 0)
|
||||
qty = float(size or 0)
|
||||
if px <= 0 or qty <= 0:
|
||||
raise LiveTradingError("Invalid size/price")
|
||||
sd = str(side or "").strip().lower()
|
||||
if sd not in ("buy", "sell"):
|
||||
raise LiveTradingError(f"Invalid side: {side}")
|
||||
|
||||
if self.market_type == "spot":
|
||||
account_id = self._get_spot_account_id()
|
||||
body = {
|
||||
"account-id": account_id,
|
||||
"symbol": to_htx_spot_symbol(symbol),
|
||||
"type": f"{sd}-limit",
|
||||
"amount": f"{qty:.12f}".rstrip("0").rstrip("."),
|
||||
"price": f"{px:.12f}".rstrip("0").rstrip("."),
|
||||
"source": "spot-api",
|
||||
}
|
||||
formatted_client_order_id = self._format_spot_client_order_id(client_order_id)
|
||||
if formatted_client_order_id:
|
||||
body["client-order-id"] = formatted_client_order_id
|
||||
raw = self._spot_private_request("POST", "/v1/order/orders/place", json_body=body)
|
||||
data = raw.get("data")
|
||||
oid = str(data or "")
|
||||
return LiveOrderResult(exchange_id="htx", exchange_order_id=oid, filled=0.0, avg_price=0.0, raw=raw)
|
||||
|
||||
contract_code = to_htx_contract_code(symbol)
|
||||
volume = self._base_to_contracts(symbol=symbol, qty=qty)
|
||||
lever_rate = int(self._lever_cache.get(contract_code) or 5)
|
||||
body = {
|
||||
"contract_code": contract_code,
|
||||
"volume": volume,
|
||||
"direction": sd,
|
||||
"offset": "close" if reduce_only else "open",
|
||||
"lever_rate": lever_rate,
|
||||
"price": px,
|
||||
"order_price_type": "limit",
|
||||
}
|
||||
if self.broker_id:
|
||||
body["channel_code"] = self.broker_id
|
||||
if client_order_id:
|
||||
body["client_order_id"] = str(client_order_id)[:64]
|
||||
raw = self._swap_private_request("POST", "/linear-swap-api/v1/swap_order", json_body=body)
|
||||
data = raw.get("data") or {}
|
||||
oid = str(data.get("order_id_str") or data.get("order_id") or "")
|
||||
return LiveOrderResult(exchange_id="htx", exchange_order_id=oid, filled=0.0, avg_price=0.0, raw=raw)
|
||||
|
||||
def cancel_order(self, *, symbol: str, order_id: str = "", client_order_id: str = "") -> Dict[str, Any]:
|
||||
if self.market_type == "spot":
|
||||
if order_id:
|
||||
return self._spot_private_request("POST", f"/v1/order/orders/{str(order_id)}/submitcancel")
|
||||
if client_order_id:
|
||||
return self._spot_private_request("POST", "/v1/order/orders/submitCancelClientOrder", json_body={"client-order-id": str(client_order_id)})
|
||||
raise LiveTradingError("HTX cancel_order requires order_id or client_order_id")
|
||||
|
||||
body: Dict[str, Any] = {"contract_code": to_htx_contract_code(symbol)}
|
||||
if order_id:
|
||||
body["order_id"] = str(order_id)
|
||||
elif client_order_id:
|
||||
body["client_order_id"] = str(client_order_id)
|
||||
else:
|
||||
raise LiveTradingError("HTX cancel_order requires order_id or client_order_id")
|
||||
return self._swap_private_request("POST", "/linear-swap-api/v1/swap_cancel", json_body=body)
|
||||
|
||||
def get_order(self, *, symbol: str, order_id: str = "", client_order_id: str = "") -> Dict[str, Any]:
|
||||
if self.market_type == "spot":
|
||||
if order_id:
|
||||
raw = self._spot_private_request("GET", f"/v1/order/orders/{str(order_id)}")
|
||||
data = raw.get("data") if isinstance(raw, dict) else {}
|
||||
return data if isinstance(data, dict) else {}
|
||||
if client_order_id:
|
||||
raw = self._spot_private_request("GET", "/v1/order/orders/getClientOrder", params={"clientOrderId": str(client_order_id)})
|
||||
data = raw.get("data") if isinstance(raw, dict) else {}
|
||||
return data if isinstance(data, dict) else {}
|
||||
raise LiveTradingError("HTX get_order requires order_id or client_order_id")
|
||||
|
||||
body: Dict[str, Any] = {"contract_code": to_htx_contract_code(symbol)}
|
||||
if order_id:
|
||||
body["order_id"] = str(order_id)
|
||||
elif client_order_id:
|
||||
body["client_order_id"] = str(client_order_id)
|
||||
else:
|
||||
raise LiveTradingError("HTX get_order requires order_id or client_order_id")
|
||||
raw = self._swap_private_request("POST", "/linear-swap-api/v1/swap_order_info", json_body=body)
|
||||
data = raw.get("data") or []
|
||||
if isinstance(data, list) and data and isinstance(data[0], dict):
|
||||
return data[0]
|
||||
return {}
|
||||
|
||||
def wait_for_fill(
|
||||
self,
|
||||
*,
|
||||
symbol: str,
|
||||
order_id: str = "",
|
||||
client_order_id: str = "",
|
||||
max_wait_sec: float = 3.0,
|
||||
poll_interval_sec: float = 0.5,
|
||||
) -> Dict[str, Any]:
|
||||
end_ts = time.time() + float(max_wait_sec or 0.0)
|
||||
last: Dict[str, Any] = {}
|
||||
while True:
|
||||
try:
|
||||
last = self.get_order(symbol=symbol, order_id=str(order_id or ""), client_order_id=str(client_order_id or "")) or {}
|
||||
except Exception:
|
||||
last = last or {}
|
||||
|
||||
filled = 0.0
|
||||
avg_price = 0.0
|
||||
fee = 0.0
|
||||
fee_ccy = "USDT"
|
||||
status = str(last.get("status") or last.get("state") or "")
|
||||
try:
|
||||
filled = float(
|
||||
last.get("field-amount") or
|
||||
last.get("filled_amount") or
|
||||
last.get("trade_volume") or
|
||||
last.get("trade_volume_avg") or
|
||||
0.0
|
||||
)
|
||||
except Exception:
|
||||
filled = 0.0
|
||||
try:
|
||||
avg_price = float(
|
||||
last.get("field-cash-amount") or 0.0
|
||||
)
|
||||
if filled > 0 and avg_price > 0:
|
||||
avg_price = avg_price / filled
|
||||
else:
|
||||
avg_price = float(last.get("field-avg-price") or last.get("trade_avg_price") or last.get("price") or 0.0)
|
||||
except Exception:
|
||||
avg_price = 0.0
|
||||
try:
|
||||
fee = abs(float(last.get("fee") or last.get("trade_fee") or 0.0))
|
||||
except Exception:
|
||||
fee = 0.0
|
||||
fee_ccy = str(last.get("fee_asset") or last.get("fee_currency") or fee_ccy or "").strip() or "USDT"
|
||||
|
||||
if filled > 0 and avg_price > 0:
|
||||
return {"filled": filled, "avg_price": avg_price, "fee": fee, "fee_ccy": fee_ccy, "status": status, "order": last}
|
||||
if str(status).lower() in ("filled", "partial-filled", "submitted", "canceled", "cancelled", "6", "7"):
|
||||
return {"filled": filled, "avg_price": avg_price, "fee": fee, "fee_ccy": fee_ccy, "status": status, "order": last}
|
||||
if time.time() >= end_ts:
|
||||
return {"filled": filled, "avg_price": avg_price, "fee": fee, "fee_ccy": fee_ccy, "status": status, "order": last}
|
||||
time.sleep(float(poll_interval_sec or 0.5))
|
||||
@@ -86,6 +86,11 @@ class KucoinSpotClient(BaseRestClient):
|
||||
def get_accounts(self) -> Any:
|
||||
return self._signed_request("GET", "/api/v1/accounts")
|
||||
|
||||
def get_ticker(self, *, symbol: str) -> Dict[str, Any]:
|
||||
raw = self._public_request("GET", "/api/v1/market/orderbook/level1", params={"symbol": to_kucoin_symbol(symbol)})
|
||||
data = raw.get("data") if isinstance(raw, dict) else None
|
||||
return data if isinstance(data, dict) else {}
|
||||
|
||||
def place_limit_order(self, *, symbol: str, side: str, size: float, price: float, client_order_id: Optional[str] = None) -> LiveOrderResult:
|
||||
sd = (side or "").strip().lower()
|
||||
if sd not in ("buy", "sell"):
|
||||
|
||||
@@ -236,3 +236,28 @@ def to_deepcoin_swap_symbol(symbol: str) -> str:
|
||||
return base_symbol
|
||||
return f"{base_symbol}-SWAP"
|
||||
|
||||
|
||||
def to_htx_spot_symbol(symbol: str) -> str:
|
||||
"""
|
||||
HTX spot symbol format: lowercase concatenated, e.g. btcusdt.
|
||||
"""
|
||||
base, quote = _split_base_quote(symbol)
|
||||
if not base or not quote:
|
||||
return str(symbol or "").replace("/", "").replace(":", "").lower()
|
||||
return f"{base}{quote}".lower()
|
||||
|
||||
|
||||
def to_htx_contract_code(symbol: str) -> str:
|
||||
"""
|
||||
HTX USDT-margined swap contract code: BASE-QUOTE, e.g. BTC-USDT.
|
||||
"""
|
||||
s = str(symbol or "").strip()
|
||||
if not s:
|
||||
return s
|
||||
if "-" in s and "/" not in s:
|
||||
return s.upper()
|
||||
base, quote = _split_base_quote(symbol)
|
||||
if not base or not quote:
|
||||
return s.replace("/", "-").replace(":", "-").upper()
|
||||
return f"{base}-{quote}"
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@ from app.services.live_trading.kucoin import KucoinFuturesClient
|
||||
from app.services.live_trading.gate import GateSpotClient, GateUsdtFuturesClient
|
||||
from app.services.live_trading.bitfinex import BitfinexClient
|
||||
from app.services.live_trading.bitfinex import BitfinexDerivativesClient
|
||||
from app.services.live_trading.deepcoin import DeepcoinClient
|
||||
from app.services.live_trading.htx import HtxClient
|
||||
from app.services.live_trading.symbols import to_okx_swap_inst_id
|
||||
from app.services.live_trading.symbols import to_gate_currency_pair
|
||||
from app.utils.db import get_db_connection
|
||||
@@ -1478,6 +1480,31 @@ class PendingOrderWorker:
|
||||
price=limit_price,
|
||||
client_order_id=limit_client_oid,
|
||||
)
|
||||
elif isinstance(client, DeepcoinClient):
|
||||
res1 = client.place_limit_order(
|
||||
symbol=str(symbol),
|
||||
side=side,
|
||||
qty=remaining,
|
||||
price=limit_price,
|
||||
reduce_only=reduce_only,
|
||||
pos_side=pos_side,
|
||||
client_order_id=limit_client_oid,
|
||||
)
|
||||
elif isinstance(client, HtxClient):
|
||||
if market_type == "swap":
|
||||
try:
|
||||
client.set_leverage(symbol=str(symbol), leverage=leverage)
|
||||
except Exception:
|
||||
pass
|
||||
res1 = client.place_limit_order(
|
||||
symbol=str(symbol),
|
||||
side=side,
|
||||
size=remaining,
|
||||
price=limit_price,
|
||||
reduce_only=reduce_only,
|
||||
pos_side=pos_side,
|
||||
client_order_id=limit_client_oid,
|
||||
)
|
||||
else:
|
||||
raise LiveTradingError(f"Unsupported client type: {type(client)}")
|
||||
|
||||
@@ -1563,6 +1590,16 @@ class PendingOrderWorker:
|
||||
phases["limit_query"] = q
|
||||
_apply_fill(float(q.get("filled") or 0.0), float(q.get("avg_price") or 0.0))
|
||||
_apply_fee(float(q.get("fee") or 0.0), str(q.get("fee_ccy") or ""))
|
||||
elif isinstance(client, DeepcoinClient):
|
||||
q = client.wait_for_fill(symbol=str(symbol), order_id=limit_order_id, client_order_id=limit_client_oid, max_wait_sec=maker_wait_sec)
|
||||
phases["limit_query"] = q
|
||||
_apply_fill(float(q.get("filled") or 0.0), float(q.get("avg_price") or 0.0))
|
||||
_apply_fee(float(q.get("fee") or 0.0), str(q.get("fee_ccy") or ""))
|
||||
elif isinstance(client, HtxClient):
|
||||
q = client.wait_for_fill(symbol=str(symbol), order_id=limit_order_id, client_order_id=limit_client_oid, max_wait_sec=maker_wait_sec)
|
||||
phases["limit_query"] = q
|
||||
_apply_fill(float(q.get("filled") or 0.0), float(q.get("avg_price") or 0.0))
|
||||
_apply_fee(float(q.get("fee") or 0.0), str(q.get("fee_ccy") or ""))
|
||||
|
||||
remaining = max(0.0, float(amount or 0.0) - total_base)
|
||||
|
||||
@@ -1625,6 +1662,10 @@ class PendingOrderWorker:
|
||||
phases["limit_cancel"] = client.cancel_order(order_id=limit_order_id, client_order_id=limit_client_oid)
|
||||
elif isinstance(client, BitfinexDerivativesClient):
|
||||
phases["limit_cancel"] = client.cancel_order(order_id=limit_order_id, client_order_id=limit_client_oid)
|
||||
elif isinstance(client, DeepcoinClient):
|
||||
phases["limit_cancel"] = client.cancel_order(symbol=str(symbol), order_id=limit_order_id, client_order_id=limit_client_oid)
|
||||
elif isinstance(client, HtxClient):
|
||||
phases["limit_cancel"] = client.cancel_order(symbol=str(symbol), order_id=limit_order_id, client_order_id=limit_client_oid)
|
||||
except Exception:
|
||||
pass
|
||||
except LiveTradingError as e:
|
||||
@@ -1776,10 +1817,13 @@ class PendingOrderWorker:
|
||||
client_order_id=market_client_oid,
|
||||
)
|
||||
elif isinstance(client, GateSpotClient):
|
||||
mkt_size = remaining
|
||||
if side == "buy" and ref_price > 0:
|
||||
mkt_size = remaining * ref_price
|
||||
res2 = client.place_market_order(
|
||||
symbol=str(symbol),
|
||||
side=side,
|
||||
size=remaining,
|
||||
size=mkt_size,
|
||||
client_order_id=market_client_oid,
|
||||
)
|
||||
elif isinstance(client, GateUsdtFuturesClient):
|
||||
@@ -1803,6 +1847,34 @@ class PendingOrderWorker:
|
||||
)
|
||||
elif isinstance(client, BitfinexDerivativesClient):
|
||||
res2 = client.place_market_order(symbol=str(symbol), side=side, size=remaining, client_order_id=market_client_oid)
|
||||
elif isinstance(client, DeepcoinClient):
|
||||
if market_type == "swap":
|
||||
try:
|
||||
client.set_leverage(symbol=str(symbol), leverage=leverage)
|
||||
except Exception:
|
||||
pass
|
||||
res2 = client.place_market_order(
|
||||
symbol=str(symbol),
|
||||
side=side,
|
||||
qty=remaining,
|
||||
reduce_only=reduce_only,
|
||||
pos_side=pos_side,
|
||||
client_order_id=market_client_oid,
|
||||
)
|
||||
elif isinstance(client, HtxClient):
|
||||
if market_type == "swap":
|
||||
try:
|
||||
client.set_leverage(symbol=str(symbol), leverage=leverage)
|
||||
except Exception:
|
||||
pass
|
||||
res2 = client.place_market_order(
|
||||
symbol=str(symbol),
|
||||
side=side,
|
||||
qty=remaining,
|
||||
reduce_only=reduce_only,
|
||||
pos_side=pos_side,
|
||||
client_order_id=market_client_oid,
|
||||
)
|
||||
else:
|
||||
raise LiveTradingError(f"Unsupported client type: {type(client)}")
|
||||
|
||||
@@ -1889,6 +1961,16 @@ class PendingOrderWorker:
|
||||
phases["market_query"] = q2
|
||||
_apply_fill(float(q2.get("filled") or 0.0), float(q2.get("avg_price") or 0.0))
|
||||
_apply_fee(float(q2.get("fee") or 0.0), str(q2.get("fee_ccy") or ""))
|
||||
elif isinstance(client, DeepcoinClient):
|
||||
q2 = client.wait_for_fill(symbol=str(symbol), order_id=market_order_id, client_order_id=market_client_oid, max_wait_sec=3.0)
|
||||
phases["market_query"] = q2
|
||||
_apply_fill(float(q2.get("filled") or 0.0), float(q2.get("avg_price") or 0.0))
|
||||
_apply_fee(float(q2.get("fee") or 0.0), str(q2.get("fee_ccy") or ""))
|
||||
elif isinstance(client, HtxClient):
|
||||
q2 = client.wait_for_fill(symbol=str(symbol), order_id=market_order_id, client_order_id=market_client_oid, max_wait_sec=3.0)
|
||||
phases["market_query"] = q2
|
||||
_apply_fill(float(q2.get("filled") or 0.0), float(q2.get("avg_price") or 0.0))
|
||||
_apply_fee(float(q2.get("fee") or 0.0), str(q2.get("fee_ccy") or ""))
|
||||
except LiveTradingError as e:
|
||||
logger.warning(f"live market phase failed: pending_id={order_id}, strategy_id={strategy_id}, cfg={safe_cfg}, err={e}")
|
||||
phases["market_error"] = str(e)
|
||||
|
||||
@@ -257,7 +257,7 @@ class StrategyService:
|
||||
logger.error(f"Failed to fetch symbols: {str(e)}")
|
||||
return {'success': False, 'message': f'Failed to get trading pairs: {str(e)}', 'symbols': []}
|
||||
|
||||
def test_exchange_connection(self, exchange_config: Dict[str, Any]) -> Dict[str, Any]:
|
||||
def test_exchange_connection(self, exchange_config: Dict[str, Any], user_id: int = 1) -> Dict[str, Any]:
|
||||
"""
|
||||
Test exchange connection via direct REST clients (no ccxt).
|
||||
|
||||
@@ -284,8 +284,9 @@ class StrategyService:
|
||||
from app.services.live_trading.gate import GateSpotClient, GateUsdtFuturesClient
|
||||
from app.services.live_trading.bitfinex import BitfinexClient, BitfinexDerivativesClient
|
||||
from app.services.live_trading.deepcoin import DeepcoinClient
|
||||
from app.services.live_trading.htx import HtxClient
|
||||
|
||||
resolved = resolve_exchange_config(exchange_config or {})
|
||||
resolved = resolve_exchange_config(exchange_config or {}, user_id=user_id)
|
||||
safe_cfg = safe_exchange_config_for_log(resolved)
|
||||
|
||||
exchange_id = (resolved.get("exchange_id") or "").strip().lower()
|
||||
@@ -370,13 +371,6 @@ class StrategyService:
|
||||
'data': {'exchange': safe_cfg}
|
||||
}
|
||||
|
||||
# IMPORTANT:
|
||||
# Test connection should respect configured market_type (spot vs swap).
|
||||
# Otherwise Binance will default to futures endpoints (fapi) and spot-only keys will fail with -2015.
|
||||
market_type = str(resolved.get("market_type") or resolved.get("defaultType") or "swap").strip().lower()
|
||||
client = create_client(resolved, market_type=market_type)
|
||||
client_kind = type(client).__name__
|
||||
|
||||
# Best-effort detect current egress IP (for Binance IP whitelist debugging).
|
||||
egress_ip = ""
|
||||
try:
|
||||
@@ -385,113 +379,163 @@ class StrategyService:
|
||||
except Exception:
|
||||
egress_ip = ""
|
||||
|
||||
# 1) Public connectivity
|
||||
ok_public = False
|
||||
try:
|
||||
ok_public = bool(getattr(client, "ping")())
|
||||
except Exception:
|
||||
ok_public = False
|
||||
if not ok_public:
|
||||
return {
|
||||
'success': False,
|
||||
'message': f'Public ping failed: {exchange_id}',
|
||||
'data': {'exchange': safe_cfg, 'client': client_kind, 'market_type': market_type, 'egress_ip': egress_ip},
|
||||
}
|
||||
|
||||
# 2) Private credential validation (best-effort)
|
||||
priv_data = None
|
||||
try:
|
||||
def _validate_private(client, market_type: str):
|
||||
if isinstance(client, BinanceFuturesClient):
|
||||
priv_data = client.get_account()
|
||||
elif isinstance(client, BinanceSpotClient):
|
||||
priv_data = client.get_account()
|
||||
elif isinstance(client, OkxClient):
|
||||
priv_data = client.get_balance()
|
||||
elif isinstance(client, BitgetMixClient):
|
||||
return client.get_account()
|
||||
if isinstance(client, BinanceSpotClient):
|
||||
return client.get_account()
|
||||
if isinstance(client, OkxClient):
|
||||
return client.get_balance()
|
||||
if isinstance(client, BitgetMixClient):
|
||||
product_type = str(resolved.get("product_type") or resolved.get("productType") or "USDT-FUTURES")
|
||||
priv_data = client.get_accounts(product_type=product_type)
|
||||
elif isinstance(client, BitgetSpotClient):
|
||||
priv_data = client.get_assets()
|
||||
elif isinstance(client, BybitClient):
|
||||
priv_data = client.get_wallet_balance()
|
||||
elif isinstance(client, CoinbaseExchangeClient):
|
||||
priv_data = client.get_accounts()
|
||||
elif isinstance(client, KrakenClient):
|
||||
priv_data = client.get_balance()
|
||||
elif isinstance(client, KrakenFuturesClient):
|
||||
priv_data = client.get_accounts()
|
||||
elif isinstance(client, KucoinSpotClient):
|
||||
priv_data = client.get_accounts()
|
||||
elif isinstance(client, KucoinFuturesClient):
|
||||
priv_data = client.get_accounts()
|
||||
elif isinstance(client, GateSpotClient):
|
||||
priv_data = client.get_accounts()
|
||||
elif isinstance(client, GateUsdtFuturesClient):
|
||||
priv_data = client.get_accounts()
|
||||
elif isinstance(client, BitfinexClient):
|
||||
priv_data = client.get_wallets()
|
||||
elif isinstance(client, BitfinexDerivativesClient):
|
||||
priv_data = client.get_wallets()
|
||||
elif isinstance(client, DeepcoinClient):
|
||||
priv_data = client.get_balance()
|
||||
except Exception as e:
|
||||
msg = str(e)
|
||||
# Add actionable hints for the most common Binance auth error.
|
||||
if exchange_id == "binance" and ("-2015" in msg or "Invalid API-key, IP, or permissions" in msg):
|
||||
# Auto A/B test: try the other market_type once to pinpoint permission mismatch.
|
||||
alt_market_type = "spot" if market_type != "spot" else "swap"
|
||||
alt_client_kind = ""
|
||||
alt_base_url = ""
|
||||
alt_ok = False
|
||||
try:
|
||||
alt_client = create_client(resolved, market_type=alt_market_type)
|
||||
alt_client_kind = type(alt_client).__name__
|
||||
alt_base_url = getattr(alt_client, "base_url", "") or ""
|
||||
if isinstance(alt_client, BinanceFuturesClient) or isinstance(alt_client, BinanceSpotClient):
|
||||
_ = alt_client.get_account()
|
||||
alt_ok = True
|
||||
except Exception:
|
||||
alt_ok = False
|
||||
return client.get_accounts(product_type=product_type)
|
||||
if isinstance(client, BitgetSpotClient):
|
||||
return client.get_assets()
|
||||
if isinstance(client, BybitClient):
|
||||
return client.get_wallet_balance()
|
||||
if isinstance(client, CoinbaseExchangeClient):
|
||||
return client.get_accounts()
|
||||
if isinstance(client, KrakenClient):
|
||||
return client.get_balance()
|
||||
if isinstance(client, KrakenFuturesClient):
|
||||
return client.get_accounts()
|
||||
if isinstance(client, KucoinSpotClient):
|
||||
return client.get_accounts()
|
||||
if isinstance(client, KucoinFuturesClient):
|
||||
return client.get_accounts()
|
||||
if isinstance(client, GateSpotClient):
|
||||
return client.get_accounts()
|
||||
if isinstance(client, GateUsdtFuturesClient):
|
||||
return client.get_accounts()
|
||||
if isinstance(client, BitfinexClient):
|
||||
return client.get_wallets()
|
||||
if isinstance(client, BitfinexDerivativesClient):
|
||||
return client.get_wallets()
|
||||
if isinstance(client, DeepcoinClient):
|
||||
return client.get_balance()
|
||||
if isinstance(client, HtxClient):
|
||||
return client.get_balance()
|
||||
return None
|
||||
|
||||
base_url = getattr(client, "base_url", "") or ""
|
||||
hint = (
|
||||
f"Binance auth failed (-2015). Verify: "
|
||||
f"(1) IP whitelist includes this server egress IP={egress_ip or 'unknown'}, "
|
||||
f"(2) API key permissions match market_type={market_type} "
|
||||
f"(spot requires Spot permissions; swap requires Futures permissions), "
|
||||
f"(3) you're using binance.com keys for base_url={base_url or 'unknown'}."
|
||||
)
|
||||
if alt_ok:
|
||||
hint += (
|
||||
f" Auto-check: your key works for market_type={alt_market_type} "
|
||||
f"(client={alt_client_kind}, base_url={alt_base_url or 'unknown'}) "
|
||||
f"but fails for market_type={market_type}. This is almost always a permissions/product mismatch."
|
||||
def _probe_market_type(market_type: str):
|
||||
try:
|
||||
client = create_client(resolved, market_type=market_type)
|
||||
except Exception as e:
|
||||
return {
|
||||
'success': False,
|
||||
'message': f'Create client failed: {str(e)}',
|
||||
'data': {
|
||||
'exchange': safe_cfg,
|
||||
'market_type': market_type,
|
||||
'egress_ip': egress_ip,
|
||||
},
|
||||
}
|
||||
client_kind = type(client).__name__
|
||||
|
||||
ok_public = False
|
||||
try:
|
||||
ok_public = bool(getattr(client, "ping")())
|
||||
except Exception:
|
||||
ok_public = False
|
||||
if not ok_public:
|
||||
return {
|
||||
'success': False,
|
||||
'message': f'Public ping failed: {exchange_id}',
|
||||
'data': {
|
||||
'exchange': safe_cfg,
|
||||
'client': client_kind,
|
||||
'market_type': market_type,
|
||||
'egress_ip': egress_ip,
|
||||
'base_url': getattr(client, "base_url", "") or "",
|
||||
},
|
||||
}
|
||||
|
||||
try:
|
||||
priv_data = _validate_private(client, market_type)
|
||||
except Exception as e:
|
||||
msg = str(e)
|
||||
if exchange_id == "binance" and ("-2015" in msg or "Invalid API-key, IP, or permissions" in msg):
|
||||
alt_market_type = "spot" if market_type != "spot" else "swap"
|
||||
alt_client_kind = ""
|
||||
alt_base_url = ""
|
||||
alt_ok = False
|
||||
try:
|
||||
alt_client = create_client(resolved, market_type=alt_market_type)
|
||||
alt_client_kind = type(alt_client).__name__
|
||||
alt_base_url = getattr(alt_client, "base_url", "") or ""
|
||||
if isinstance(alt_client, (BinanceFuturesClient, BinanceSpotClient)):
|
||||
_ = alt_client.get_account()
|
||||
alt_ok = True
|
||||
except Exception:
|
||||
alt_ok = False
|
||||
|
||||
base_url = getattr(client, "base_url", "") or ""
|
||||
is_demo = str(resolved.get("enable_demo_trading") or resolved.get("enableDemoTrading") or "").strip().lower() in ("true", "1", "yes")
|
||||
hint = (
|
||||
f"Binance auth failed (-2015). Verify: "
|
||||
f"(1) IP whitelist includes this server egress IP={egress_ip or 'unknown'}, "
|
||||
f"(2) API key permissions match market_type={market_type} "
|
||||
f"(spot requires Spot permissions; swap requires Futures permissions), "
|
||||
f"(3) you're using the correct key set for base_url={base_url or 'unknown'}."
|
||||
)
|
||||
msg = f"{msg} | {hint}"
|
||||
if is_demo:
|
||||
hint += " Demo mode is enabled, so you must use Binance demo/testnet API keys instead of mainnet keys."
|
||||
else:
|
||||
hint += " Mainnet mode is enabled, so you must use binance.com mainnet keys."
|
||||
if alt_ok:
|
||||
hint += (
|
||||
f" Auto-check: your key works for market_type={alt_market_type} "
|
||||
f"(client={alt_client_kind}, base_url={alt_base_url or 'unknown'}) "
|
||||
f"but fails for market_type={market_type}. This is almost always a permissions/product mismatch."
|
||||
)
|
||||
msg = f"{msg} | {hint}"
|
||||
return {
|
||||
'success': False,
|
||||
'message': f'Auth failed: {msg}',
|
||||
'data': {
|
||||
'exchange': safe_cfg,
|
||||
'client': client_kind,
|
||||
'market_type': market_type,
|
||||
'egress_ip': egress_ip,
|
||||
'base_url': getattr(client, "base_url", "") or "",
|
||||
},
|
||||
}
|
||||
|
||||
return {
|
||||
'success': False,
|
||||
'message': f'Auth failed: {msg}',
|
||||
'success': True,
|
||||
'message': 'Connection OK',
|
||||
'data': {
|
||||
'exchange': safe_cfg,
|
||||
'client': client_kind,
|
||||
'market_type': market_type,
|
||||
'egress_ip': egress_ip,
|
||||
'base_url': getattr(client, "base_url", "") or "",
|
||||
'private': priv_data,
|
||||
},
|
||||
}
|
||||
|
||||
return {
|
||||
'success': True,
|
||||
'message': 'Connection OK',
|
||||
'data': {
|
||||
'exchange': safe_cfg,
|
||||
'client': client_kind,
|
||||
'market_type': market_type,
|
||||
'egress_ip': egress_ip,
|
||||
'base_url': getattr(client, "base_url", "") or "",
|
||||
'private': priv_data,
|
||||
},
|
||||
}
|
||||
raw_market_type = str(resolved.get("market_type") or resolved.get("defaultType") or "").strip().lower()
|
||||
if raw_market_type in ("futures", "future", "perp", "perpetual"):
|
||||
raw_market_type = "swap"
|
||||
explicit_market_type = raw_market_type in ("spot", "swap")
|
||||
if exchange_id in ("coinbaseexchange", "coinbase_exchange"):
|
||||
market_candidates = ["spot"]
|
||||
else:
|
||||
market_candidates = [raw_market_type] if explicit_market_type else ["spot", "swap"]
|
||||
|
||||
last_failure = None
|
||||
for market_type in market_candidates:
|
||||
result = _probe_market_type(market_type)
|
||||
if result.get('success'):
|
||||
if not explicit_market_type and len(market_candidates) > 1:
|
||||
result['message'] = f"Connection OK ({market_type})"
|
||||
return result
|
||||
last_failure = result
|
||||
|
||||
if last_failure and not explicit_market_type and len(market_candidates) > 1:
|
||||
tried = "/".join(market_candidates)
|
||||
last_failure['message'] = f"{last_failure.get('message')}. Tried market_type={tried}"
|
||||
return last_failure or {'success': False, 'message': 'Connection failed', 'data': None}
|
||||
except Exception as e:
|
||||
logger.error(f"test_exchange_connection failed: {str(e)}")
|
||||
return {'success': False, 'message': f'Connection failed: {str(e)}', 'data': None}
|
||||
|
||||
@@ -0,0 +1,204 @@
|
||||
import json
|
||||
from typing import Any, Dict, Optional
|
||||
|
||||
from app.utils.db import get_db_connection
|
||||
|
||||
|
||||
class StrategySnapshotResolver:
|
||||
"""Resolve stored strategy rows into backtest-ready snapshots."""
|
||||
|
||||
def __init__(self, user_id: int = 1):
|
||||
self.user_id = int(user_id or 1)
|
||||
|
||||
def _safe_dict(self, value: Any) -> Dict[str, Any]:
|
||||
if isinstance(value, dict):
|
||||
return dict(value)
|
||||
if isinstance(value, str) and value.strip():
|
||||
try:
|
||||
parsed = json.loads(value)
|
||||
if isinstance(parsed, dict):
|
||||
return parsed
|
||||
except Exception:
|
||||
pass
|
||||
return {}
|
||||
|
||||
def _to_bool(self, value: Any) -> bool:
|
||||
if isinstance(value, bool):
|
||||
return value
|
||||
if isinstance(value, str):
|
||||
return value.strip().lower() in ("1", "true", "yes", "on")
|
||||
return bool(value)
|
||||
|
||||
def _to_float(self, value: Any, default: float = 0.0) -> float:
|
||||
try:
|
||||
return float(value)
|
||||
except Exception:
|
||||
return float(default or 0.0)
|
||||
|
||||
def _to_int(self, value: Any, default: int = 0) -> int:
|
||||
try:
|
||||
return int(value)
|
||||
except Exception:
|
||||
return int(default or 0)
|
||||
|
||||
def _percent_to_ratio(self, value: Any, default: float = 0.0) -> float:
|
||||
raw = self._to_float(value, default)
|
||||
if raw <= 0:
|
||||
return 0.0
|
||||
if raw > 100:
|
||||
raw = 100.0
|
||||
return raw / 100.0
|
||||
|
||||
def _build_strategy_config(self, trading_config: Dict[str, Any]) -> Dict[str, Any]:
|
||||
tc = trading_config or {}
|
||||
signal_mode = str(tc.get("signal_mode") or "confirmed").strip().lower()
|
||||
signal_timing = "next_bar_open"
|
||||
if signal_mode in ("current_bar_close", "close", "same_bar_close"):
|
||||
signal_timing = "same_bar_close"
|
||||
|
||||
return {
|
||||
"risk": {
|
||||
"stopLossPct": self._percent_to_ratio(tc.get("stop_loss_pct")),
|
||||
"takeProfitPct": self._percent_to_ratio(tc.get("take_profit_pct")),
|
||||
"trailing": {
|
||||
"enabled": self._to_bool(tc.get("trailing_enabled") or tc.get("trailing_stop")),
|
||||
"pct": self._percent_to_ratio(tc.get("trailing_stop_pct")),
|
||||
"activationPct": self._percent_to_ratio(tc.get("trailing_activation_pct")),
|
||||
},
|
||||
},
|
||||
"position": {
|
||||
"entryPct": self._percent_to_ratio(tc.get("entry_pct") if tc.get("entry_pct") is not None else 100),
|
||||
},
|
||||
"scale": {
|
||||
"trendAdd": {
|
||||
"enabled": self._to_bool(tc.get("trend_add_enabled")),
|
||||
"stepPct": self._percent_to_ratio(tc.get("trend_add_step_pct")),
|
||||
"sizePct": self._percent_to_ratio(tc.get("trend_add_size_pct")),
|
||||
"maxTimes": self._to_int(tc.get("trend_add_max_times")),
|
||||
},
|
||||
"dcaAdd": {
|
||||
"enabled": self._to_bool(tc.get("dca_add_enabled")),
|
||||
"stepPct": self._percent_to_ratio(tc.get("dca_add_step_pct")),
|
||||
"sizePct": self._percent_to_ratio(tc.get("dca_add_size_pct")),
|
||||
"maxTimes": self._to_int(tc.get("dca_add_max_times")),
|
||||
},
|
||||
"trendReduce": {
|
||||
"enabled": self._to_bool(tc.get("trend_reduce_enabled")),
|
||||
"stepPct": self._percent_to_ratio(tc.get("trend_reduce_step_pct")),
|
||||
"sizePct": self._percent_to_ratio(tc.get("trend_reduce_size_pct")),
|
||||
"maxTimes": self._to_int(tc.get("trend_reduce_max_times")),
|
||||
},
|
||||
"adverseReduce": {
|
||||
"enabled": self._to_bool(tc.get("adverse_reduce_enabled")),
|
||||
"stepPct": self._percent_to_ratio(tc.get("adverse_reduce_step_pct")),
|
||||
"sizePct": self._percent_to_ratio(tc.get("adverse_reduce_size_pct")),
|
||||
"maxTimes": self._to_int(tc.get("adverse_reduce_max_times")),
|
||||
},
|
||||
},
|
||||
"execution": {
|
||||
"signalTiming": signal_timing,
|
||||
},
|
||||
}
|
||||
|
||||
def _fetch_indicator_code(self, indicator_id: Optional[int]) -> str:
|
||||
if not indicator_id:
|
||||
return ""
|
||||
try:
|
||||
with get_db_connection() as db:
|
||||
cur = db.cursor()
|
||||
cur.execute("SELECT code FROM qd_indicator_codes WHERE id = ?", (int(indicator_id),))
|
||||
row = cur.fetchone()
|
||||
cur.close()
|
||||
return (row or {}).get("code") or ""
|
||||
except Exception:
|
||||
return ""
|
||||
|
||||
def resolve(self, strategy: Dict[str, Any], override_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
|
||||
if not strategy:
|
||||
raise ValueError("strategy not found")
|
||||
|
||||
override = override_config or {}
|
||||
indicator_config = self._safe_dict(strategy.get("indicator_config"))
|
||||
trading_config = self._safe_dict(strategy.get("trading_config"))
|
||||
|
||||
cs_type = str(trading_config.get("cs_strategy_type") or trading_config.get("strategy_type") or "single").strip().lower()
|
||||
if cs_type == "cross_sectional":
|
||||
raise ValueError("Cross-sectional strategies are not supported in strategy backtest yet")
|
||||
|
||||
symbol = str(override.get("symbol") or trading_config.get("symbol") or strategy.get("symbol") or "").strip()
|
||||
market = str(override.get("market") or strategy.get("market_category") or trading_config.get("market_category") or "Crypto").strip() or "Crypto"
|
||||
if ":" in symbol and "market" not in override:
|
||||
maybe_market, maybe_symbol = symbol.split(":", 1)
|
||||
market = maybe_market or market
|
||||
symbol = maybe_symbol or symbol
|
||||
|
||||
timeframe = str(override.get("timeframe") or trading_config.get("timeframe") or strategy.get("timeframe") or "1D").strip() or "1D"
|
||||
initial_capital = self._to_float(override.get("initialCapital", trading_config.get("initial_capital", strategy.get("initial_capital", 10000))), 10000.0)
|
||||
leverage = self._to_int(override.get("leverage", trading_config.get("leverage", strategy.get("leverage", 1))), 1)
|
||||
commission = self._percent_to_ratio(override.get("commission", trading_config.get("commission", 0)))
|
||||
slippage = self._percent_to_ratio(override.get("slippage", trading_config.get("slippage", 0)))
|
||||
trade_direction = str(trading_config.get("trade_direction") or "long").strip().lower() or "long"
|
||||
enable_mtf = self._to_bool(override.get("enableMtf", market.lower() == "crypto"))
|
||||
|
||||
strategy_type = str(strategy.get("strategy_type") or "IndicatorStrategy").strip() or "IndicatorStrategy"
|
||||
strategy_mode = str(strategy.get("strategy_mode") or "signal").strip() or "signal"
|
||||
is_script = strategy_type == "ScriptStrategy" or strategy_mode == "script"
|
||||
|
||||
indicator_id = indicator_config.get("indicator_id") or strategy.get("indicator_id")
|
||||
indicator_name = indicator_config.get("indicator_name") or ""
|
||||
code = (strategy.get("strategy_code") or "").strip() if is_script else (indicator_config.get("indicator_code") or "").strip()
|
||||
if not code and indicator_id and not is_script:
|
||||
code = self._fetch_indicator_code(indicator_id)
|
||||
|
||||
if not symbol:
|
||||
raise ValueError("Strategy symbol is required for backtest")
|
||||
if not code:
|
||||
raise ValueError("Strategy code is empty and cannot be backtested")
|
||||
|
||||
strategy_config = self._build_strategy_config(trading_config)
|
||||
snapshot = {
|
||||
"strategy_id": strategy.get("id"),
|
||||
"strategy_name": strategy.get("strategy_name") or f"Strategy #{strategy.get('id')}",
|
||||
"strategy_type": strategy_type,
|
||||
"strategy_mode": strategy_mode,
|
||||
"run_type": "strategy_script" if is_script else "strategy_indicator",
|
||||
"market": market,
|
||||
"symbol": symbol,
|
||||
"timeframe": timeframe,
|
||||
"initial_capital": initial_capital,
|
||||
"commission": commission,
|
||||
"slippage": slippage,
|
||||
"leverage": leverage,
|
||||
"trade_direction": trade_direction,
|
||||
"enable_mtf": enable_mtf,
|
||||
"indicator_id": int(indicator_id) if str(indicator_id or "").isdigit() else None,
|
||||
"indicator_name": indicator_name,
|
||||
"indicator_params": trading_config.get("indicator_params") or {},
|
||||
"code": code,
|
||||
"strategy_config": strategy_config,
|
||||
"config_snapshot": {
|
||||
"strategyMeta": {
|
||||
"strategyId": strategy.get("id"),
|
||||
"strategyName": strategy.get("strategy_name"),
|
||||
"strategyType": strategy_type,
|
||||
"strategyMode": strategy_mode,
|
||||
"runType": "strategy_script" if is_script else "strategy_indicator",
|
||||
},
|
||||
"marketConfig": {
|
||||
"market": market,
|
||||
"symbol": symbol,
|
||||
"timeframe": timeframe,
|
||||
},
|
||||
"signalConfig": {
|
||||
"indicatorId": int(indicator_id) if str(indicator_id or "").isdigit() else None,
|
||||
"indicatorName": indicator_name,
|
||||
"indicatorParams": trading_config.get("indicator_params") or {},
|
||||
"scriptSource": "strategy_code" if is_script else "indicator_code",
|
||||
},
|
||||
"riskConfig": strategy_config.get("risk") or {},
|
||||
"positionConfig": strategy_config.get("position") or {},
|
||||
"scaleConfig": strategy_config.get("scale") or {},
|
||||
"executionConfig": strategy_config.get("execution") or {},
|
||||
},
|
||||
}
|
||||
return snapshot
|
||||
@@ -2039,7 +2039,13 @@ class TradingExecutor:
|
||||
return False
|
||||
|
||||
# 2. 计算下单数量
|
||||
available_capital = self._get_available_capital(strategy_id, initial_capital)
|
||||
available_capital = self._get_available_capital(
|
||||
strategy_id,
|
||||
initial_capital,
|
||||
current_positions=current_positions,
|
||||
current_price=current_price,
|
||||
symbol=symbol,
|
||||
)
|
||||
|
||||
amount = 0.0
|
||||
|
||||
@@ -2655,12 +2661,83 @@ class TradingExecutor:
|
||||
def _place_stop_loss_order(self, *args, **kwargs):
|
||||
pass
|
||||
|
||||
def _get_available_capital(self, strategy_id: int, initial_capital: float) -> float:
|
||||
"""获取可用资金"""
|
||||
return initial_capital
|
||||
def _get_available_capital(
|
||||
self,
|
||||
strategy_id: int,
|
||||
initial_capital: float,
|
||||
current_positions: Optional[List[Dict[str, Any]]] = None,
|
||||
current_price: Optional[float] = None,
|
||||
symbol: str = "",
|
||||
) -> float:
|
||||
"""获取当前策略可用于仓位计算的净值口径资金。"""
|
||||
return self._calculate_current_equity(
|
||||
strategy_id,
|
||||
initial_capital,
|
||||
current_positions=current_positions,
|
||||
current_price=current_price,
|
||||
symbol=symbol,
|
||||
)
|
||||
|
||||
def _calculate_current_equity(self, strategy_id: int, initial_capital: float) -> float:
|
||||
return initial_capital
|
||||
def _calculate_current_equity(
|
||||
self,
|
||||
strategy_id: int,
|
||||
initial_capital: float,
|
||||
current_positions: Optional[List[Dict[str, Any]]] = None,
|
||||
current_price: Optional[float] = None,
|
||||
symbol: str = "",
|
||||
) -> float:
|
||||
realized_pnl = 0.0
|
||||
unrealized_pnl = 0.0
|
||||
try:
|
||||
with get_db_connection() as db:
|
||||
cursor = db.cursor()
|
||||
cursor.execute(
|
||||
"""
|
||||
SELECT COALESCE(SUM(COALESCE(profit, 0) - COALESCE(commission, 0)), 0) AS realized_pnl
|
||||
FROM qd_strategy_trades
|
||||
WHERE strategy_id = %s
|
||||
""",
|
||||
(strategy_id,)
|
||||
)
|
||||
row = cursor.fetchone() or {}
|
||||
realized_pnl = float(row.get('realized_pnl') or 0.0)
|
||||
cursor.close()
|
||||
except Exception as e:
|
||||
logger.warning(f"Failed to calculate realized pnl for strategy {strategy_id}: {e}")
|
||||
|
||||
positions = list(current_positions or [])
|
||||
if not positions:
|
||||
try:
|
||||
positions = self._get_all_positions(strategy_id) or []
|
||||
except Exception:
|
||||
positions = []
|
||||
|
||||
normalized_symbol = (symbol or "").split(':')[0]
|
||||
for pos in positions:
|
||||
try:
|
||||
side = str(pos.get('side') or '').strip().lower()
|
||||
size = float(pos.get('size') or 0.0)
|
||||
entry_price = float(pos.get('entry_price') or 0.0)
|
||||
if size <= 0 or entry_price <= 0 or side not in ('long', 'short'):
|
||||
continue
|
||||
|
||||
mark_price = pos.get('current_price')
|
||||
pos_symbol = str(pos.get('symbol') or '')
|
||||
if current_price and normalized_symbol and pos_symbol.split(':')[0] == normalized_symbol:
|
||||
mark_price = current_price
|
||||
mark_price = float(mark_price or 0.0)
|
||||
if mark_price <= 0:
|
||||
continue
|
||||
|
||||
if side == 'long':
|
||||
unrealized_pnl += (mark_price - entry_price) * size
|
||||
else:
|
||||
unrealized_pnl += (entry_price - mark_price) * size
|
||||
except Exception:
|
||||
continue
|
||||
|
||||
equity = float(initial_capital or 0.0) + realized_pnl + unrealized_pnl
|
||||
return max(0.0, equity)
|
||||
|
||||
def _record_trade(self, strategy_id: int, symbol: str, type: str, price: float, amount: float, value: float, profit: float = None, commission: float = None):
|
||||
"""记录交易到数据库"""
|
||||
|
||||
@@ -432,6 +432,9 @@ CREATE TABLE IF NOT EXISTS qd_backtest_runs (
|
||||
id SERIAL PRIMARY KEY,
|
||||
user_id INTEGER NOT NULL DEFAULT 1 REFERENCES qd_users(id) ON DELETE CASCADE,
|
||||
indicator_id INTEGER,
|
||||
strategy_id INTEGER,
|
||||
strategy_name VARCHAR(255) DEFAULT '',
|
||||
run_type VARCHAR(50) DEFAULT 'indicator',
|
||||
market VARCHAR(50) NOT NULL DEFAULT '',
|
||||
symbol VARCHAR(50) NOT NULL DEFAULT '',
|
||||
timeframe VARCHAR(10) NOT NULL DEFAULT '',
|
||||
@@ -443,6 +446,9 @@ CREATE TABLE IF NOT EXISTS qd_backtest_runs (
|
||||
leverage INTEGER DEFAULT 1,
|
||||
trade_direction VARCHAR(20) DEFAULT 'long',
|
||||
strategy_config TEXT DEFAULT '',
|
||||
config_snapshot TEXT DEFAULT '',
|
||||
engine_version VARCHAR(50) DEFAULT '',
|
||||
code_hash VARCHAR(128) DEFAULT '',
|
||||
status VARCHAR(20) DEFAULT 'success',
|
||||
error_message TEXT DEFAULT '',
|
||||
result_json TEXT DEFAULT '',
|
||||
@@ -451,6 +457,39 @@ CREATE TABLE IF NOT EXISTS qd_backtest_runs (
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_backtest_runs_user_id ON qd_backtest_runs(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_backtest_runs_indicator_id ON qd_backtest_runs(indicator_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_backtest_runs_strategy_id ON qd_backtest_runs(strategy_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_backtest_runs_run_type ON qd_backtest_runs(run_type);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS qd_backtest_trades (
|
||||
id SERIAL PRIMARY KEY,
|
||||
run_id INTEGER NOT NULL,
|
||||
user_id INTEGER NOT NULL DEFAULT 1 REFERENCES qd_users(id) ON DELETE CASCADE,
|
||||
strategy_id INTEGER,
|
||||
trade_index INTEGER DEFAULT 0,
|
||||
trade_time VARCHAR(64) DEFAULT '',
|
||||
trade_type VARCHAR(64) DEFAULT '',
|
||||
side VARCHAR(32) DEFAULT '',
|
||||
price DOUBLE PRECISION DEFAULT 0,
|
||||
amount DOUBLE PRECISION DEFAULT 0,
|
||||
profit DOUBLE PRECISION DEFAULT 0,
|
||||
balance DOUBLE PRECISION DEFAULT 0,
|
||||
reason VARCHAR(64) DEFAULT '',
|
||||
payload_json TEXT DEFAULT '',
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_backtest_trades_run_id ON qd_backtest_trades(run_id);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS qd_backtest_equity_points (
|
||||
id SERIAL PRIMARY KEY,
|
||||
run_id INTEGER NOT NULL,
|
||||
point_index INTEGER DEFAULT 0,
|
||||
point_time VARCHAR(64) DEFAULT '',
|
||||
point_value DOUBLE PRECISION DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_backtest_equity_points_run_id ON qd_backtest_equity_points(run_id);
|
||||
|
||||
-- =============================================================================
|
||||
-- 13. Exchange Credentials
|
||||
|
||||
@@ -4,6 +4,95 @@ This document records version updates, new features, bug fixes, and database mig
|
||||
|
||||
---
|
||||
|
||||
## V3.0.1 (2026-04-05) — Frontend / docs
|
||||
|
||||
- **前端版本**:`QuantDinger-Vue-src/package.json`、页脚展示与 `frontend/VERSION` 统一为 **3.0.1**。
|
||||
- **文档**:根目录 `README.md` 与 `docs/README_CN.md` 补充 QuantDinger 专属交易所邀请注册链接表(与个人中心「开户」一致),版本徽章更新为 3.0.1。
|
||||
- **回测中心**:暗黑主题下图标与「添加标的」等弹窗样式对齐(`a-icon`、图表标题区、Modal 挂载层)。
|
||||
|
||||
---
|
||||
|
||||
## V2.2.4 (2026-04-05)
|
||||
|
||||
### 🚀 New Features
|
||||
|
||||
- **真实策略回测主链路**: 新增基于 `strategyId` 的策略回测入口,支持已保存的 `IndicatorStrategy` 与 `ScriptStrategy`,不再只是“取指标再跑一次指标回测”。
|
||||
- **策略快照解析层**: 后端新增统一策略快照解析逻辑,把 `indicator_config`、`trading_config`、`strategy_code` 解析为可回测的标准输入。
|
||||
- **策略回测历史与详情**: 回测记录现在可区分 `indicator` / `strategy_indicator` / `strategy_script`,并支持策略回测历史、详情查看和 AI 修正建议链路。
|
||||
- **交易助手联动回测中心**: 交易助手中的策略项新增回测跳转入口,可直接带 `strategy_id` 进入回测中心。
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Fixed the previous “策略回测” pseudo-flow that only reused `/api/indicator/backtest` and could not faithfully replay stored strategies.
|
||||
- Fixed strategy backtest history semantics so records can be linked to concrete strategies instead of only relying on `indicator_id`.
|
||||
- Fixed strategy backtest UI entry restoration in Backtest Center and wired the strategy selector/history drawer to real backend endpoints.
|
||||
|
||||
### 🎨 UI/UX Improvements
|
||||
|
||||
- Restored the `回测中心 -> 策略回测` tab with strategy summary cards and environment override controls.
|
||||
- Unified strategy backtest history display with the existing run viewer and AI suggestion modal.
|
||||
|
||||
### 📋 Database Migration
|
||||
|
||||
**在已有 PostgreSQL 库上执行(新库若已通过更新后的 `migrations/init.sql` 初始化则无需再执行):**
|
||||
|
||||
```sql
|
||||
-- ============================================================
|
||||
-- QuantDinger V2.2.4 Database Migration
|
||||
-- Strategy Backtest Persistence Upgrade
|
||||
-- ============================================================
|
||||
|
||||
ALTER TABLE qd_backtest_runs ADD COLUMN IF NOT EXISTS strategy_id INTEGER;
|
||||
ALTER TABLE qd_backtest_runs ADD COLUMN IF NOT EXISTS strategy_name VARCHAR(255) DEFAULT '';
|
||||
ALTER TABLE qd_backtest_runs ADD COLUMN IF NOT EXISTS run_type VARCHAR(50) DEFAULT 'indicator';
|
||||
ALTER TABLE qd_backtest_runs ADD COLUMN IF NOT EXISTS config_snapshot TEXT DEFAULT '';
|
||||
ALTER TABLE qd_backtest_runs ADD COLUMN IF NOT EXISTS engine_version VARCHAR(50) DEFAULT '';
|
||||
ALTER TABLE qd_backtest_runs ADD COLUMN IF NOT EXISTS code_hash VARCHAR(128) DEFAULT '';
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_backtest_runs_strategy_id ON qd_backtest_runs(strategy_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_backtest_runs_run_type ON qd_backtest_runs(run_type);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS qd_backtest_trades (
|
||||
id SERIAL PRIMARY KEY,
|
||||
run_id INTEGER NOT NULL,
|
||||
user_id INTEGER NOT NULL DEFAULT 1 REFERENCES qd_users(id) ON DELETE CASCADE,
|
||||
strategy_id INTEGER,
|
||||
trade_index INTEGER DEFAULT 0,
|
||||
trade_time VARCHAR(64) DEFAULT '',
|
||||
trade_type VARCHAR(64) DEFAULT '',
|
||||
side VARCHAR(32) DEFAULT '',
|
||||
price DOUBLE PRECISION DEFAULT 0,
|
||||
amount DOUBLE PRECISION DEFAULT 0,
|
||||
profit DOUBLE PRECISION DEFAULT 0,
|
||||
balance DOUBLE PRECISION DEFAULT 0,
|
||||
reason VARCHAR(64) DEFAULT '',
|
||||
payload_json TEXT DEFAULT '',
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_backtest_trades_run_id ON qd_backtest_trades(run_id);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS qd_backtest_equity_points (
|
||||
id SERIAL PRIMARY KEY,
|
||||
run_id INTEGER NOT NULL,
|
||||
point_index INTEGER DEFAULT 0,
|
||||
point_time VARCHAR(64) DEFAULT '',
|
||||
point_value DOUBLE PRECISION DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_backtest_equity_points_run_id ON qd_backtest_equity_points(run_id);
|
||||
```
|
||||
|
||||
### 📝 Migration Notes
|
||||
|
||||
- All statements are idempotent and safe to run multiple times.
|
||||
- Existing backtest data is preserved.
|
||||
- Existing `indicator` backtest records remain compatible; new strategy backtests will write `run_type`, `strategy_id`, `strategy_name`, `config_snapshot`, `engine_version`, and `code_hash`.
|
||||
- `qd_backtest_trades` and `qd_backtest_equity_points` are introduced for future strategy-level analytics and debugging.
|
||||
|
||||
---
|
||||
|
||||
## V2.2.3 (2026-03-24)
|
||||
|
||||
### 🚀 New Features
|
||||
|
||||
+20
-6
@@ -27,7 +27,7 @@
|
||||
|
||||
<p>
|
||||
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square&logo=apache" alt="License"></a>
|
||||
<img src="https://img.shields.io/badge/Version-2.2.3-orange?style=flat-square" alt="Version">
|
||||
<img src="https://img.shields.io/badge/Version-3.0.1-orange?style=flat-square" alt="Version">
|
||||
<img src="https://img.shields.io/badge/Python-3.10+-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python">
|
||||
<img src="https://img.shields.io/badge/Docker-一键部署-2496ED?style=flat-square&logo=docker&logoColor=white" alt="Docker">
|
||||
<img src="https://img.shields.io/badge/Vibe%20Coding-就绪-FF6B6B?style=flat-square&logo=sparkles&logoColor=white" alt="Vibe Coding">
|
||||
@@ -51,6 +51,7 @@
|
||||
- [🎯 为什么选择QuantDinger?](#-为什么选择quantdinger)
|
||||
- [📸 视觉导览](#-视觉导览--观看视频演示)
|
||||
- [✨ 核心功能](#-核心功能)
|
||||
- [🔗 QuantDinger 交易所注册邀请链接](#quantdinger-交易所注册邀请链接)
|
||||
- [🔌 支持的交易所和经纪商](#-支持的交易所和经纪商)
|
||||
- [🏗️ 架构与配置](#️-架构与配置)
|
||||
- [📚 文档索引](#-文档索引)
|
||||
@@ -386,6 +387,23 @@ flowchart TB
|
||||
|
||||
---
|
||||
|
||||
## 🔗 QuantDinger 交易所注册邀请链接
|
||||
|
||||
以下为 **QuantDinger** 合作邀请注册链接。通过链接开户可能享受交易手续费返佣(例如最高约 **20%** 返佣,具体以各交易所规则与活动为准)。
|
||||
|
||||
| 交易所 | 邀请 / 注册链接 |
|
||||
|--------|-----------------|
|
||||
| Binance | [注册开户](https://www.bsmkweb.cc/register?ref=QUANTDINGER) |
|
||||
| Bitget | [注册开户](https://partner.hdmune.cn/bg/7r4xz8kd) |
|
||||
| Bybit | [注册开户](https://partner.bybit.com/b/DINGER) |
|
||||
| OKX | [注册开户](https://www.xqmnobxky.com/join/QUANTDINGER) |
|
||||
| Gate.io | [注册开户](https://www.gateport.company/share/DINGER) |
|
||||
| HTX | [注册开户](https://www.htx.com/invite/zh-cn/1f?invite_code=dinger) |
|
||||
|
||||
网页端登录后,亦可在 **个人中心 → 选择交易所开户** 使用相同链接。
|
||||
|
||||
---
|
||||
|
||||
## 🔌 支持的交易所和经纪商
|
||||
|
||||
### 加密货币(直接API交易)
|
||||
@@ -412,11 +430,7 @@ flowchart TB
|
||||
|
||||
### 交易所返佣入口
|
||||
|
||||
如果你本来就准备开通交易所账户,建议直接走返佣链接。很多交易用户本来就会主动找“手续费减免/返佣链接”,而下面这些链接都可以直接享受 20% 手续费减免,不增加任何额外成本。
|
||||
|
||||
- **OKX**:[开户即享 20% 手续费减免](https://www.promooboost.com/join/QUANTDINGER)
|
||||
- **Bitget**:[开户即享 20% 手续费减免](https://partner.bitget.com/bg/dinger)
|
||||
- **Bitget(备用链接)**:[备用 20% 手续费减免注册链接](https://partner.hdmune.cn/bg/7r4xz8kd)
|
||||
完整列表见上文:[QuantDinger 交易所注册邀请链接](#quantdinger-交易所注册邀请链接)。
|
||||
|
||||
---
|
||||
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
3.0.4+build-20260324-2
|
||||
3.0.1
|
||||
|
||||
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
-465
@@ -1,465 +0,0 @@
|
||||
|
||||
.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.notice-item.unread[data-v-7e99442e]{background:#e6f7ff}
|
||||
.notice-item.unread[data-v-7e99442e]:hover{background:#bae7ff}
|
||||
.notice-footer a[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-footer a[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread,.ant-layout.realdark .header-notice-wrapper .notice-item.unread,body.dark .header-notice-wrapper .notice-item.unread,body.realdark .header-notice-wrapper .notice-item.unread{background:rgba(24,144,255,.15)}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread:hover,.ant-layout.realdark .header-notice-wrapper .notice-item.unread:hover,body.dark .header-notice-wrapper .notice-item.unread:hover,body.realdark .header-notice-wrapper .notice-item.unread:hover{background:rgba(24,144,255,.25)}
|
||||
.ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
.setting-drawer-index-content .setting-drawer-index-blockChecbox .setting-drawer-index-item .setting-drawer-index-selectIcon[data-v-940007f2]{color:#1890ff}
|
||||
:global .ant-layout.dark .ant-layout-header .anticon:hover,:global .ant-layout.realdark .ant-layout-header .anticon:hover,:global .ant-pro-layout.dark .ant-layout-header .anticon:hover,:global .ant-pro-layout.realdark .ant-layout-header .anticon:hover,:global body.dark .ant-layout-header .anticon:hover,:global body.realdark .ant-layout-header .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-layout.dark .ant-layout-header a:hover,:global .ant-layout.realdark .ant-layout-header a:hover,:global .ant-pro-layout.dark .ant-layout-header a:hover,:global .ant-pro-layout.realdark .ant-layout-header a:hover,:global body.dark .ant-layout-header a:hover,:global body.realdark .ant-layout-header a:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-content .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,:global .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
:global a:hover{color:#1890ff!important}
|
||||
:global .anticon:hover{color:#1890ff!important}
|
||||
:global(.ant-pro-layout).dark :global(.ant-menu-dark .ant-menu-item-selected),:global(.ant-pro-layout).realdark :global(.ant-menu-dark .ant-menu-item-selected){background:rgba(24,144,255,.25)!important}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-global-header-index-action:hover{background:#1890ff}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-drop-down:hover{color:#1890ff}
|
||||
.ant-pro-global-header-index-right .ant-pro-account-avatar .antd-pro-global-header-index-avatar{color:#1890ff}
|
||||
:global .ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,:global .ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff!important}
|
||||
:global body.dark .ant-menu-dark .ant-menu-item-selected,:global body.realdark .ant-menu-dark .ant-menu-item-selected{background:rgba(24,144,255,.25)!important}
|
||||
a{color:#1890ff}
|
||||
a:hover{color:#40a9ff}
|
||||
a:active{color:#096dd9}
|
||||
::-moz-selection{background:#1890ff}
|
||||
::selection{background:#1890ff}
|
||||
html{--antd-wave-shadow-color:#1890ff}
|
||||
.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{-webkit-box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 #1890ff}
|
||||
#nprogress .bar{background:#1890ff}
|
||||
#nprogress .peg{-webkit-box-shadow:0 0 10px #1890ff,0 0 5px #1890ff;box-shadow:0 0 10px #1890ff,0 0 5px #1890ff}
|
||||
#nprogress .spinner-icon{border-top-color:#1890ff;border-left-color:#1890ff}
|
||||
body.dark .ant-pagination-item-active,body.realdark .ant-pagination-item-active{border-color:#1890ff!important}
|
||||
body.dark .ant-btn-default:hover,body.realdark .ant-btn-default:hover{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .ant-tabs-tab-active,body.realdark .ant-tabs-tab-active{color:#1890ff!important}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.realdark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1)!important;color:#1890ff!important}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .loading-header .loading-icon-pro[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card[data-v-03feb1fa]:after{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 3%,transparent)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card.fundamental[data-v-03feb1fa]:before{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card .analysis-card-header.fundamental .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .loading-icon-pro[data-v-03feb1fa],.fast-analysis-report.theme-dark .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 5%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .feedback-section .ant-btn[data-v-03feb1fa]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 30%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.left-panel .calendar-box .box-header .box-title .anticon[data-v-22f26594]{color:var(--primary-color,#1890ff)}
|
||||
.right-panel .analysis-toolbar .analyze-button[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card-hover-actions .wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent) 30%)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-badge[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);-webkit-box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat-icon[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark .right-panel .analysis-toolbar .history-button[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 45%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .hero-cta .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark .panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.ai-analysis-container.theme-dark .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff)!important;color:var(--primary-color,#1890ff)!important}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.hero-bg-circle.c1[data-v-22f26594]{background:radial-gradient(circle,rgba(24,144,255,.1) 0,transparent 70%)}
|
||||
.hero-bg-grid[data-v-22f26594]{background-image:linear-gradient(rgba(24,144,255,.03) 1px,transparent 0),linear-gradient(90deg,rgba(24,144,255,.03) 1px,transparent 0)}
|
||||
.hero-badge[data-v-22f26594]{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08);border:1px solid rgba(24,144,255,.2)}
|
||||
.hstat[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.1);box-shadow:0 4px 16px rgba(24,144,255,.1)}
|
||||
.hstat-icon[data-v-22f26594]{background:linear-gradient(135deg,rgba(24,144,255,.1),rgba(114,46,209,.08));color:var(--primary-color,#1890ff)}
|
||||
.hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px rgba(24,144,255,.3);box-shadow:0 4px 14px rgba(24,144,255,.3)}
|
||||
.panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.batch-bar .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent);box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent)}
|
||||
.wl-card.active[data-v-22f26594]{background:linear-gradient(135deg,color-mix(in srgb,var(--primary-color,#1890ff) 6%,#fff) 0,color-mix(in srgb,var(--primary-color,#1890ff) 4%,#fff) 100%);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent);-webkit-box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:-webkit-gradient(linear,left top,right top,from(transparent),color-stop(30%,#e6f7ff));background:linear-gradient(90deg,transparent,#e6f7ff 30%)}
|
||||
.wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:#e6f7ff}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]:hover{-webkit-box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent)}
|
||||
.qd-dark-modal .ant-modal-footer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.qd-dark-modal .ant-tag-blue{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-modal .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.qd-dark-modal .ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.qd-dark-modal .batch-symbols-preview .ant-tag{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-primary{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-default:hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.colorWeak .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1);color:#1890ff}
|
||||
.qt-header .qt-header-left .qt-icon[data-v-0d547552]{color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-slider-track{background:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .probability-comparison .prob-item .prob-value.ai-prob[data-v-67e891d2]{color:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .recommendation-section .rec-card .rec-value[data-v-67e891d2]{color:#1890ff}
|
||||
.code-section .section-header .section-title[data-v-4fea1865]:before{background:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link{color:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link:hover{color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:hover{border-color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:focus-within{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05);box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05)}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-cursor{border-left:2px solid #1890ff}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-selected{background:#e6f7ff}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn:not(.ant-btn-primary):hover{border-color:#40a9ff;color:#40a9ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary{-webkit-box-shadow:0 2px 4px rgba(24,144,255,.3);box-shadow:0 2px 4px rgba(24,144,255,.3)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary:hover{-webkit-box-shadow:0 4px 12px rgba(24,144,255,.4);box-shadow:0 4px 12px rgba(24,144,255,.4)}
|
||||
.drawing-tool-btn[data-v-58f93984]:hover{color:#1890ff}
|
||||
.drawing-tool-btn.active[data-v-58f93984]{background:#e6f7ff;color:#1890ff;border:1px solid #1890ff}
|
||||
.indicator-btn[data-v-58f93984]:hover{color:#1890ff;border-color:#1890ff}
|
||||
.indicator-btn.active[data-v-58f93984]{color:#1890ff;border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.1);box-shadow:0 0 0 2px rgba(24,144,255,.1)}
|
||||
.section-title .anticon[data-v-473e449c]{color:#1890ff}
|
||||
.loading-overlay .bar[data-v-473e449c]{background:-webkit-gradient(linear,left top,left bottom,from(#1890ff),to(#52c41a));background:linear-gradient(180deg,#1890ff,#52c41a)}
|
||||
.loading-overlay .loading-text[data-v-473e449c]{color:#1890ff}
|
||||
.symbol-select[data-v-211c2fea] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.symbol-select[data-v-211c2fea] .ant-select-focused .ant-select-selection{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.timeframe-item[data-v-211c2fea]:hover{color:#1890ff}
|
||||
.timeframe-item.active[data-v-211c2fea]{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn[data-v-211c2fea]:hover,.panel-header .theme-toggle-btn[data-v-211c2fea]:hover{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn.active[data-v-211c2fea],.panel-header .theme-toggle-btn.active[data-v-211c2fea]{color:#1890ff;background:#e6f7ff}
|
||||
.indicator-card[data-v-211c2fea]:hover{border-color:#1890ff}
|
||||
.indicator-card.active[data-v-211c2fea]{background:#e6f7ff;border-color:#1890ff}
|
||||
.indicator-card.active .card-name[data-v-211c2fea]{color:#1890ff}
|
||||
.card-action[data-v-211c2fea]:hover{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-211c2fea]{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-211c2fea]:hover{color:#40a9ff}
|
||||
.action-icon[data-v-211c2fea]:hover{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-211c2fea]{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-211c2fea]:hover{color:#40a9ff}
|
||||
.action-icon.expiry-icon[data-v-211c2fea]{color:#1890ff}
|
||||
.dark-dropdown .ant-select-dropdown-menu-item-active{background-color:#e6f7ff;color:#1890ff}
|
||||
.qt-header-btn[data-v-211c2fea]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.qt-header-btn[data-v-211c2fea]:focus,.qt-header-btn[data-v-211c2fea]:hover{background:linear-gradient(135deg,#40a9ff,#9254de);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.45);box-shadow:0 4px 12px rgba(24,144,255,.45)}
|
||||
.qt-floating-btn[data-v-211c2fea]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.4);box-shadow:0 4px 16px rgba(24,144,255,.4)}
|
||||
.qt-floating-btn[data-v-211c2fea]:hover{-webkit-box-shadow:0 6px 24px rgba(24,144,255,.55);box-shadow:0 6px 24px rgba(24,144,255,.55)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-211c2fea] .ant-select-selection:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-211c2fea] .ant-select-focused .ant-select-selection,body.dark,body.realdark{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.3);box-shadow:0 0 0 2px rgba(24,144,255,.3)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item[data-v-211c2fea]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item.active[data-v-211c2fea],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn.active[data-v-211c2fea],.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn[data-v-211c2fea]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-211c2fea],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-211c2fea]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active[data-v-211c2fea],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card[data-v-211c2fea]:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active .card-name[data-v-211c2fea],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-211c2fea],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon[data-v-211c2fea]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-211c2fea]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-211c2fea],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-211c2fea]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.comment-list .comment-form .form-header .edit-label[data-v-4973cae6]{color:#1890ff}
|
||||
.comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.02)}
|
||||
[data-theme=dark] .comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.05)}
|
||||
.indicator-community-container .market-header .header-left .page-title .anticon[data-v-f59e48f0]{color:#1890ff}
|
||||
.indicator-community-container.theme-dark .admin-tabs[data-v-f59e48f0] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-btn-link{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-modal-content .ant-list-item-meta-title a{color:#40a9ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-tag[color=blue]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#1890ff;border:1px solid rgba(24,144,255,.3)}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover a{color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item.ant-pagination-item-active{background:linear-gradient(135deg,#1890ff,#40a9ff);border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-next .ant-pagination-item-link:hover,.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-prev .ant-pagination-item-link:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover,body.dark .trading-records[data-v] .ant-pagination-item:hover,body.realdark .trading-records[data-v] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover a,body.dark .trading-records[data-v] .ant-pagination-item:hover a,body.realdark .trading-records[data-v] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item-active,body.dark .trading-records[data-v] .ant-pagination-item-active,body.realdark .trading-records[data-v] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-13cac835]{background:linear-gradient(135deg,#1890ff,#40a9ff);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.35);box-shadow:0 4px 12px rgba(24,144,255,.35)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-13cac835]:hover{-webkit-box-shadow:0 6px 16px rgba(24,144,255,.45);box-shadow:0 6px 16px rgba(24,144,255,.45)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-header .group-header-left .group-icon[data-v-13cac835]{color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item[data-v-13cac835]:hover{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item.active[data-v-13cac835]{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item[data-v-13cac835]:hover{border-color:rgba(24,144,255,.2);-webkit-box-shadow:0 2px 12px rgba(24,144,255,.1);box-shadow:0 2px 12px rgba(24,144,255,.1)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item.active[data-v-13cac835]{border-color:#1890ff;border-left:4px solid #1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.15);box-shadow:0 4px 16px rgba(24,144,255,.15)}
|
||||
.trading-assistant .strategy-detail-col .empty-detail[data-v-13cac835]:hover{border-color:#1890ff;background:linear-gradient(135deg,rgba(24,144,255,.02),rgba(24,144,255,.05))}
|
||||
.trading-assistant .strategy-detail-col .strategy-detail-panel .strategy-header-card .strategy-header .header-left .strategy-tags .tag-item .anticon[data-v-13cac835]{color:#1890ff}
|
||||
.trading-assistant.theme-dark .creation-mode-toggle[data-v-13cac835]{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item[data-v-13cac835]:hover{background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(24,144,255,.04));border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item.active[data-v-13cac835]{background:linear-gradient(135deg,rgba(24,144,255,.12),rgba(24,144,255,.06));border-color:#1890ff;-webkit-box-shadow:0 4px 20px rgba(24,144,255,.2);box-shadow:0 4px 20px rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-header-card .strategy-tags .tag-item[data-v-13cac835]:hover{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-13cac835] .ant-tabs .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-13cac835] .ant-tabs .ant-tabs-nav .ant-tabs-ink-bar{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#40a9ff));background:linear-gradient(90deg,#1890ff,#40a9ff)}
|
||||
.ai-filter-title .anticon[data-v-13cac835]{color:#1890ff}
|
||||
.creation-mode-toggle[data-v-13cac835]{background:rgba(24,144,255,.04);border:1px solid rgba(24,144,255,.12)}
|
||||
.strategy-type-selector .strategy-type-card[data-v-13cac835]:hover{border-color:#1890ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.strategy-type-selector .strategy-type-card.selected[data-v-13cac835]{border-color:#1890ff;background-color:#e6f7ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.strategy-type-selector .strategy-type-card .strategy-type-content .strategy-type-icon[data-v-13cac835]{color:#1890ff}
|
||||
.ip-whitelist-tip[data-v-13cac835]{background-color:#e6f7ff;border:1px solid #91d5ff;color:#1890ff}
|
||||
.ip-whitelist-tip .anticon[data-v-13cac835]{color:#1890ff}
|
||||
.summary-card .card-icon.sync.syncing[data-v-398d904c]{color:#1890ff}
|
||||
.monitor-card .monitor-body .scope-selected[data-v-398d904c]{color:#1890ff;border-bottom:1px dashed #1890ff}
|
||||
.alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff)}
|
||||
.alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#1890ff}
|
||||
.position-checkbox-group .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.05)}
|
||||
.theme-dark .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.1)}
|
||||
.theme-dark .alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(114,46,209,.1))}
|
||||
.theme-dark .alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#40a9ff}
|
||||
.user-manage-page .page-header .page-title .anticon[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page .address-text[data-v-0b8bb4d8],.user-manage-page .hash-text[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page.theme-dark .manage-tabs[data-v-0b8bb4d8] .ant-tabs-tab-active{color:#1890ff}
|
||||
.user-manage-page .current-credits-info .value[data-v-0b8bb4d8],.user-manage-page .current-vip-info .value[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.profile-page .page-header .page-title .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page .profile-card .profile-info .info-item .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-tabs-tab-active{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:hover,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-table-wrapper .ant-tag-blue{background:rgba(24,144,255,.25);border-color:#1890ff;color:#69c0ff}
|
||||
.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item-active{background:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-btn.ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.billing-page .plan-card.highlight[data-v-714c882a]{border:1px solid rgba(24,144,255,.35)}
|
||||
.usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,.usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.08);color:#1890ff}
|
||||
body.dark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.dark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.15);color:#40a9ff}
|
||||
.settings-page .settings-header .page-title .anticon[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .openrouter-balance-card .ant-card[data-v-15e1ba02]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff);border:1px solid #91d5ff}
|
||||
.settings-page .openrouter-balance-card .balance-header .balance-title[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .ant-collapse-arrow{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .panel-header .panel-icon-left{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .help-icon:hover{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{color:#1890ff;background:rgba(24,144,255,.08)}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.25)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.turnstile-container .turnstile-error a[data-v-20437450]{color:#1890ff}
|
||||
.main .login-method-switch a[data-v-de9678f6]:hover{color:#1890ff}
|
||||
.main .login-method-switch a.active[data-v-de9678f6]{color:#1890ff;border-bottom-color:#1890ff}
|
||||
.main .code-login-hint .anticon[data-v-de9678f6]{color:#1890ff}
|
||||
.main .auth-links a[data-v-de9678f6]{color:#1890ff}
|
||||
.main .legal-wrap .legal-toggle[data-v-de9678f6]{color:#1890ff}
|
||||
.ant-dropdown-menu-item-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-submenu-title-selected>a{color:#1890ff;background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}
|
||||
.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{background:#1890ff}
|
||||
.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger){color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger){color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-primary{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-primary:focus,.ant-btn-primary:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-primary.active,.ant-btn-primary:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}
|
||||
.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-ghost.active,.ant-btn-ghost:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-dashed.active,.ant-btn-dashed:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-link.active,.ant-btn-link:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary.active,.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-link:hover{color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-link.active,.ant-btn-background-ghost.ant-btn-link:active{color:#096dd9}
|
||||
.ant-menu-submenu-selected{color:#1890ff}
|
||||
.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}
|
||||
.ant-menu-item>a:hover{color:#1890ff}
|
||||
.ant-menu-item>.ant-badge>a:hover{color:#1890ff}
|
||||
.ant-menu-item-active,.ant-menu-item:hover,.ant-menu-submenu-active,.ant-menu-submenu-title:hover,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}
|
||||
.ant-menu-item-selected,.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#1890ff}
|
||||
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}
|
||||
.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#1890ff));background:linear-gradient(90deg,#1890ff,#1890ff)}
|
||||
.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected>a,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected>a{color:#1890ff}
|
||||
.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover{color:#1890ff;border-bottom:2px solid #1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover{color:#1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a{color:#1890ff}
|
||||
.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after{border-right:3px solid #1890ff}
|
||||
.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}
|
||||
.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}
|
||||
.ant-pro-basicLayout .trigger:hover{color:#1890ff}
|
||||
.ant-pro-sider-menu-sider.light .ant-pro-sider-menu-logo h1{color:#1890ff}
|
||||
.ant-page-header-back-button{color:#1890ff}
|
||||
.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#40a9ff}
|
||||
.ant-page-header-back-button:active{color:#096dd9}
|
||||
.ant-breadcrumb a:hover{color:#40a9ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#1890ff}
|
||||
.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#1890ff;border-color:#1890ff}
|
||||
.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:hover{color:#40a9ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:active{color:#096dd9}
|
||||
.ant-tabs-nav .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-pro-global-header .dark .action.opened,.ant-pro-global-header .dark .action:hover{background:#1890ff}
|
||||
.ant-list-item-meta-title>a:hover{color:#1890ff}
|
||||
.ant-spin{color:#1890ff}
|
||||
.ant-spin-dot-item{background-color:#1890ff}
|
||||
.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#1890ff}
|
||||
.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#1890ff}
|
||||
.ant-pagination-item-active{border-color:#1890ff}
|
||||
.ant-pagination-item-active a{color:#1890ff}
|
||||
.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#40a9ff}
|
||||
.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#40a9ff}
|
||||
.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff}
|
||||
.ant-pagination-next:hover a,.ant-pagination-prev:hover a{border-color:#40a9ff}
|
||||
.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}
|
||||
.ant-pagination-options-quick-jumper input:focus,.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff}
|
||||
.ant-pagination-options-quick-jumper input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}
|
||||
.ant-select-selection:hover{border-color:#40a9ff}
|
||||
.ant-select-focused .ant-select-selection,.ant-select-selection:active,.ant-select-selection:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-open .ant-select-selection{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{color:#1890ff}
|
||||
.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#1890ff}
|
||||
.ant-switch:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-switch-checked{background-color:#1890ff}
|
||||
.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}
|
||||
.ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon .action{color:#1890ff}
|
||||
.ant-pro-setting-drawer-handle{background:#1890ff}
|
||||
.anticon.ant-notification-notice-icon-info{color:#1890ff}
|
||||
.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus,.ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-group-addon .ant-select-focused .ant-select-selection,.ant-input-group-addon .ant-select-open .ant-select-selection{color:#1890ff}
|
||||
.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-result-info .ant-result-icon>.anticon{color:#1890ff}
|
||||
.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}
|
||||
.ant-progress-bg,.ant-progress-success-bg{background-color:#1890ff}
|
||||
.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}
|
||||
.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}
|
||||
.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}
|
||||
.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff}
|
||||
.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#e6f7ff}
|
||||
.ant-time-picker-panel-select li:focus{color:#1890ff}
|
||||
.ant-time-picker-panel-select li:hover{background:#e6f7ff}
|
||||
.ant-time-picker-input:focus,.ant-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-time-picker-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-date:hover{background:#e6f7ff}
|
||||
.ant-calendar-date:active{background:#40a9ff}
|
||||
:not(.ant-calendar-selected-date):not(.ant-calendar-selected-day).ant-calendar-today .ant-calendar-date{color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar-selected-day .ant-calendar-date{background:#bae7ff}
|
||||
.ant-calendar .ant-calendar-ok-btn{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar .ant-calendar-ok-btn:focus,.ant-calendar .ant-calendar-ok-btn:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-calendar .ant-calendar-ok-btn.active,.ant-calendar .ant-calendar-ok-btn:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#1890ff;background:#bae7ff;border-color:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-range .ant-calendar-in-range-cell:before{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:hover{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:focus{color:#1890ff}
|
||||
.ant-calendar-month-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month,.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{background:#1890ff}
|
||||
.ant-calendar-month-panel-month:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-year-panel-year:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{background:#1890ff}
|
||||
.ant-calendar-decade-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-decade-panel-decade:hover{background:#e6f7ff}
|
||||
.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{background:#1890ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr:hover{background:#e6f7ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{background:#bae7ff}
|
||||
.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}
|
||||
.ant-tag-checkable-checked{background-color:#1890ff}
|
||||
.ant-tag-checkable:active{background-color:#096dd9}
|
||||
.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}
|
||||
.ant-tag-blue-inverse{background:#1890ff;border-color:#1890ff}
|
||||
.ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
:not(.ant-steps-item-process).ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{background:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-navigation .ant-steps-item:before{background-color:#1890ff}
|
||||
.ant-badge-status-processing{background-color:#1890ff}
|
||||
.ant-badge-status-processing:after{border:1px solid #1890ff}
|
||||
.ant-badge-status-blue{background:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-filter-selected.anticon{color:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on{color:#1890ff}
|
||||
.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#e6f7ff}
|
||||
.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title:after{color:#1890ff;text-shadow:0 0 2px #bae7ff}
|
||||
.ant-table-filter-dropdown-link{color:#1890ff}
|
||||
.ant-table-filter-dropdown-link:hover{color:#40a9ff}
|
||||
.ant-table-filter-dropdown-link:active{color:#096dd9}
|
||||
.ant-table-row-expand-icon{color:#1890ff}
|
||||
.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#40a9ff}
|
||||
.ant-table-row-expand-icon:active{color:#096dd9}
|
||||
.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-input:focus+.ant-radio-inner{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-checked:after{border:1px solid #1890ff}
|
||||
.ant-radio-inner:after{background-color:#1890ff}
|
||||
.ant-radio-checked .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
.ant-radio-button-wrapper:focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}
|
||||
.ant-checkbox-checked:after{border:1px solid #1890ff}
|
||||
.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#1890ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.is-validating.has-feedback .ant-form-item-children-icon{color:#1890ff}
|
||||
.ant-card-actions>li>span:hover{color:#1890ff}
|
||||
.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#1890ff}
|
||||
.ant-input-number:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}
|
||||
.ant-input-number-focused,.ant-input-number:hover{border-color:#40a9ff}
|
||||
.ant-input-number-focused{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
-503
@@ -1,503 +0,0 @@
|
||||
|
||||
.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.notice-item.unread[data-v-7e99442e]{background:#e6f7ff}
|
||||
.notice-item.unread[data-v-7e99442e]:hover{background:#bae7ff}
|
||||
.notice-footer a[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-footer a[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread,.ant-layout.realdark .header-notice-wrapper .notice-item.unread,body.dark .header-notice-wrapper .notice-item.unread,body.realdark .header-notice-wrapper .notice-item.unread{background:rgba(24,144,255,.15)}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread:hover,.ant-layout.realdark .header-notice-wrapper .notice-item.unread:hover,body.dark .header-notice-wrapper .notice-item.unread:hover,body.realdark .header-notice-wrapper .notice-item.unread:hover{background:rgba(24,144,255,.25)}
|
||||
.ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
.setting-drawer-index-content .setting-drawer-index-blockChecbox .setting-drawer-index-item .setting-drawer-index-selectIcon[data-v-940007f2]{color:#1890ff}
|
||||
:global .ant-layout.dark .ant-layout-header .anticon:hover,:global .ant-layout.realdark .ant-layout-header .anticon:hover,:global .ant-pro-layout.dark .ant-layout-header .anticon:hover,:global .ant-pro-layout.realdark .ant-layout-header .anticon:hover,:global body.dark .ant-layout-header .anticon:hover,:global body.realdark .ant-layout-header .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-layout.dark .ant-layout-header a:hover,:global .ant-layout.realdark .ant-layout-header a:hover,:global .ant-pro-layout.dark .ant-layout-header a:hover,:global .ant-pro-layout.realdark .ant-layout-header a:hover,:global body.dark .ant-layout-header a:hover,:global body.realdark .ant-layout-header a:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-content .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,:global .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
:global a:hover{color:#1890ff!important}
|
||||
:global .anticon:hover{color:#1890ff!important}
|
||||
:global(.ant-pro-layout).dark :global(.ant-menu-dark .ant-menu-item-selected),:global(.ant-pro-layout).realdark :global(.ant-menu-dark .ant-menu-item-selected){background:rgba(24,144,255,.25)!important}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-global-header-index-action:hover{background:#1890ff}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-drop-down:hover{color:#1890ff}
|
||||
.ant-pro-global-header-index-right .ant-pro-account-avatar .antd-pro-global-header-index-avatar{color:#1890ff}
|
||||
:global .ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,:global .ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff!important}
|
||||
:global body.dark .ant-menu-dark .ant-menu-item-selected,:global body.realdark .ant-menu-dark .ant-menu-item-selected{background:rgba(24,144,255,.25)!important}
|
||||
a{color:#1890ff}
|
||||
a:hover{color:#40a9ff}
|
||||
a:active{color:#096dd9}
|
||||
::-moz-selection{background:#1890ff}
|
||||
::selection{background:#1890ff}
|
||||
html{--antd-wave-shadow-color:#1890ff}
|
||||
.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{-webkit-box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 #1890ff}
|
||||
#nprogress .bar{background:#1890ff}
|
||||
#nprogress .peg{-webkit-box-shadow:0 0 10px #1890ff,0 0 5px #1890ff;box-shadow:0 0 10px #1890ff,0 0 5px #1890ff}
|
||||
#nprogress .spinner-icon{border-top-color:#1890ff;border-left-color:#1890ff}
|
||||
body.dark .ant-pagination-item-active,body.realdark .ant-pagination-item-active{border-color:#1890ff!important}
|
||||
body.dark .ant-btn-default:hover,body.realdark .ant-btn-default:hover{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .ant-tabs-tab-active,body.realdark .ant-tabs-tab-active{color:#1890ff!important}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.realdark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1)!important;color:#1890ff!important}
|
||||
.qt-header .qt-header-left .qt-icon[data-v-0d547552]{color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-slider-track{background:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .probability-comparison .prob-item .prob-value.ai-prob[data-v-67e891d2]{color:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .recommendation-section .rec-card .rec-value[data-v-67e891d2]{color:#1890ff}
|
||||
.code-section .section-header .section-title[data-v-4fea1865]:before{background:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link{color:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link:hover{color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:hover{border-color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:focus-within{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05);box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05)}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-cursor{border-left:2px solid #1890ff}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-selected{background:#e6f7ff}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn:not(.ant-btn-primary):hover{border-color:#40a9ff;color:#40a9ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary{-webkit-box-shadow:0 2px 4px rgba(24,144,255,.3);box-shadow:0 2px 4px rgba(24,144,255,.3)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary:hover{-webkit-box-shadow:0 4px 12px rgba(24,144,255,.4);box-shadow:0 4px 12px rgba(24,144,255,.4)}
|
||||
.drawing-tool-btn[data-v-58f93984]:hover{color:#1890ff}
|
||||
.drawing-tool-btn.active[data-v-58f93984]{background:#e6f7ff;color:#1890ff;border:1px solid #1890ff}
|
||||
.indicator-btn[data-v-58f93984]:hover{color:#1890ff;border-color:#1890ff}
|
||||
.indicator-btn.active[data-v-58f93984]{color:#1890ff;border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.1);box-shadow:0 0 0 2px rgba(24,144,255,.1)}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.timeframe-item[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.timeframe-item.active[data-v-95a351b2]{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,.panel-header .theme-toggle-btn[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn.active[data-v-95a351b2],.panel-header .theme-toggle-btn.active[data-v-95a351b2]{color:#1890ff;background:#e6f7ff}
|
||||
.indicator-card[data-v-95a351b2]:hover{border-color:#1890ff}
|
||||
.indicator-card.active[data-v-95a351b2]{background:#e6f7ff;border-color:#1890ff}
|
||||
.indicator-card.active .card-name[data-v-95a351b2]{color:#1890ff}
|
||||
.card-action[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon.expiry-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.dark-dropdown .ant-select-dropdown-menu-item-active{background-color:#e6f7ff;color:#1890ff}
|
||||
.qt-header-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.qt-header-btn[data-v-95a351b2]:focus,.qt-header-btn[data-v-95a351b2]:hover{background:linear-gradient(135deg,#40a9ff,#9254de);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.45);box-shadow:0 4px 12px rgba(24,144,255,.45)}
|
||||
.qt-floating-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.4);box-shadow:0 4px 16px rgba(24,144,255,.4)}
|
||||
.qt-floating-btn[data-v-95a351b2]:hover{-webkit-box-shadow:0 6px 24px rgba(24,144,255,.55);box-shadow:0 6px 24px rgba(24,144,255,.55)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-selection:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection,body.dark,body.realdark{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.3);box-shadow:0 0 0 2px rgba(24,144,255,.3)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item.active[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card[data-v-95a351b2]:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active .card-name[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.comment-list .comment-form .form-header .edit-label[data-v-4973cae6]{color:#1890ff}
|
||||
.comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.02)}
|
||||
[data-theme=dark] .comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.05)}
|
||||
.indicator-community-container .market-header .header-left .page-title .anticon[data-v-f59e48f0]{color:#1890ff}
|
||||
.indicator-community-container.theme-dark .admin-tabs[data-v-f59e48f0] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-btn-link{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-modal-content .ant-list-item-meta-title a{color:#40a9ff}
|
||||
.section-title .anticon[data-v-473e449c]{color:#1890ff}
|
||||
.loading-overlay .bar[data-v-473e449c]{background:-webkit-gradient(linear,left top,left bottom,from(#1890ff),to(#52c41a));background:linear-gradient(180deg,#1890ff,#52c41a)}
|
||||
.loading-overlay .loading-text[data-v-473e449c]{color:#1890ff}
|
||||
.page-header .header-content .page-title .title-icon[data-v-9ec1bad6]{-webkit-text-fill-color:#1890ff}
|
||||
.theme-dark .page-header .page-title .title-icon[data-v-9ec1bad6]{-webkit-text-fill-color:#40a9ff}
|
||||
.theme-dark .main-tabs[data-v-9ec1bad6] .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.theme-dark .main-tabs[data-v-9ec1bad6] .ant-tabs-ink-bar{background:#1890ff}
|
||||
.theme-dark[data-v-9ec1bad6] .ant-select .ant-select-selection:hover{border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-tag[color=blue]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#1890ff;border:1px solid rgba(24,144,255,.3)}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover a{color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item.ant-pagination-item-active{background:linear-gradient(135deg,#1890ff,#40a9ff);border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-next .ant-pagination-item-link:hover,.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-prev .ant-pagination-item-link:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover,body.dark .trading-records[data-v] .ant-pagination-item:hover,body.realdark .trading-records[data-v] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover a,body.dark .trading-records[data-v] .ant-pagination-item:hover a,body.realdark .trading-records[data-v] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item-active,body.dark .trading-records[data-v] .ant-pagination-item-active,body.realdark .trading-records[data-v] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.mode-card[data-v-2344f311]:hover{border-color:#1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.12);box-shadow:0 4px 16px rgba(24,144,255,.12)}
|
||||
.mode-card.selected[data-v-2344f311]{border-color:#1890ff;background:rgba(24,144,255,.02)}
|
||||
.mode-card.selected[data-v-2344f311]:after{color:#1890ff}
|
||||
.card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,#e6f7ff,#bae7ff);color:#1890ff}
|
||||
.template-tag[data-v-2344f311]:hover{color:#1890ff;border-color:#1890ff;background:#e6f7ff}
|
||||
.theme-dark .mode-card.selected[data-v-2344f311]:after{color:#40a9ff}
|
||||
.theme-dark .card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]{border-color:rgba(24,144,255,.4);color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .template-tag[data-v-2344f311]:hover{color:#40a9ff}
|
||||
.template-item[data-v-767abf73]:hover{border-color:#1890ff}
|
||||
.ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#1890ff}
|
||||
.ai-panel .ai-status[data-v-767abf73]{color:#1890ff}
|
||||
.docs-panel .docs-content[data-v-767abf73] h5{color:#1890ff}
|
||||
.theme-dark .side-tabs[data-v-767abf73] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .ai-panel[data-v-767abf73] textarea.ant-input:focus{border-color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-status[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .docs-panel .docs-content[data-v-767abf73] h5{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-70b18ab4]{background:linear-gradient(135deg,#1890ff,#40a9ff);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.35);box-shadow:0 4px 12px rgba(24,144,255,.35)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-70b18ab4]:hover{-webkit-box-shadow:0 6px 16px rgba(24,144,255,.45);box-shadow:0 6px 16px rgba(24,144,255,.45)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-header .group-header-left .group-icon[data-v-70b18ab4]{color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item[data-v-70b18ab4]:hover{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item.active[data-v-70b18ab4]{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item[data-v-70b18ab4]:hover{border-color:rgba(24,144,255,.2);-webkit-box-shadow:0 2px 12px rgba(24,144,255,.1);box-shadow:0 2px 12px rgba(24,144,255,.1)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item.active[data-v-70b18ab4]{border-color:#1890ff;border-left:4px solid #1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.15);box-shadow:0 4px 16px rgba(24,144,255,.15)}
|
||||
.trading-assistant .strategy-detail-col .empty-detail[data-v-70b18ab4]:hover{border-color:#1890ff;background:linear-gradient(135deg,rgba(24,144,255,.02),rgba(24,144,255,.05))}
|
||||
.trading-assistant .strategy-detail-col .strategy-detail-panel .strategy-header-card .strategy-header .header-left .strategy-tags .tag-item .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
.trading-assistant.theme-dark .creation-mode-toggle[data-v-70b18ab4]{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item[data-v-70b18ab4]:hover{background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(24,144,255,.04));border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item.active[data-v-70b18ab4]{background:linear-gradient(135deg,rgba(24,144,255,.12),rgba(24,144,255,.06));border-color:#1890ff;-webkit-box-shadow:0 4px 20px rgba(24,144,255,.2);box-shadow:0 4px 20px rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-header-card .strategy-tags .tag-item[data-v-70b18ab4]:hover{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-70b18ab4] .ant-tabs .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-70b18ab4] .ant-tabs .ant-tabs-nav .ant-tabs-ink-bar{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#40a9ff));background:linear-gradient(90deg,#1890ff,#40a9ff)}
|
||||
.ai-filter-title .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
.creation-mode-toggle[data-v-70b18ab4]{background:rgba(24,144,255,.04);border:1px solid rgba(24,144,255,.12)}
|
||||
.strategy-type-selector .strategy-type-card[data-v-70b18ab4]:hover{border-color:#1890ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.strategy-type-selector .strategy-type-card.selected[data-v-70b18ab4]{border-color:#1890ff;background-color:#e6f7ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.strategy-type-selector .strategy-type-card .strategy-type-content .strategy-type-icon[data-v-70b18ab4]{color:#1890ff}
|
||||
.ip-whitelist-tip[data-v-70b18ab4]{background-color:#e6f7ff;border:1px solid #91d5ff;color:#1890ff}
|
||||
.ip-whitelist-tip .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-modal-content .creation-mode-toggle{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
body.dark .ant-modal-wrap .ant-steps .ant-steps-item-finish .ant-steps-item-icon,body.dark .ant-modal-wrap .ant-steps .ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number:focus,body.dark .ant-modal-wrap .ant-input-number:hover,body.dark .ant-modal-wrap .ant-input:focus,body.dark .ant-modal-wrap .ant-input:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number-handler-wrap .ant-input-number-handler:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-select .ant-select-selection:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-switch.ant-switch-checked{background:#1890ff}
|
||||
body.dark .ant-modal-wrap .ip-whitelist-tip{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2);color:#40a9ff}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-active,body.dark .ant-select-dropdown .ant-select-dropdown-menu-item:hover{background:rgba(24,144,255,.1)}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.15);color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-alert{background:rgba(24,144,255,.06);border-color:rgba(24,144,255,.2)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .loading-header .loading-icon-pro[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card[data-v-03feb1fa]:after{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 3%,transparent)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card.fundamental[data-v-03feb1fa]:before{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card .analysis-card-header.fundamental .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .loading-icon-pro[data-v-03feb1fa],.fast-analysis-report.theme-dark .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 5%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .feedback-section .ant-btn[data-v-03feb1fa]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 30%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.left-panel .calendar-box .box-header .box-title .anticon[data-v-22f26594]{color:var(--primary-color,#1890ff)}
|
||||
.right-panel .analysis-toolbar .analyze-button[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card-hover-actions .wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent) 30%)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-badge[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);-webkit-box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat-icon[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark .right-panel .analysis-toolbar .history-button[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 45%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .hero-cta .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark .panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.ai-analysis-container.theme-dark .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff)!important;color:var(--primary-color,#1890ff)!important}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.hero-bg-circle.c1[data-v-22f26594]{background:radial-gradient(circle,rgba(24,144,255,.1) 0,transparent 70%)}
|
||||
.hero-bg-grid[data-v-22f26594]{background-image:linear-gradient(rgba(24,144,255,.03) 1px,transparent 0),linear-gradient(90deg,rgba(24,144,255,.03) 1px,transparent 0)}
|
||||
.hero-badge[data-v-22f26594]{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08);border:1px solid rgba(24,144,255,.2)}
|
||||
.hstat[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.1);box-shadow:0 4px 16px rgba(24,144,255,.1)}
|
||||
.hstat-icon[data-v-22f26594]{background:linear-gradient(135deg,rgba(24,144,255,.1),rgba(114,46,209,.08));color:var(--primary-color,#1890ff)}
|
||||
.hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px rgba(24,144,255,.3);box-shadow:0 4px 14px rgba(24,144,255,.3)}
|
||||
.panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.batch-bar .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent);box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent)}
|
||||
.wl-card.active[data-v-22f26594]{background:linear-gradient(135deg,color-mix(in srgb,var(--primary-color,#1890ff) 6%,#fff) 0,color-mix(in srgb,var(--primary-color,#1890ff) 4%,#fff) 100%);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent);-webkit-box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:-webkit-gradient(linear,left top,right top,from(transparent),color-stop(30%,#e6f7ff));background:linear-gradient(90deg,transparent,#e6f7ff 30%)}
|
||||
.wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:#e6f7ff}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]:hover{-webkit-box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent)}
|
||||
.qd-dark-modal .ant-modal-footer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.qd-dark-modal .ant-tag-blue{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-modal .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.qd-dark-modal .ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.qd-dark-modal .batch-symbols-preview .ant-tag{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-primary{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-default:hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.colorWeak .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1);color:#1890ff}
|
||||
.summary-card .card-icon.sync.syncing[data-v-398d904c]{color:#1890ff}
|
||||
.monitor-card .monitor-body .scope-selected[data-v-398d904c]{color:#1890ff;border-bottom:1px dashed #1890ff}
|
||||
.alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff)}
|
||||
.alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#1890ff}
|
||||
.position-checkbox-group .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.05)}
|
||||
.theme-dark .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.1)}
|
||||
.theme-dark .alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(114,46,209,.1))}
|
||||
.theme-dark .alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#40a9ff}
|
||||
.user-manage-page .page-header .page-title .anticon[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page .address-text[data-v-0b8bb4d8],.user-manage-page .hash-text[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page.theme-dark .manage-tabs[data-v-0b8bb4d8] .ant-tabs-tab-active{color:#1890ff}
|
||||
.user-manage-page .current-credits-info .value[data-v-0b8bb4d8],.user-manage-page .current-vip-info .value[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.profile-page .page-header .page-title .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page .profile-card .profile-info .info-item .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-tabs-tab-active{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:hover,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-table-wrapper .ant-tag-blue{background:rgba(24,144,255,.25);border-color:#1890ff;color:#69c0ff}
|
||||
.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item-active{background:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-btn.ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.billing-page .plan-card.highlight[data-v-714c882a]{border:1px solid rgba(24,144,255,.35)}
|
||||
.usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,.usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.08);color:#1890ff}
|
||||
body.dark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.dark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.15);color:#40a9ff}
|
||||
.settings-page .settings-header .page-title .anticon[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .openrouter-balance-card .ant-card[data-v-15e1ba02]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff);border:1px solid #91d5ff}
|
||||
.settings-page .openrouter-balance-card .balance-header .balance-title[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .ant-collapse-arrow{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .panel-header .panel-icon-left{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .help-icon:hover{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{color:#1890ff;background:rgba(24,144,255,.08)}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.25)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.turnstile-container .turnstile-error a[data-v-20437450]{color:#1890ff}
|
||||
.main .login-method-switch a[data-v-de9678f6]:hover{color:#1890ff}
|
||||
.main .login-method-switch a.active[data-v-de9678f6]{color:#1890ff;border-bottom-color:#1890ff}
|
||||
.main .code-login-hint .anticon[data-v-de9678f6]{color:#1890ff}
|
||||
.main .auth-links a[data-v-de9678f6]{color:#1890ff}
|
||||
.main .legal-wrap .legal-toggle[data-v-de9678f6]{color:#1890ff}
|
||||
.ant-dropdown-menu-item-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-submenu-title-selected>a{color:#1890ff;background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}
|
||||
.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{background:#1890ff}
|
||||
.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger){color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger){color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-primary{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-primary:focus,.ant-btn-primary:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-primary.active,.ant-btn-primary:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}
|
||||
.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-ghost.active,.ant-btn-ghost:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-dashed.active,.ant-btn-dashed:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-link.active,.ant-btn-link:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary.active,.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-link:hover{color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-link.active,.ant-btn-background-ghost.ant-btn-link:active{color:#096dd9}
|
||||
.ant-menu-submenu-selected{color:#1890ff}
|
||||
.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}
|
||||
.ant-menu-item>a:hover{color:#1890ff}
|
||||
.ant-menu-item>.ant-badge>a:hover{color:#1890ff}
|
||||
.ant-menu-item-active,.ant-menu-item:hover,.ant-menu-submenu-active,.ant-menu-submenu-title:hover,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}
|
||||
.ant-menu-item-selected,.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#1890ff}
|
||||
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}
|
||||
.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#1890ff));background:linear-gradient(90deg,#1890ff,#1890ff)}
|
||||
.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected>a,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected>a{color:#1890ff}
|
||||
.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover{color:#1890ff;border-bottom:2px solid #1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover{color:#1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a{color:#1890ff}
|
||||
.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after{border-right:3px solid #1890ff}
|
||||
.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}
|
||||
.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}
|
||||
.ant-pro-basicLayout .trigger:hover{color:#1890ff}
|
||||
.ant-pro-sider-menu-sider.light .ant-pro-sider-menu-logo h1{color:#1890ff}
|
||||
.ant-page-header-back-button{color:#1890ff}
|
||||
.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#40a9ff}
|
||||
.ant-page-header-back-button:active{color:#096dd9}
|
||||
.ant-breadcrumb a:hover{color:#40a9ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#1890ff}
|
||||
.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#1890ff;border-color:#1890ff}
|
||||
.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:hover{color:#40a9ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:active{color:#096dd9}
|
||||
.ant-tabs-nav .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-pro-global-header .dark .action.opened,.ant-pro-global-header .dark .action:hover{background:#1890ff}
|
||||
.ant-list-item-meta-title>a:hover{color:#1890ff}
|
||||
.ant-spin{color:#1890ff}
|
||||
.ant-spin-dot-item{background-color:#1890ff}
|
||||
.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#1890ff}
|
||||
.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#1890ff}
|
||||
.ant-pagination-item-active{border-color:#1890ff}
|
||||
.ant-pagination-item-active a{color:#1890ff}
|
||||
.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#40a9ff}
|
||||
.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#40a9ff}
|
||||
.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff}
|
||||
.ant-pagination-next:hover a,.ant-pagination-prev:hover a{border-color:#40a9ff}
|
||||
.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}
|
||||
.ant-pagination-options-quick-jumper input:focus,.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff}
|
||||
.ant-pagination-options-quick-jumper input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}
|
||||
.ant-select-selection:hover{border-color:#40a9ff}
|
||||
.ant-select-focused .ant-select-selection,.ant-select-selection:active,.ant-select-selection:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-open .ant-select-selection{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{color:#1890ff}
|
||||
.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#1890ff}
|
||||
.ant-switch:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-switch-checked{background-color:#1890ff}
|
||||
.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}
|
||||
.ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon .action{color:#1890ff}
|
||||
.ant-pro-setting-drawer-handle{background:#1890ff}
|
||||
.anticon.ant-notification-notice-icon-info{color:#1890ff}
|
||||
.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus,.ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-group-addon .ant-select-focused .ant-select-selection,.ant-input-group-addon .ant-select-open .ant-select-selection{color:#1890ff}
|
||||
.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-result-info .ant-result-icon>.anticon{color:#1890ff}
|
||||
.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}
|
||||
.ant-progress-bg,.ant-progress-success-bg{background-color:#1890ff}
|
||||
.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}
|
||||
.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}
|
||||
.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}
|
||||
.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff}
|
||||
.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#e6f7ff}
|
||||
.ant-time-picker-panel-select li:focus{color:#1890ff}
|
||||
.ant-time-picker-panel-select li:hover{background:#e6f7ff}
|
||||
.ant-time-picker-input:focus,.ant-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-time-picker-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-date:hover{background:#e6f7ff}
|
||||
.ant-calendar-date:active{background:#40a9ff}
|
||||
:not(.ant-calendar-selected-date):not(.ant-calendar-selected-day).ant-calendar-today .ant-calendar-date{color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar-selected-day .ant-calendar-date{background:#bae7ff}
|
||||
.ant-calendar .ant-calendar-ok-btn{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar .ant-calendar-ok-btn:focus,.ant-calendar .ant-calendar-ok-btn:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-calendar .ant-calendar-ok-btn.active,.ant-calendar .ant-calendar-ok-btn:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#1890ff;background:#bae7ff;border-color:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-range .ant-calendar-in-range-cell:before{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:hover{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:focus{color:#1890ff}
|
||||
.ant-calendar-month-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month,.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{background:#1890ff}
|
||||
.ant-calendar-month-panel-month:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-year-panel-year:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{background:#1890ff}
|
||||
.ant-calendar-decade-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-decade-panel-decade:hover{background:#e6f7ff}
|
||||
.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{background:#1890ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr:hover{background:#e6f7ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{background:#bae7ff}
|
||||
.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}
|
||||
.ant-tag-checkable-checked{background-color:#1890ff}
|
||||
.ant-tag-checkable:active{background-color:#096dd9}
|
||||
.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}
|
||||
.ant-tag-blue-inverse{background:#1890ff;border-color:#1890ff}
|
||||
.ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
:not(.ant-steps-item-process).ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{background:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-navigation .ant-steps-item:before{background-color:#1890ff}
|
||||
.ant-badge-status-processing{background-color:#1890ff}
|
||||
.ant-badge-status-processing:after{border:1px solid #1890ff}
|
||||
.ant-badge-status-blue{background:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-filter-selected.anticon{color:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on{color:#1890ff}
|
||||
.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#e6f7ff}
|
||||
.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title:after{color:#1890ff;text-shadow:0 0 2px #bae7ff}
|
||||
.ant-table-filter-dropdown-link{color:#1890ff}
|
||||
.ant-table-filter-dropdown-link:hover{color:#40a9ff}
|
||||
.ant-table-filter-dropdown-link:active{color:#096dd9}
|
||||
.ant-table-row-expand-icon{color:#1890ff}
|
||||
.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#40a9ff}
|
||||
.ant-table-row-expand-icon:active{color:#096dd9}
|
||||
.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-input:focus+.ant-radio-inner{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-checked:after{border:1px solid #1890ff}
|
||||
.ant-radio-inner:after{background-color:#1890ff}
|
||||
.ant-radio-checked .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
.ant-radio-button-wrapper:focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}
|
||||
.ant-checkbox-checked:after{border:1px solid #1890ff}
|
||||
.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#1890ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.is-validating.has-feedback .ant-form-item-children-icon{color:#1890ff}
|
||||
.ant-card-actions>li>span:hover{color:#1890ff}
|
||||
.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#1890ff}
|
||||
.ant-input-number:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}
|
||||
.ant-input-number-focused,.ant-input-number:hover{border-color:#40a9ff}
|
||||
.ant-input-number-focused{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
-474
@@ -1,474 +0,0 @@
|
||||
|
||||
.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.notice-item.unread[data-v-7e99442e]{background:#e6f7ff}
|
||||
.notice-item.unread[data-v-7e99442e]:hover{background:#bae7ff}
|
||||
.notice-footer a[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-footer a[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread,.ant-layout.realdark .header-notice-wrapper .notice-item.unread,body.dark .header-notice-wrapper .notice-item.unread,body.realdark .header-notice-wrapper .notice-item.unread{background:rgba(24,144,255,.15)}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread:hover,.ant-layout.realdark .header-notice-wrapper .notice-item.unread:hover,body.dark .header-notice-wrapper .notice-item.unread:hover,body.realdark .header-notice-wrapper .notice-item.unread:hover{background:rgba(24,144,255,.25)}
|
||||
.ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
.setting-drawer-index-content .setting-drawer-index-blockChecbox .setting-drawer-index-item .setting-drawer-index-selectIcon[data-v-940007f2]{color:#1890ff}
|
||||
:global .ant-layout.dark .ant-layout-header .anticon:hover,:global .ant-layout.realdark .ant-layout-header .anticon:hover,:global .ant-pro-layout.dark .ant-layout-header .anticon:hover,:global .ant-pro-layout.realdark .ant-layout-header .anticon:hover,:global body.dark .ant-layout-header .anticon:hover,:global body.realdark .ant-layout-header .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-layout.dark .ant-layout-header a:hover,:global .ant-layout.realdark .ant-layout-header a:hover,:global .ant-pro-layout.dark .ant-layout-header a:hover,:global .ant-pro-layout.realdark .ant-layout-header a:hover,:global body.dark .ant-layout-header a:hover,:global body.realdark .ant-layout-header a:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-content .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,:global .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
:global a:hover{color:#1890ff!important}
|
||||
:global .anticon:hover{color:#1890ff!important}
|
||||
:global(.ant-pro-layout).dark :global(.ant-menu-dark .ant-menu-item-selected),:global(.ant-pro-layout).realdark :global(.ant-menu-dark .ant-menu-item-selected){background:rgba(24,144,255,.25)!important}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-global-header-index-action:hover{background:#1890ff}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-drop-down:hover{color:#1890ff}
|
||||
.ant-pro-global-header-index-right .ant-pro-account-avatar .antd-pro-global-header-index-avatar{color:#1890ff}
|
||||
:global .ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,:global .ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff!important}
|
||||
:global body.dark .ant-menu-dark .ant-menu-item-selected,:global body.realdark .ant-menu-dark .ant-menu-item-selected{background:rgba(24,144,255,.25)!important}
|
||||
a{color:#1890ff}
|
||||
a:hover{color:#40a9ff}
|
||||
a:active{color:#096dd9}
|
||||
::-moz-selection{background:#1890ff}
|
||||
::selection{background:#1890ff}
|
||||
html{--antd-wave-shadow-color:#1890ff}
|
||||
.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{-webkit-box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 #1890ff}
|
||||
#nprogress .bar{background:#1890ff}
|
||||
#nprogress .peg{-webkit-box-shadow:0 0 10px #1890ff,0 0 5px #1890ff;box-shadow:0 0 10px #1890ff,0 0 5px #1890ff}
|
||||
#nprogress .spinner-icon{border-top-color:#1890ff;border-left-color:#1890ff}
|
||||
body.dark .ant-pagination-item-active,body.realdark .ant-pagination-item-active{border-color:#1890ff!important}
|
||||
body.dark .ant-btn-default:hover,body.realdark .ant-btn-default:hover{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .ant-tabs-tab-active,body.realdark .ant-tabs-tab-active{color:#1890ff!important}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.realdark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1)!important;color:#1890ff!important}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .loading-header .loading-icon-pro[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card[data-v-03feb1fa]:after{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 3%,transparent)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card.fundamental[data-v-03feb1fa]:before{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card .analysis-card-header.fundamental .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .loading-icon-pro[data-v-03feb1fa],.fast-analysis-report.theme-dark .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 5%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .feedback-section .ant-btn[data-v-03feb1fa]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 30%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.left-panel .calendar-box .box-header .box-title .anticon[data-v-22f26594]{color:var(--primary-color,#1890ff)}
|
||||
.right-panel .analysis-toolbar .analyze-button[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card-hover-actions .wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent) 30%)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-badge[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);-webkit-box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat-icon[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark .right-panel .analysis-toolbar .history-button[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 45%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .hero-cta .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark .panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.ai-analysis-container.theme-dark .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff)!important;color:var(--primary-color,#1890ff)!important}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.hero-bg-circle.c1[data-v-22f26594]{background:radial-gradient(circle,rgba(24,144,255,.1) 0,transparent 70%)}
|
||||
.hero-bg-grid[data-v-22f26594]{background-image:linear-gradient(rgba(24,144,255,.03) 1px,transparent 0),linear-gradient(90deg,rgba(24,144,255,.03) 1px,transparent 0)}
|
||||
.hero-badge[data-v-22f26594]{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08);border:1px solid rgba(24,144,255,.2)}
|
||||
.hstat[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.1);box-shadow:0 4px 16px rgba(24,144,255,.1)}
|
||||
.hstat-icon[data-v-22f26594]{background:linear-gradient(135deg,rgba(24,144,255,.1),rgba(114,46,209,.08));color:var(--primary-color,#1890ff)}
|
||||
.hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px rgba(24,144,255,.3);box-shadow:0 4px 14px rgba(24,144,255,.3)}
|
||||
.panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.batch-bar .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent);box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent)}
|
||||
.wl-card.active[data-v-22f26594]{background:linear-gradient(135deg,color-mix(in srgb,var(--primary-color,#1890ff) 6%,#fff) 0,color-mix(in srgb,var(--primary-color,#1890ff) 4%,#fff) 100%);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent);-webkit-box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:-webkit-gradient(linear,left top,right top,from(transparent),color-stop(30%,#e6f7ff));background:linear-gradient(90deg,transparent,#e6f7ff 30%)}
|
||||
.wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:#e6f7ff}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]:hover{-webkit-box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent)}
|
||||
.qd-dark-modal .ant-modal-footer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.qd-dark-modal .ant-tag-blue{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-modal .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.qd-dark-modal .ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.qd-dark-modal .batch-symbols-preview .ant-tag{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-primary{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-default:hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.colorWeak .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1);color:#1890ff}
|
||||
.qt-header .qt-header-left .qt-icon[data-v-0d547552]{color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-slider-track{background:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .probability-comparison .prob-item .prob-value.ai-prob[data-v-67e891d2]{color:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .recommendation-section .rec-card .rec-value[data-v-67e891d2]{color:#1890ff}
|
||||
.code-section .section-header .section-title[data-v-4fea1865]:before{background:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link{color:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link:hover{color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:hover{border-color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:focus-within{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05);box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05)}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-cursor{border-left:2px solid #1890ff}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-selected{background:#e6f7ff}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn:not(.ant-btn-primary):hover{border-color:#40a9ff;color:#40a9ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary{-webkit-box-shadow:0 2px 4px rgba(24,144,255,.3);box-shadow:0 2px 4px rgba(24,144,255,.3)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary:hover{-webkit-box-shadow:0 4px 12px rgba(24,144,255,.4);box-shadow:0 4px 12px rgba(24,144,255,.4)}
|
||||
.drawing-tool-btn[data-v-58f93984]:hover{color:#1890ff}
|
||||
.drawing-tool-btn.active[data-v-58f93984]{background:#e6f7ff;color:#1890ff;border:1px solid #1890ff}
|
||||
.indicator-btn[data-v-58f93984]:hover{color:#1890ff;border-color:#1890ff}
|
||||
.indicator-btn.active[data-v-58f93984]{color:#1890ff;border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.1);box-shadow:0 0 0 2px rgba(24,144,255,.1)}
|
||||
.section-title .anticon[data-v-473e449c]{color:#1890ff}
|
||||
.loading-overlay .bar[data-v-473e449c]{background:-webkit-gradient(linear,left top,left bottom,from(#1890ff),to(#52c41a));background:linear-gradient(180deg,#1890ff,#52c41a)}
|
||||
.loading-overlay .loading-text[data-v-473e449c]{color:#1890ff}
|
||||
.symbol-select[data-v-0bec23f2] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.symbol-select[data-v-0bec23f2] .ant-select-focused .ant-select-selection{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.timeframe-item[data-v-0bec23f2]:hover{color:#1890ff}
|
||||
.timeframe-item.active[data-v-0bec23f2]{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn[data-v-0bec23f2]:hover,.panel-header .theme-toggle-btn[data-v-0bec23f2]:hover{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn.active[data-v-0bec23f2],.panel-header .theme-toggle-btn.active[data-v-0bec23f2]{color:#1890ff;background:#e6f7ff}
|
||||
.indicator-card[data-v-0bec23f2]:hover{border-color:#1890ff}
|
||||
.indicator-card.active[data-v-0bec23f2]{background:#e6f7ff;border-color:#1890ff}
|
||||
.indicator-card.active .card-name[data-v-0bec23f2]{color:#1890ff}
|
||||
.card-action[data-v-0bec23f2]:hover{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-0bec23f2]{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-0bec23f2]:hover{color:#40a9ff}
|
||||
.action-icon[data-v-0bec23f2]:hover{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-0bec23f2]{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-0bec23f2]:hover{color:#40a9ff}
|
||||
.action-icon.expiry-icon[data-v-0bec23f2]{color:#1890ff}
|
||||
.dark-dropdown .ant-select-dropdown-menu-item-active{background-color:#e6f7ff;color:#1890ff}
|
||||
.qt-header-btn[data-v-0bec23f2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.qt-header-btn[data-v-0bec23f2]:focus,.qt-header-btn[data-v-0bec23f2]:hover{background:linear-gradient(135deg,#40a9ff,#9254de);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.45);box-shadow:0 4px 12px rgba(24,144,255,.45)}
|
||||
.qt-floating-btn[data-v-0bec23f2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.4);box-shadow:0 4px 16px rgba(24,144,255,.4)}
|
||||
.qt-floating-btn[data-v-0bec23f2]:hover{-webkit-box-shadow:0 6px 24px rgba(24,144,255,.55);box-shadow:0 6px 24px rgba(24,144,255,.55)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-0bec23f2] .ant-select-selection:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-0bec23f2] .ant-select-focused .ant-select-selection,body.dark,body.realdark{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.3);box-shadow:0 0 0 2px rgba(24,144,255,.3)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item[data-v-0bec23f2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item.active[data-v-0bec23f2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn.active[data-v-0bec23f2],.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn[data-v-0bec23f2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-0bec23f2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-0bec23f2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active[data-v-0bec23f2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card[data-v-0bec23f2]:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active .card-name[data-v-0bec23f2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-0bec23f2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon[data-v-0bec23f2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-0bec23f2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-0bec23f2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-0bec23f2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.comment-list .comment-form .form-header .edit-label[data-v-4973cae6]{color:#1890ff}
|
||||
.comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.02)}
|
||||
[data-theme=dark] .comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.05)}
|
||||
.indicator-community-container .market-header .header-left .page-title .anticon[data-v-f59e48f0]{color:#1890ff}
|
||||
.indicator-community-container.theme-dark .admin-tabs[data-v-f59e48f0] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-btn-link{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-modal-content .ant-list-item-meta-title a{color:#40a9ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-tag[color=blue]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#1890ff;border:1px solid rgba(24,144,255,.3)}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover a{color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item.ant-pagination-item-active{background:linear-gradient(135deg,#1890ff,#40a9ff);border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-next .ant-pagination-item-link:hover,.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-prev .ant-pagination-item-link:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover,body.dark .trading-records[data-v] .ant-pagination-item:hover,body.realdark .trading-records[data-v] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover a,body.dark .trading-records[data-v] .ant-pagination-item:hover a,body.realdark .trading-records[data-v] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item-active,body.dark .trading-records[data-v] .ant-pagination-item-active,body.realdark .trading-records[data-v] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.mode-card[data-v-7955c969]:hover{border-color:#1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.12);box-shadow:0 4px 16px rgba(24,144,255,.12)}
|
||||
.mode-card.selected[data-v-7955c969]{border-color:#1890ff;background:rgba(24,144,255,.02)}
|
||||
.mode-card.selected[data-v-7955c969]:after{color:#1890ff}
|
||||
.card-icon.signal-icon[data-v-7955c969]{background:linear-gradient(135deg,#e6f7ff,#bae7ff);color:#1890ff}
|
||||
.template-tag[data-v-7955c969]:hover{color:#1890ff;border-color:#1890ff;background:#e6f7ff}
|
||||
.template-item[data-v-24971532]:hover{border-color:#1890ff}
|
||||
.ai-panel .ai-panel-title .anticon[data-v-24971532]{color:#1890ff}
|
||||
.ai-panel .ai-status[data-v-24971532]{color:#1890ff}
|
||||
.docs-panel .docs-content[data-v-24971532] h5{color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-7dc93e70]{background:linear-gradient(135deg,#1890ff,#40a9ff);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.35);box-shadow:0 4px 12px rgba(24,144,255,.35)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-7dc93e70]:hover{-webkit-box-shadow:0 6px 16px rgba(24,144,255,.45);box-shadow:0 6px 16px rgba(24,144,255,.45)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-header .group-header-left .group-icon[data-v-7dc93e70]{color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item[data-v-7dc93e70]:hover{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item.active[data-v-7dc93e70]{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item[data-v-7dc93e70]:hover{border-color:rgba(24,144,255,.2);-webkit-box-shadow:0 2px 12px rgba(24,144,255,.1);box-shadow:0 2px 12px rgba(24,144,255,.1)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item.active[data-v-7dc93e70]{border-color:#1890ff;border-left:4px solid #1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.15);box-shadow:0 4px 16px rgba(24,144,255,.15)}
|
||||
.trading-assistant .strategy-detail-col .empty-detail[data-v-7dc93e70]:hover{border-color:#1890ff;background:linear-gradient(135deg,rgba(24,144,255,.02),rgba(24,144,255,.05))}
|
||||
.trading-assistant .strategy-detail-col .strategy-detail-panel .strategy-header-card .strategy-header .header-left .strategy-tags .tag-item .anticon[data-v-7dc93e70]{color:#1890ff}
|
||||
.trading-assistant.theme-dark .creation-mode-toggle[data-v-7dc93e70]{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item[data-v-7dc93e70]:hover{background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(24,144,255,.04));border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item.active[data-v-7dc93e70]{background:linear-gradient(135deg,rgba(24,144,255,.12),rgba(24,144,255,.06));border-color:#1890ff;-webkit-box-shadow:0 4px 20px rgba(24,144,255,.2);box-shadow:0 4px 20px rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-header-card .strategy-tags .tag-item[data-v-7dc93e70]:hover{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-7dc93e70] .ant-tabs .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-7dc93e70] .ant-tabs .ant-tabs-nav .ant-tabs-ink-bar{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#40a9ff));background:linear-gradient(90deg,#1890ff,#40a9ff)}
|
||||
.ai-filter-title .anticon[data-v-7dc93e70]{color:#1890ff}
|
||||
.creation-mode-toggle[data-v-7dc93e70]{background:rgba(24,144,255,.04);border:1px solid rgba(24,144,255,.12)}
|
||||
.strategy-type-selector .strategy-type-card[data-v-7dc93e70]:hover{border-color:#1890ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.strategy-type-selector .strategy-type-card.selected[data-v-7dc93e70]{border-color:#1890ff;background-color:#e6f7ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.strategy-type-selector .strategy-type-card .strategy-type-content .strategy-type-icon[data-v-7dc93e70]{color:#1890ff}
|
||||
.ip-whitelist-tip[data-v-7dc93e70]{background-color:#e6f7ff;border:1px solid #91d5ff;color:#1890ff}
|
||||
.ip-whitelist-tip .anticon[data-v-7dc93e70]{color:#1890ff}
|
||||
.summary-card .card-icon.sync.syncing[data-v-398d904c]{color:#1890ff}
|
||||
.monitor-card .monitor-body .scope-selected[data-v-398d904c]{color:#1890ff;border-bottom:1px dashed #1890ff}
|
||||
.alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff)}
|
||||
.alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#1890ff}
|
||||
.position-checkbox-group .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.05)}
|
||||
.theme-dark .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.1)}
|
||||
.theme-dark .alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(114,46,209,.1))}
|
||||
.theme-dark .alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#40a9ff}
|
||||
.user-manage-page .page-header .page-title .anticon[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page .address-text[data-v-0b8bb4d8],.user-manage-page .hash-text[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page.theme-dark .manage-tabs[data-v-0b8bb4d8] .ant-tabs-tab-active{color:#1890ff}
|
||||
.user-manage-page .current-credits-info .value[data-v-0b8bb4d8],.user-manage-page .current-vip-info .value[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.profile-page .page-header .page-title .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page .profile-card .profile-info .info-item .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-tabs-tab-active{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:hover,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-table-wrapper .ant-tag-blue{background:rgba(24,144,255,.25);border-color:#1890ff;color:#69c0ff}
|
||||
.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item-active{background:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-btn.ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.billing-page .plan-card.highlight[data-v-714c882a]{border:1px solid rgba(24,144,255,.35)}
|
||||
.usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,.usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.08);color:#1890ff}
|
||||
body.dark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.dark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.15);color:#40a9ff}
|
||||
.settings-page .settings-header .page-title .anticon[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .openrouter-balance-card .ant-card[data-v-15e1ba02]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff);border:1px solid #91d5ff}
|
||||
.settings-page .openrouter-balance-card .balance-header .balance-title[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .ant-collapse-arrow{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .panel-header .panel-icon-left{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .help-icon:hover{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{color:#1890ff;background:rgba(24,144,255,.08)}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.25)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.turnstile-container .turnstile-error a[data-v-20437450]{color:#1890ff}
|
||||
.main .login-method-switch a[data-v-de9678f6]:hover{color:#1890ff}
|
||||
.main .login-method-switch a.active[data-v-de9678f6]{color:#1890ff;border-bottom-color:#1890ff}
|
||||
.main .code-login-hint .anticon[data-v-de9678f6]{color:#1890ff}
|
||||
.main .auth-links a[data-v-de9678f6]{color:#1890ff}
|
||||
.main .legal-wrap .legal-toggle[data-v-de9678f6]{color:#1890ff}
|
||||
.ant-dropdown-menu-item-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-submenu-title-selected>a{color:#1890ff;background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}
|
||||
.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{background:#1890ff}
|
||||
.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger){color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger){color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-primary{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-primary:focus,.ant-btn-primary:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-primary.active,.ant-btn-primary:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}
|
||||
.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-ghost.active,.ant-btn-ghost:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-dashed.active,.ant-btn-dashed:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-link.active,.ant-btn-link:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary.active,.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-link:hover{color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-link.active,.ant-btn-background-ghost.ant-btn-link:active{color:#096dd9}
|
||||
.ant-menu-submenu-selected{color:#1890ff}
|
||||
.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}
|
||||
.ant-menu-item>a:hover{color:#1890ff}
|
||||
.ant-menu-item>.ant-badge>a:hover{color:#1890ff}
|
||||
.ant-menu-item-active,.ant-menu-item:hover,.ant-menu-submenu-active,.ant-menu-submenu-title:hover,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}
|
||||
.ant-menu-item-selected,.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#1890ff}
|
||||
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}
|
||||
.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#1890ff));background:linear-gradient(90deg,#1890ff,#1890ff)}
|
||||
.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected>a,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected>a{color:#1890ff}
|
||||
.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover{color:#1890ff;border-bottom:2px solid #1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover{color:#1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a{color:#1890ff}
|
||||
.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after{border-right:3px solid #1890ff}
|
||||
.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}
|
||||
.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}
|
||||
.ant-pro-basicLayout .trigger:hover{color:#1890ff}
|
||||
.ant-pro-sider-menu-sider.light .ant-pro-sider-menu-logo h1{color:#1890ff}
|
||||
.ant-page-header-back-button{color:#1890ff}
|
||||
.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#40a9ff}
|
||||
.ant-page-header-back-button:active{color:#096dd9}
|
||||
.ant-breadcrumb a:hover{color:#40a9ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#1890ff}
|
||||
.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#1890ff;border-color:#1890ff}
|
||||
.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:hover{color:#40a9ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:active{color:#096dd9}
|
||||
.ant-tabs-nav .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-pro-global-header .dark .action.opened,.ant-pro-global-header .dark .action:hover{background:#1890ff}
|
||||
.ant-list-item-meta-title>a:hover{color:#1890ff}
|
||||
.ant-spin{color:#1890ff}
|
||||
.ant-spin-dot-item{background-color:#1890ff}
|
||||
.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#1890ff}
|
||||
.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#1890ff}
|
||||
.ant-pagination-item-active{border-color:#1890ff}
|
||||
.ant-pagination-item-active a{color:#1890ff}
|
||||
.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#40a9ff}
|
||||
.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#40a9ff}
|
||||
.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff}
|
||||
.ant-pagination-next:hover a,.ant-pagination-prev:hover a{border-color:#40a9ff}
|
||||
.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}
|
||||
.ant-pagination-options-quick-jumper input:focus,.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff}
|
||||
.ant-pagination-options-quick-jumper input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}
|
||||
.ant-select-selection:hover{border-color:#40a9ff}
|
||||
.ant-select-focused .ant-select-selection,.ant-select-selection:active,.ant-select-selection:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-open .ant-select-selection{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{color:#1890ff}
|
||||
.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#1890ff}
|
||||
.ant-switch:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-switch-checked{background-color:#1890ff}
|
||||
.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}
|
||||
.ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon .action{color:#1890ff}
|
||||
.ant-pro-setting-drawer-handle{background:#1890ff}
|
||||
.anticon.ant-notification-notice-icon-info{color:#1890ff}
|
||||
.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus,.ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-group-addon .ant-select-focused .ant-select-selection,.ant-input-group-addon .ant-select-open .ant-select-selection{color:#1890ff}
|
||||
.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-result-info .ant-result-icon>.anticon{color:#1890ff}
|
||||
.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}
|
||||
.ant-progress-bg,.ant-progress-success-bg{background-color:#1890ff}
|
||||
.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}
|
||||
.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}
|
||||
.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}
|
||||
.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff}
|
||||
.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#e6f7ff}
|
||||
.ant-time-picker-panel-select li:focus{color:#1890ff}
|
||||
.ant-time-picker-panel-select li:hover{background:#e6f7ff}
|
||||
.ant-time-picker-input:focus,.ant-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-time-picker-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-date:hover{background:#e6f7ff}
|
||||
.ant-calendar-date:active{background:#40a9ff}
|
||||
:not(.ant-calendar-selected-date):not(.ant-calendar-selected-day).ant-calendar-today .ant-calendar-date{color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar-selected-day .ant-calendar-date{background:#bae7ff}
|
||||
.ant-calendar .ant-calendar-ok-btn{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar .ant-calendar-ok-btn:focus,.ant-calendar .ant-calendar-ok-btn:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-calendar .ant-calendar-ok-btn.active,.ant-calendar .ant-calendar-ok-btn:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#1890ff;background:#bae7ff;border-color:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-range .ant-calendar-in-range-cell:before{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:hover{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:focus{color:#1890ff}
|
||||
.ant-calendar-month-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month,.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{background:#1890ff}
|
||||
.ant-calendar-month-panel-month:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-year-panel-year:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{background:#1890ff}
|
||||
.ant-calendar-decade-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-decade-panel-decade:hover{background:#e6f7ff}
|
||||
.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{background:#1890ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr:hover{background:#e6f7ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{background:#bae7ff}
|
||||
.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}
|
||||
.ant-tag-checkable-checked{background-color:#1890ff}
|
||||
.ant-tag-checkable:active{background-color:#096dd9}
|
||||
.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}
|
||||
.ant-tag-blue-inverse{background:#1890ff;border-color:#1890ff}
|
||||
.ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
:not(.ant-steps-item-process).ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{background:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-navigation .ant-steps-item:before{background-color:#1890ff}
|
||||
.ant-badge-status-processing{background-color:#1890ff}
|
||||
.ant-badge-status-processing:after{border:1px solid #1890ff}
|
||||
.ant-badge-status-blue{background:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-filter-selected.anticon{color:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on{color:#1890ff}
|
||||
.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#e6f7ff}
|
||||
.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title:after{color:#1890ff;text-shadow:0 0 2px #bae7ff}
|
||||
.ant-table-filter-dropdown-link{color:#1890ff}
|
||||
.ant-table-filter-dropdown-link:hover{color:#40a9ff}
|
||||
.ant-table-filter-dropdown-link:active{color:#096dd9}
|
||||
.ant-table-row-expand-icon{color:#1890ff}
|
||||
.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#40a9ff}
|
||||
.ant-table-row-expand-icon:active{color:#096dd9}
|
||||
.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-input:focus+.ant-radio-inner{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-checked:after{border:1px solid #1890ff}
|
||||
.ant-radio-inner:after{background-color:#1890ff}
|
||||
.ant-radio-checked .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
.ant-radio-button-wrapper:focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}
|
||||
.ant-checkbox-checked:after{border:1px solid #1890ff}
|
||||
.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#1890ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.is-validating.has-feedback .ant-form-item-children-icon{color:#1890ff}
|
||||
.ant-card-actions>li>span:hover{color:#1890ff}
|
||||
.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#1890ff}
|
||||
.ant-input-number:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}
|
||||
.ant-input-number-focused,.ant-input-number:hover{border-color:#40a9ff}
|
||||
.ant-input-number-focused{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
+144
-114
@@ -39,9 +39,9 @@ body.dark .ant-pagination-item-active,body.realdark .ant-pagination-item-active{
|
||||
body.dark .ant-btn-default:hover,body.realdark .ant-btn-default:hover{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .ant-tabs-tab-active,body.realdark .ant-tabs-tab-active{color:#1890ff!important}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.realdark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1)!important;color:#1890ff!important}
|
||||
.qt-header .qt-header-left .qt-icon[data-v-0d547552]{color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-slider-track{background:#1890ff}
|
||||
.qt-header .qt-header-left .qt-icon[data-v-989be352]{color:#1890ff}
|
||||
.theme-dark[data-v-989be352] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.theme-dark[data-v-989be352] .ant-slider-track{background:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .probability-comparison .prob-item .prob-value.ai-prob[data-v-67e891d2]{color:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .recommendation-section .rec-card .rec-value[data-v-67e891d2]{color:#1890ff}
|
||||
.code-section .section-header .section-title[data-v-4fea1865]:before{background:#1890ff}
|
||||
@@ -58,55 +58,53 @@ body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.real
|
||||
.drawing-tool-btn.active[data-v-58f93984]{background:#e6f7ff;color:#1890ff;border:1px solid #1890ff}
|
||||
.indicator-btn[data-v-58f93984]:hover{color:#1890ff;border-color:#1890ff}
|
||||
.indicator-btn.active[data-v-58f93984]{color:#1890ff;border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.1);box-shadow:0 0 0 2px rgba(24,144,255,.1)}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.timeframe-item[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.timeframe-item.active[data-v-95a351b2]{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,.panel-header .theme-toggle-btn[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn.active[data-v-95a351b2],.panel-header .theme-toggle-btn.active[data-v-95a351b2]{color:#1890ff;background:#e6f7ff}
|
||||
.indicator-card[data-v-95a351b2]:hover{border-color:#1890ff}
|
||||
.indicator-card.active[data-v-95a351b2]{background:#e6f7ff;border-color:#1890ff}
|
||||
.indicator-card.active .card-name[data-v-95a351b2]{color:#1890ff}
|
||||
.card-action[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon.expiry-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.symbol-select[data-v-6bd239a6] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.symbol-select[data-v-6bd239a6] .ant-select-focused .ant-select-selection{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.timeframe-item[data-v-6bd239a6]:hover{color:#1890ff}
|
||||
.timeframe-item.active[data-v-6bd239a6]{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn[data-v-6bd239a6]:hover,.panel-header .theme-toggle-btn[data-v-6bd239a6]:hover{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn.active[data-v-6bd239a6],.panel-header .theme-toggle-btn.active[data-v-6bd239a6]{color:#1890ff;background:#e6f7ff}
|
||||
.indicator-card[data-v-6bd239a6]:hover{border-color:#1890ff}
|
||||
.indicator-card.active[data-v-6bd239a6]{background:#e6f7ff;border-color:#1890ff}
|
||||
.indicator-card.active .card-name[data-v-6bd239a6]{color:#1890ff}
|
||||
.card-action[data-v-6bd239a6]:hover{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-6bd239a6]{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-6bd239a6]:hover{color:#40a9ff}
|
||||
.action-icon[data-v-6bd239a6]:hover{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-6bd239a6]{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-6bd239a6]:hover{color:#40a9ff}
|
||||
.action-icon.expiry-icon[data-v-6bd239a6]{color:#1890ff}
|
||||
.dark-dropdown .ant-select-dropdown-menu-item-active{background-color:#e6f7ff;color:#1890ff}
|
||||
.qt-header-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.qt-header-btn[data-v-95a351b2]:focus,.qt-header-btn[data-v-95a351b2]:hover{background:linear-gradient(135deg,#40a9ff,#9254de);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.45);box-shadow:0 4px 12px rgba(24,144,255,.45)}
|
||||
.qt-floating-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.4);box-shadow:0 4px 16px rgba(24,144,255,.4)}
|
||||
.qt-floating-btn[data-v-95a351b2]:hover{-webkit-box-shadow:0 6px 24px rgba(24,144,255,.55);box-shadow:0 6px 24px rgba(24,144,255,.55)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-selection:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection,body.dark,body.realdark{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.3);box-shadow:0 0 0 2px rgba(24,144,255,.3)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item.active[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card[data-v-95a351b2]:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active .card-name[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.comment-list .comment-form .form-header .edit-label[data-v-4973cae6]{color:#1890ff}
|
||||
.comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.02)}
|
||||
[data-theme=dark] .comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.05)}
|
||||
.indicator-community-container .market-header .header-left .page-title .anticon[data-v-f59e48f0]{color:#1890ff}
|
||||
.indicator-community-container.theme-dark .admin-tabs[data-v-f59e48f0] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-btn-link{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-modal-content .ant-list-item-meta-title a{color:#40a9ff}
|
||||
.page-header .page-title .title-icon[data-v-224372fa]{-webkit-text-fill-color:#1890ff}
|
||||
.empty-result .empty-icon[data-v-224372fa]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff);color:#1890ff}
|
||||
.loading-pulse .pulse-ring[data-v-224372fa]{border:3px solid #1890ff}
|
||||
.loading-pulse .pulse-icon[data-v-224372fa]{color:#1890ff}
|
||||
.running-dots .dot[data-v-224372fa]{background:#1890ff}
|
||||
.add-item-active[data-v-224372fa]{background:#e6f7ff!important}
|
||||
.theme-dark .page-header .page-title .title-icon[data-v-224372fa]{-webkit-text-fill-color:#40a9ff}
|
||||
.qt-header-btn[data-v-6bd239a6]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.qt-header-btn[data-v-6bd239a6]:focus,.qt-header-btn[data-v-6bd239a6]:hover{background:linear-gradient(135deg,#40a9ff,#9254de);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.45);box-shadow:0 4px 12px rgba(24,144,255,.45)}
|
||||
.qt-floating-btn[data-v-6bd239a6]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.4);box-shadow:0 4px 16px rgba(24,144,255,.4)}
|
||||
.qt-floating-btn[data-v-6bd239a6]:hover{-webkit-box-shadow:0 6px 24px rgba(24,144,255,.55);box-shadow:0 6px 24px rgba(24,144,255,.55)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-6bd239a6] .ant-select-selection:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-6bd239a6] .ant-select-focused .ant-select-selection,body.dark,body.realdark{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.3);box-shadow:0 0 0 2px rgba(24,144,255,.3)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item[data-v-6bd239a6]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item.active[data-v-6bd239a6],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn.active[data-v-6bd239a6],.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn[data-v-6bd239a6]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-6bd239a6],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-6bd239a6]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active[data-v-6bd239a6],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card[data-v-6bd239a6]:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active .card-name[data-v-6bd239a6],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-6bd239a6],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon[data-v-6bd239a6]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-6bd239a6]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-6bd239a6],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-6bd239a6]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ai-markdown-content[data-v-2a402d06] h3{border-left:3px solid #1890ff}
|
||||
.ai-markdown-content[data-v-2a402d06] blockquote{border-left:4px solid #91d5ff}
|
||||
.page-header .page-title .title-icon[data-v-6853ba40]{-webkit-text-fill-color:#1890ff}
|
||||
[data-v-6853ba40] .empty-result .empty-icon{background:linear-gradient(135deg,#e6f7ff,#f0f5ff);color:#1890ff}
|
||||
[data-v-6853ba40] .running-spinner .spinner-fill{border-top-color:#1890ff}
|
||||
[data-v-6853ba40] .running-elapsed{color:#1890ff}
|
||||
[data-v-6853ba40] .running-steps .step-item.active{background:#e6f7ff;border-color:#91d5ff}
|
||||
[data-v-6853ba40] .running-steps .step-item.active .step-icon{color:#1890ff}
|
||||
[data-v-6853ba40] .running-steps .step-item.active .step-label{color:#1890ff}
|
||||
[data-v-6853ba40] .result-ai-markdown-content/deep/h3{border-left:3px solid #1890ff}
|
||||
[data-v-6853ba40] .result-ai-markdown-content/deep/blockquote{border-left:3px solid #91d5ff}
|
||||
.add-item-active[data-v-6853ba40]{background:#e6f7ff!important}
|
||||
.theme-dark .page-header .page-title .title-icon[data-v-6853ba40]{color:#40a9ff!important}
|
||||
.trading-records[data-v-a5bdef7e] .ant-tag[color=blue]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#1890ff;border:1px solid rgba(24,144,255,.3)}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover a{color:#1890ff}
|
||||
@@ -132,61 +130,90 @@ body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.mode-card[data-v-2344f311]:hover{border-color:#1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.12);box-shadow:0 4px 16px rgba(24,144,255,.12)}
|
||||
.mode-card.selected[data-v-2344f311]{border-color:#1890ff;background:rgba(24,144,255,.02)}
|
||||
.mode-card.selected[data-v-2344f311]:after{color:#1890ff}
|
||||
.card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,#e6f7ff,#bae7ff);color:#1890ff}
|
||||
.template-tag[data-v-2344f311]:hover{color:#1890ff;border-color:#1890ff;background:#e6f7ff}
|
||||
.theme-dark .mode-card.selected[data-v-2344f311]:after{color:#40a9ff}
|
||||
.theme-dark .card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]{border-color:rgba(24,144,255,.4);color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .template-tag[data-v-2344f311]:hover{color:#40a9ff}
|
||||
.template-item[data-v-767abf73]:hover{border-color:#1890ff}
|
||||
.ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#1890ff}
|
||||
.ai-panel .ai-status[data-v-767abf73]{color:#1890ff}
|
||||
.docs-panel .docs-content[data-v-767abf73] h5{color:#1890ff}
|
||||
.theme-dark .side-tabs[data-v-767abf73] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .ai-panel[data-v-767abf73] textarea.ant-input:focus{border-color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-status[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .docs-panel .docs-content[data-v-767abf73] h5{color:#40a9ff}
|
||||
.mode-card[data-v-1cfbbafc]:hover{border-color:#1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.12);box-shadow:0 4px 16px rgba(24,144,255,.12)}
|
||||
.mode-card.selected[data-v-1cfbbafc]{border-color:#1890ff;background:rgba(24,144,255,.02)}
|
||||
.mode-card.selected[data-v-1cfbbafc]:after{color:#1890ff}
|
||||
.card-icon.signal-icon[data-v-1cfbbafc]{background:linear-gradient(135deg,#e6f7ff,#bae7ff);color:#1890ff}
|
||||
.card-body .card-badge[data-v-1cfbbafc]{background:rgba(24,144,255,.08);color:#1890ff}
|
||||
.template-tag[data-v-1cfbbafc]:hover{color:#1890ff;border-color:#1890ff;background:#e6f7ff}
|
||||
.theme-dark .mode-card.selected[data-v-1cfbbafc]:after{color:#40a9ff}
|
||||
.theme-dark .card-icon.signal-icon[data-v-1cfbbafc]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#40a9ff}
|
||||
.theme-dark .card-body .card-badge[data-v-1cfbbafc]{color:#69c0ff}
|
||||
.theme-dark .card-btn[data-v-1cfbbafc]{border-color:rgba(24,144,255,.4);color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-1cfbbafc]:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .template-tag[data-v-1cfbbafc]:hover{color:#40a9ff}
|
||||
.code-editor-container[data-v-6c7c8660] .CodeMirror-cursor{border-left:2px solid #1890ff}
|
||||
.template-item.active[data-v-6c7c8660],.template-item[data-v-6c7c8660]:hover{border-color:#1890ff}
|
||||
.ai-status[data-v-6c7c8660]{color:#1890ff}
|
||||
.docs-content[data-v-6c7c8660] h5{color:#1890ff}
|
||||
.theme-dark .side-tabs[data-v-6c7c8660] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.theme-dark .ai-status[data-v-6c7c8660]{color:#40a9ff}
|
||||
.theme-dark .docs-content[data-v-6c7c8660] h5{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-70b18ab4]{background:linear-gradient(135deg,#1890ff,#40a9ff);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.35);box-shadow:0 4px 12px rgba(24,144,255,.35)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-70b18ab4]:hover{-webkit-box-shadow:0 6px 16px rgba(24,144,255,.45);box-shadow:0 6px 16px rgba(24,144,255,.45)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-header .group-header-left .group-icon[data-v-70b18ab4]{color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item[data-v-70b18ab4]:hover{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item.active[data-v-70b18ab4]{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item[data-v-70b18ab4]:hover{border-color:rgba(24,144,255,.2);-webkit-box-shadow:0 2px 12px rgba(24,144,255,.1);box-shadow:0 2px 12px rgba(24,144,255,.1)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item.active[data-v-70b18ab4]{border-color:#1890ff;border-left:4px solid #1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.15);box-shadow:0 4px 16px rgba(24,144,255,.15)}
|
||||
.trading-assistant .strategy-detail-col .empty-detail[data-v-70b18ab4]:hover{border-color:#1890ff;background:linear-gradient(135deg,rgba(24,144,255,.02),rgba(24,144,255,.05))}
|
||||
.trading-assistant .strategy-detail-col .strategy-detail-panel .strategy-header-card .strategy-header .header-left .strategy-tags .tag-item .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
.trading-assistant.theme-dark .creation-mode-toggle[data-v-70b18ab4]{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item[data-v-70b18ab4]:hover{background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(24,144,255,.04));border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item.active[data-v-70b18ab4]{background:linear-gradient(135deg,rgba(24,144,255,.12),rgba(24,144,255,.06));border-color:#1890ff;-webkit-box-shadow:0 4px 20px rgba(24,144,255,.2);box-shadow:0 4px 20px rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-header-card .strategy-tags .tag-item[data-v-70b18ab4]:hover{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-70b18ab4] .ant-tabs .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-70b18ab4] .ant-tabs .ant-tabs-nav .ant-tabs-ink-bar{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#40a9ff));background:linear-gradient(90deg,#1890ff,#40a9ff)}
|
||||
.ai-filter-title .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
.creation-mode-toggle[data-v-70b18ab4]{background:rgba(24,144,255,.04);border:1px solid rgba(24,144,255,.12)}
|
||||
.strategy-type-selector .strategy-type-card[data-v-70b18ab4]:hover{border-color:#1890ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.strategy-type-selector .strategy-type-card.selected[data-v-70b18ab4]{border-color:#1890ff;background-color:#e6f7ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.strategy-type-selector .strategy-type-card .strategy-type-content .strategy-type-icon[data-v-70b18ab4]{color:#1890ff}
|
||||
.ip-whitelist-tip[data-v-70b18ab4]{background-color:#e6f7ff;border:1px solid #91d5ff;color:#1890ff}
|
||||
.ip-whitelist-tip .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-modal-content .creation-mode-toggle{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
body.dark .ant-modal-wrap .ant-steps .ant-steps-item-finish .ant-steps-item-icon,body.dark .ant-modal-wrap .ant-steps .ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number:focus,body.dark .ant-modal-wrap .ant-input-number:hover,body.dark .ant-modal-wrap .ant-input:focus,body.dark .ant-modal-wrap .ant-input:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number-handler-wrap .ant-input-number-handler:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-select .ant-select-selection:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-switch.ant-switch-checked{background:#1890ff}
|
||||
body.dark .ant-modal-wrap .ip-whitelist-tip{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2);color:#40a9ff}
|
||||
.assistant-guide-bar[data-v-bbcac474]{border:1px solid rgba(24,144,255,.14);background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(114,46,209,.06))}
|
||||
.assistant-guide-bar .assistant-guide-eyebrow[data-v-bbcac474]{background:rgba(24,144,255,.12)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-bbcac474]{background:linear-gradient(135deg,#1890ff,#40a9ff);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.35);box-shadow:0 4px 12px rgba(24,144,255,.35)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-bbcac474]:hover{-webkit-box-shadow:0 6px 16px rgba(24,144,255,.45);box-shadow:0 6px 16px rgba(24,144,255,.45)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-header .group-header-left .group-icon[data-v-bbcac474]{color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item[data-v-bbcac474]:hover{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item.active[data-v-bbcac474]{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item[data-v-bbcac474]:hover{border-color:rgba(24,144,255,.2);-webkit-box-shadow:0 2px 12px rgba(24,144,255,.1);box-shadow:0 2px 12px rgba(24,144,255,.1)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item.active[data-v-bbcac474]{border-color:#1890ff;border-left:4px solid #1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.15);box-shadow:0 4px 16px rgba(24,144,255,.15)}
|
||||
.trading-assistant .strategy-detail-col .empty-detail[data-v-bbcac474]:hover{border-color:#1890ff;background:linear-gradient(135deg,rgba(24,144,255,.02),rgba(24,144,255,.05))}
|
||||
.trading-assistant .strategy-detail-col .strategy-detail-panel .strategy-header-card .strategy-header .header-left .strategy-tags .tag-item .anticon[data-v-bbcac474]{color:#1890ff}
|
||||
.trading-assistant.theme-dark .creation-mode-toggle[data-v-bbcac474]{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item[data-v-bbcac474]:hover{background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(24,144,255,.04));border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item.active[data-v-bbcac474]{background:linear-gradient(135deg,rgba(24,144,255,.12),rgba(24,144,255,.06));border-color:#1890ff;-webkit-box-shadow:0 4px 20px rgba(24,144,255,.2);box-shadow:0 4px 20px rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-header-card .strategy-tags .tag-item[data-v-bbcac474]:hover{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-bbcac474] .ant-tabs .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-bbcac474] .ant-tabs .ant-tabs-nav .ant-tabs-ink-bar{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#40a9ff));background:linear-gradient(90deg,#1890ff,#40a9ff)}
|
||||
.theme-dark .assistant-guide-bar .assistant-guide-eyebrow[data-v-bbcac474]{color:#69c0ff}
|
||||
.ai-filter-title .anticon[data-v-bbcac474]{color:#1890ff}
|
||||
.creation-mode-toggle[data-v-bbcac474]{background:rgba(24,144,255,.04);border:1px solid rgba(24,144,255,.12)}
|
||||
.simple-mode-hero[data-v-bbcac474]{background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(114,46,209,.06));border:1px solid rgba(24,144,255,.14)}
|
||||
.simple-mode-kicker[data-v-bbcac474]{color:#1890ff}
|
||||
.advanced-settings-shell[data-v-bbcac474],.selected-indicator-card[data-v-bbcac474],.simple-essentials-card[data-v-bbcac474]{border:1px solid rgba(24,144,255,.12)}
|
||||
.execution-step-hero[data-v-bbcac474]{background:linear-gradient(135deg,rgba(82,196,26,.08),rgba(24,144,255,.08));border:1px solid rgba(24,144,255,.14)}
|
||||
.execution-section-card[data-v-bbcac474]{border:1px solid rgba(24,144,255,.12)}
|
||||
.execution-mode-card[data-v-bbcac474]{border:1px solid rgba(24,144,255,.12)}
|
||||
.execution-mode-card[data-v-bbcac474]:hover{border-color:rgba(24,144,255,.35);-webkit-box-shadow:0 8px 24px rgba(24,144,255,.08);box-shadow:0 8px 24px rgba(24,144,255,.08)}
|
||||
.execution-mode-card.active[data-v-bbcac474]{border-color:#1890ff;background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(24,144,255,.03));-webkit-box-shadow:0 10px 28px rgba(24,144,255,.12);box-shadow:0 10px 28px rgba(24,144,255,.12)}
|
||||
.execution-mode-card.disabled[data-v-bbcac474]:hover{border-color:rgba(24,144,255,.12)}
|
||||
.execution-mode-card-icon.signal[data-v-bbcac474]{color:#1890ff;background:rgba(24,144,255,.1)}
|
||||
.execution-mode-card-check[data-v-bbcac474]{color:#1890ff}
|
||||
.strategy-type-selector .strategy-type-card[data-v-bbcac474]:hover{border-color:#1890ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.strategy-type-selector .strategy-type-card.selected[data-v-bbcac474]{border-color:#1890ff;background-color:#e6f7ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.strategy-type-selector .strategy-type-card .strategy-type-content .strategy-type-icon[data-v-bbcac474]{color:#1890ff}
|
||||
.theme-dark .simple-mode-hero[data-v-bbcac474]{background:linear-gradient(135deg,rgba(24,144,255,.14),rgba(114,46,209,.12))}
|
||||
.theme-dark .execution-step-hero[data-v-bbcac474]{background:linear-gradient(135deg,rgba(82,196,26,.14),rgba(24,144,255,.14))}
|
||||
.theme-dark .execution-mode-card[data-v-bbcac474]:hover{-webkit-box-shadow:0 8px 24px rgba(24,144,255,.12);box-shadow:0 8px 24px rgba(24,144,255,.12)}
|
||||
.theme-dark .execution-mode-card.active[data-v-bbcac474]{background:linear-gradient(135deg,rgba(24,144,255,.16),rgba(24,144,255,.08));border-color:#1890ff}
|
||||
.theme-dark .simple-mode-kicker[data-v-bbcac474]{color:#69c0ff}
|
||||
.ip-whitelist-tip[data-v-bbcac474]{background-color:#e6f7ff;border:1px solid #91d5ff;color:#1890ff}
|
||||
.ip-whitelist-tip .anticon[data-v-bbcac474]{color:#1890ff}
|
||||
body.dark .strategy-form-modal.strategy-form-modal-dark .ant-modal-content .creation-mode-toggle{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
body.dark .strategy-form-modal.strategy-form-modal-dark .ant-steps .ant-steps-item-finish .ant-steps-item-icon,body.dark .strategy-form-modal.strategy-form-modal-dark .ant-steps .ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
body.dark .strategy-form-modal.strategy-form-modal-dark .ant-input-number:focus,body.dark .strategy-form-modal.strategy-form-modal-dark .ant-input-number:hover,body.dark .strategy-form-modal.strategy-form-modal-dark .ant-input:focus,body.dark .strategy-form-modal.strategy-form-modal-dark .ant-input:hover{border-color:#1890ff}
|
||||
body.dark .strategy-form-modal.strategy-form-modal-dark .ant-input-number-handler-wrap .ant-input-number-handler:hover{color:#1890ff}
|
||||
body.dark .strategy-form-modal.strategy-form-modal-dark .ant-select .ant-select-selection:hover{border-color:#1890ff}
|
||||
body.dark .strategy-form-modal.strategy-form-modal-dark .ant-radio-group .ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
body.dark .strategy-form-modal.strategy-form-modal-dark .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
body.dark .strategy-form-modal.strategy-form-modal-dark .ant-switch.ant-switch-checked{background:#1890ff}
|
||||
body.dark .strategy-form-modal.strategy-form-modal-dark .simple-mode-hero{background:linear-gradient(135deg,rgba(24,144,255,.16),rgba(114,46,209,.14))}
|
||||
body.dark .strategy-form-modal.strategy-form-modal-dark .execution-step-hero{background:linear-gradient(135deg,rgba(82,196,26,.16),rgba(24,144,255,.14))}
|
||||
body.dark .strategy-form-modal.strategy-form-modal-dark .ip-whitelist-tip{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2);color:#40a9ff}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-active,body.dark .ant-select-dropdown .ant-select-dropdown-menu-item:hover{background:rgba(24,144,255,.1)}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.15);color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-alert{background:rgba(24,144,255,.06);border-color:rgba(24,144,255,.2)}
|
||||
.comment-list .comment-form .form-header .edit-label[data-v-48b21f80]{color:#1890ff}
|
||||
.comment-list .comments .comment-item.is-mine[data-v-48b21f80]{background:rgba(24,144,255,.02)}
|
||||
.dark .comment-list .comments .comment-item.is-mine[data-v-48b21f80],[data-theme=dark] .comment-list .comments .comment-item.is-mine[data-v-48b21f80],body.dark .comment-list .comments .comment-item.is-mine[data-v-48b21f80]{background:rgba(24,144,255,.05)}
|
||||
.indicator-community-container .market-header .header-left .page-title .anticon[data-v-f59e48f0]{color:#1890ff}
|
||||
.indicator-community-container.theme-dark .admin-tabs[data-v-f59e48f0] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-btn-link{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-modal-content .ant-list-item-meta-title a{color:#40a9ff}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .loading-header .loading-icon-pro[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
@@ -270,22 +297,25 @@ body.dark .ant-modal-wrap .ant-alert{background:rgba(24,144,255,.06);border-colo
|
||||
.theme-dark .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.1)}
|
||||
.theme-dark .alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(114,46,209,.1))}
|
||||
.theme-dark .alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#40a9ff}
|
||||
.user-manage-page .page-header .page-title .anticon[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page .address-text[data-v-0b8bb4d8],.user-manage-page .hash-text[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page.theme-dark .manage-tabs[data-v-0b8bb4d8] .ant-tabs-tab-active{color:#1890ff}
|
||||
.user-manage-page .current-credits-info .value[data-v-0b8bb4d8],.user-manage-page .current-vip-info .value[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.profile-page .page-header .page-title .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page .profile-card .profile-info .info-item .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-tabs-tab-active{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:hover,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-table-wrapper .ant-tag-blue{background:rgba(24,144,255,.25);border-color:#1890ff;color:#69c0ff}
|
||||
.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item-active{background:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-btn.ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.profile-page .page-header .page-title .anticon[data-v-06c79ed5]{color:#1890ff}
|
||||
.profile-page .profile-card .profile-info .info-item .anticon[data-v-06c79ed5]{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-06c79ed5] .ant-tabs-tab-active{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-06c79ed5] .ant-input-password:focus,.profile-page.theme-dark .edit-card[data-v-06c79ed5] .ant-input-password:hover,.profile-page.theme-dark .edit-card[data-v-06c79ed5] .ant-input:focus,.profile-page.theme-dark .edit-card[data-v-06c79ed5] .ant-input:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-06c79ed5] .ant-table-wrapper .ant-tag-blue{background:rgba(24,144,255,.25);border-color:#1890ff;color:#69c0ff}
|
||||
.profile-page.theme-dark .notification-settings-form[data-v-06c79ed5] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .notification-settings-form[data-v-06c79ed5] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .password-form[data-v-06c79ed5] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .password-form[data-v-06c79ed5] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .profile-form[data-v-06c79ed5] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .profile-form[data-v-06c79ed5] .ant-radio-checked .ant-radio-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-06c79ed5] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-06c79ed5] .ant-pagination .ant-pagination-item-active{background:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-06c79ed5] .ant-btn.ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.profile-exchange-modal .exchange-account-form .exchange-api-doc-callout{border:1px solid rgba(24,144,255,.18);background:-webkit-gradient(linear,left top,right top,from(rgba(24,144,255,.06)),to(rgba(82,196,26,.04)));background:linear-gradient(90deg,rgba(24,144,255,.06),rgba(82,196,26,.04))}
|
||||
.profile-exchange-modal .exchange-account-form .exchange-api-doc-callout__icon{background:rgba(24,144,255,.12);color:#1890ff}
|
||||
.profile-exchange-modal--dark .exchange-account-form .exchange-api-doc-callout{background:-webkit-gradient(linear,left top,right top,from(rgba(24,144,255,.12)),to(rgba(82,196,26,.08)));background:linear-gradient(90deg,rgba(24,144,255,.12),rgba(82,196,26,.08))}
|
||||
.billing-page .plan-card.highlight[data-v-714c882a]{border:1px solid rgba(24,144,255,.35)}
|
||||
.usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,.usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.08);color:#1890ff}
|
||||
body.dark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.dark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.15);color:#40a9ff}
|
||||
.user-manage-page .page-header .page-title .anticon[data-v-4e5dc5e0]{color:#1890ff}
|
||||
.user-manage-page .address-text[data-v-4e5dc5e0],.user-manage-page .hash-text[data-v-4e5dc5e0]{color:#1890ff}
|
||||
.user-manage-page.theme-dark .manage-tabs[data-v-4e5dc5e0] .ant-tabs-tab-active{color:#1890ff}
|
||||
.user-manage-page .current-credits-info .value[data-v-4e5dc5e0],.user-manage-page .current-vip-info .value[data-v-4e5dc5e0]{color:#1890ff}
|
||||
.settings-page .settings-header .page-title .anticon[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .openrouter-balance-card .ant-card[data-v-15e1ba02]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff);border:1px solid #91d5ff}
|
||||
.settings-page .openrouter-balance-card .balance-header .balance-title[data-v-15e1ba02]{color:#1890ff}
|
||||
-503
@@ -1,503 +0,0 @@
|
||||
|
||||
.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.notice-item.unread[data-v-7e99442e]{background:#e6f7ff}
|
||||
.notice-item.unread[data-v-7e99442e]:hover{background:#bae7ff}
|
||||
.notice-footer a[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-footer a[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread,.ant-layout.realdark .header-notice-wrapper .notice-item.unread,body.dark .header-notice-wrapper .notice-item.unread,body.realdark .header-notice-wrapper .notice-item.unread{background:rgba(24,144,255,.15)}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread:hover,.ant-layout.realdark .header-notice-wrapper .notice-item.unread:hover,body.dark .header-notice-wrapper .notice-item.unread:hover,body.realdark .header-notice-wrapper .notice-item.unread:hover{background:rgba(24,144,255,.25)}
|
||||
.ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
.setting-drawer-index-content .setting-drawer-index-blockChecbox .setting-drawer-index-item .setting-drawer-index-selectIcon[data-v-940007f2]{color:#1890ff}
|
||||
:global .ant-layout.dark .ant-layout-header .anticon:hover,:global .ant-layout.realdark .ant-layout-header .anticon:hover,:global .ant-pro-layout.dark .ant-layout-header .anticon:hover,:global .ant-pro-layout.realdark .ant-layout-header .anticon:hover,:global body.dark .ant-layout-header .anticon:hover,:global body.realdark .ant-layout-header .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-layout.dark .ant-layout-header a:hover,:global .ant-layout.realdark .ant-layout-header a:hover,:global .ant-pro-layout.dark .ant-layout-header a:hover,:global .ant-pro-layout.realdark .ant-layout-header a:hover,:global body.dark .ant-layout-header a:hover,:global body.realdark .ant-layout-header a:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-content .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,:global .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
:global a:hover{color:#1890ff!important}
|
||||
:global .anticon:hover{color:#1890ff!important}
|
||||
:global(.ant-pro-layout).dark :global(.ant-menu-dark .ant-menu-item-selected),:global(.ant-pro-layout).realdark :global(.ant-menu-dark .ant-menu-item-selected){background:rgba(24,144,255,.25)!important}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-global-header-index-action:hover{background:#1890ff}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-drop-down:hover{color:#1890ff}
|
||||
.ant-pro-global-header-index-right .ant-pro-account-avatar .antd-pro-global-header-index-avatar{color:#1890ff}
|
||||
:global .ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,:global .ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff!important}
|
||||
:global body.dark .ant-menu-dark .ant-menu-item-selected,:global body.realdark .ant-menu-dark .ant-menu-item-selected{background:rgba(24,144,255,.25)!important}
|
||||
a{color:#1890ff}
|
||||
a:hover{color:#40a9ff}
|
||||
a:active{color:#096dd9}
|
||||
::-moz-selection{background:#1890ff}
|
||||
::selection{background:#1890ff}
|
||||
html{--antd-wave-shadow-color:#1890ff}
|
||||
.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{-webkit-box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 #1890ff}
|
||||
#nprogress .bar{background:#1890ff}
|
||||
#nprogress .peg{-webkit-box-shadow:0 0 10px #1890ff,0 0 5px #1890ff;box-shadow:0 0 10px #1890ff,0 0 5px #1890ff}
|
||||
#nprogress .spinner-icon{border-top-color:#1890ff;border-left-color:#1890ff}
|
||||
body.dark .ant-pagination-item-active,body.realdark .ant-pagination-item-active{border-color:#1890ff!important}
|
||||
body.dark .ant-btn-default:hover,body.realdark .ant-btn-default:hover{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .ant-tabs-tab-active,body.realdark .ant-tabs-tab-active{color:#1890ff!important}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.realdark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1)!important;color:#1890ff!important}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .loading-header .loading-icon-pro[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card[data-v-03feb1fa]:after{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 3%,transparent)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card.fundamental[data-v-03feb1fa]:before{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card .analysis-card-header.fundamental .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .loading-icon-pro[data-v-03feb1fa],.fast-analysis-report.theme-dark .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 5%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .feedback-section .ant-btn[data-v-03feb1fa]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 30%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.left-panel .calendar-box .box-header .box-title .anticon[data-v-22f26594]{color:var(--primary-color,#1890ff)}
|
||||
.right-panel .analysis-toolbar .analyze-button[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card-hover-actions .wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent) 30%)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-badge[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);-webkit-box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat-icon[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark .right-panel .analysis-toolbar .history-button[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 45%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .hero-cta .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark .panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.ai-analysis-container.theme-dark .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff)!important;color:var(--primary-color,#1890ff)!important}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.hero-bg-circle.c1[data-v-22f26594]{background:radial-gradient(circle,rgba(24,144,255,.1) 0,transparent 70%)}
|
||||
.hero-bg-grid[data-v-22f26594]{background-image:linear-gradient(rgba(24,144,255,.03) 1px,transparent 0),linear-gradient(90deg,rgba(24,144,255,.03) 1px,transparent 0)}
|
||||
.hero-badge[data-v-22f26594]{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08);border:1px solid rgba(24,144,255,.2)}
|
||||
.hstat[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.1);box-shadow:0 4px 16px rgba(24,144,255,.1)}
|
||||
.hstat-icon[data-v-22f26594]{background:linear-gradient(135deg,rgba(24,144,255,.1),rgba(114,46,209,.08));color:var(--primary-color,#1890ff)}
|
||||
.hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px rgba(24,144,255,.3);box-shadow:0 4px 14px rgba(24,144,255,.3)}
|
||||
.panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.batch-bar .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent);box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent)}
|
||||
.wl-card.active[data-v-22f26594]{background:linear-gradient(135deg,color-mix(in srgb,var(--primary-color,#1890ff) 6%,#fff) 0,color-mix(in srgb,var(--primary-color,#1890ff) 4%,#fff) 100%);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent);-webkit-box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:-webkit-gradient(linear,left top,right top,from(transparent),color-stop(30%,#e6f7ff));background:linear-gradient(90deg,transparent,#e6f7ff 30%)}
|
||||
.wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:#e6f7ff}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]:hover{-webkit-box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent)}
|
||||
.qd-dark-modal .ant-modal-footer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.qd-dark-modal .ant-tag-blue{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-modal .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.qd-dark-modal .ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.qd-dark-modal .batch-symbols-preview .ant-tag{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-primary{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-default:hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.colorWeak .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1);color:#1890ff}
|
||||
.qt-header .qt-header-left .qt-icon[data-v-0d547552]{color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-slider-track{background:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .probability-comparison .prob-item .prob-value.ai-prob[data-v-67e891d2]{color:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .recommendation-section .rec-card .rec-value[data-v-67e891d2]{color:#1890ff}
|
||||
.code-section .section-header .section-title[data-v-4fea1865]:before{background:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link{color:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link:hover{color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:hover{border-color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:focus-within{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05);box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05)}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-cursor{border-left:2px solid #1890ff}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-selected{background:#e6f7ff}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn:not(.ant-btn-primary):hover{border-color:#40a9ff;color:#40a9ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary{-webkit-box-shadow:0 2px 4px rgba(24,144,255,.3);box-shadow:0 2px 4px rgba(24,144,255,.3)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary:hover{-webkit-box-shadow:0 4px 12px rgba(24,144,255,.4);box-shadow:0 4px 12px rgba(24,144,255,.4)}
|
||||
.drawing-tool-btn[data-v-58f93984]:hover{color:#1890ff}
|
||||
.drawing-tool-btn.active[data-v-58f93984]{background:#e6f7ff;color:#1890ff;border:1px solid #1890ff}
|
||||
.indicator-btn[data-v-58f93984]:hover{color:#1890ff;border-color:#1890ff}
|
||||
.indicator-btn.active[data-v-58f93984]{color:#1890ff;border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.1);box-shadow:0 0 0 2px rgba(24,144,255,.1)}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.timeframe-item[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.timeframe-item.active[data-v-95a351b2]{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,.panel-header .theme-toggle-btn[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn.active[data-v-95a351b2],.panel-header .theme-toggle-btn.active[data-v-95a351b2]{color:#1890ff;background:#e6f7ff}
|
||||
.indicator-card[data-v-95a351b2]:hover{border-color:#1890ff}
|
||||
.indicator-card.active[data-v-95a351b2]{background:#e6f7ff;border-color:#1890ff}
|
||||
.indicator-card.active .card-name[data-v-95a351b2]{color:#1890ff}
|
||||
.card-action[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon.expiry-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.dark-dropdown .ant-select-dropdown-menu-item-active{background-color:#e6f7ff;color:#1890ff}
|
||||
.qt-header-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.qt-header-btn[data-v-95a351b2]:focus,.qt-header-btn[data-v-95a351b2]:hover{background:linear-gradient(135deg,#40a9ff,#9254de);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.45);box-shadow:0 4px 12px rgba(24,144,255,.45)}
|
||||
.qt-floating-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.4);box-shadow:0 4px 16px rgba(24,144,255,.4)}
|
||||
.qt-floating-btn[data-v-95a351b2]:hover{-webkit-box-shadow:0 6px 24px rgba(24,144,255,.55);box-shadow:0 6px 24px rgba(24,144,255,.55)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-selection:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection,body.dark,body.realdark{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.3);box-shadow:0 0 0 2px rgba(24,144,255,.3)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item.active[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card[data-v-95a351b2]:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active .card-name[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.comment-list .comment-form .form-header .edit-label[data-v-4973cae6]{color:#1890ff}
|
||||
.comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.02)}
|
||||
[data-theme=dark] .comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.05)}
|
||||
.indicator-community-container .market-header .header-left .page-title .anticon[data-v-f59e48f0]{color:#1890ff}
|
||||
.indicator-community-container.theme-dark .admin-tabs[data-v-f59e48f0] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-btn-link{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-modal-content .ant-list-item-meta-title a{color:#40a9ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-tag[color=blue]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#1890ff;border:1px solid rgba(24,144,255,.3)}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover a{color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item.ant-pagination-item-active{background:linear-gradient(135deg,#1890ff,#40a9ff);border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-next .ant-pagination-item-link:hover,.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-prev .ant-pagination-item-link:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover,body.dark .trading-records[data-v] .ant-pagination-item:hover,body.realdark .trading-records[data-v] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover a,body.dark .trading-records[data-v] .ant-pagination-item:hover a,body.realdark .trading-records[data-v] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item-active,body.dark .trading-records[data-v] .ant-pagination-item-active,body.realdark .trading-records[data-v] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.mode-card[data-v-2344f311]:hover{border-color:#1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.12);box-shadow:0 4px 16px rgba(24,144,255,.12)}
|
||||
.mode-card.selected[data-v-2344f311]{border-color:#1890ff;background:rgba(24,144,255,.02)}
|
||||
.mode-card.selected[data-v-2344f311]:after{color:#1890ff}
|
||||
.card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,#e6f7ff,#bae7ff);color:#1890ff}
|
||||
.template-tag[data-v-2344f311]:hover{color:#1890ff;border-color:#1890ff;background:#e6f7ff}
|
||||
.theme-dark .mode-card.selected[data-v-2344f311]:after{color:#40a9ff}
|
||||
.theme-dark .card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]{border-color:rgba(24,144,255,.4);color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .template-tag[data-v-2344f311]:hover{color:#40a9ff}
|
||||
.template-item[data-v-767abf73]:hover{border-color:#1890ff}
|
||||
.ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#1890ff}
|
||||
.ai-panel .ai-status[data-v-767abf73]{color:#1890ff}
|
||||
.docs-panel .docs-content[data-v-767abf73] h5{color:#1890ff}
|
||||
.theme-dark .side-tabs[data-v-767abf73] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .ai-panel[data-v-767abf73] textarea.ant-input:focus{border-color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-status[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .docs-panel .docs-content[data-v-767abf73] h5{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-69d6d8ef]{background:linear-gradient(135deg,#1890ff,#40a9ff);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.35);box-shadow:0 4px 12px rgba(24,144,255,.35)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-69d6d8ef]:hover{-webkit-box-shadow:0 6px 16px rgba(24,144,255,.45);box-shadow:0 6px 16px rgba(24,144,255,.45)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-header .group-header-left .group-icon[data-v-69d6d8ef]{color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item[data-v-69d6d8ef]:hover{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item.active[data-v-69d6d8ef]{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item[data-v-69d6d8ef]:hover{border-color:rgba(24,144,255,.2);-webkit-box-shadow:0 2px 12px rgba(24,144,255,.1);box-shadow:0 2px 12px rgba(24,144,255,.1)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item.active[data-v-69d6d8ef]{border-color:#1890ff;border-left:4px solid #1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.15);box-shadow:0 4px 16px rgba(24,144,255,.15)}
|
||||
.trading-assistant .strategy-detail-col .empty-detail[data-v-69d6d8ef]:hover{border-color:#1890ff;background:linear-gradient(135deg,rgba(24,144,255,.02),rgba(24,144,255,.05))}
|
||||
.trading-assistant .strategy-detail-col .strategy-detail-panel .strategy-header-card .strategy-header .header-left .strategy-tags .tag-item .anticon[data-v-69d6d8ef]{color:#1890ff}
|
||||
.trading-assistant.theme-dark .creation-mode-toggle[data-v-69d6d8ef]{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item[data-v-69d6d8ef]:hover{background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(24,144,255,.04));border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item.active[data-v-69d6d8ef]{background:linear-gradient(135deg,rgba(24,144,255,.12),rgba(24,144,255,.06));border-color:#1890ff;-webkit-box-shadow:0 4px 20px rgba(24,144,255,.2);box-shadow:0 4px 20px rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-header-card .strategy-tags .tag-item[data-v-69d6d8ef]:hover{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-69d6d8ef] .ant-tabs .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-69d6d8ef] .ant-tabs .ant-tabs-nav .ant-tabs-ink-bar{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#40a9ff));background:linear-gradient(90deg,#1890ff,#40a9ff)}
|
||||
.ai-filter-title .anticon[data-v-69d6d8ef]{color:#1890ff}
|
||||
.creation-mode-toggle[data-v-69d6d8ef]{background:rgba(24,144,255,.04);border:1px solid rgba(24,144,255,.12)}
|
||||
.strategy-type-selector .strategy-type-card[data-v-69d6d8ef]:hover{border-color:#1890ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.strategy-type-selector .strategy-type-card.selected[data-v-69d6d8ef]{border-color:#1890ff;background-color:#e6f7ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.strategy-type-selector .strategy-type-card .strategy-type-content .strategy-type-icon[data-v-69d6d8ef]{color:#1890ff}
|
||||
.ip-whitelist-tip[data-v-69d6d8ef]{background-color:#e6f7ff;border:1px solid #91d5ff;color:#1890ff}
|
||||
.ip-whitelist-tip .anticon[data-v-69d6d8ef]{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-modal-content .creation-mode-toggle{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
body.dark .ant-modal-wrap .ant-steps .ant-steps-item-finish .ant-steps-item-icon,body.dark .ant-modal-wrap .ant-steps .ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number:focus,body.dark .ant-modal-wrap .ant-input-number:hover,body.dark .ant-modal-wrap .ant-input:focus,body.dark .ant-modal-wrap .ant-input:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number-handler-wrap .ant-input-number-handler:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-select .ant-select-selection:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-switch.ant-switch-checked{background:#1890ff}
|
||||
body.dark .ant-modal-wrap .ip-whitelist-tip{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2);color:#40a9ff}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-active,body.dark .ant-select-dropdown .ant-select-dropdown-menu-item:hover{background:rgba(24,144,255,.1)}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.15);color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-alert{background:rgba(24,144,255,.06);border-color:rgba(24,144,255,.2)}
|
||||
.section-title .anticon[data-v-473e449c]{color:#1890ff}
|
||||
.loading-overlay .bar[data-v-473e449c]{background:-webkit-gradient(linear,left top,left bottom,from(#1890ff),to(#52c41a));background:linear-gradient(180deg,#1890ff,#52c41a)}
|
||||
.loading-overlay .loading-text[data-v-473e449c]{color:#1890ff}
|
||||
.page-header .header-content .page-title .title-icon[data-v-9ec1bad6]{-webkit-text-fill-color:#1890ff}
|
||||
.theme-dark .page-header .page-title .title-icon[data-v-9ec1bad6]{-webkit-text-fill-color:#40a9ff}
|
||||
.theme-dark .main-tabs[data-v-9ec1bad6] .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.theme-dark .main-tabs[data-v-9ec1bad6] .ant-tabs-ink-bar{background:#1890ff}
|
||||
.theme-dark[data-v-9ec1bad6] .ant-select .ant-select-selection:hover{border-color:#1890ff}
|
||||
.summary-card .card-icon.sync.syncing[data-v-398d904c]{color:#1890ff}
|
||||
.monitor-card .monitor-body .scope-selected[data-v-398d904c]{color:#1890ff;border-bottom:1px dashed #1890ff}
|
||||
.alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff)}
|
||||
.alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#1890ff}
|
||||
.position-checkbox-group .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.05)}
|
||||
.theme-dark .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.1)}
|
||||
.theme-dark .alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(114,46,209,.1))}
|
||||
.theme-dark .alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#40a9ff}
|
||||
.user-manage-page .page-header .page-title .anticon[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page .address-text[data-v-0b8bb4d8],.user-manage-page .hash-text[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page.theme-dark .manage-tabs[data-v-0b8bb4d8] .ant-tabs-tab-active{color:#1890ff}
|
||||
.user-manage-page .current-credits-info .value[data-v-0b8bb4d8],.user-manage-page .current-vip-info .value[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.profile-page .page-header .page-title .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page .profile-card .profile-info .info-item .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-tabs-tab-active{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:hover,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-table-wrapper .ant-tag-blue{background:rgba(24,144,255,.25);border-color:#1890ff;color:#69c0ff}
|
||||
.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item-active{background:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-btn.ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.billing-page .plan-card.highlight[data-v-714c882a]{border:1px solid rgba(24,144,255,.35)}
|
||||
.usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,.usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.08);color:#1890ff}
|
||||
body.dark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.dark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.15);color:#40a9ff}
|
||||
.settings-page .settings-header .page-title .anticon[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .openrouter-balance-card .ant-card[data-v-15e1ba02]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff);border:1px solid #91d5ff}
|
||||
.settings-page .openrouter-balance-card .balance-header .balance-title[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .ant-collapse-arrow{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .panel-header .panel-icon-left{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .help-icon:hover{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{color:#1890ff;background:rgba(24,144,255,.08)}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.25)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.turnstile-container .turnstile-error a[data-v-20437450]{color:#1890ff}
|
||||
.main .login-method-switch a[data-v-de9678f6]:hover{color:#1890ff}
|
||||
.main .login-method-switch a.active[data-v-de9678f6]{color:#1890ff;border-bottom-color:#1890ff}
|
||||
.main .code-login-hint .anticon[data-v-de9678f6]{color:#1890ff}
|
||||
.main .auth-links a[data-v-de9678f6]{color:#1890ff}
|
||||
.main .legal-wrap .legal-toggle[data-v-de9678f6]{color:#1890ff}
|
||||
.ant-dropdown-menu-item-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-submenu-title-selected>a{color:#1890ff;background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}
|
||||
.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{background:#1890ff}
|
||||
.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger){color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger){color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-primary{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-primary:focus,.ant-btn-primary:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-primary.active,.ant-btn-primary:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}
|
||||
.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-ghost.active,.ant-btn-ghost:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-dashed.active,.ant-btn-dashed:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-link.active,.ant-btn-link:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary.active,.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-link:hover{color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-link.active,.ant-btn-background-ghost.ant-btn-link:active{color:#096dd9}
|
||||
.ant-menu-submenu-selected{color:#1890ff}
|
||||
.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}
|
||||
.ant-menu-item>a:hover{color:#1890ff}
|
||||
.ant-menu-item>.ant-badge>a:hover{color:#1890ff}
|
||||
.ant-menu-item-active,.ant-menu-item:hover,.ant-menu-submenu-active,.ant-menu-submenu-title:hover,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}
|
||||
.ant-menu-item-selected,.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#1890ff}
|
||||
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}
|
||||
.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#1890ff));background:linear-gradient(90deg,#1890ff,#1890ff)}
|
||||
.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected>a,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected>a{color:#1890ff}
|
||||
.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover{color:#1890ff;border-bottom:2px solid #1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover{color:#1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a{color:#1890ff}
|
||||
.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after{border-right:3px solid #1890ff}
|
||||
.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}
|
||||
.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}
|
||||
.ant-pro-basicLayout .trigger:hover{color:#1890ff}
|
||||
.ant-pro-sider-menu-sider.light .ant-pro-sider-menu-logo h1{color:#1890ff}
|
||||
.ant-page-header-back-button{color:#1890ff}
|
||||
.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#40a9ff}
|
||||
.ant-page-header-back-button:active{color:#096dd9}
|
||||
.ant-breadcrumb a:hover{color:#40a9ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#1890ff}
|
||||
.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#1890ff;border-color:#1890ff}
|
||||
.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:hover{color:#40a9ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:active{color:#096dd9}
|
||||
.ant-tabs-nav .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-pro-global-header .dark .action.opened,.ant-pro-global-header .dark .action:hover{background:#1890ff}
|
||||
.ant-list-item-meta-title>a:hover{color:#1890ff}
|
||||
.ant-spin{color:#1890ff}
|
||||
.ant-spin-dot-item{background-color:#1890ff}
|
||||
.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#1890ff}
|
||||
.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#1890ff}
|
||||
.ant-pagination-item-active{border-color:#1890ff}
|
||||
.ant-pagination-item-active a{color:#1890ff}
|
||||
.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#40a9ff}
|
||||
.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#40a9ff}
|
||||
.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff}
|
||||
.ant-pagination-next:hover a,.ant-pagination-prev:hover a{border-color:#40a9ff}
|
||||
.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}
|
||||
.ant-pagination-options-quick-jumper input:focus,.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff}
|
||||
.ant-pagination-options-quick-jumper input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}
|
||||
.ant-select-selection:hover{border-color:#40a9ff}
|
||||
.ant-select-focused .ant-select-selection,.ant-select-selection:active,.ant-select-selection:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-open .ant-select-selection{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{color:#1890ff}
|
||||
.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#1890ff}
|
||||
.ant-switch:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-switch-checked{background-color:#1890ff}
|
||||
.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}
|
||||
.ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon .action{color:#1890ff}
|
||||
.ant-pro-setting-drawer-handle{background:#1890ff}
|
||||
.anticon.ant-notification-notice-icon-info{color:#1890ff}
|
||||
.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus,.ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-group-addon .ant-select-focused .ant-select-selection,.ant-input-group-addon .ant-select-open .ant-select-selection{color:#1890ff}
|
||||
.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-result-info .ant-result-icon>.anticon{color:#1890ff}
|
||||
.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}
|
||||
.ant-progress-bg,.ant-progress-success-bg{background-color:#1890ff}
|
||||
.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}
|
||||
.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}
|
||||
.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}
|
||||
.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff}
|
||||
.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#e6f7ff}
|
||||
.ant-time-picker-panel-select li:focus{color:#1890ff}
|
||||
.ant-time-picker-panel-select li:hover{background:#e6f7ff}
|
||||
.ant-time-picker-input:focus,.ant-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-time-picker-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-date:hover{background:#e6f7ff}
|
||||
.ant-calendar-date:active{background:#40a9ff}
|
||||
:not(.ant-calendar-selected-date):not(.ant-calendar-selected-day).ant-calendar-today .ant-calendar-date{color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar-selected-day .ant-calendar-date{background:#bae7ff}
|
||||
.ant-calendar .ant-calendar-ok-btn{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar .ant-calendar-ok-btn:focus,.ant-calendar .ant-calendar-ok-btn:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-calendar .ant-calendar-ok-btn.active,.ant-calendar .ant-calendar-ok-btn:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#1890ff;background:#bae7ff;border-color:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-range .ant-calendar-in-range-cell:before{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:hover{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:focus{color:#1890ff}
|
||||
.ant-calendar-month-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month,.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{background:#1890ff}
|
||||
.ant-calendar-month-panel-month:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-year-panel-year:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{background:#1890ff}
|
||||
.ant-calendar-decade-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-decade-panel-decade:hover{background:#e6f7ff}
|
||||
.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{background:#1890ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr:hover{background:#e6f7ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{background:#bae7ff}
|
||||
.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}
|
||||
.ant-tag-checkable-checked{background-color:#1890ff}
|
||||
.ant-tag-checkable:active{background-color:#096dd9}
|
||||
.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}
|
||||
.ant-tag-blue-inverse{background:#1890ff;border-color:#1890ff}
|
||||
.ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
:not(.ant-steps-item-process).ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{background:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-navigation .ant-steps-item:before{background-color:#1890ff}
|
||||
.ant-badge-status-processing{background-color:#1890ff}
|
||||
.ant-badge-status-processing:after{border:1px solid #1890ff}
|
||||
.ant-badge-status-blue{background:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-filter-selected.anticon{color:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on{color:#1890ff}
|
||||
.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#e6f7ff}
|
||||
.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title:after{color:#1890ff;text-shadow:0 0 2px #bae7ff}
|
||||
.ant-table-filter-dropdown-link{color:#1890ff}
|
||||
.ant-table-filter-dropdown-link:hover{color:#40a9ff}
|
||||
.ant-table-filter-dropdown-link:active{color:#096dd9}
|
||||
.ant-table-row-expand-icon{color:#1890ff}
|
||||
.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#40a9ff}
|
||||
.ant-table-row-expand-icon:active{color:#096dd9}
|
||||
.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-input:focus+.ant-radio-inner{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-checked:after{border:1px solid #1890ff}
|
||||
.ant-radio-inner:after{background-color:#1890ff}
|
||||
.ant-radio-checked .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
.ant-radio-button-wrapper:focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}
|
||||
.ant-checkbox-checked:after{border:1px solid #1890ff}
|
||||
.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#1890ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.is-validating.has-feedback .ant-form-item-children-icon{color:#1890ff}
|
||||
.ant-card-actions>li>span:hover{color:#1890ff}
|
||||
.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#1890ff}
|
||||
.ant-input-number:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}
|
||||
.ant-input-number-focused,.ant-input-number:hover{border-color:#40a9ff}
|
||||
.ant-input-number-focused{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
-504
@@ -1,504 +0,0 @@
|
||||
|
||||
.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.notice-item.unread[data-v-7e99442e]{background:#e6f7ff}
|
||||
.notice-item.unread[data-v-7e99442e]:hover{background:#bae7ff}
|
||||
.notice-footer a[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-footer a[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread,.ant-layout.realdark .header-notice-wrapper .notice-item.unread,body.dark .header-notice-wrapper .notice-item.unread,body.realdark .header-notice-wrapper .notice-item.unread{background:rgba(24,144,255,.15)}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread:hover,.ant-layout.realdark .header-notice-wrapper .notice-item.unread:hover,body.dark .header-notice-wrapper .notice-item.unread:hover,body.realdark .header-notice-wrapper .notice-item.unread:hover{background:rgba(24,144,255,.25)}
|
||||
.ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
.setting-drawer-index-content .setting-drawer-index-blockChecbox .setting-drawer-index-item .setting-drawer-index-selectIcon[data-v-940007f2]{color:#1890ff}
|
||||
:global .ant-layout.dark .ant-layout-header .anticon:hover,:global .ant-layout.realdark .ant-layout-header .anticon:hover,:global .ant-pro-layout.dark .ant-layout-header .anticon:hover,:global .ant-pro-layout.realdark .ant-layout-header .anticon:hover,:global body.dark .ant-layout-header .anticon:hover,:global body.realdark .ant-layout-header .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-layout.dark .ant-layout-header a:hover,:global .ant-layout.realdark .ant-layout-header a:hover,:global .ant-pro-layout.dark .ant-layout-header a:hover,:global .ant-pro-layout.realdark .ant-layout-header a:hover,:global body.dark .ant-layout-header a:hover,:global body.realdark .ant-layout-header a:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-content .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,:global .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
:global a:hover{color:#1890ff!important}
|
||||
:global .anticon:hover{color:#1890ff!important}
|
||||
:global(.ant-pro-layout).dark :global(.ant-menu-dark .ant-menu-item-selected),:global(.ant-pro-layout).realdark :global(.ant-menu-dark .ant-menu-item-selected){background:rgba(24,144,255,.25)!important}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-global-header-index-action:hover{background:#1890ff}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-drop-down:hover{color:#1890ff}
|
||||
.ant-pro-global-header-index-right .ant-pro-account-avatar .antd-pro-global-header-index-avatar{color:#1890ff}
|
||||
:global .ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,:global .ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff!important}
|
||||
:global body.dark .ant-menu-dark .ant-menu-item-selected,:global body.realdark .ant-menu-dark .ant-menu-item-selected{background:rgba(24,144,255,.25)!important}
|
||||
a{color:#1890ff}
|
||||
a:hover{color:#40a9ff}
|
||||
a:active{color:#096dd9}
|
||||
::-moz-selection{background:#1890ff}
|
||||
::selection{background:#1890ff}
|
||||
html{--antd-wave-shadow-color:#1890ff}
|
||||
.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{-webkit-box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 #1890ff}
|
||||
#nprogress .bar{background:#1890ff}
|
||||
#nprogress .peg{-webkit-box-shadow:0 0 10px #1890ff,0 0 5px #1890ff;box-shadow:0 0 10px #1890ff,0 0 5px #1890ff}
|
||||
#nprogress .spinner-icon{border-top-color:#1890ff;border-left-color:#1890ff}
|
||||
body.dark .ant-pagination-item-active,body.realdark .ant-pagination-item-active{border-color:#1890ff!important}
|
||||
body.dark .ant-btn-default:hover,body.realdark .ant-btn-default:hover{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .ant-tabs-tab-active,body.realdark .ant-tabs-tab-active{color:#1890ff!important}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.realdark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1)!important;color:#1890ff!important}
|
||||
.qt-header .qt-header-left .qt-icon[data-v-0d547552]{color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-slider-track{background:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .probability-comparison .prob-item .prob-value.ai-prob[data-v-67e891d2]{color:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .recommendation-section .rec-card .rec-value[data-v-67e891d2]{color:#1890ff}
|
||||
.code-section .section-header .section-title[data-v-4fea1865]:before{background:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link{color:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link:hover{color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:hover{border-color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:focus-within{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05);box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05)}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-cursor{border-left:2px solid #1890ff}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-selected{background:#e6f7ff}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn:not(.ant-btn-primary):hover{border-color:#40a9ff;color:#40a9ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary{-webkit-box-shadow:0 2px 4px rgba(24,144,255,.3);box-shadow:0 2px 4px rgba(24,144,255,.3)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary:hover{-webkit-box-shadow:0 4px 12px rgba(24,144,255,.4);box-shadow:0 4px 12px rgba(24,144,255,.4)}
|
||||
.drawing-tool-btn[data-v-58f93984]:hover{color:#1890ff}
|
||||
.drawing-tool-btn.active[data-v-58f93984]{background:#e6f7ff;color:#1890ff;border:1px solid #1890ff}
|
||||
.indicator-btn[data-v-58f93984]:hover{color:#1890ff;border-color:#1890ff}
|
||||
.indicator-btn.active[data-v-58f93984]{color:#1890ff;border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.1);box-shadow:0 0 0 2px rgba(24,144,255,.1)}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.timeframe-item[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.timeframe-item.active[data-v-95a351b2]{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,.panel-header .theme-toggle-btn[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn.active[data-v-95a351b2],.panel-header .theme-toggle-btn.active[data-v-95a351b2]{color:#1890ff;background:#e6f7ff}
|
||||
.indicator-card[data-v-95a351b2]:hover{border-color:#1890ff}
|
||||
.indicator-card.active[data-v-95a351b2]{background:#e6f7ff;border-color:#1890ff}
|
||||
.indicator-card.active .card-name[data-v-95a351b2]{color:#1890ff}
|
||||
.card-action[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon.expiry-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.dark-dropdown .ant-select-dropdown-menu-item-active{background-color:#e6f7ff;color:#1890ff}
|
||||
.qt-header-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.qt-header-btn[data-v-95a351b2]:focus,.qt-header-btn[data-v-95a351b2]:hover{background:linear-gradient(135deg,#40a9ff,#9254de);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.45);box-shadow:0 4px 12px rgba(24,144,255,.45)}
|
||||
.qt-floating-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.4);box-shadow:0 4px 16px rgba(24,144,255,.4)}
|
||||
.qt-floating-btn[data-v-95a351b2]:hover{-webkit-box-shadow:0 6px 24px rgba(24,144,255,.55);box-shadow:0 6px 24px rgba(24,144,255,.55)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-selection:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection,body.dark,body.realdark{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.3);box-shadow:0 0 0 2px rgba(24,144,255,.3)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item.active[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card[data-v-95a351b2]:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active .card-name[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.comment-list .comment-form .form-header .edit-label[data-v-4973cae6]{color:#1890ff}
|
||||
.comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.02)}
|
||||
[data-theme=dark] .comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.05)}
|
||||
.indicator-community-container .market-header .header-left .page-title .anticon[data-v-f59e48f0]{color:#1890ff}
|
||||
.indicator-community-container.theme-dark .admin-tabs[data-v-f59e48f0] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-btn-link{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-modal-content .ant-list-item-meta-title a{color:#40a9ff}
|
||||
.page-header .page-title .title-icon[data-v-24a3e98e]{-webkit-text-fill-color:#1890ff}
|
||||
.running-overlay .running-text[data-v-24a3e98e]{color:#1890ff}
|
||||
.chart-bars .bar[data-v-24a3e98e]{background:#1890ff}
|
||||
.add-item-active[data-v-24a3e98e]{background:#e6f7ff!important}
|
||||
.theme-dark .page-header .page-title .title-icon[data-v-24a3e98e]{-webkit-text-fill-color:#40a9ff}
|
||||
.theme-dark .main-tabs[data-v-24a3e98e] .ant-tabs-ink-bar{background:#1890ff}
|
||||
.theme-dark[data-v-24a3e98e] .ant-select .ant-select-selection:hover{border-color:#1890ff}
|
||||
.theme-dark[data-v-24a3e98e] .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.theme-dark[data-v-24a3e98e] .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-tag[color=blue]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#1890ff;border:1px solid rgba(24,144,255,.3)}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover a{color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item.ant-pagination-item-active{background:linear-gradient(135deg,#1890ff,#40a9ff);border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-next .ant-pagination-item-link:hover,.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-prev .ant-pagination-item-link:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover,body.dark .trading-records[data-v] .ant-pagination-item:hover,body.realdark .trading-records[data-v] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover a,body.dark .trading-records[data-v] .ant-pagination-item:hover a,body.realdark .trading-records[data-v] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item-active,body.dark .trading-records[data-v] .ant-pagination-item-active,body.realdark .trading-records[data-v] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.mode-card[data-v-2344f311]:hover{border-color:#1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.12);box-shadow:0 4px 16px rgba(24,144,255,.12)}
|
||||
.mode-card.selected[data-v-2344f311]{border-color:#1890ff;background:rgba(24,144,255,.02)}
|
||||
.mode-card.selected[data-v-2344f311]:after{color:#1890ff}
|
||||
.card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,#e6f7ff,#bae7ff);color:#1890ff}
|
||||
.template-tag[data-v-2344f311]:hover{color:#1890ff;border-color:#1890ff;background:#e6f7ff}
|
||||
.theme-dark .mode-card.selected[data-v-2344f311]:after{color:#40a9ff}
|
||||
.theme-dark .card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]{border-color:rgba(24,144,255,.4);color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .template-tag[data-v-2344f311]:hover{color:#40a9ff}
|
||||
.template-item[data-v-767abf73]:hover{border-color:#1890ff}
|
||||
.ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#1890ff}
|
||||
.ai-panel .ai-status[data-v-767abf73]{color:#1890ff}
|
||||
.docs-panel .docs-content[data-v-767abf73] h5{color:#1890ff}
|
||||
.theme-dark .side-tabs[data-v-767abf73] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .ai-panel[data-v-767abf73] textarea.ant-input:focus{border-color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-status[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .docs-panel .docs-content[data-v-767abf73] h5{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-70b18ab4]{background:linear-gradient(135deg,#1890ff,#40a9ff);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.35);box-shadow:0 4px 12px rgba(24,144,255,.35)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-70b18ab4]:hover{-webkit-box-shadow:0 6px 16px rgba(24,144,255,.45);box-shadow:0 6px 16px rgba(24,144,255,.45)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-header .group-header-left .group-icon[data-v-70b18ab4]{color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item[data-v-70b18ab4]:hover{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item.active[data-v-70b18ab4]{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item[data-v-70b18ab4]:hover{border-color:rgba(24,144,255,.2);-webkit-box-shadow:0 2px 12px rgba(24,144,255,.1);box-shadow:0 2px 12px rgba(24,144,255,.1)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item.active[data-v-70b18ab4]{border-color:#1890ff;border-left:4px solid #1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.15);box-shadow:0 4px 16px rgba(24,144,255,.15)}
|
||||
.trading-assistant .strategy-detail-col .empty-detail[data-v-70b18ab4]:hover{border-color:#1890ff;background:linear-gradient(135deg,rgba(24,144,255,.02),rgba(24,144,255,.05))}
|
||||
.trading-assistant .strategy-detail-col .strategy-detail-panel .strategy-header-card .strategy-header .header-left .strategy-tags .tag-item .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
.trading-assistant.theme-dark .creation-mode-toggle[data-v-70b18ab4]{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item[data-v-70b18ab4]:hover{background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(24,144,255,.04));border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item.active[data-v-70b18ab4]{background:linear-gradient(135deg,rgba(24,144,255,.12),rgba(24,144,255,.06));border-color:#1890ff;-webkit-box-shadow:0 4px 20px rgba(24,144,255,.2);box-shadow:0 4px 20px rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-header-card .strategy-tags .tag-item[data-v-70b18ab4]:hover{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-70b18ab4] .ant-tabs .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-70b18ab4] .ant-tabs .ant-tabs-nav .ant-tabs-ink-bar{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#40a9ff));background:linear-gradient(90deg,#1890ff,#40a9ff)}
|
||||
.ai-filter-title .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
.creation-mode-toggle[data-v-70b18ab4]{background:rgba(24,144,255,.04);border:1px solid rgba(24,144,255,.12)}
|
||||
.strategy-type-selector .strategy-type-card[data-v-70b18ab4]:hover{border-color:#1890ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.strategy-type-selector .strategy-type-card.selected[data-v-70b18ab4]{border-color:#1890ff;background-color:#e6f7ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.strategy-type-selector .strategy-type-card .strategy-type-content .strategy-type-icon[data-v-70b18ab4]{color:#1890ff}
|
||||
.ip-whitelist-tip[data-v-70b18ab4]{background-color:#e6f7ff;border:1px solid #91d5ff;color:#1890ff}
|
||||
.ip-whitelist-tip .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-modal-content .creation-mode-toggle{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
body.dark .ant-modal-wrap .ant-steps .ant-steps-item-finish .ant-steps-item-icon,body.dark .ant-modal-wrap .ant-steps .ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number:focus,body.dark .ant-modal-wrap .ant-input-number:hover,body.dark .ant-modal-wrap .ant-input:focus,body.dark .ant-modal-wrap .ant-input:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number-handler-wrap .ant-input-number-handler:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-select .ant-select-selection:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-switch.ant-switch-checked{background:#1890ff}
|
||||
body.dark .ant-modal-wrap .ip-whitelist-tip{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2);color:#40a9ff}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-active,body.dark .ant-select-dropdown .ant-select-dropdown-menu-item:hover{background:rgba(24,144,255,.1)}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.15);color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-alert{background:rgba(24,144,255,.06);border-color:rgba(24,144,255,.2)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .loading-header .loading-icon-pro[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card[data-v-03feb1fa]:after{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 3%,transparent)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card.fundamental[data-v-03feb1fa]:before{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card .analysis-card-header.fundamental .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .loading-icon-pro[data-v-03feb1fa],.fast-analysis-report.theme-dark .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 5%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .feedback-section .ant-btn[data-v-03feb1fa]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 30%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.left-panel .calendar-box .box-header .box-title .anticon[data-v-22f26594]{color:var(--primary-color,#1890ff)}
|
||||
.right-panel .analysis-toolbar .analyze-button[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card-hover-actions .wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent) 30%)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-badge[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);-webkit-box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat-icon[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark .right-panel .analysis-toolbar .history-button[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 45%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .hero-cta .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark .panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.ai-analysis-container.theme-dark .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff)!important;color:var(--primary-color,#1890ff)!important}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.hero-bg-circle.c1[data-v-22f26594]{background:radial-gradient(circle,rgba(24,144,255,.1) 0,transparent 70%)}
|
||||
.hero-bg-grid[data-v-22f26594]{background-image:linear-gradient(rgba(24,144,255,.03) 1px,transparent 0),linear-gradient(90deg,rgba(24,144,255,.03) 1px,transparent 0)}
|
||||
.hero-badge[data-v-22f26594]{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08);border:1px solid rgba(24,144,255,.2)}
|
||||
.hstat[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.1);box-shadow:0 4px 16px rgba(24,144,255,.1)}
|
||||
.hstat-icon[data-v-22f26594]{background:linear-gradient(135deg,rgba(24,144,255,.1),rgba(114,46,209,.08));color:var(--primary-color,#1890ff)}
|
||||
.hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px rgba(24,144,255,.3);box-shadow:0 4px 14px rgba(24,144,255,.3)}
|
||||
.panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.batch-bar .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent);box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent)}
|
||||
.wl-card.active[data-v-22f26594]{background:linear-gradient(135deg,color-mix(in srgb,var(--primary-color,#1890ff) 6%,#fff) 0,color-mix(in srgb,var(--primary-color,#1890ff) 4%,#fff) 100%);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent);-webkit-box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:-webkit-gradient(linear,left top,right top,from(transparent),color-stop(30%,#e6f7ff));background:linear-gradient(90deg,transparent,#e6f7ff 30%)}
|
||||
.wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:#e6f7ff}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]:hover{-webkit-box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent)}
|
||||
.qd-dark-modal .ant-modal-footer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.qd-dark-modal .ant-tag-blue{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-modal .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.qd-dark-modal .ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.qd-dark-modal .batch-symbols-preview .ant-tag{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-primary{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-default:hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.colorWeak .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1);color:#1890ff}
|
||||
.summary-card .card-icon.sync.syncing[data-v-398d904c]{color:#1890ff}
|
||||
.monitor-card .monitor-body .scope-selected[data-v-398d904c]{color:#1890ff;border-bottom:1px dashed #1890ff}
|
||||
.alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff)}
|
||||
.alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#1890ff}
|
||||
.position-checkbox-group .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.05)}
|
||||
.theme-dark .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.1)}
|
||||
.theme-dark .alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(114,46,209,.1))}
|
||||
.theme-dark .alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#40a9ff}
|
||||
.user-manage-page .page-header .page-title .anticon[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page .address-text[data-v-0b8bb4d8],.user-manage-page .hash-text[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page.theme-dark .manage-tabs[data-v-0b8bb4d8] .ant-tabs-tab-active{color:#1890ff}
|
||||
.user-manage-page .current-credits-info .value[data-v-0b8bb4d8],.user-manage-page .current-vip-info .value[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.profile-page .page-header .page-title .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page .profile-card .profile-info .info-item .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-tabs-tab-active{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:hover,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-table-wrapper .ant-tag-blue{background:rgba(24,144,255,.25);border-color:#1890ff;color:#69c0ff}
|
||||
.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item-active{background:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-btn.ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.billing-page .plan-card.highlight[data-v-714c882a]{border:1px solid rgba(24,144,255,.35)}
|
||||
.usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,.usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.08);color:#1890ff}
|
||||
body.dark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.dark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.15);color:#40a9ff}
|
||||
.settings-page .settings-header .page-title .anticon[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .openrouter-balance-card .ant-card[data-v-15e1ba02]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff);border:1px solid #91d5ff}
|
||||
.settings-page .openrouter-balance-card .balance-header .balance-title[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .ant-collapse-arrow{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .panel-header .panel-icon-left{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .help-icon:hover{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{color:#1890ff;background:rgba(24,144,255,.08)}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.25)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.turnstile-container .turnstile-error a[data-v-20437450]{color:#1890ff}
|
||||
.main .login-method-switch a[data-v-de9678f6]:hover{color:#1890ff}
|
||||
.main .login-method-switch a.active[data-v-de9678f6]{color:#1890ff;border-bottom-color:#1890ff}
|
||||
.main .code-login-hint .anticon[data-v-de9678f6]{color:#1890ff}
|
||||
.main .auth-links a[data-v-de9678f6]{color:#1890ff}
|
||||
.main .legal-wrap .legal-toggle[data-v-de9678f6]{color:#1890ff}
|
||||
.ant-dropdown-menu-item-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-submenu-title-selected>a{color:#1890ff;background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}
|
||||
.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{background:#1890ff}
|
||||
.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger){color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger){color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-primary{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-primary:focus,.ant-btn-primary:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-primary.active,.ant-btn-primary:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}
|
||||
.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-ghost.active,.ant-btn-ghost:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-dashed.active,.ant-btn-dashed:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-link.active,.ant-btn-link:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary.active,.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-link:hover{color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-link.active,.ant-btn-background-ghost.ant-btn-link:active{color:#096dd9}
|
||||
.ant-menu-submenu-selected{color:#1890ff}
|
||||
.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}
|
||||
.ant-menu-item>a:hover{color:#1890ff}
|
||||
.ant-menu-item>.ant-badge>a:hover{color:#1890ff}
|
||||
.ant-menu-item-active,.ant-menu-item:hover,.ant-menu-submenu-active,.ant-menu-submenu-title:hover,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}
|
||||
.ant-menu-item-selected,.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#1890ff}
|
||||
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}
|
||||
.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#1890ff));background:linear-gradient(90deg,#1890ff,#1890ff)}
|
||||
.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected>a,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected>a{color:#1890ff}
|
||||
.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover{color:#1890ff;border-bottom:2px solid #1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover{color:#1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a{color:#1890ff}
|
||||
.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after{border-right:3px solid #1890ff}
|
||||
.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}
|
||||
.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}
|
||||
.ant-pro-basicLayout .trigger:hover{color:#1890ff}
|
||||
.ant-pro-sider-menu-sider.light .ant-pro-sider-menu-logo h1{color:#1890ff}
|
||||
.ant-page-header-back-button{color:#1890ff}
|
||||
.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#40a9ff}
|
||||
.ant-page-header-back-button:active{color:#096dd9}
|
||||
.ant-breadcrumb a:hover{color:#40a9ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#1890ff}
|
||||
.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#1890ff;border-color:#1890ff}
|
||||
.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:hover{color:#40a9ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:active{color:#096dd9}
|
||||
.ant-tabs-nav .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-pro-global-header .dark .action.opened,.ant-pro-global-header .dark .action:hover{background:#1890ff}
|
||||
.ant-list-item-meta-title>a:hover{color:#1890ff}
|
||||
.ant-spin{color:#1890ff}
|
||||
.ant-spin-dot-item{background-color:#1890ff}
|
||||
.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#1890ff}
|
||||
.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#1890ff}
|
||||
.ant-pagination-item-active{border-color:#1890ff}
|
||||
.ant-pagination-item-active a{color:#1890ff}
|
||||
.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#40a9ff}
|
||||
.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#40a9ff}
|
||||
.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff}
|
||||
.ant-pagination-next:hover a,.ant-pagination-prev:hover a{border-color:#40a9ff}
|
||||
.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}
|
||||
.ant-pagination-options-quick-jumper input:focus,.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff}
|
||||
.ant-pagination-options-quick-jumper input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}
|
||||
.ant-select-selection:hover{border-color:#40a9ff}
|
||||
.ant-select-focused .ant-select-selection,.ant-select-selection:active,.ant-select-selection:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-open .ant-select-selection{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{color:#1890ff}
|
||||
.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#1890ff}
|
||||
.ant-switch:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-switch-checked{background-color:#1890ff}
|
||||
.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}
|
||||
.ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon .action{color:#1890ff}
|
||||
.ant-pro-setting-drawer-handle{background:#1890ff}
|
||||
.anticon.ant-notification-notice-icon-info{color:#1890ff}
|
||||
.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus,.ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-group-addon .ant-select-focused .ant-select-selection,.ant-input-group-addon .ant-select-open .ant-select-selection{color:#1890ff}
|
||||
.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-result-info .ant-result-icon>.anticon{color:#1890ff}
|
||||
.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}
|
||||
.ant-progress-bg,.ant-progress-success-bg{background-color:#1890ff}
|
||||
.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}
|
||||
.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}
|
||||
.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}
|
||||
.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff}
|
||||
.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#e6f7ff}
|
||||
.ant-time-picker-panel-select li:focus{color:#1890ff}
|
||||
.ant-time-picker-panel-select li:hover{background:#e6f7ff}
|
||||
.ant-time-picker-input:focus,.ant-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-time-picker-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-date:hover{background:#e6f7ff}
|
||||
.ant-calendar-date:active{background:#40a9ff}
|
||||
:not(.ant-calendar-selected-date):not(.ant-calendar-selected-day).ant-calendar-today .ant-calendar-date{color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar-selected-day .ant-calendar-date{background:#bae7ff}
|
||||
.ant-calendar .ant-calendar-ok-btn{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar .ant-calendar-ok-btn:focus,.ant-calendar .ant-calendar-ok-btn:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-calendar .ant-calendar-ok-btn.active,.ant-calendar .ant-calendar-ok-btn:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#1890ff;background:#bae7ff;border-color:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-range .ant-calendar-in-range-cell:before{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:hover{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:focus{color:#1890ff}
|
||||
.ant-calendar-month-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month,.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{background:#1890ff}
|
||||
.ant-calendar-month-panel-month:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-year-panel-year:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{background:#1890ff}
|
||||
.ant-calendar-decade-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-decade-panel-decade:hover{background:#e6f7ff}
|
||||
.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{background:#1890ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr:hover{background:#e6f7ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{background:#bae7ff}
|
||||
.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}
|
||||
.ant-tag-checkable-checked{background-color:#1890ff}
|
||||
.ant-tag-checkable:active{background-color:#096dd9}
|
||||
.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}
|
||||
.ant-tag-blue-inverse{background:#1890ff;border-color:#1890ff}
|
||||
.ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
:not(.ant-steps-item-process).ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{background:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-navigation .ant-steps-item:before{background-color:#1890ff}
|
||||
.ant-badge-status-processing{background-color:#1890ff}
|
||||
.ant-badge-status-processing:after{border:1px solid #1890ff}
|
||||
.ant-badge-status-blue{background:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-filter-selected.anticon{color:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on{color:#1890ff}
|
||||
.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#e6f7ff}
|
||||
.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title:after{color:#1890ff;text-shadow:0 0 2px #bae7ff}
|
||||
.ant-table-filter-dropdown-link{color:#1890ff}
|
||||
.ant-table-filter-dropdown-link:hover{color:#40a9ff}
|
||||
.ant-table-filter-dropdown-link:active{color:#096dd9}
|
||||
.ant-table-row-expand-icon{color:#1890ff}
|
||||
.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#40a9ff}
|
||||
.ant-table-row-expand-icon:active{color:#096dd9}
|
||||
.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-input:focus+.ant-radio-inner{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-checked:after{border:1px solid #1890ff}
|
||||
.ant-radio-inner:after{background-color:#1890ff}
|
||||
.ant-radio-checked .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
.ant-radio-button-wrapper:focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}
|
||||
.ant-checkbox-checked:after{border:1px solid #1890ff}
|
||||
.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#1890ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.is-validating.has-feedback .ant-form-item-children-icon{color:#1890ff}
|
||||
.ant-card-actions>li>span:hover{color:#1890ff}
|
||||
.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#1890ff}
|
||||
.ant-input-number:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}
|
||||
.ant-input-number-focused,.ant-input-number:hover{border-color:#40a9ff}
|
||||
.ant-input-number-focused{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
-503
@@ -1,503 +0,0 @@
|
||||
|
||||
.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.notice-item.unread[data-v-7e99442e]{background:#e6f7ff}
|
||||
.notice-item.unread[data-v-7e99442e]:hover{background:#bae7ff}
|
||||
.notice-footer a[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-footer a[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread,.ant-layout.realdark .header-notice-wrapper .notice-item.unread,body.dark .header-notice-wrapper .notice-item.unread,body.realdark .header-notice-wrapper .notice-item.unread{background:rgba(24,144,255,.15)}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread:hover,.ant-layout.realdark .header-notice-wrapper .notice-item.unread:hover,body.dark .header-notice-wrapper .notice-item.unread:hover,body.realdark .header-notice-wrapper .notice-item.unread:hover{background:rgba(24,144,255,.25)}
|
||||
.ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
.setting-drawer-index-content .setting-drawer-index-blockChecbox .setting-drawer-index-item .setting-drawer-index-selectIcon[data-v-940007f2]{color:#1890ff}
|
||||
:global .ant-layout.dark .ant-layout-header .anticon:hover,:global .ant-layout.realdark .ant-layout-header .anticon:hover,:global .ant-pro-layout.dark .ant-layout-header .anticon:hover,:global .ant-pro-layout.realdark .ant-layout-header .anticon:hover,:global body.dark .ant-layout-header .anticon:hover,:global body.realdark .ant-layout-header .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-layout.dark .ant-layout-header a:hover,:global .ant-layout.realdark .ant-layout-header a:hover,:global .ant-pro-layout.dark .ant-layout-header a:hover,:global .ant-pro-layout.realdark .ant-layout-header a:hover,:global body.dark .ant-layout-header a:hover,:global body.realdark .ant-layout-header a:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-content .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,:global .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
:global a:hover{color:#1890ff!important}
|
||||
:global .anticon:hover{color:#1890ff!important}
|
||||
:global(.ant-pro-layout).dark :global(.ant-menu-dark .ant-menu-item-selected),:global(.ant-pro-layout).realdark :global(.ant-menu-dark .ant-menu-item-selected){background:rgba(24,144,255,.25)!important}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-global-header-index-action:hover{background:#1890ff}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-drop-down:hover{color:#1890ff}
|
||||
.ant-pro-global-header-index-right .ant-pro-account-avatar .antd-pro-global-header-index-avatar{color:#1890ff}
|
||||
:global .ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,:global .ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff!important}
|
||||
:global body.dark .ant-menu-dark .ant-menu-item-selected,:global body.realdark .ant-menu-dark .ant-menu-item-selected{background:rgba(24,144,255,.25)!important}
|
||||
a{color:#1890ff}
|
||||
a:hover{color:#40a9ff}
|
||||
a:active{color:#096dd9}
|
||||
::-moz-selection{background:#1890ff}
|
||||
::selection{background:#1890ff}
|
||||
html{--antd-wave-shadow-color:#1890ff}
|
||||
.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{-webkit-box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 #1890ff}
|
||||
#nprogress .bar{background:#1890ff}
|
||||
#nprogress .peg{-webkit-box-shadow:0 0 10px #1890ff,0 0 5px #1890ff;box-shadow:0 0 10px #1890ff,0 0 5px #1890ff}
|
||||
#nprogress .spinner-icon{border-top-color:#1890ff;border-left-color:#1890ff}
|
||||
body.dark .ant-pagination-item-active,body.realdark .ant-pagination-item-active{border-color:#1890ff!important}
|
||||
body.dark .ant-btn-default:hover,body.realdark .ant-btn-default:hover{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .ant-tabs-tab-active,body.realdark .ant-tabs-tab-active{color:#1890ff!important}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.realdark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1)!important;color:#1890ff!important}
|
||||
.qt-header .qt-header-left .qt-icon[data-v-0d547552]{color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-slider-track{background:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .probability-comparison .prob-item .prob-value.ai-prob[data-v-67e891d2]{color:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .recommendation-section .rec-card .rec-value[data-v-67e891d2]{color:#1890ff}
|
||||
.code-section .section-header .section-title[data-v-4fea1865]:before{background:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link{color:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link:hover{color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:hover{border-color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:focus-within{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05);box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05)}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-cursor{border-left:2px solid #1890ff}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-selected{background:#e6f7ff}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn:not(.ant-btn-primary):hover{border-color:#40a9ff;color:#40a9ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary{-webkit-box-shadow:0 2px 4px rgba(24,144,255,.3);box-shadow:0 2px 4px rgba(24,144,255,.3)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary:hover{-webkit-box-shadow:0 4px 12px rgba(24,144,255,.4);box-shadow:0 4px 12px rgba(24,144,255,.4)}
|
||||
.drawing-tool-btn[data-v-58f93984]:hover{color:#1890ff}
|
||||
.drawing-tool-btn.active[data-v-58f93984]{background:#e6f7ff;color:#1890ff;border:1px solid #1890ff}
|
||||
.indicator-btn[data-v-58f93984]:hover{color:#1890ff;border-color:#1890ff}
|
||||
.indicator-btn.active[data-v-58f93984]{color:#1890ff;border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.1);box-shadow:0 0 0 2px rgba(24,144,255,.1)}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.timeframe-item[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.timeframe-item.active[data-v-95a351b2]{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,.panel-header .theme-toggle-btn[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn.active[data-v-95a351b2],.panel-header .theme-toggle-btn.active[data-v-95a351b2]{color:#1890ff;background:#e6f7ff}
|
||||
.indicator-card[data-v-95a351b2]:hover{border-color:#1890ff}
|
||||
.indicator-card.active[data-v-95a351b2]{background:#e6f7ff;border-color:#1890ff}
|
||||
.indicator-card.active .card-name[data-v-95a351b2]{color:#1890ff}
|
||||
.card-action[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon.expiry-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.dark-dropdown .ant-select-dropdown-menu-item-active{background-color:#e6f7ff;color:#1890ff}
|
||||
.qt-header-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.qt-header-btn[data-v-95a351b2]:focus,.qt-header-btn[data-v-95a351b2]:hover{background:linear-gradient(135deg,#40a9ff,#9254de);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.45);box-shadow:0 4px 12px rgba(24,144,255,.45)}
|
||||
.qt-floating-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.4);box-shadow:0 4px 16px rgba(24,144,255,.4)}
|
||||
.qt-floating-btn[data-v-95a351b2]:hover{-webkit-box-shadow:0 6px 24px rgba(24,144,255,.55);box-shadow:0 6px 24px rgba(24,144,255,.55)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-selection:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection,body.dark,body.realdark{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.3);box-shadow:0 0 0 2px rgba(24,144,255,.3)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item.active[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card[data-v-95a351b2]:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active .card-name[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.comment-list .comment-form .form-header .edit-label[data-v-4973cae6]{color:#1890ff}
|
||||
.comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.02)}
|
||||
[data-theme=dark] .comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.05)}
|
||||
.indicator-community-container .market-header .header-left .page-title .anticon[data-v-f59e48f0]{color:#1890ff}
|
||||
.indicator-community-container.theme-dark .admin-tabs[data-v-f59e48f0] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-btn-link{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-modal-content .ant-list-item-meta-title a{color:#40a9ff}
|
||||
.page-header .page-title .title-icon[data-v-b6096830]{-webkit-text-fill-color:#1890ff}
|
||||
.running-overlay .running-text[data-v-b6096830]{color:#1890ff}
|
||||
.chart-bars .bar[data-v-b6096830]{background:#1890ff}
|
||||
.theme-dark .page-header .page-title .title-icon[data-v-b6096830]{-webkit-text-fill-color:#40a9ff}
|
||||
.theme-dark .main-tabs[data-v-b6096830] .ant-tabs-ink-bar{background:#1890ff}
|
||||
.theme-dark[data-v-b6096830] .ant-select .ant-select-selection:hover{border-color:#1890ff}
|
||||
.theme-dark[data-v-b6096830] .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.theme-dark[data-v-b6096830] .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-tag[color=blue]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#1890ff;border:1px solid rgba(24,144,255,.3)}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover a{color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item.ant-pagination-item-active{background:linear-gradient(135deg,#1890ff,#40a9ff);border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-next .ant-pagination-item-link:hover,.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-prev .ant-pagination-item-link:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover,body.dark .trading-records[data-v] .ant-pagination-item:hover,body.realdark .trading-records[data-v] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover a,body.dark .trading-records[data-v] .ant-pagination-item:hover a,body.realdark .trading-records[data-v] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item-active,body.dark .trading-records[data-v] .ant-pagination-item-active,body.realdark .trading-records[data-v] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.mode-card[data-v-2344f311]:hover{border-color:#1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.12);box-shadow:0 4px 16px rgba(24,144,255,.12)}
|
||||
.mode-card.selected[data-v-2344f311]{border-color:#1890ff;background:rgba(24,144,255,.02)}
|
||||
.mode-card.selected[data-v-2344f311]:after{color:#1890ff}
|
||||
.card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,#e6f7ff,#bae7ff);color:#1890ff}
|
||||
.template-tag[data-v-2344f311]:hover{color:#1890ff;border-color:#1890ff;background:#e6f7ff}
|
||||
.theme-dark .mode-card.selected[data-v-2344f311]:after{color:#40a9ff}
|
||||
.theme-dark .card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]{border-color:rgba(24,144,255,.4);color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .template-tag[data-v-2344f311]:hover{color:#40a9ff}
|
||||
.template-item[data-v-767abf73]:hover{border-color:#1890ff}
|
||||
.ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#1890ff}
|
||||
.ai-panel .ai-status[data-v-767abf73]{color:#1890ff}
|
||||
.docs-panel .docs-content[data-v-767abf73] h5{color:#1890ff}
|
||||
.theme-dark .side-tabs[data-v-767abf73] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .ai-panel[data-v-767abf73] textarea.ant-input:focus{border-color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-status[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .docs-panel .docs-content[data-v-767abf73] h5{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-70b18ab4]{background:linear-gradient(135deg,#1890ff,#40a9ff);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.35);box-shadow:0 4px 12px rgba(24,144,255,.35)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-70b18ab4]:hover{-webkit-box-shadow:0 6px 16px rgba(24,144,255,.45);box-shadow:0 6px 16px rgba(24,144,255,.45)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-header .group-header-left .group-icon[data-v-70b18ab4]{color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item[data-v-70b18ab4]:hover{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item.active[data-v-70b18ab4]{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item[data-v-70b18ab4]:hover{border-color:rgba(24,144,255,.2);-webkit-box-shadow:0 2px 12px rgba(24,144,255,.1);box-shadow:0 2px 12px rgba(24,144,255,.1)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item.active[data-v-70b18ab4]{border-color:#1890ff;border-left:4px solid #1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.15);box-shadow:0 4px 16px rgba(24,144,255,.15)}
|
||||
.trading-assistant .strategy-detail-col .empty-detail[data-v-70b18ab4]:hover{border-color:#1890ff;background:linear-gradient(135deg,rgba(24,144,255,.02),rgba(24,144,255,.05))}
|
||||
.trading-assistant .strategy-detail-col .strategy-detail-panel .strategy-header-card .strategy-header .header-left .strategy-tags .tag-item .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
.trading-assistant.theme-dark .creation-mode-toggle[data-v-70b18ab4]{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item[data-v-70b18ab4]:hover{background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(24,144,255,.04));border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item.active[data-v-70b18ab4]{background:linear-gradient(135deg,rgba(24,144,255,.12),rgba(24,144,255,.06));border-color:#1890ff;-webkit-box-shadow:0 4px 20px rgba(24,144,255,.2);box-shadow:0 4px 20px rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-header-card .strategy-tags .tag-item[data-v-70b18ab4]:hover{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-70b18ab4] .ant-tabs .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-70b18ab4] .ant-tabs .ant-tabs-nav .ant-tabs-ink-bar{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#40a9ff));background:linear-gradient(90deg,#1890ff,#40a9ff)}
|
||||
.ai-filter-title .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
.creation-mode-toggle[data-v-70b18ab4]{background:rgba(24,144,255,.04);border:1px solid rgba(24,144,255,.12)}
|
||||
.strategy-type-selector .strategy-type-card[data-v-70b18ab4]:hover{border-color:#1890ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.strategy-type-selector .strategy-type-card.selected[data-v-70b18ab4]{border-color:#1890ff;background-color:#e6f7ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.strategy-type-selector .strategy-type-card .strategy-type-content .strategy-type-icon[data-v-70b18ab4]{color:#1890ff}
|
||||
.ip-whitelist-tip[data-v-70b18ab4]{background-color:#e6f7ff;border:1px solid #91d5ff;color:#1890ff}
|
||||
.ip-whitelist-tip .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-modal-content .creation-mode-toggle{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
body.dark .ant-modal-wrap .ant-steps .ant-steps-item-finish .ant-steps-item-icon,body.dark .ant-modal-wrap .ant-steps .ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number:focus,body.dark .ant-modal-wrap .ant-input-number:hover,body.dark .ant-modal-wrap .ant-input:focus,body.dark .ant-modal-wrap .ant-input:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number-handler-wrap .ant-input-number-handler:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-select .ant-select-selection:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-switch.ant-switch-checked{background:#1890ff}
|
||||
body.dark .ant-modal-wrap .ip-whitelist-tip{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2);color:#40a9ff}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-active,body.dark .ant-select-dropdown .ant-select-dropdown-menu-item:hover{background:rgba(24,144,255,.1)}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.15);color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-alert{background:rgba(24,144,255,.06);border-color:rgba(24,144,255,.2)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .loading-header .loading-icon-pro[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card[data-v-03feb1fa]:after{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 3%,transparent)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card.fundamental[data-v-03feb1fa]:before{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card .analysis-card-header.fundamental .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .loading-icon-pro[data-v-03feb1fa],.fast-analysis-report.theme-dark .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 5%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .feedback-section .ant-btn[data-v-03feb1fa]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 30%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.left-panel .calendar-box .box-header .box-title .anticon[data-v-22f26594]{color:var(--primary-color,#1890ff)}
|
||||
.right-panel .analysis-toolbar .analyze-button[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card-hover-actions .wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent) 30%)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-badge[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);-webkit-box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat-icon[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark .right-panel .analysis-toolbar .history-button[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 45%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .hero-cta .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark .panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.ai-analysis-container.theme-dark .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff)!important;color:var(--primary-color,#1890ff)!important}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.hero-bg-circle.c1[data-v-22f26594]{background:radial-gradient(circle,rgba(24,144,255,.1) 0,transparent 70%)}
|
||||
.hero-bg-grid[data-v-22f26594]{background-image:linear-gradient(rgba(24,144,255,.03) 1px,transparent 0),linear-gradient(90deg,rgba(24,144,255,.03) 1px,transparent 0)}
|
||||
.hero-badge[data-v-22f26594]{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08);border:1px solid rgba(24,144,255,.2)}
|
||||
.hstat[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.1);box-shadow:0 4px 16px rgba(24,144,255,.1)}
|
||||
.hstat-icon[data-v-22f26594]{background:linear-gradient(135deg,rgba(24,144,255,.1),rgba(114,46,209,.08));color:var(--primary-color,#1890ff)}
|
||||
.hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px rgba(24,144,255,.3);box-shadow:0 4px 14px rgba(24,144,255,.3)}
|
||||
.panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.batch-bar .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent);box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent)}
|
||||
.wl-card.active[data-v-22f26594]{background:linear-gradient(135deg,color-mix(in srgb,var(--primary-color,#1890ff) 6%,#fff) 0,color-mix(in srgb,var(--primary-color,#1890ff) 4%,#fff) 100%);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent);-webkit-box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:-webkit-gradient(linear,left top,right top,from(transparent),color-stop(30%,#e6f7ff));background:linear-gradient(90deg,transparent,#e6f7ff 30%)}
|
||||
.wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:#e6f7ff}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]:hover{-webkit-box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent)}
|
||||
.qd-dark-modal .ant-modal-footer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.qd-dark-modal .ant-tag-blue{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-modal .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.qd-dark-modal .ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.qd-dark-modal .batch-symbols-preview .ant-tag{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-primary{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-default:hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.colorWeak .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1);color:#1890ff}
|
||||
.summary-card .card-icon.sync.syncing[data-v-398d904c]{color:#1890ff}
|
||||
.monitor-card .monitor-body .scope-selected[data-v-398d904c]{color:#1890ff;border-bottom:1px dashed #1890ff}
|
||||
.alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff)}
|
||||
.alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#1890ff}
|
||||
.position-checkbox-group .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.05)}
|
||||
.theme-dark .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.1)}
|
||||
.theme-dark .alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(114,46,209,.1))}
|
||||
.theme-dark .alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#40a9ff}
|
||||
.user-manage-page .page-header .page-title .anticon[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page .address-text[data-v-0b8bb4d8],.user-manage-page .hash-text[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page.theme-dark .manage-tabs[data-v-0b8bb4d8] .ant-tabs-tab-active{color:#1890ff}
|
||||
.user-manage-page .current-credits-info .value[data-v-0b8bb4d8],.user-manage-page .current-vip-info .value[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.profile-page .page-header .page-title .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page .profile-card .profile-info .info-item .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-tabs-tab-active{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:hover,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-table-wrapper .ant-tag-blue{background:rgba(24,144,255,.25);border-color:#1890ff;color:#69c0ff}
|
||||
.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item-active{background:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-btn.ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.billing-page .plan-card.highlight[data-v-714c882a]{border:1px solid rgba(24,144,255,.35)}
|
||||
.usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,.usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.08);color:#1890ff}
|
||||
body.dark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.dark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.15);color:#40a9ff}
|
||||
.settings-page .settings-header .page-title .anticon[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .openrouter-balance-card .ant-card[data-v-15e1ba02]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff);border:1px solid #91d5ff}
|
||||
.settings-page .openrouter-balance-card .balance-header .balance-title[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .ant-collapse-arrow{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .panel-header .panel-icon-left{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .help-icon:hover{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{color:#1890ff;background:rgba(24,144,255,.08)}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.25)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.turnstile-container .turnstile-error a[data-v-20437450]{color:#1890ff}
|
||||
.main .login-method-switch a[data-v-de9678f6]:hover{color:#1890ff}
|
||||
.main .login-method-switch a.active[data-v-de9678f6]{color:#1890ff;border-bottom-color:#1890ff}
|
||||
.main .code-login-hint .anticon[data-v-de9678f6]{color:#1890ff}
|
||||
.main .auth-links a[data-v-de9678f6]{color:#1890ff}
|
||||
.main .legal-wrap .legal-toggle[data-v-de9678f6]{color:#1890ff}
|
||||
.ant-dropdown-menu-item-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-submenu-title-selected>a{color:#1890ff;background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}
|
||||
.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{background:#1890ff}
|
||||
.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger){color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger){color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-primary{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-primary:focus,.ant-btn-primary:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-primary.active,.ant-btn-primary:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}
|
||||
.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-ghost.active,.ant-btn-ghost:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-dashed.active,.ant-btn-dashed:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-link.active,.ant-btn-link:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary.active,.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-link:hover{color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-link.active,.ant-btn-background-ghost.ant-btn-link:active{color:#096dd9}
|
||||
.ant-menu-submenu-selected{color:#1890ff}
|
||||
.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}
|
||||
.ant-menu-item>a:hover{color:#1890ff}
|
||||
.ant-menu-item>.ant-badge>a:hover{color:#1890ff}
|
||||
.ant-menu-item-active,.ant-menu-item:hover,.ant-menu-submenu-active,.ant-menu-submenu-title:hover,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}
|
||||
.ant-menu-item-selected,.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#1890ff}
|
||||
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}
|
||||
.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#1890ff));background:linear-gradient(90deg,#1890ff,#1890ff)}
|
||||
.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected>a,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected>a{color:#1890ff}
|
||||
.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover{color:#1890ff;border-bottom:2px solid #1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover{color:#1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a{color:#1890ff}
|
||||
.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after{border-right:3px solid #1890ff}
|
||||
.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}
|
||||
.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}
|
||||
.ant-pro-basicLayout .trigger:hover{color:#1890ff}
|
||||
.ant-pro-sider-menu-sider.light .ant-pro-sider-menu-logo h1{color:#1890ff}
|
||||
.ant-page-header-back-button{color:#1890ff}
|
||||
.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#40a9ff}
|
||||
.ant-page-header-back-button:active{color:#096dd9}
|
||||
.ant-breadcrumb a:hover{color:#40a9ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#1890ff}
|
||||
.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#1890ff;border-color:#1890ff}
|
||||
.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:hover{color:#40a9ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:active{color:#096dd9}
|
||||
.ant-tabs-nav .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-pro-global-header .dark .action.opened,.ant-pro-global-header .dark .action:hover{background:#1890ff}
|
||||
.ant-list-item-meta-title>a:hover{color:#1890ff}
|
||||
.ant-spin{color:#1890ff}
|
||||
.ant-spin-dot-item{background-color:#1890ff}
|
||||
.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#1890ff}
|
||||
.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#1890ff}
|
||||
.ant-pagination-item-active{border-color:#1890ff}
|
||||
.ant-pagination-item-active a{color:#1890ff}
|
||||
.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#40a9ff}
|
||||
.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#40a9ff}
|
||||
.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff}
|
||||
.ant-pagination-next:hover a,.ant-pagination-prev:hover a{border-color:#40a9ff}
|
||||
.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}
|
||||
.ant-pagination-options-quick-jumper input:focus,.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff}
|
||||
.ant-pagination-options-quick-jumper input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}
|
||||
.ant-select-selection:hover{border-color:#40a9ff}
|
||||
.ant-select-focused .ant-select-selection,.ant-select-selection:active,.ant-select-selection:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-open .ant-select-selection{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{color:#1890ff}
|
||||
.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#1890ff}
|
||||
.ant-switch:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-switch-checked{background-color:#1890ff}
|
||||
.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}
|
||||
.ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon .action{color:#1890ff}
|
||||
.ant-pro-setting-drawer-handle{background:#1890ff}
|
||||
.anticon.ant-notification-notice-icon-info{color:#1890ff}
|
||||
.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus,.ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-group-addon .ant-select-focused .ant-select-selection,.ant-input-group-addon .ant-select-open .ant-select-selection{color:#1890ff}
|
||||
.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-result-info .ant-result-icon>.anticon{color:#1890ff}
|
||||
.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}
|
||||
.ant-progress-bg,.ant-progress-success-bg{background-color:#1890ff}
|
||||
.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}
|
||||
.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}
|
||||
.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}
|
||||
.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff}
|
||||
.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#e6f7ff}
|
||||
.ant-time-picker-panel-select li:focus{color:#1890ff}
|
||||
.ant-time-picker-panel-select li:hover{background:#e6f7ff}
|
||||
.ant-time-picker-input:focus,.ant-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-time-picker-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-date:hover{background:#e6f7ff}
|
||||
.ant-calendar-date:active{background:#40a9ff}
|
||||
:not(.ant-calendar-selected-date):not(.ant-calendar-selected-day).ant-calendar-today .ant-calendar-date{color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar-selected-day .ant-calendar-date{background:#bae7ff}
|
||||
.ant-calendar .ant-calendar-ok-btn{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar .ant-calendar-ok-btn:focus,.ant-calendar .ant-calendar-ok-btn:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-calendar .ant-calendar-ok-btn.active,.ant-calendar .ant-calendar-ok-btn:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#1890ff;background:#bae7ff;border-color:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-range .ant-calendar-in-range-cell:before{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:hover{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:focus{color:#1890ff}
|
||||
.ant-calendar-month-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month,.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{background:#1890ff}
|
||||
.ant-calendar-month-panel-month:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-year-panel-year:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{background:#1890ff}
|
||||
.ant-calendar-decade-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-decade-panel-decade:hover{background:#e6f7ff}
|
||||
.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{background:#1890ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr:hover{background:#e6f7ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{background:#bae7ff}
|
||||
.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}
|
||||
.ant-tag-checkable-checked{background-color:#1890ff}
|
||||
.ant-tag-checkable:active{background-color:#096dd9}
|
||||
.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}
|
||||
.ant-tag-blue-inverse{background:#1890ff;border-color:#1890ff}
|
||||
.ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
:not(.ant-steps-item-process).ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{background:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-navigation .ant-steps-item:before{background-color:#1890ff}
|
||||
.ant-badge-status-processing{background-color:#1890ff}
|
||||
.ant-badge-status-processing:after{border:1px solid #1890ff}
|
||||
.ant-badge-status-blue{background:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-filter-selected.anticon{color:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on{color:#1890ff}
|
||||
.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#e6f7ff}
|
||||
.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title:after{color:#1890ff;text-shadow:0 0 2px #bae7ff}
|
||||
.ant-table-filter-dropdown-link{color:#1890ff}
|
||||
.ant-table-filter-dropdown-link:hover{color:#40a9ff}
|
||||
.ant-table-filter-dropdown-link:active{color:#096dd9}
|
||||
.ant-table-row-expand-icon{color:#1890ff}
|
||||
.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#40a9ff}
|
||||
.ant-table-row-expand-icon:active{color:#096dd9}
|
||||
.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-input:focus+.ant-radio-inner{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-checked:after{border:1px solid #1890ff}
|
||||
.ant-radio-inner:after{background-color:#1890ff}
|
||||
.ant-radio-checked .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
.ant-radio-button-wrapper:focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}
|
||||
.ant-checkbox-checked:after{border:1px solid #1890ff}
|
||||
.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#1890ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.is-validating.has-feedback .ant-form-item-children-icon{color:#1890ff}
|
||||
.ant-card-actions>li>span:hover{color:#1890ff}
|
||||
.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#1890ff}
|
||||
.ant-input-number:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}
|
||||
.ant-input-number-focused,.ant-input-number:hover{border-color:#40a9ff}
|
||||
.ant-input-number-focused{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
-501
@@ -1,501 +0,0 @@
|
||||
|
||||
.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,.ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.dark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-selected,body.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-header .notice-action[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.notice-item.unread[data-v-7e99442e]{background:#e6f7ff}
|
||||
.notice-item.unread[data-v-7e99442e]:hover{background:#bae7ff}
|
||||
.notice-footer a[data-v-7e99442e]{color:#1890ff}
|
||||
.notice-footer a[data-v-7e99442e]:hover{color:#40a9ff}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread,.ant-layout.realdark .header-notice-wrapper .notice-item.unread,body.dark .header-notice-wrapper .notice-item.unread,body.realdark .header-notice-wrapper .notice-item.unread{background:rgba(24,144,255,.15)}
|
||||
.ant-layout.dark .header-notice-wrapper .notice-item.unread:hover,.ant-layout.realdark .header-notice-wrapper .notice-item.unread:hover,body.dark .header-notice-wrapper .notice-item.unread:hover,body.realdark .header-notice-wrapper .notice-item.unread:hover{background:rgba(24,144,255,.25)}
|
||||
.ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.dark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
.ant-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,.ant-pro-layout.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.dark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.dark .ant-pro-global-header-index-right .ant-pro-drop-down:hover,body.realdark .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,body.realdark .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
.setting-drawer-index-content .setting-drawer-index-blockChecbox .setting-drawer-index-item .setting-drawer-index-selectIcon[data-v-940007f2]{color:#1890ff}
|
||||
:global .ant-layout.dark .ant-layout-header .anticon:hover,:global .ant-layout.realdark .ant-layout-header .anticon:hover,:global .ant-pro-layout.dark .ant-layout-header .anticon:hover,:global .ant-pro-layout.realdark .ant-layout-header .anticon:hover,:global body.dark .ant-layout-header .anticon:hover,:global body.realdark .ant-layout-header .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-layout.dark .ant-layout-header a:hover,:global .ant-layout.realdark .ant-layout-header a:hover,:global .ant-pro-layout.dark .ant-layout-header a:hover,:global .ant-pro-layout.realdark .ant-layout-header a:hover,:global body.dark .ant-layout-header a:hover,:global body.realdark .ant-layout-header a:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-content .anticon:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-pro-global-header-index-action:hover{color:#1890ff!important}
|
||||
:global .ant-pro-global-header-index-right .ant-dropdown-trigger:hover,:global .ant-pro-global-header-index-right .ant-pro-drop-down:hover{color:#1890ff!important}
|
||||
:global a:hover{color:#1890ff!important}
|
||||
:global .anticon:hover{color:#1890ff!important}
|
||||
:global(.ant-pro-layout).dark :global(.ant-menu-dark .ant-menu-item-selected),:global(.ant-pro-layout).realdark :global(.ant-menu-dark .ant-menu-item-selected){background:rgba(24,144,255,.25)!important}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-global-header-index-action:hover{background:#1890ff}
|
||||
.ant-pro-global-header-index-right.ant-pro-global-header-index-dark .ant-pro-drop-down:hover{color:#1890ff}
|
||||
.ant-pro-global-header-index-right .ant-pro-account-avatar .antd-pro-global-header-index-avatar{color:#1890ff}
|
||||
:global .ant-pro-layout.dark .ant-dropdown-menu .ant-dropdown-menu-item:hover,:global .ant-pro-layout.realdark .ant-dropdown-menu .ant-dropdown-menu-item:hover{color:#1890ff!important}
|
||||
:global body.dark .ant-menu-dark .ant-menu-item-selected,:global body.realdark .ant-menu-dark .ant-menu-item-selected{background:rgba(24,144,255,.25)!important}
|
||||
a{color:#1890ff}
|
||||
a:hover{color:#40a9ff}
|
||||
a:active{color:#096dd9}
|
||||
::-moz-selection{background:#1890ff}
|
||||
::selection{background:#1890ff}
|
||||
html{--antd-wave-shadow-color:#1890ff}
|
||||
.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{-webkit-box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 #1890ff}
|
||||
#nprogress .bar{background:#1890ff}
|
||||
#nprogress .peg{-webkit-box-shadow:0 0 10px #1890ff,0 0 5px #1890ff;box-shadow:0 0 10px #1890ff,0 0 5px #1890ff}
|
||||
#nprogress .spinner-icon{border-top-color:#1890ff;border-left-color:#1890ff}
|
||||
body.dark .ant-pagination-item-active,body.realdark .ant-pagination-item-active{border-color:#1890ff!important}
|
||||
body.dark .ant-btn-default:hover,body.realdark .ant-btn-default:hover{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .ant-tabs-tab-active,body.realdark .ant-tabs-tab-active{color:#1890ff!important}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.realdark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1)!important;color:#1890ff!important}
|
||||
.qt-header .qt-header-left .qt-icon[data-v-0d547552]{color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.theme-dark[data-v-0d547552] .ant-slider-track{background:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .probability-comparison .prob-item .prob-value.ai-prob[data-v-67e891d2]{color:#1890ff}
|
||||
.polymarket-analysis-modal .result-section .analysis-result .recommendation-section .rec-card .rec-value[data-v-67e891d2]{color:#1890ff}
|
||||
.code-section .section-header .section-title[data-v-4fea1865]:before{background:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link{color:#1890ff}
|
||||
.code-section .section-header .section-actions[data-v-4fea1865] .ant-btn-link:hover{color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:hover{border-color:#40a9ff}
|
||||
.code-editor-container[data-v-4fea1865]:focus-within{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05);box-shadow:0 0 0 2px rgba(24,144,255,.2),inset 0 1px 3px rgba(0,0,0,.05)}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-cursor{border-left:2px solid #1890ff}
|
||||
.code-editor-container[data-v-4fea1865] .CodeMirror-selected{background:#e6f7ff}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn:not(.ant-btn-primary):hover{border-color:#40a9ff;color:#40a9ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary{-webkit-box-shadow:0 2px 4px rgba(24,144,255,.3);box-shadow:0 2px 4px rgba(24,144,255,.3)}
|
||||
.editor-footer[data-v-4fea1865] .ant-btn.ant-btn-primary:hover{-webkit-box-shadow:0 4px 12px rgba(24,144,255,.4);box-shadow:0 4px 12px rgba(24,144,255,.4)}
|
||||
.drawing-tool-btn[data-v-58f93984]:hover{color:#1890ff}
|
||||
.drawing-tool-btn.active[data-v-58f93984]{background:#e6f7ff;color:#1890ff;border:1px solid #1890ff}
|
||||
.indicator-btn[data-v-58f93984]:hover{color:#1890ff;border-color:#1890ff}
|
||||
.indicator-btn.active[data-v-58f93984]{color:#1890ff;border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.1);box-shadow:0 0 0 2px rgba(24,144,255,.1)}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.timeframe-item[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.timeframe-item.active[data-v-95a351b2]{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,.panel-header .theme-toggle-btn[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.panel-header .realtime-toggle-btn.active[data-v-95a351b2],.panel-header .theme-toggle-btn.active[data-v-95a351b2]{color:#1890ff;background:#e6f7ff}
|
||||
.indicator-card[data-v-95a351b2]:hover{border-color:#1890ff}
|
||||
.indicator-card.active[data-v-95a351b2]{background:#e6f7ff;border-color:#1890ff}
|
||||
.indicator-card.active .card-name[data-v-95a351b2]{color:#1890ff}
|
||||
.card-action[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.edit-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon[data-v-95a351b2]:hover{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.action-icon.publish-icon[data-v-95a351b2]:hover{color:#40a9ff}
|
||||
.action-icon.expiry-icon[data-v-95a351b2]{color:#1890ff}
|
||||
.dark-dropdown .ant-select-dropdown-menu-item-active{background-color:#e6f7ff;color:#1890ff}
|
||||
.qt-header-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.qt-header-btn[data-v-95a351b2]:focus,.qt-header-btn[data-v-95a351b2]:hover{background:linear-gradient(135deg,#40a9ff,#9254de);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.45);box-shadow:0 4px 12px rgba(24,144,255,.45)}
|
||||
.qt-floating-btn[data-v-95a351b2]{background:linear-gradient(135deg,#1890ff,#722ed1);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.4);box-shadow:0 4px 16px rgba(24,144,255,.4)}
|
||||
.qt-floating-btn[data-v-95a351b2]:hover{-webkit-box-shadow:0 6px 24px rgba(24,144,255,.55);box-shadow:0 6px 24px rgba(24,144,255,.55)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-selection:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .symbol-select[data-v-95a351b2] .ant-select-focused .ant-select-selection,body.dark,body.realdark{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.3);box-shadow:0 0 0 2px rgba(24,144,255,.3)}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .timeframe-group .timeframe-item.active[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .panel-header .realtime-toggle-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .section-label .buy-indicator-btn[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card[data-v-95a351b2]:hover,body.dark,body.realdark{border-color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card.active .card-name[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2],.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.edit-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2],body.dark,body.realdark{color:#1890ff}
|
||||
.ant-layout.dark,.ant-layout.realdark,.ant-pro-layout.dark,.ant-pro-layout.realdark,.chart-container.theme-dark .chart-right .indicators-panel .indicator-card .action-icon.publish-icon[data-v-95a351b2]:hover,body.dark,body.realdark{color:#40a9ff}
|
||||
.comment-list .comment-form .form-header .edit-label[data-v-4973cae6]{color:#1890ff}
|
||||
.comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.02)}
|
||||
[data-theme=dark] .comment-list .comments .comment-item.is-mine[data-v-4973cae6]{background:rgba(24,144,255,.05)}
|
||||
.indicator-community-container .market-header .header-left .page-title .anticon[data-v-f59e48f0]{color:#1890ff}
|
||||
.indicator-community-container.theme-dark .admin-tabs[data-v-f59e48f0] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-btn-link{color:#40a9ff}
|
||||
.indicator-community-container.theme-dark[data-v-f59e48f0] .ant-modal-content .ant-list-item-meta-title a{color:#40a9ff}
|
||||
.page-header .page-title .title-icon[data-v-1e69d7a8]{-webkit-text-fill-color:#1890ff}
|
||||
.empty-result .empty-icon[data-v-1e69d7a8]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff);color:#1890ff}
|
||||
.running-overlay .running-text[data-v-1e69d7a8]{color:#1890ff}
|
||||
.chart-bars .bar[data-v-1e69d7a8]{background:#1890ff}
|
||||
.add-item-active[data-v-1e69d7a8]{background:#e6f7ff!important}
|
||||
.theme-dark .page-header .page-title .title-icon[data-v-1e69d7a8]{-webkit-text-fill-color:#40a9ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-tag[color=blue]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#1890ff;border:1px solid rgba(24,144,255,.3)}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item:hover a{color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-item.ant-pagination-item-active{background:linear-gradient(135deg,#1890ff,#40a9ff);border-color:#1890ff}
|
||||
.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-next .ant-pagination-item-link:hover,.trading-records[data-v-a5bdef7e] .ant-pagination .ant-pagination-prev .ant-pagination-item-link:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-item-active,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v-8a68b65a] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover,body.dark .trading-records[data-v] .ant-pagination-item:hover,body.realdark .trading-records[data-v] .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item:hover a,body.dark .trading-records[data-v] .ant-pagination-item:hover a,body.realdark .trading-records[data-v] .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-item-active,body.dark .trading-records[data-v] .ant-pagination-item-active,body.realdark .trading-records[data-v] .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records[data-v] .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover{border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item:hover a,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item:hover a{color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-item-active,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-item-active{background:#1890ff!important;border-color:#1890ff!important}
|
||||
.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,.theme-dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.dark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records * ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link,body.realdark .trading-records ::v-deep .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{border-color:#1890ff!important;color:#1890ff!important}
|
||||
.mode-card[data-v-2344f311]:hover{border-color:#1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.12);box-shadow:0 4px 16px rgba(24,144,255,.12)}
|
||||
.mode-card.selected[data-v-2344f311]{border-color:#1890ff;background:rgba(24,144,255,.02)}
|
||||
.mode-card.selected[data-v-2344f311]:after{color:#1890ff}
|
||||
.card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,#e6f7ff,#bae7ff);color:#1890ff}
|
||||
.template-tag[data-v-2344f311]:hover{color:#1890ff;border-color:#1890ff;background:#e6f7ff}
|
||||
.theme-dark .mode-card.selected[data-v-2344f311]:after{color:#40a9ff}
|
||||
.theme-dark .card-icon.signal-icon[data-v-2344f311]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(24,144,255,.08));color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]{border-color:rgba(24,144,255,.4);color:#40a9ff}
|
||||
.theme-dark .card-btn[data-v-2344f311]:hover{border-color:#1890ff;color:#1890ff}
|
||||
.theme-dark .template-tag[data-v-2344f311]:hover{color:#40a9ff}
|
||||
.template-item[data-v-767abf73]:hover{border-color:#1890ff}
|
||||
.ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#1890ff}
|
||||
.ai-panel .ai-status[data-v-767abf73]{color:#1890ff}
|
||||
.docs-panel .docs-content[data-v-767abf73] h5{color:#1890ff}
|
||||
.theme-dark .side-tabs[data-v-767abf73] .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-panel-title .anticon[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .ai-panel[data-v-767abf73] textarea.ant-input:focus{border-color:#1890ff}
|
||||
.theme-dark .ai-panel .ai-status[data-v-767abf73]{color:#40a9ff}
|
||||
.theme-dark .docs-panel .docs-content[data-v-767abf73] h5{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper:hover{color:#40a9ff}
|
||||
.theme-dark .logs-toolbar[data-v-129fed65] .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-70b18ab4]{background:linear-gradient(135deg,#1890ff,#40a9ff);-webkit-box-shadow:0 4px 12px rgba(24,144,255,.35);box-shadow:0 4px 12px rgba(24,144,255,.35)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .card-title .ant-btn-primary[data-v-70b18ab4]:hover{-webkit-box-shadow:0 6px 16px rgba(24,144,255,.45);box-shadow:0 6px 16px rgba(24,144,255,.45)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-header .group-header-left .group-icon[data-v-70b18ab4]{color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item[data-v-70b18ab4]:hover{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-grouped-list .strategy-group .strategy-group-content .strategy-list-item.active[data-v-70b18ab4]{border-left-color:#1890ff}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item[data-v-70b18ab4]:hover{border-color:rgba(24,144,255,.2);-webkit-box-shadow:0 2px 12px rgba(24,144,255,.1);box-shadow:0 2px 12px rgba(24,144,255,.1)}
|
||||
.trading-assistant .strategy-list-col .strategy-list-card .strategy-list-item.active[data-v-70b18ab4]{border-color:#1890ff;border-left:4px solid #1890ff;-webkit-box-shadow:0 4px 16px rgba(24,144,255,.15);box-shadow:0 4px 16px rgba(24,144,255,.15)}
|
||||
.trading-assistant .strategy-detail-col .empty-detail[data-v-70b18ab4]:hover{border-color:#1890ff;background:linear-gradient(135deg,rgba(24,144,255,.02),rgba(24,144,255,.05))}
|
||||
.trading-assistant .strategy-detail-col .strategy-detail-panel .strategy-header-card .strategy-header .header-left .strategy-tags .tag-item .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
.trading-assistant.theme-dark .creation-mode-toggle[data-v-70b18ab4]{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item[data-v-70b18ab4]:hover{background:linear-gradient(135deg,rgba(24,144,255,.08),rgba(24,144,255,.04));border-color:rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-list-col .strategy-list-item.active[data-v-70b18ab4]{background:linear-gradient(135deg,rgba(24,144,255,.12),rgba(24,144,255,.06));border-color:#1890ff;-webkit-box-shadow:0 4px 20px rgba(24,144,255,.2);box-shadow:0 4px 20px rgba(24,144,255,.2)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-header-card .strategy-tags .tag-item[data-v-70b18ab4]:hover{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3)}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-70b18ab4] .ant-tabs .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff}
|
||||
.trading-assistant.theme-dark .strategy-detail-col .strategy-content-card[data-v-70b18ab4] .ant-tabs .ant-tabs-nav .ant-tabs-ink-bar{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#40a9ff));background:linear-gradient(90deg,#1890ff,#40a9ff)}
|
||||
.ai-filter-title .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
.creation-mode-toggle[data-v-70b18ab4]{background:rgba(24,144,255,.04);border:1px solid rgba(24,144,255,.12)}
|
||||
.strategy-type-selector .strategy-type-card[data-v-70b18ab4]:hover{border-color:#1890ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.2);box-shadow:0 2px 8px rgba(24,144,255,.2)}
|
||||
.strategy-type-selector .strategy-type-card.selected[data-v-70b18ab4]{border-color:#1890ff;background-color:#e6f7ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.3);box-shadow:0 2px 8px rgba(24,144,255,.3)}
|
||||
.strategy-type-selector .strategy-type-card .strategy-type-content .strategy-type-icon[data-v-70b18ab4]{color:#1890ff}
|
||||
.ip-whitelist-tip[data-v-70b18ab4]{background-color:#e6f7ff;border:1px solid #91d5ff;color:#1890ff}
|
||||
.ip-whitelist-tip .anticon[data-v-70b18ab4]{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-modal-content .creation-mode-toggle{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2)}
|
||||
body.dark .ant-modal-wrap .ant-steps .ant-steps-item-finish .ant-steps-item-icon,body.dark .ant-modal-wrap .ant-steps .ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number:focus,body.dark .ant-modal-wrap .ant-input-number:hover,body.dark .ant-modal-wrap .ant-input:focus,body.dark .ant-modal-wrap .ant-input:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-input-number-handler-wrap .ant-input-number-handler:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-select .ant-select-selection:hover{border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background:#1890ff;border-color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-switch.ant-switch-checked{background:#1890ff}
|
||||
body.dark .ant-modal-wrap .ip-whitelist-tip{background:rgba(24,144,255,.08);border-color:rgba(24,144,255,.2);color:#40a9ff}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-active,body.dark .ant-select-dropdown .ant-select-dropdown-menu-item:hover{background:rgba(24,144,255,.1)}
|
||||
body.dark .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.15);color:#1890ff}
|
||||
body.dark .ant-modal-wrap .ant-alert{background:rgba(24,144,255,.06);border-color:rgba(24,144,255,.2)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .loading-header .loading-icon-pro[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card[data-v-03feb1fa]:after{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 3%,transparent)}
|
||||
.fast-analysis-report .result-container .scores-row .score-item.overall .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card.fundamental[data-v-03feb1fa]:before{background:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .detailed-analysis .analysis-card .analysis-card-header.fundamental .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .loading-icon-pro[data-v-03feb1fa],.fast-analysis-report.theme-dark .loading-container .loading-content-pro .progress-wrapper .progress-text[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .current-step[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .loading-container .loading-content-pro .steps-list .step-item.active .step-dot[data-v-03feb1fa]{background:var(--primary-color,#1890ff);-webkit-box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color,#1890ff) 15%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 5%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .decision-card .consensus-strip .consensus-strip-title[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .price-info-row .price-card.entry .price-label[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .trend-outlook-card .trend-outlook-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item .score-header .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .scores-row .score-item.overall[data-v-03feb1fa]{background:color-mix(in srgb,var(--primary-color,#1890ff) 4%,transparent)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .section-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-methodology .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .indicators-section .indicators-pro-wrap .indicators-pro-title .anticon[data-v-03feb1fa]{color:var(--primary-color,#1890ff)}
|
||||
.fast-analysis-report.theme-dark .result-container .feedback-section .ant-btn[data-v-03feb1fa]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 30%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.left-panel .calendar-box .box-header .box-title .anticon[data-v-22f26594]{color:var(--primary-color,#1890ff)}
|
||||
.right-panel .analysis-toolbar .analyze-button[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 8%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card-hover-actions .wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-panel .watchlist-list .wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--primary-color,#1890ff) 6%,transparent) 30%)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-badge[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);-webkit-box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);box-shadow:0 4px 16px color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hstat-icon[data-v-22f26594]{background:color-mix(in srgb,var(--primary-color,#1890ff) 12%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .placeholder-hero .hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color,#1890ff) 35%,transparent)}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-legacy .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark .right-panel .analysis-toolbar .history-button[data-v-22f26594]:hover{border-color:color-mix(in srgb,var(--primary-color,#1890ff) 45%,transparent);color:var(--primary-color,#1890ff)}
|
||||
.ai-analysis-container.theme-dark .hero-cta .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark .panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.ai-analysis-container.theme-dark .batch-bar .ant-btn[data-v-22f26594]:not(.ant-btn-primary):hover{border-color:var(--primary-color,#1890ff)!important;color:var(--primary-color,#1890ff)!important}
|
||||
.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip.active[data-v-22f26594],.ai-analysis-container.theme-dark .watchlist-bar-compat .stock-chip[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.ai-analysis-container.theme-dark[data-v-22f26594] .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.hero-bg-circle.c1[data-v-22f26594]{background:radial-gradient(circle,rgba(24,144,255,.1) 0,transparent 70%)}
|
||||
.hero-bg-grid[data-v-22f26594]{background-image:linear-gradient(rgba(24,144,255,.03) 1px,transparent 0),linear-gradient(90deg,rgba(24,144,255,.03) 1px,transparent 0)}
|
||||
.hero-badge[data-v-22f26594]{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08);border:1px solid rgba(24,144,255,.2)}
|
||||
.hstat[data-v-22f26594]:hover{border-color:var(--primary-color,#1890ff);-webkit-box-shadow:0 4px 16px rgba(24,144,255,.1);box-shadow:0 4px 16px rgba(24,144,255,.1)}
|
||||
.hstat-icon[data-v-22f26594]{background:linear-gradient(135deg,rgba(24,144,255,.1),rgba(114,46,209,.08));color:var(--primary-color,#1890ff)}
|
||||
.hero-cta .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 4px 14px rgba(24,144,255,.3);box-shadow:0 4px 14px rgba(24,144,255,.3)}
|
||||
.panel-header-icon[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:rgba(24,144,255,.08)}
|
||||
.batch-bar .ant-btn-primary[data-v-22f26594]{-webkit-box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent);box-shadow:0 1px 2px color-mix(in srgb,var(--primary-color,#1890ff) 20%,transparent)}
|
||||
.wl-card.active[data-v-22f26594]{background:linear-gradient(135deg,color-mix(in srgb,var(--primary-color,#1890ff) 6%,#fff) 0,color-mix(in srgb,var(--primary-color,#1890ff) 4%,#fff) 100%);border-color:color-mix(in srgb,var(--primary-color,#1890ff) 28%,transparent);-webkit-box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent);box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color,#1890ff) 10%,transparent)}
|
||||
.wl-card.active .wl-card-hover-actions[data-v-22f26594]{background:-webkit-gradient(linear,left top,right top,from(transparent),color-stop(30%,#e6f7ff));background:linear-gradient(90deg,transparent,#e6f7ff 30%)}
|
||||
.wl-hover-btn[data-v-22f26594]:hover{color:var(--primary-color,#1890ff);background:#e6f7ff}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.task-item-actions .ant-btn.ant-btn-primary[data-v-22f26594]:hover{-webkit-box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent);box-shadow:0 2px 6px color-mix(in srgb,var(--primary-color,#1890ff) 25%,transparent)}
|
||||
.qd-dark-modal .ant-modal-footer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-tabs-tab-active{color:#1890ff!important}
|
||||
.qd-dark-modal .ant-tag-blue{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-modal .ant-alert{background:rgba(24,144,255,.06)}
|
||||
.qd-dark-modal .ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.qd-dark-modal .batch-symbols-preview .ant-tag{background:rgba(24,144,255,.1);border-color:rgba(24,144,255,.3);color:#1890ff}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-primary{background:var(--primary-color,#1890ff);border-color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .task-item-actions .ant-btn.ant-btn-default:hover{border-color:var(--primary-color,#1890ff);color:var(--primary-color,#1890ff)}
|
||||
.qd-dark-drawer .ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.qd-dark-modal .ant-select-dropdown .ant-select-dropdown-menu-item-selected,body.colorWeak .ant-select-dropdown .ant-select-dropdown-menu-item-selected{background:rgba(24,144,255,.1);color:#1890ff}
|
||||
.summary-card .card-icon.sync.syncing[data-v-398d904c]{color:#1890ff}
|
||||
.monitor-card .monitor-body .scope-selected[data-v-398d904c]{color:#1890ff;border-bottom:1px dashed #1890ff}
|
||||
.alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff)}
|
||||
.alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#1890ff}
|
||||
.position-checkbox-group .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.05)}
|
||||
.theme-dark .position-checkbox-item[data-v-398d904c]:hover{background:rgba(24,144,255,.1)}
|
||||
.theme-dark .alert-symbol-info .current-price-info[data-v-398d904c]{background:linear-gradient(135deg,rgba(24,144,255,.15),rgba(114,46,209,.1))}
|
||||
.theme-dark .alert-symbol-info .current-price-info .price[data-v-398d904c]{color:#40a9ff}
|
||||
.user-manage-page .page-header .page-title .anticon[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page .address-text[data-v-0b8bb4d8],.user-manage-page .hash-text[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.user-manage-page.theme-dark .manage-tabs[data-v-0b8bb4d8] .ant-tabs-tab-active{color:#1890ff}
|
||||
.user-manage-page .current-credits-info .value[data-v-0b8bb4d8],.user-manage-page .current-vip-info .value[data-v-0b8bb4d8]{color:#1890ff}
|
||||
.profile-page .page-header .page-title .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page .profile-card .profile-info .info-item .anticon[data-v-082fd138]{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-tabs-tab-active{color:#1890ff}
|
||||
.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input-password:hover,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:focus,.profile-page.theme-dark .edit-card[data-v-082fd138] .ant-input:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-table-wrapper .ant-tag-blue{background:rgba(24,144,255,.25);border-color:#1890ff;color:#69c0ff}
|
||||
.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .notification-settings-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .password-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-checkbox-checked .ant-checkbox-inner,.profile-page.theme-dark .profile-form[data-v-082fd138] .ant-radio-checked .ant-radio-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item:hover{border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-pagination .ant-pagination-item-active{background:#1890ff;border-color:#1890ff}
|
||||
.profile-page.theme-dark[data-v-082fd138] .ant-btn.ant-btn-default:hover{border-color:#1890ff;color:#1890ff}
|
||||
.billing-page .plan-card.highlight[data-v-714c882a]{border:1px solid rgba(24,144,255,.35)}
|
||||
.usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,.usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.08);color:#1890ff}
|
||||
body.dark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.dark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .addr-box .copy-btn:hover,body.realdark .usdt-checkout .checkout-body .info-section .amt-box .copy-btn:hover{background:rgba(24,144,255,.15);color:#40a9ff}
|
||||
.settings-page .settings-header .page-title .anticon[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .openrouter-balance-card .ant-card[data-v-15e1ba02]{background:linear-gradient(135deg,#e6f7ff,#f0f5ff);border:1px solid #91d5ff}
|
||||
.settings-page .openrouter-balance-card .balance-header .balance-title[data-v-15e1ba02]{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .ant-collapse-arrow{color:#1890ff}
|
||||
.settings-page .settings-collapse[data-v-15e1ba02] .ant-collapse-item .ant-collapse-header .panel-header .panel-icon-left{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .help-icon:hover{color:#1890ff}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{color:#1890ff;background:rgba(24,144,255,.08)}
|
||||
.settings-page .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link{background:rgba(24,144,255,.15)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-form-item-label .form-label-with-tooltip .api-link:hover{background:rgba(24,144,255,.25)}
|
||||
.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-number:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input-password:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-input:hover,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:focus,.settings-page.theme-dark .settings-form[data-v-15e1ba02] .ant-select-selection:hover{border-color:#1890ff}
|
||||
.turnstile-container .turnstile-error a[data-v-20437450]{color:#1890ff}
|
||||
.main .login-method-switch a[data-v-de9678f6]:hover{color:#1890ff}
|
||||
.main .login-method-switch a.active[data-v-de9678f6]{color:#1890ff;border-bottom-color:#1890ff}
|
||||
.main .code-login-hint .anticon[data-v-de9678f6]{color:#1890ff}
|
||||
.main .auth-links a[data-v-de9678f6]{color:#1890ff}
|
||||
.main .legal-wrap .legal-toggle[data-v-de9678f6]{color:#1890ff}
|
||||
.ant-dropdown-menu-item-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-submenu-title-selected>a{color:#1890ff;background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#e6f7ff}
|
||||
.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}
|
||||
.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{background:#1890ff}
|
||||
.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger){color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger){color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-primary{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-primary:focus,.ant-btn-primary:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-primary.active,.ant-btn-primary:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}
|
||||
.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}
|
||||
.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-ghost.active,.ant-btn-ghost:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-dashed.active,.ant-btn-dashed:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-link.active,.ant-btn-link:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;border-color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-primary.active,.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-btn-background-ghost.ant-btn-link{color:#1890ff}
|
||||
.ant-btn-background-ghost.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-link:hover{color:#40a9ff}
|
||||
.ant-btn-background-ghost.ant-btn-link.active,.ant-btn-background-ghost.ant-btn-link:active{color:#096dd9}
|
||||
.ant-menu-submenu-selected{color:#1890ff}
|
||||
.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}
|
||||
.ant-menu-item>a:hover{color:#1890ff}
|
||||
.ant-menu-item>.ant-badge>a:hover{color:#1890ff}
|
||||
.ant-menu-item-active,.ant-menu-item:hover,.ant-menu-submenu-active,.ant-menu-submenu-title:hover,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}
|
||||
.ant-menu-item-selected,.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#1890ff}
|
||||
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}
|
||||
.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#1890ff));background:linear-gradient(90deg,#1890ff,#1890ff)}
|
||||
.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected>a,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected>a{color:#1890ff}
|
||||
.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover{color:#1890ff;border-bottom:2px solid #1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover{color:#1890ff}
|
||||
.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a{color:#1890ff}
|
||||
.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after{border-right:3px solid #1890ff}
|
||||
.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}
|
||||
.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}
|
||||
.ant-pro-basicLayout .trigger:hover{color:#1890ff}
|
||||
.ant-pro-sider-menu-sider.light .ant-pro-sider-menu-logo h1{color:#1890ff}
|
||||
.ant-page-header-back-button{color:#1890ff}
|
||||
.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#40a9ff}
|
||||
.ant-page-header-back-button:active{color:#096dd9}
|
||||
.ant-breadcrumb a:hover{color:#40a9ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#1890ff}
|
||||
.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#1890ff;border-color:#1890ff}
|
||||
.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-tabs-ink-bar{background-color:#1890ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:hover{color:#40a9ff}
|
||||
.ant-tabs-nav .ant-tabs-tab:active{color:#096dd9}
|
||||
.ant-tabs-nav .ant-tabs-tab-active{color:#1890ff}
|
||||
.ant-pro-global-header .dark .action.opened,.ant-pro-global-header .dark .action:hover{background:#1890ff}
|
||||
.ant-list-item-meta-title>a:hover{color:#1890ff}
|
||||
.ant-spin{color:#1890ff}
|
||||
.ant-spin-dot-item{background-color:#1890ff}
|
||||
.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#1890ff}
|
||||
.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#1890ff}
|
||||
.ant-pagination-item-active{border-color:#1890ff}
|
||||
.ant-pagination-item-active a{color:#1890ff}
|
||||
.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#40a9ff}
|
||||
.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#40a9ff}
|
||||
.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff}
|
||||
.ant-pagination-next:hover a,.ant-pagination-prev:hover a{border-color:#40a9ff}
|
||||
.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}
|
||||
.ant-pagination-options-quick-jumper input:focus,.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff}
|
||||
.ant-pagination-options-quick-jumper input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}
|
||||
.ant-select-selection:hover{border-color:#40a9ff}
|
||||
.ant-select-focused .ant-select-selection,.ant-select-selection:active,.ant-select-selection:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-open .ant-select-selection{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}
|
||||
.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{color:#1890ff}
|
||||
.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#1890ff}
|
||||
.ant-switch:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-switch-checked{background-color:#1890ff}
|
||||
.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}
|
||||
.ant-alert-info .ant-alert-icon{color:#1890ff}
|
||||
.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon{color:#1890ff}
|
||||
.ant-pro-setting-drawer-block-checbox-selectIcon .action{color:#1890ff}
|
||||
.ant-pro-setting-drawer-handle{background:#1890ff}
|
||||
.anticon.ant-notification-notice-icon-info{color:#1890ff}
|
||||
.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus,.ant-input:hover{border-color:#40a9ff}
|
||||
.ant-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-group-addon .ant-select-focused .ant-select-selection,.ant-input-group-addon .ant-select-open .ant-select-selection{color:#1890ff}
|
||||
.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-result-info .ant-result-icon>.anticon{color:#1890ff}
|
||||
.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}
|
||||
.ant-progress-bg,.ant-progress-success-bg{background-color:#1890ff}
|
||||
.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}
|
||||
.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}
|
||||
.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}
|
||||
.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff}
|
||||
.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#e6f7ff}
|
||||
.ant-time-picker-panel-select li:focus{color:#1890ff}
|
||||
.ant-time-picker-panel-select li:hover{background:#e6f7ff}
|
||||
.ant-time-picker-input:focus,.ant-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-time-picker-input:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff}
|
||||
.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-date:hover{background:#e6f7ff}
|
||||
.ant-calendar-date:active{background:#40a9ff}
|
||||
:not(.ant-calendar-selected-date):not(.ant-calendar-selected-day).ant-calendar-today .ant-calendar-date{color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar-selected-day .ant-calendar-date{background:#bae7ff}
|
||||
.ant-calendar .ant-calendar-ok-btn{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-calendar .ant-calendar-ok-btn:focus,.ant-calendar .ant-calendar-ok-btn:hover{background-color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-calendar .ant-calendar-ok-btn.active,.ant-calendar .ant-calendar-ok-btn:active{background-color:#096dd9;border-color:#096dd9}
|
||||
.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#1890ff;background:#bae7ff;border-color:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover{background:#1890ff}
|
||||
.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#40a9ff}
|
||||
.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-calendar-range .ant-calendar-in-range-cell:before{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:hover{background:#e6f7ff}
|
||||
.ant-calendar-time-picker-select li:focus{color:#1890ff}
|
||||
.ant-calendar-month-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month,.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{background:#1890ff}
|
||||
.ant-calendar-month-panel-month:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-year-panel-year:hover{background:#e6f7ff}
|
||||
.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{background:#1890ff}
|
||||
.ant-calendar-decade-panel-header a:hover{color:#40a9ff}
|
||||
.ant-calendar-decade-panel-decade:hover{background:#e6f7ff}
|
||||
.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{background:#1890ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr:hover{background:#e6f7ff}
|
||||
.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{background:#bae7ff}
|
||||
.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}
|
||||
.ant-tag-checkable-checked{background-color:#1890ff}
|
||||
.ant-tag-checkable:active{background-color:#096dd9}
|
||||
.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}
|
||||
.ant-tag-blue-inverse{background:#1890ff;border-color:#1890ff}
|
||||
.ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{border-color:#1890ff}
|
||||
:not(.ant-steps-item-process).ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
:not(.ant-steps-item-custom).ant-steps-item-process .ant-steps-item-icon{background:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#1890ff}
|
||||
.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#1890ff}
|
||||
.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}
|
||||
.ant-steps-navigation .ant-steps-item:before{background-color:#1890ff}
|
||||
.ant-badge-status-processing{background-color:#1890ff}
|
||||
.ant-badge-status-processing:after{border:1px solid #1890ff}
|
||||
.ant-badge-status-blue{background:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-filter-selected.anticon{color:#1890ff}
|
||||
.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on{color:#1890ff}
|
||||
.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#e6f7ff}
|
||||
.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title:after{color:#1890ff;text-shadow:0 0 2px #bae7ff}
|
||||
.ant-table-filter-dropdown-link{color:#1890ff}
|
||||
.ant-table-filter-dropdown-link:hover{color:#40a9ff}
|
||||
.ant-table-filter-dropdown-link:active{color:#096dd9}
|
||||
.ant-table-row-expand-icon{color:#1890ff}
|
||||
.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#40a9ff}
|
||||
.ant-table-row-expand-icon:active{color:#096dd9}
|
||||
.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-input:focus+.ant-radio-inner{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-checked:after{border:1px solid #1890ff}
|
||||
.ant-radio-inner:after{background-color:#1890ff}
|
||||
.ant-radio-checked .ant-radio-inner{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper:hover{color:#1890ff}
|
||||
.ant-radio-button-wrapper:focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#40a9ff}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#096dd9}
|
||||
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:#1890ff;border-color:#1890ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background:#40a9ff;border-color:#40a9ff}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background:#096dd9;border-color:#096dd9}
|
||||
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}
|
||||
.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}
|
||||
.ant-checkbox-checked:after{border:1px solid #1890ff}
|
||||
.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}
|
||||
.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#1890ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff}
|
||||
.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.is-validating.has-feedback .ant-form-item-children-icon{color:#1890ff}
|
||||
.ant-card-actions>li>span:hover{color:#1890ff}
|
||||
.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#1890ff}
|
||||
.ant-input-number:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}
|
||||
.ant-input-number-focused,.ant-input-number:hover{border-color:#40a9ff}
|
||||
.ant-input-number-focused{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}
|
||||
Vendored
+1
-1
@@ -421,4 +421,4 @@
|
||||
.brand-text {
|
||||
font-size: 20px;
|
||||
}
|
||||
}</style><script defer="defer" src="/js/chunk-vendors.eba0ce83.js" type="module"></script><script defer="defer" src="/js/app.122b293c.js" type="module"></script><link href="/css/chunk-vendors.b8cb9e53.css" rel="stylesheet"><link href="/css/app.9dca4aef.css" rel="stylesheet"><script defer="defer" src="/js/chunk-vendors-legacy.54d4147a.js" nomodule></script><script defer="defer" src="/js/app-legacy.9e088294.js" nomodule></script></head><body><noscript><strong>We're sorry but vue-antd-pro doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"><div class="first-loading-wrp"><h2>Landing</h2><div class="loading-wrp"><div class="pixel-cat-container"><div class="ground"></div><div class="pixel-cat"><div class="cat-head"><div class="cat-ear-left"></div><div class="cat-ear-right"></div><div class="cat-eye-left"></div><div class="cat-eye-right"></div><div class="cat-nose"></div><div class="cat-whiskers"></div></div><div class="cat-body"></div><div class="cat-leg-front-left"></div><div class="cat-leg-front-right"></div><div class="cat-leg-back-left"></div><div class="cat-leg-back-right"></div><div class="cat-tail"></div></div></div></div><div class="brand-text">QuantDinger</div></div></div></body></html>
|
||||
}</style><script defer="defer" src="/js/chunk-vendors.ebabb02b.js" type="module"></script><script defer="defer" src="/js/app.5b7d4d9e.js" type="module"></script><link href="/css/chunk-vendors.b8cb9e53.css" rel="stylesheet"><link href="/css/app.9dca4aef.css" rel="stylesheet"><script defer="defer" src="/js/chunk-vendors-legacy.f624f594.js" nomodule></script><script defer="defer" src="/js/app-legacy.5c46ff8f.js" nomodule></script></head><body><noscript><strong>We're sorry but vue-antd-pro doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"><div class="first-loading-wrp"><h2>Landing</h2><div class="loading-wrp"><div class="pixel-cat-container"><div class="ground"></div><div class="pixel-cat"><div class="cat-head"><div class="cat-ear-left"></div><div class="cat-ear-right"></div><div class="cat-eye-left"></div><div class="cat-eye-right"></div><div class="cat-nose"></div><div class="cat-whiskers"></div></div><div class="cat-body"></div><div class="cat-leg-front-left"></div><div class="cat-leg-front-right"></div><div class="cat-leg-back-left"></div><div class="cat-leg-back-right"></div><div class="cat-tail"></div></div></div></div><div class="brand-text">QuantDinger</div></div></div></body></html>
|
||||
Vendored
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-16
File diff suppressed because one or more lines are too long
Vendored
-16
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user