:root{font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;color:#172337;background:#f3f6fa;font-size:14px;font-variant-numeric:tabular-nums}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #d7e0eb;border-radius:9px;background:#fff;color:#1762bf;padding:9px 14px;font-weight:600}button:hover{background:#edf5ff}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #2279e2;outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:#1769cf;border-color:#1769cf;color:#fff}.primary:hover{background:#0957b4}.wide{width:100%}input,select{border:1px solid #ccd7e3;background:#fff;border-radius:8px;padding:9px;color:#172337;max-width:100%}label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:#3d4e64}[hidden]{display:none!important}.muted,.hint,.data-info,.sidebar-note{color:#63748a;line-height:1.55}.hint{margin:0 0 14px}.error-text,.negative{color:#c63846!important}.positive{color:#128454!important}.neutral{color:#65768a}.login-screen{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(100%,390px);background:white;border:1px solid #e4ebf2;border-radius:18px;box-shadow:0 14px 48px #27466e13;padding:32px;display:grid;gap:16px}.login-card h1{margin:0;font-size:24px}.login-card p{margin:0}.brand-mark{display:inline-grid;place-items:center;background:#1769cf;color:white;border-radius:11px;width:38px;height:38px;font-weight:800}.shell{min-height:100vh;display:grid;grid-template-columns:218px minmax(0,1fr)}.sidebar{background:#fff;border-right:1px solid #e4eaf2;padding:24px 14px;display:flex;flex-direction:column;gap:30px}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:750;padding:0 8px;white-space:nowrap}.brand small{display:block;font-size:11px;font-weight:500;color:#6d7d91;margin-top:3px}.nav{display:grid;gap:5px}.nav button{border:0;text-align:left;color:#485d75;padding:12px}.nav button[aria-current="page"]{background:#eaf3ff;color:#1161c3}.sidebar-note{margin:auto 8px 0;font-size:12px}.main{min-width:0;padding:26px clamp(16px,3vw,40px) 56px;max-width:1600px;width:100%;margin:auto}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:17px}.topbar h1{font-size:26px;margin:2px 0}.eyebrow{color:#1769cf;font-size:12px;font-weight:700;letter-spacing:.08em;margin:0}.toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.compact-label{flex-direction:row;align-items:center;white-space:nowrap}.toggle{flex-direction:row;align-items:center;gap:5px;font-weight:500;white-space:nowrap}.toggle input{accent-color:#1769cf}.data-info{font-size:12px;margin:10px 0 20px}.notice{border-radius:10px;background:#fff4e5;color:#844a08;border:1px solid #f0d19f;padding:12px 15px;margin-bottom:12px}.content{display:grid;gap:18px}.card{background:#fff;border:1px solid #e3eaf2;border-radius:14px;padding:20px;min-width:0;box-shadow:0 2px 10px #1c3b6006}.card h2,.section-title{font-size:17px;margin:0 0 15px}.card p:last-child{margin-bottom:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.stat{min-height:112px}.stat .label{color:#62748b;font-size:13px}.stat .value{font-size:29px;font-weight:750;line-height:1.35;margin-top:10px;word-break:break-word}.stat .sub{font-size:12px;color:#6d7e92;margin-top:6px}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin-bottom:18px}.filters label{min-width:140px}.filters button{min-height:38px}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}.table th{font-size:12px;color:#61738a;background:#f6f8fb;font-weight:650}.table th,.table td{padding:11px 13px;border-bottom:1px solid #edf0f5}.table tr:last-child td{border-bottom:0}.table .num{text-align:right}.table button.link{border:0;padding:2px 0;background:none;color:#1769cf;font-weight:700}.table button.link:hover{text-decoration:underline}.small{font-size:12px;color:#697b90;line-height:1.5}.empty{color:#68798d;padding:18px 0;margin:0}.badge{display:inline-block;border-radius:999px;padding:3px 9px;background:#edf2f8;color:#4c617b;font-size:12px}.badge.warn{background:#fff2df;color:#92550c}.tag-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.list li{padding:10px 0;border-bottom:1px solid #edf0f5}.list li:last-child{border:0}.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:13px}.kv dt{font-size:12px;color:#697b90}.kv dd{margin:6px 0 0;font-weight:650;overflow-wrap:anywhere}.chart{width:100%;height:200px;display:block}.chart-label{font-size:11px;fill:#6c7e93}.pager{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}.pager span{color:#65768a}.error-inline{color:#c63846}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.dialog-head h2{margin:0;font-size:20px}.dialog-actions{display:flex;gap:8px;flex-wrap:wrap}#dialog-info{margin:0 0 16px}dialog{width:min(760px,calc(100% - 24px));max-height:85vh;border:1px solid #dce6ef;border-radius:16px;box-shadow:0 24px 70px #182d4b44;padding:24px;overflow:auto}dialog::backdrop{background:#14294388}#dialog-content{display:grid;gap:16px}.separator{border-top:1px solid #edf0f5;padding-top:16px}.footer-note{font-size:12px;color:#6a7b90;margin:0}@media(max-width:850px){.shell{display:block}.sidebar{padding:12px 16px;gap:12px}.brand{font-size:15px}.sidebar-note{display:none}.nav{display:flex;overflow-x:auto;gap:6px;padding-bottom:3px}.nav button{flex:none;white-space:nowrap;padding:9px 12px}.main{padding:20px 16px 40px}.split{grid-template-columns:1fr}.topbar h1{font-size:23px}}@media(max-width:520px){.toolbar{width:100%}.toolbar .compact-label{width:100%}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:14px;min-height:100px}.stat .value{font-size:22px}.filters label{flex:1 1 135px}.filters button{width:100%}.card{padding:16px}}
.filter-card{padding:0}
.filter-card>summary{display:flex;align-items:center;gap:10px;cursor:pointer;padding:16px 20px;font-weight:700;list-style:none}
.filter-card>summary::-webkit-details-marker{display:none}
.filter-card>summary::after{content:"展开";margin-left:auto;font-size:12px;font-weight:600;color:#1769cf}
.filter-card[open]>summary::after{content:"收起"}
.filter-card[open]>summary{border-bottom:1px solid #edf0f5}
.filter-card>summary .badge{flex:none}
.filter-form{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:16px 20px 4px}
.filter-form .toggle{flex-direction:row;align-items:center;gap:6px;font-weight:600}
.filter-form label{min-width:170px}
.filter-form input[type=number]{max-width:180px}
.filter-card>p{margin:0;padding:0 20px 12px}
.filter-card>p:last-child{padding-bottom:18px}
.filter-mini{font-size:11px;color:#6d7e92;margin-top:4px;white-space:normal;max-width:260px}
.monitor-indicator{display:flex;flex-direction:column;gap:6px;border:1px solid;border-left-width:5px;border-radius:10px;padding:14px 16px;margin-bottom:14px;overflow-wrap:anywhere}
.monitor-indicator strong{font-size:16px;display:flex;align-items:center;gap:8px}
.monitor-indicator strong::before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor;flex:none}
.monitor-indicator small{font-size:12px;opacity:.85}
.monitor-indicator.good{color:#136b42;background:#edf9f1;border-color:#86c7a0}
.monitor-indicator.warn{color:#844a08;background:#fff4e5;border-color:#f0d19f}
.monitor-indicator.danger{color:#a42335;background:#fff0f2;border-color:#e59aa6}
.recovery-indicator{display:flex;flex-direction:column;gap:6px;border:1px dashed;border-left-width:5px;border-radius:10px;padding:12px 16px;margin:-4px 0 14px;overflow-wrap:anywhere}
.recovery-indicator strong{font-size:14px;display:flex;align-items:center;gap:8px}
.recovery-indicator strong::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.recovery-indicator small{font-size:12px;opacity:.85}
.recovery-fields{font-size:12px;line-height:1.6;overflow-wrap:anywhere;white-space:normal}
.recovery-more summary{font-size:12px;cursor:pointer}
.recovery-more[open] .recovery-fields{display:block;margin-top:6px}
.recovery-indicator.warn{color:#844a08;background:#fffaef;border-color:#efce9c}
.recovery-indicator.danger{color:#a42335;background:#fff4f5;border-color:#e59aa6}
/* 最近事件（聊天明细/非正式账单）：作用域限定在 .recent-section，避免影响其它表格。 */
.recent-section .recent-table th{white-space:nowrap}
.recent-section .recent-table td{white-space:normal;vertical-align:top}
.recent-section .recent-table td.num{white-space:nowrap}
.recent-section .recent-nickname{display:inline-block;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.recent-section .recent-bets-wrap{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;max-width:100%}
.recent-section .recent-bets{overflow-wrap:anywhere;word-break:break-word}
.recent-section .recent-note{flex:none}
@media(max-width:600px){
  /* 375px 手机优先：每行叠成卡片，直接看到“谁下了什么”，不再横向滚动。 */
  .recent-section .recent-table thead{display:none}
  .recent-section .recent-table,
  .recent-section .recent-table tbody,
  .recent-section .recent-table tr,
  .recent-section .recent-table td{display:block;width:100%}
  .recent-section .recent-table tr{border:1px solid #e3eaf2;border-radius:12px;padding:10px 12px;margin-bottom:10px;background:#fbfdff}
  .recent-section .recent-table td{display:flex;gap:10px;align-items:flex-start;border:0;padding:4px 0;text-align:left}
  .recent-section .recent-table td::before{content:attr(data-label);flex:0 0 82px;color:#697b90;font-size:12px;font-weight:650;padding-top:1px}
  .recent-section .recent-table td.num{text-align:left}
  .recent-section .recent-table td.num::before{white-space:normal}
}

/* 模拟下注页：全部规则限定在模拟页面，避免影响其它页面。 */
#simulation-form .simulation-source-filter{min-width:220px}
#simulation-form .simulation-source-filter select{width:100%}
@media(max-width:520px){#simulation-form .simulation-source-filter{flex:1 1 100%;min-width:0}}
#page-simulation .simulation-table th{white-space:nowrap}
#page-simulation .simulation-table td{white-space:normal;vertical-align:top}
#page-simulation .sim-group{display:grid;gap:3px;min-width:150px;max-width:280px}
#page-simulation .sim-line{font-size:12px;line-height:1.5;overflow-wrap:anywhere}
#page-simulation .sim-line.muted{color:#697b90}
#page-simulation .sim-status{font-weight:700}
#page-simulation .sim-source{display:grid;gap:2px}
#page-simulation .sim-total{display:grid;gap:2px;text-align:right}
#page-simulation .filter-card>summary+form{padding-top:16px}
@media(max-width:600px){
  /* 375px 手机优先：每行叠成卡片，避免过宽横向滚动。 */
  #page-simulation .simulation-table thead{display:none}
  #page-simulation .simulation-table,
  #page-simulation .simulation-table tbody,
  #page-simulation .simulation-table tr,
  #page-simulation .simulation-table td{display:block;width:100%}
  #page-simulation .simulation-table tr{border:1px solid #e3eaf2;border-radius:12px;padding:10px 12px;margin-bottom:10px;background:#fbfdff}
  #page-simulation .simulation-table td{display:flex;gap:10px;align-items:flex-start;border:0;padding:4px 0;text-align:left}
  #page-simulation .simulation-table td::before{content:attr(data-label);flex:0 0 82px;color:#697b90;font-size:12px;font-weight:650;padding-top:1px}
  #page-simulation .simulation-table td.num{text-align:left}
  #page-simulation .sim-total{text-align:left}
  #page-simulation .sim-group{max-width:none}
}

/* 模拟单详情：与正式账单弹窗分开标识，输入金额不是我们的本金。 */
#dialog-content .simulation-detail{display:grid;gap:16px;min-width:0}
#dialog-content .simulation-detail .sim-line{line-height:1.65;overflow-wrap:anywhere}
#dialog-content .simulation-detail .sim-detail-status{font-size:18px;font-weight:750;color:#1161c3;margin-bottom:8px}
#dialog-content .simulation-detail .sim-detail-input{font-size:12px;color:#697b90;margin-top:10px}
#dialog-content .simulation-detail .simulation-detail-card .sim-line:nth-child(3){font-weight:650}
#dialog-content .simulation-detail .sim-detail-total{font-size:20px;font-weight:700;display:grid;gap:8px}
#dialog-content .simulation-detail .kv{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:600px){
  #dialog-content .simulation-detail .split{grid-template-columns:minmax(0,1fr)}
  #dialog-content .simulation-detail .sim-detail-status{font-size:16px}
}

/* 口径说明：明确 primary 口径（本结果未过滤 / 按阈值过滤），原始与已过滤可算合计分开显示；
   375px 手机可读，长原因与金额在任意位置换行，不影响其它表格作用域。 */
@media(max-width:420px){#issue-dialog .grid{grid-template-columns:1fr}}
.basis-note{font-weight:650;color:#3d4e64;overflow-wrap:anywhere;word-break:break-word}
.basis-compare{color:#5a6b80;overflow-wrap:anywhere;word-break:break-word}
.basis-mini{color:#3d4e64}
.day-detail{min-width:180px;max-width:340px;white-space:normal;overflow-wrap:anywhere}
.card h2{overflow-wrap:anywhere}
@media(max-width:600px){
  .basis-note,.basis-compare,.basis-mini{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
}

/* 参考区顶部可信封盘提醒：数字醒目，最后15秒强调；未知/失鲜不冒倒计时。 */
.reference-countdown{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px 20px;margin:0 0 18px;border:2px solid #b4d1f0;border-radius:12px;background:#edf5ff}
.reference-countdown-copy{min-width:0}
.reference-countdown-title{font-size:20px;margin:0 0 6px;color:#164d88}
.reference-countdown-copy p{margin:6px 0 0;overflow-wrap:anywhere}
.reference-countdown-value{font-size:56px;font-weight:800;line-height:1.15;color:#1161c3;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.reference-countdown.urgent,.reference-countdown.closed{border-color:#e4a58b;background:#fff1e8}
.reference-countdown.urgent .reference-countdown-value,.reference-countdown.closed .reference-countdown-value{color:#b42318}
.reference-countdown.elapsed{border-color:#e9c589;background:#fff8e9}
.reference-countdown.elapsed .reference-countdown-value{color:#945800}
.reference-countdown:not(.estimated):not(.closed):not(.elapsed){border-color:#d8e1ec;background:#f2f5f9}
.reference-countdown:not(.estimated):not(.closed):not(.elapsed) .reference-countdown-value{font-size:32px;color:#63748a}
/* 未过滤基础参考与可信策略分区；沿用双列/移动单列，不造额外滚动表。 */
.basic-reference{border-color:#b4d1f0;background:#f8fbff}
.basic-reference .basic-reference-card{border-color:#c5d9ee}
.basic-reference .basic-reference-card .kv{grid-template-columns:repeat(2,minmax(0,1fr))}
.basic-reference .basic-reference-card .kv dd{overflow-wrap:anywhere;word-break:break-word}
.basic-reference .basic-reference-status{font-weight:650;overflow-wrap:anywhere}
.basic-reference .basic-reference-status.current{color:#1161a6}
.basic-reference .basic-reference-status.historical{color:#844a08}
@media(max-width:600px){
  .reference-countdown{grid-template-columns:minmax(0,1fr);gap:12px;padding:16px}
  .reference-countdown-value{font-size:44px}
  .reference-countdown-title{font-size:18px}
}

/* 外部盘口登录管理页：局部样式，只作用于本页地址行、状态徽标与验证码弹窗。 */
#page-external-login .badge.good{background:#e7f6ec;color:#136b42}
#page-external-login .badge.danger{background:#fdecef;color:#a42335}
.external-status-card{display:grid;gap:10px}
.external-status-card .kv{margin:2px 0}
#external-betting-content{margin-bottom:16px}
#external-betting-content p{overflow-wrap:anywhere}
.external-status-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.external-address-list{display:grid;gap:10px;margin-bottom:12px}
.external-address-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.external-address-row .external-address-input{flex:1 1 260px;min-width:0}
.external-address-choice{flex-direction:row;align-items:center;gap:6px;font-weight:600;min-width:76px}
.external-captcha{display:flex;align-items:center;gap:12px;margin:12px 0}
#external-captcha-image{width:160px;height:60px;border:1px solid #ccd7e3;border-radius:8px;background:#fff;object-fit:contain}
@media(max-width:420px){
  .external-address-row{align-items:stretch}
  .external-address-row .external-address-input{flex:1 1 100%}
}

/* 外部盘口自动执行控制台：只作用于本页控制/上限/订单/次级设置，不改变全局导航与认证。 */
.external-control-card .kv dd,.external-limit-card .kv dd{overflow-wrap:anywhere}
.external-control-card .badge.good,.external-settings>summary .badge.good{background:#e7f6ec;color:#136b42}
.external-control-card .badge.danger,.external-settings>summary .badge.danger{background:#fdecef;color:#a42335}
.external-settings{padding:0}
.external-settings>summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;cursor:pointer;padding:16px 20px;font-weight:700;list-style:none}
.external-settings>summary::-webkit-details-marker{display:none}
.external-settings>summary::after{content:"展开";margin-left:auto;font-size:12px;font-weight:600;color:#1769cf}
.external-settings[open]>summary::after{content:"收起"}
.external-settings[open]>summary{border-bottom:1px solid #edf0f5}
.external-settings>summary .badge{flex:none}
.external-settings-body{display:grid;gap:16px;padding:16px 16px 20px}
.external-settings-body .card{box-shadow:none}
.external-orders-card .empty{margin:0}
/* 运行记录加载状态固定在标题同行：空闲时保留同样尺寸，不挤动列表和分页。 */
.external-events-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:15px}
.external-events-heading h2{margin:0}
#external-betting-events-loading{margin:0;min-height:1.5em;min-width:10em;white-space:nowrap;text-align:right}
.external-events-card button[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
/* 运行记录紧凑只读表格：只有稳定子容器横滚，状态提示保持可见，不让整页横向溢出；
   格内自然换行、长原因全文可读，不截断、不用省略号或 hover 替代。 */
.external-events-scroll{overflow-x:auto;max-width:100%;min-width:0}
.external-events-status{display:grid;gap:8px}
.external-events-status p{overflow-wrap:anywhere;word-break:break-word}
.external-events-status:empty{display:none}
.external-events-table{width:100%;min-width:640px;border-collapse:collapse;text-align:left}
.external-events-table th{font-size:12px;color:#61738a;background:#f6f8fb;font-weight:650;white-space:nowrap}
.external-events-table th,.external-events-table td{padding:7px 9px;border-bottom:1px solid #edf0f5;vertical-align:top;white-space:normal;overflow-wrap:anywhere;word-break:break-word;font-size:13px;line-height:1.5}
.external-events-table th,.external-events-table td:nth-child(3),.external-events-table td:nth-child(4),.external-events-table td:nth-child(5){white-space:nowrap;overflow-wrap:normal;word-break:normal}
.external-events-table td:last-child{overflow-wrap:normal;word-break:keep-all}
.external-events-table tr:last-child td{border-bottom:0}
.external-events-reason{min-width:200px}
/* 账号每日报表：标题旁固定加载位；只有表格子容器横滚，移动端不让整页横向溢出。 */
.external-report-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}
.external-report-heading h2{margin:0}
#external-report-loading{margin:0;min-height:1.5em;min-width:10em;white-space:nowrap;text-align:right}
.external-report-scroll{overflow-x:auto;max-width:100%;min-width:0}
.external-report-status{display:grid;gap:8px}
.external-report-status p{overflow-wrap:anywhere;word-break:break-word}
.external-report-status:empty{display:none}
.external-report-table{width:100%;min-width:720px;border-collapse:collapse;text-align:left;white-space:nowrap}
.external-report-table th{font-size:12px;color:#61738a;background:#f6f8fb;font-weight:650}
.external-report-table th,.external-report-table td{padding:8px 10px;border-bottom:1px solid #edf0f5;font-size:13px;line-height:1.5}
.external-report-table tr:last-child td{border-bottom:0}
.external-report-total th,.external-report-total td{font-weight:700;background:#f6f8fb;border-top:2px solid #d7e0eb}
/* 每日止盈止损：标题旁状态徽标与止盈/止损表单，移动端自然换行；不改全局布局。 */
.external-risk-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}
.external-risk-heading h2{margin:0}
.external-risk-card #external-betting-risk-current,.external-risk-card #external-betting-risk-result,.external-risk-card #external-betting-risk-trigger{overflow-wrap:anywhere;word-break:break-word}
.external-risk-card .badge.good{background:#e7f6ec;color:#136b42}
.external-risk-card .badge.danger{background:#fdecef;color:#a42335}
/* 只给键盘/读屏用户的横滚说明，不占视觉空间。 */
.external-events-hint{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#external-betting-confirm .kv{margin:2px 0 14px}
#external-betting-confirm .toolbar{justify-content:flex-end}
@media(max-width:600px){
  .external-settings-body{padding:12px 10px 16px}
  .external-settings>summary{padding:14px}
}
