/* V6.2 多头比例价差保护回撤策略 — 共享样式 */
:root {
  color-scheme: dark;
  --plane: #0d0d0d;
  --surface: #1a1a19;
  --surface-2: #222220;
  --ink: #ffffff;
  --ink-2: #c3c2b7;
  --muted: #898781;
  --grid: #2c2c2a;
  --border: rgba(255,255,255,0.10);
  --buy: #3987e5;          /* 买腿(蓝) */
  --sell: #d95926;         /* 卖腿(橙) */
  --accent: #3987e5;
  --accent-track: rgba(57,135,229,0.16);
  --good: #0ca30c;
  --warn: #fab219;
  --crit: #d03b3b;
  --up: #199e70;           /* K线涨 */
  --down: #d03b3b;         /* K线跌 */
}
* { box-sizing: border-box; margin: 0; }
html { font-size: 16px; }
body { background: var(--plane); color: var(--ink-2);
       font-family: system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif;
       font-size: 0.9375rem; line-height: 1.5; padding: 22px 28px 36px; }
.num { font-variant-numeric: tabular-nums; }
.code { font-family: ui-monospace, Consolas, monospace; letter-spacing: 0.01em; }
.wrap { max-width: 1180px; margin: 0 auto; }

header { display: flex; justify-content: space-between; align-items: flex-start;
         gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
h1 { color: var(--ink); font-size: 1.5rem; font-weight: 650; letter-spacing: -0.01em; }
.subtitle { color: var(--muted); font-size: 0.875rem; margin-top: 4px; }
.head-right { text-align: right; display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.chips { display: flex; gap: 8px; }
.chip { display: inline-flex; align-items: center; gap: 7px; padding: 5px 13px;
        border-radius: 999px; font-size: 0.8125rem; font-weight: 600; border: 1px solid var(--border); }
.chip .dot { width: 8px; height: 8px; border-radius: 999px; background: var(--muted); }
.chip.live { color: #ffd68a; border-color: rgba(250,178,25,0.35); }
.chip.live .dot { background: var(--warn); }
.chip.dry { color: var(--ink-2); }
.chip.on { color: #7fd67f; border-color: rgba(12,163,12,0.35); }
.chip.on .dot { background: var(--good); }
.clock { color: var(--muted); font-size: 0.8125rem; }

/* ---------- 页面导航 ---------- */
.nav { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; padding: 5px;
       border: 1px solid var(--border); border-radius: 10px; background: var(--surface);
       flex-wrap: wrap; }
.nav a { padding: 9px 18px; border-radius: 7px; color: var(--muted); text-decoration: none;
         font-weight: 650; font-size: 0.9375rem; }
.nav a:hover { color: var(--ink-2); background: rgba(255,255,255,0.03); }
.nav a.active { color: var(--ink); background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--border); }

.card { background: var(--surface); border: 1px solid var(--border);
        border-radius: 8px; padding: 20px 22px; }
.card h2 { color: var(--muted); font-size: 0.75rem; font-weight: 650;
           text-transform: uppercase; letter-spacing: 0.14em; margin-bottom: 4px; }
.card .caption { color: var(--muted); font-size: 0.8125rem; margin-bottom: 14px; }
.grid { display: grid; gap: 16px; margin-top: 16px; }
.grid.cols-2 { grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); }
.tiles { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }

/* ---------- 控制区 ---------- */
.control { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.btn { border: 0; border-radius: 8px; padding: 12px 22px; font-size: 1rem;
       font-weight: 700; cursor: pointer; font-family: inherit;
       transition: transform 0.06s, opacity 0.15s; }
.btn:active { transform: scale(0.97); }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn.start { background: var(--good); color: #fff; }
.btn.stop { background: var(--crit); color: #fff; }
.btn.danger { background: rgba(208,59,59,0.18); border: 1px solid rgba(208,59,59,0.52);
              color: #ffb3b3; }
.btn.danger:hover { border-color: rgba(208,59,59,0.8); color: #ffd0d0; }
.btn.danger-all { color:#fff; background:#a92727; border:1px solid #d34a4a;
                  box-shadow:0 0 0 1px rgba(208,59,59,.15),0 6px 18px rgba(130,25,25,.16); }
.btn.danger-all:hover { background:#bd3030; border-color:#ef6a6a; }
.btn.ghost { background: transparent; border: 1px solid var(--border);
             color: var(--ink-2); font-size: 0.9375rem; font-weight: 600; padding: 12px 20px; }
.btn.ghost:hover { border-color: var(--warn); color: #ffd68a; }
.btn.warn { background: rgba(250,178,25,0.16); border: 1px solid rgba(250,178,25,0.4);
            color: #ffd68a; }
.sys-state { display: flex; align-items: center; gap: 10px; }
.control-note { margin-top:11px; color:var(--muted); font-size:.76rem; }
.sys-state .lamp { width: 14px; height: 14px; border-radius: 999px; background: var(--muted); }
.sys-state.on .lamp { background: var(--good); box-shadow: 0 0 10px rgba(12,163,12,0.6);
                      animation: pulse 1.8s ease-in-out infinite; }
.sys-state .txt { color: var(--ink); font-weight: 650; font-size: 1.0625rem; }
.status-strip { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr));
                gap: 10px; width: 100%; margin-top: 4px; }
.stat { background: var(--surface-2); border: 1px solid var(--border);
        border-radius: 8px; padding: 10px 12px; min-height: 62px; }
.stat .s-label { color: var(--muted); font-size: 0.75rem; }
.stat .s-value { color: var(--ink); font-size: 1.05rem; font-weight: 650; margin-top: 2px; }
.stat .s-value.entry-ready { color:#73d7a9; }
.stat .s-value.entry-blocked { color:#ff8585; }
.stat .s-value.entry-waiting { color:#ffd68a; }
.stat .s-value.entry-position { color:#9cc4f2; }
.stat .s-sub { color: var(--muted); font-size: 0.75rem; margin-top: 1px; }
.entry-readiness-bar { display:flex; align-items:center; gap:11px; margin-top:10px; padding:10px 13px;
                       border:1px solid var(--border); border-radius:8px; background:var(--surface-2); }
.entry-readiness-icon { display:grid; place-items:center; flex:0 0 25px; width:25px; height:25px;
                        border-radius:50%; font-weight:800; background:rgba(250,178,25,.12); color:#ffd68a; }
.entry-readiness-bar div { min-width:0; display:flex; flex-direction:column; gap:2px; }
.entry-readiness-bar strong { color:var(--ink); font-size:.84rem; }
.entry-readiness-bar span:not(.entry-readiness-icon) { color:var(--muted); font-size:.75rem; overflow-wrap:anywhere; }
.entry-readiness-bar.ready { border-color:rgba(25,158,112,.45); background:rgba(25,158,112,.055); }
.entry-readiness-bar.ready .entry-readiness-icon { color:#73d7a9; background:rgba(25,158,112,.14); }
.entry-readiness-bar.blocked { border-color:rgba(208,59,59,.42); background:rgba(208,59,59,.045); }
.entry-readiness-bar.blocked .entry-readiness-icon { color:#ff8585; background:rgba(208,59,59,.14); }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.5; } }

/* ---------- Testnet 实时账户持仓 ---------- */
.position-live-meta { display:flex; flex-direction:column; align-items:flex-end; gap:5px; color:var(--muted); font-size:.74rem; }
.position-live-meta .section-badge { display:inline-flex; align-items:center; gap:6px; }
.position-live-meta .dot { width:7px; height:7px; border-radius:50%; background:var(--good); box-shadow:0 0 8px rgba(12,163,12,.55); }
.live-position-summary { display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin:2px 0 10px;
                         color:var(--muted); font-size:.8rem; }
.live-position-summary strong { color:var(--ink); margin-left:5px; }
.account-position-table { overflow-x:auto; }
.position-side { display:inline-flex; min-width:43px; justify-content:center; padding:2px 7px; border-radius:99px;
                 font-size:.72rem; font-weight:750; border:1px solid transparent; }
.position-side.long { color:#72d6b1; background:rgba(25,158,112,.10); border-color:rgba(25,158,112,.35); }
.position-side.short { color:#ff9e9e; background:rgba(208,59,59,.10); border-color:rgba(208,59,59,.35); }
.qty-long,.pnl-positive { color:#55cfa3 !important; }
.qty-short,.pnl-negative { color:#ff8585 !important; }
.live-position-empty { min-height:128px; }

/* ---------- 图表 ---------- */
.chart-head { display: flex; justify-content: space-between; align-items: baseline;
              gap: 16px; flex-wrap: wrap; margin-bottom: 10px; }
.px { color: var(--ink); font-size: 1.75rem; font-weight: 650; }
.px .d { font-size: 0.9375rem; font-weight: 600; margin-left: 8px; }
.legend { display: flex; gap: 18px; font-size: 0.8125rem; color: var(--muted); align-items: center; }
.legend .k { display: inline-flex; align-items: center; gap: 6px; }
.legend .sw { width: 11px; height: 11px; border-radius: 3px; }
.legend .ln { width: 16px; height: 2px; }
.trade-marker-legend { display:flex; gap:13px; flex-wrap:wrap; font-size:.74rem; font-weight:700; }
.trade-marker-legend .marker-open { color:#55cfa3; }
.trade-marker-legend .marker-reduce { color:#ffd068; }
.trade-marker-legend .marker-close { color:#ff8585; }
#chart { height: 360px; }
.chart-fallback { height: 400px; display: flex; align-items: center; justify-content: center;
                  color: var(--muted); border: 1px dashed var(--grid); border-radius: 10px; }
.asset-tabs { display: inline-flex; gap: 6px; padding: 4px; border: 1px solid var(--border);
              border-radius: 8px; background: rgba(255,255,255,0.025); margin-bottom: 12px; }
.asset-tab { border: 0; border-radius: 6px; padding: 7px 14px; color: var(--muted);
             background: transparent; font-family: inherit; font-weight: 700; cursor: pointer; }
.asset-tab.active { color: var(--ink); background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--border); }

/* ---------- 流水线 ---------- */
.execution-hero { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 16px; align-items: center;
                  padding: 18px 22px; margin-bottom: 16px; border: 1px solid var(--border);
                  border-radius: 12px; background: linear-gradient(135deg, var(--surface), #151515); }
.execution-hero.running { border-color: rgba(57,135,229,.48); box-shadow: 0 0 24px rgba(57,135,229,.10); }
.execution-pulse { width: 15px; height: 15px; border-radius: 50%; background: var(--muted); }
.execution-hero.running .execution-pulse { background: var(--accent); box-shadow: 0 0 0 7px rgba(57,135,229,.12);
                                            animation: executionPulse 1.5s ease-in-out infinite; }
.execution-copy { min-width: 0; }
.execution-kicker { color: var(--muted); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.execution-title { color: var(--ink); font-size: 1.3rem; font-weight: 720; margin-top: 2px; }
.execution-detail { color: var(--ink-2); margin-top: 2px; overflow-wrap: anywhere; }
.execution-progress { width: 100%; max-width: 560px; height: 6px; margin-top: 10px; border-radius: 99px;
                      background: var(--accent-track); overflow: hidden; }
.execution-progress span { display: block; height: 100%; background: var(--accent); border-radius: inherit; transition: width .35s ease; }
.maker-leg-progress { grid-column:1/-1; display:grid; gap:9px; padding-top:4px; }
.maker-leg-row { display:grid; grid-template-columns:minmax(0,1fr) 150px 92px; align-items:center; gap:12px;
                 padding:9px 11px; border:1px solid var(--grid); border-radius:8px; background:rgba(255,255,255,.016); }
.maker-leg-row > div:first-child { display:flex; align-items:center; gap:9px; min-width:0; }
.maker-leg-row > div:first-child span { color:#9cc4f2; font-size:.68rem; font-weight:750; }
.maker-leg-row > div:first-child b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ink-2); }
.maker-leg-row > div:first-child em { margin-left:auto; color:var(--ink-2); font-style:normal; font-size:.74rem; }
.maker-leg-row small { color:var(--muted); text-align:right; }
.maker-leg-bar { height:5px; border-radius:99px; background:rgba(255,255,255,.07); overflow:hidden; }
.maker-leg-bar span { display:block; height:100%; border-radius:inherit; background:var(--accent); transition:width .3s ease; }
@keyframes executionPulse { 0%,100% { transform: scale(.82); opacity:.65; } 50% { transform: scale(1.12); opacity:1; } }
.section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.section-heading .caption { margin-bottom:0; }
.section-badge { display:inline-flex; align-items:center; gap:6px; padding:3px 9px; border-radius:99px;
                 color:#8dd98d; background:rgba(12,163,12,.09); border:1px solid rgba(12,163,12,.32);
                 font-size:.72rem; font-weight:750; }
.section-badge::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--good);
                         box-shadow:0 0 8px rgba(12,163,12,.65); }
.executor-card .execution-hero { margin:16px 0 0; }
.pipeline-card { overflow: hidden; }
.pipeline { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.step { min-width: 0; padding: 14px; border: 1px solid var(--grid); border-radius: 10px;
        background: rgba(255,255,255,.012); transition: border-color .2s, background .2s, transform .2s; }
.step .s-name { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; color: var(--muted);
                font-weight: 680; font-size: .9rem; overflow-wrap: anywhere; }
.step .s-desc { color: var(--muted); font-size: .78rem; margin-top: 7px; line-height: 1.55; }
.step.done { border-color: rgba(12,163,12,.34); background: rgba(12,163,12,.045); }
.step.done .s-name { color: #8dd98d; }
.step.active { border-color: rgba(57,135,229,.72); background: rgba(57,135,229,.10); transform: translateY(-2px); }
.step.active .s-name { color: var(--ink); }
.step.active .s-desc { color: #d6e7fa; }
.step .s-tag { display: inline-flex; margin: 0; padding: 2px 7px; border-radius: 99px; white-space: nowrap;
               font-size: .7rem; font-weight: 700; color: #9cc4f2; background: rgba(57,135,229,.14); }
.step.done .s-tag { color: #8dd98d; background: rgba(12,163,12,.12); }
.step.active .s-tag { animation: pulse 1.6s ease-in-out infinite; }

/* ---------- 指标/持仓 ---------- */
.tile { background: var(--surface-2); border: 1px solid var(--border);
        border-radius: 8px; padding: 14px 16px; }
.tile .t-label { color: var(--muted); font-size: 0.8125rem; }
.tile .t-value { color: var(--ink); font-size: 1.625rem; font-weight: 650; margin-top: 2px; }
.tile .t-sub { color: var(--muted); font-size: 0.8125rem; margin-top: 2px; }
.tile .t-value .unit { color: var(--muted); font-size: 0.875rem; font-weight: 500; margin-left: 3px; }
.meter { position: relative; height: 10px; background: var(--accent-track);
         border-radius: 999px; margin-top: 10px; }
.meter .fill { position: absolute; left: 0; top: 0; bottom: 0; background: var(--accent);
               border-radius: 999px 4px 4px 999px; min-width: 4px; transition: width 0.4s; }
.meter .thresh { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--warn); }
.meter .thresh::after { content: attr(data-lbl); position: absolute; top: -18px; left: 50%;
                        transform: translateX(-50%); font-size: 0.6875rem; color: var(--muted); white-space: nowrap; }
.meter .thresh.end::after { left: auto; right: 0; transform: none; }
.meter.hit .fill { background: var(--good); }
.meter.warn .fill { background: var(--warn); }
.meter.bad .fill { background: var(--crit); }
.tile.good { border-color: rgba(12,163,12,0.48); background: rgba(12,163,12,0.075); }
.tile.warn { border-color: rgba(250,178,25,0.46); background: rgba(250,178,25,0.075); }
.tile.bad { border-color: rgba(208,59,59,0.44); background: rgba(208,59,59,0.07); }
.tile.good .t-value, .tile.good .t-label { color: #7fd67f; }
.condition-tile { min-width:0; padding:15px; }
.condition-tile-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.condition-tile-head .t-label { font-size:.84rem; font-weight:720; color:var(--ink-2); }
.condition-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-top:13px; }
.condition-metric { min-width:0; padding:9px 8px; border-radius:7px; border:1px solid rgba(255,255,255,.07);
                    background:rgba(0,0,0,.16); }
.condition-metric span { display:block; color:var(--muted); font-size:.66rem; white-space:nowrap; }
.condition-metric strong { display:block; margin-top:4px; color:#9cc4f2;
                           font-size:clamp(.92rem,1.15vw,1.08rem); line-height:1.15;
                           white-space:nowrap; letter-spacing:-.025em; font-variant-numeric:tabular-nums; }
.condition-metric.pass strong { color:#62d69f; }
.condition-metric.fail strong { color:#ff8585; }
.condition-metric.threshold strong { color:#ffd068; }
.condition-detail { margin-top:10px; color:var(--muted); font-size:.72rem; line-height:1.5; }
.recent-tr-list { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.recent-tr-list > span:first-child { margin-right:2px; color:var(--muted); }
.tr-chip { display:inline-flex; align-items:center; gap:4px; padding:3px 6px; border-radius:5px;
           border:1px solid rgba(57,135,229,.22); background:rgba(57,135,229,.07); color:#9bb3d1; }
.tr-chip b { color:#d7e8fb; font-size:.71rem; }
.condition-data-warning { grid-column:1/-1; padding:10px 12px; border-radius:8px; color:#ffd68a;
                          border:1px solid rgba(250,178,25,.38); background:rgba(250,178,25,.075);
                          font-size:.78rem; font-weight:700; }
.section-kicker { margin-bottom:3px; color:#7da7d8; font-size:.68rem; font-weight:800;
                  letter-spacing:.1em; text-transform:uppercase; }
.signal-summary { grid-column:1/-1; display:flex; align-items:center; gap:14px; padding:12px 14px;
                  border:1px solid rgba(208,59,59,.42); border-radius:9px; background:rgba(208,59,59,.05); }
.signal-summary.ready { border-color:rgba(25,158,112,.45); background:rgba(25,158,112,.055); }
.signal-condition-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.signal-score { display:flex; flex-direction:column; align-items:center; justify-content:center; flex:0 0 72px;
                padding-right:14px; border-right:1px solid rgba(255,255,255,.09); }
.signal-score strong { color:#ff8585; font-size:1.45rem; line-height:1; }
.signal-summary.ready .signal-score strong { color:#62d69f; }
.signal-score span,.signal-summary > div:last-child span { display:block; color:var(--muted); font-size:.69rem; margin-top:4px; }
.signal-summary > div:last-child b { color:var(--ink); font-size:.87rem; }
.plain-rule { margin-bottom:7px; color:var(--ink-2); }
.tr-chip.pass { border-color:rgba(25,158,112,.3); background:rgba(25,158,112,.08); }
.tr-chip.pass b,.tr-chip.pass em { color:#62d69f; }
.tr-chip.fail { border-color:rgba(208,59,59,.32); background:rgba(208,59,59,.08); }
.tr-chip.fail b,.tr-chip.fail em { color:#ff8585; }
.tr-chip em { font-style:normal; font-weight:800; }
.strategy-subsection { margin-top:18px; padding-top:16px; border-top:1px solid var(--grid); }
.strategy-subsection h3 { color:var(--ink-2); font-size:.9rem; margin:0; }
.strategy-subsection .tiles { margin-top:10px; }
.risk-admission-grid .condition-tile { max-width:720px; }
.runtime-checks { margin-top:10px; border:1px solid var(--grid); border-radius:9px; background:rgba(255,255,255,.012); }
.runtime-checks summary { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:10px;
                          padding:11px 13px; cursor:pointer; color:var(--ink-2); font-size:.78rem; list-style:none; }
.runtime-checks summary::-webkit-details-marker { display:none; }
.runtime-checks summary b { color:#9cc4f2; }
.runtime-checks summary em { color:var(--muted); font-style:normal; }
.runtime-checks[open] summary em { font-size:0; }
.runtime-checks[open] summary em::after { content:"收起"; font-size:.78rem; }
.runtime-checks .entry-gates { margin:0; padding:0 12px 12px; }
.condition-list { display: grid; gap: 8px; margin-top: 12px; }
.condition-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; align-items: center;
                 gap: 10px; padding: 8px 10px; border: 1px solid var(--grid); border-radius: 8px;
                 background: rgba(255,255,255,0.015); }
.condition-row.good { border-color: rgba(12,163,12,0.46); background: rgba(12,163,12,0.08); }
.condition-row.warn { border-color: rgba(250,178,25,0.42); background: rgba(250,178,25,0.07); }
.condition-row.bad { border-color: rgba(208,59,59,0.38); background: rgba(208,59,59,0.06); }
.condition-op { color: var(--muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; }
.condition-name { color: var(--ink-2); font-size: 0.875rem; min-width: 0; }
.condition-row.good .condition-name { color: #c7f0c7; }
.condition-val { color: var(--ink); font-weight: 650; white-space: nowrap; }
.status-pill { border-radius: 999px; padding: 2px 8px; font-size: 0.75rem; font-weight: 700;
               border: 1px solid var(--border); color: var(--muted); }
.status-pill.good { border-color: rgba(12,163,12,0.48); color: #7fd67f; }
.status-pill.warn { border-color: rgba(250,178,25,0.45); color: #ffd68a; }
.status-pill.bad { border-color: rgba(208,59,59,0.45); color: #f1a0a0; }
.ratio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-top: 14px; }
.entry-state-badge { display:inline-flex; align-items:center; padding:3px 10px; border-radius:99px;
                     color:var(--muted); border:1px solid var(--grid); background:rgba(255,255,255,.02);
                     font-size:.72rem; font-weight:750; white-space:nowrap; }
.entry-state-badge.ready { color:#8dd98d; border-color:rgba(12,163,12,.38); background:rgba(12,163,12,.08); }
.entry-state-badge.blocked { color:#f1a0a0; border-color:rgba(208,59,59,.4); background:rgba(208,59,59,.08); }
.entry-state-badge.waiting { color:#ffd68a; border-color:rgba(250,178,25,.38); background:rgba(250,178,25,.07); }
.entry-state-badge.position { color:#9cc4f2; border-color:rgba(57,135,229,.4); background:rgba(57,135,229,.08); }
.entry-reason { display:grid; grid-template-columns:38px minmax(0,1fr); gap:12px; align-items:center;
                margin-top:15px; padding:14px 16px; border:1px solid var(--grid); border-radius:10px;
                background:rgba(255,255,255,.018); }
.entry-reason.blocked { border-color:rgba(208,59,59,.34); background:rgba(208,59,59,.055); }
.entry-reason.ready { border-color:rgba(12,163,12,.36); background:rgba(12,163,12,.055); }
.entry-reason.waiting { border-color:rgba(250,178,25,.3); background:rgba(250,178,25,.045); }
.entry-reason.position { border-color:rgba(57,135,229,.34); background:rgba(57,135,229,.05); }
.entry-reason-icon { display:grid; place-items:center; width:32px; height:32px; border-radius:50%;
                     color:var(--ink); background:rgba(255,255,255,.07); font-weight:850; }
.entry-reason.blocked .entry-reason-icon { color:#ffb3b3; background:rgba(208,59,59,.16); }
.entry-reason.ready .entry-reason-icon { color:#9ee39e; background:rgba(12,163,12,.16); }
.entry-reason.waiting .entry-reason-icon { color:#ffd68a; background:rgba(250,178,25,.14); }
.entry-reason small { display:block; color:var(--muted); font-size:.72rem; margin-bottom:2px; }
.entry-reason strong { display:block; color:var(--ink); font-size:.95rem; font-weight:680; overflow-wrap:anywhere; }
.entry-gates { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:10px; }
.entry-gate { display:grid; grid-template-columns:24px minmax(0,1fr); gap:8px; align-items:center;
              min-width:0; padding:9px 10px; border:1px solid var(--grid); border-radius:8px;
              background:rgba(255,255,255,.012); }
.entry-gate.pass { border-color:rgba(12,163,12,.25); }
.entry-gate.fail { border-color:rgba(208,59,59,.28); background:rgba(208,59,59,.025); }
.entry-gate-icon { display:grid; place-items:center; width:20px; height:20px; border-radius:50%;
                   font-size:.7rem; font-weight:850; }
.entry-gate.pass .entry-gate-icon { color:#8dd98d; background:rgba(12,163,12,.14); }
.entry-gate.fail .entry-gate-icon { color:#f1a0a0; background:rgba(208,59,59,.14); }
.entry-gate strong { display:block; color:var(--ink-2); font-size:.78rem; font-weight:680; }
.entry-gate span:not(.entry-gate-icon) { display:block; color:var(--muted); font-size:.7rem; margin-top:1px;
                                          overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rule-title { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.rule-title .logic { color: var(--muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; }

.side-chip { display: inline-flex; align-items: center; gap: 7px; padding: 4px 12px;
             border-radius: 8px; font-weight: 650; font-size: 0.9375rem; color: var(--ink); }
.side-chip .sw { width: 12px; height: 12px; border-radius: 3px; }
.side-chip.buy { background: rgba(57,135,229,0.14); }
.side-chip.buy .sw { background: var(--buy); }
.side-chip.sell { background: rgba(217,89,38,0.14); }
.side-chip.sell .sw { background: var(--sell); }
.leg-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.leg-head .inst { color: var(--ink); font-size: 1.0625rem; font-weight: 600; }
.quote-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 12px 0 14px; }
.quote-cell { min-width: 0; padding: 10px 12px; border: 1px solid var(--grid); border-radius: 9px;
              background: rgba(255,255,255,.018); }
.quote-cell span { display: block; color: var(--muted); font-size: .72rem; }
.quote-cell strong { display: block; color: var(--ink); font-size: .95rem; margin-top: 3px;
                     overflow-wrap: anywhere; }
.quote-cell.bid { border-color: rgba(25,158,112,.26); }
.quote-cell.ask { border-color: rgba(208,59,59,.28); }
.quote-cell.mine { border-color: color-mix(in srgb, var(--order-color) 55%, transparent); background: rgba(57,135,229,.06); }
.kv-row { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0;
          border-top: 1px solid var(--grid); font-size: 0.9375rem; }
.kv-row:first-of-type { border-top: 0; }
.kv-row .k { color: var(--muted); }
.kv-row .v { color: var(--ink-2); }
.kv-row .v strong { color: var(--ink); font-weight: 650; }
.hedge-alert { margin-top: 12px; padding: 9px 13px; border-radius: 8px;
               background: rgba(250,178,25,0.10); border: 1px solid rgba(250,178,25,0.3);
               color: #ffd68a; font-size: 0.875rem; font-weight: 600; }
.pnl-pos { color: var(--good) !important; }
.pnl-neg { color: var(--crit) !important; }

/* ---------- 历史表格 ---------- */
table.hist { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
table.hist th { text-align: left; color: var(--muted); font-weight: 600; font-size: 0.8125rem;
                padding: 8px 10px; border-bottom: 1px solid var(--grid); white-space: nowrap; }
table.hist td { padding: 9px 10px; border-bottom: 1px solid var(--grid);
                color: var(--ink-2); white-space: nowrap; }
table.hist tr:hover td { background: rgba(255,255,255,0.02); }
.trade-records { display:grid; gap:16px; margin-top:16px; }
.trade-record { border:1px solid var(--border); border-radius:14px; padding:18px; background:rgba(255,255,255,0.018); }
.trade-record-head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }
.trade-record > summary { cursor:pointer; list-style:none; user-select:none; }
.trade-record > summary::-webkit-details-marker { display:none; }
.trade-record-head h3 { margin:8px 0 5px; font-size:1.05rem; }
.trade-record-head time { color:var(--muted); font-size:.82rem; }
.trade-record-actions { display:flex; align-items:center; gap:9px; }
.trade-record-toggle { color:var(--muted); font-size:.76rem; white-space:nowrap; }
.trade-record-toggle::before { content:"展开详情⌄"; }
.trade-record[open] .trade-record-toggle::before { content:"收起详情⌃"; }
.trade-record-body { padding-top:2px; }
.trade-status { border:1px solid var(--border); border-radius:999px; padding:5px 10px; color:var(--text); white-space:nowrap; font-size:.78rem; }
.trade-status.complete { border-color:rgba(28,184,65,.55); color:var(--good); }
.trade-status.partial { border-color:rgba(255,184,67,.6); color:var(--warn); }
.trade-status.failed { border-color:rgba(255,93,122,.55); color:var(--crit); }
.trade-record.account-close.partial { border-color:rgba(255,184,67,.45); }
.trade-record.account-close.failed { border-color:rgba(255,93,122,.42); }
.trade-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(145px,1fr)); gap:10px; margin-top:16px; }
.trade-summary-grid > div { border:1px solid var(--grid); border-radius:10px; padding:11px 12px; background:var(--panel-soft); }
.trade-summary-grid small { display:block; color:var(--muted); margin-bottom:7px; }
.trade-summary-grid strong { font-size:1rem; }
.trade-summary-grid .good { border-color:rgba(28,184,65,.55); }
.trade-summary-grid .good strong { color:var(--good); }
.trade-summary-grid .bad { border-color:rgba(255,93,122,.55); }
.trade-summary-grid .bad strong { color:var(--crit); }
.remaining-position-alert { display:flex; align-items:flex-start; gap:12px; margin-top:12px; padding:11px 13px; border:1px solid rgba(255,93,122,.45); border-radius:10px; background:rgba(255,93,122,.07); }
.remaining-position-alert strong { color:var(--crit); white-space:nowrap; }
.remaining-position-alert span { color:var(--ink-2); line-height:1.5; overflow-wrap:anywhere; }
.remaining-position-alert.complete { border-color:rgba(28,184,65,.45); background:rgba(28,184,65,.07); }
.remaining-position-alert.complete strong { color:var(--good); }
.fill-missed td { color:var(--muted); }
.fill-missed td:first-child { color:var(--crit); font-weight:700; }
.trade-meta { margin-top:12px; }
.trade-leg-table { overflow-x:auto; margin-top:14px; }
.liquidity-cell { display:flex; align-items:center; gap:7px; }
.liquidity-badge { display:inline-flex; align-items:center; justify-content:center; min-width:54px; padding:3px 8px;
                   border:1px solid var(--grid); border-radius:99px; color:var(--muted); font-size:.7rem; font-weight:800; }
.liquidity-badge.maker { color:var(--good); border-color:rgba(28,184,65,.42); background:rgba(28,184,65,.08); }
.liquidity-badge.taker { color:#ffbd76; border-color:rgba(235,143,55,.45); background:rgba(235,143,55,.09); }
.liquidity-badge.mixed { color:#a9c9f5; border-color:rgba(57,135,229,.48); background:rgba(57,135,229,.10); }
.liquidity-breakdown { color:var(--muted); font-size:.68rem; }
.history-window { margin-top:14px; }
.history-window > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border:1px solid var(--grid); border-radius:10px; background:var(--surface-2); color:var(--ink); cursor:pointer; list-style:none; user-select:none; }
.history-window > summary::-webkit-details-marker { display:none; }
.history-window > summary::after { content:"展开窗口⌄"; color:var(--muted); font-size:.76rem; white-space:nowrap; }
.history-window[open] > summary::after { content:"收起窗口⌃"; }
.history-window > summary small { color:var(--muted); font-weight:400; margin-left:auto; }
.history-scroll { height:clamp(640px,78vh,1150px); min-height:360px; overflow-y:scroll; resize:vertical; overscroll-behavior:contain; scrollbar-gutter:stable; scrollbar-color:rgba(155,164,184,.62) rgba(255,255,255,.045); margin-top:12px; padding:12px; border:1px solid var(--grid); border-radius:12px; background:rgba(0,0,0,.10); }
.history-scroll::-webkit-scrollbar { width:13px; }
.history-scroll::-webkit-scrollbar-track { background:rgba(255,255,255,.045); border-radius:99px; }
.history-scroll::-webkit-scrollbar-thumb { background:rgba(155,164,184,.62); border:3px solid #1b1b1a; border-radius:99px; }
.history-scroll::-webkit-scrollbar-thumb:hover { background:rgba(184,194,213,.82); }
.history-scroll::-webkit-resizer { background:linear-gradient(135deg,transparent 45%,rgba(155,164,184,.78) 46% 55%,transparent 56% 67%,rgba(155,164,184,.78) 68% 77%,transparent 78%); }
.history-scroll .trade-records { margin-top:0; padding-bottom:2px; }
@media (max-width:800px) { .trade-summary-grid { grid-template-columns:repeat(2,minmax(130px,1fr)); } }
.tag { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 0.8125rem; font-weight: 600; }
.tag.open { background: rgba(57,135,229,0.14); color: #9cc4f2; }
.tag.close { background: rgba(217,89,38,0.14); color: #f2b195; }

.log-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; flex-wrap: wrap; }
.log-tools { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.log-tools select, .log-tools input { border: 1px solid var(--grid); border-radius: 8px; background: var(--surface-2);
                                     color: var(--ink-2); font: inherit; font-size: .82rem; padding: 7px 9px; outline: none; }
.log-tools input { width: min(280px, 50vw); }
.log-tools select:focus, .log-tools input:focus { border-color: var(--accent); }
.log-count { color: var(--muted); font-size: .78rem; white-space: nowrap; }
.event-card { padding-bottom:16px; }
.timeline-usage-hint { display:flex; align-items:center; justify-content:flex-end; gap:6px; margin-top:10px;
                       color:var(--muted); font-size:.75rem; user-select:none; }
.timeline-usage-hint span { display:grid; place-items:center; width:19px; height:19px; border:1px solid var(--grid);
                            border-radius:5px; color:var(--ink-2); background:var(--surface-2); }
.event-timeline { position:relative; display:grid; align-content:start; gap:10px; margin-top:16px;
                  height:clamp(720px,78vh,1100px); min-height:360px; overflow-y:scroll; resize:vertical;
                  overscroll-behavior:contain; scrollbar-gutter:stable; scrollbar-color:rgba(155,164,184,.62) rgba(255,255,255,.045);
                  padding:10px 12px 14px 8px; border:1px solid var(--grid); border-radius:12px;
                  background:rgba(0,0,0,.10); }
.event-timeline::-webkit-scrollbar { width:13px; }
.event-timeline::-webkit-scrollbar-track { background:rgba(255,255,255,.045); border-radius:99px; }
.event-timeline::-webkit-scrollbar-thumb { background:rgba(155,164,184,.62); border:3px solid #1b1b1a; border-radius:99px; }
.event-timeline::-webkit-scrollbar-thumb:hover { background:rgba(184,194,213,.82); }
.event-timeline::-webkit-resizer { background:linear-gradient(135deg,transparent 45%,rgba(155,164,184,.78) 46% 55%,transparent 56% 67%,rgba(155,164,184,.78) 68% 77%,transparent 78%); }
.event-timeline::before { content:""; position:absolute; left:27px; top:34px; bottom:34px; width:1px;
                          background:linear-gradient(180deg,rgba(57,135,229,.38),rgba(255,255,255,.06)); }
.event-item { --event-color:var(--muted); position:relative; z-index:1; display:grid;
              grid-template-columns:40px minmax(0,1fr); gap:12px; }
.event-item.open { --event-color:#67a9f3; }
.event-item.reduce { --event-color:#ffd068; }
.event-item.close { --event-color:#f29a76; }
.event-item.warning { --event-color:#ef8585; }
.event-item.system { --event-color:#9ba4b8; }
.event-marker { display:flex; justify-content:center; padding-top:15px; }
.event-marker span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%;
                     color:var(--event-color); background:#171717; border:1px solid color-mix(in srgb,var(--event-color) 48%,transparent);
                     box-shadow:0 0 0 5px #1a1a19; font-size:.78rem; font-weight:850; }
.event-body { min-width:0; padding:13px 15px 14px; border:1px solid var(--grid); border-radius:11px;
              background:linear-gradient(135deg,rgba(255,255,255,.025),rgba(255,255,255,.008)); }
.event-item:first-child .event-body { border-color:color-mix(in srgb,var(--event-color) 38%,var(--grid));
                                     background:linear-gradient(135deg,color-mix(in srgb,var(--event-color) 7%,transparent),rgba(255,255,255,.01)); }
.event-top { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.event-type { display:inline-flex; align-items:center; padding:2px 8px; border-radius:99px;
              color:var(--event-color); border:1px solid color-mix(in srgb,var(--event-color) 34%,transparent);
              background:color-mix(in srgb,var(--event-color) 8%,transparent); font-size:.7rem; font-weight:750; }
.event-top time { color:var(--muted); font-size:.76rem; }
.event-title { color:var(--ink); font-size:.93rem; font-weight:680; margin-top:7px; overflow-wrap:anywhere; }
.event-details { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.event-details span { display:inline-flex; align-items:center; gap:6px; max-width:100%; padding:4px 8px;
                      color:var(--ink-2); background:rgba(255,255,255,.025); border:1px solid var(--grid);
                      border-radius:6px; font-size:.75rem; overflow-wrap:anywhere; }
.event-details b { color:var(--muted); font-weight:600; }
.event-timeline.grouped-view { gap:12px; height:clamp(620px,74vh,920px); }
.event-timeline.grouped-view::before { display:none; }
.maker-session-card { border:1px solid rgba(57,135,229,.32); border-radius:12px; overflow:hidden;
                      background:linear-gradient(135deg,rgba(57,135,229,.055),rgba(255,255,255,.012)); }
.maker-session-card.warning { border-color:rgba(208,59,59,.48); background:rgba(208,59,59,.04); }
.maker-session-card > summary { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center;
                                gap:12px; padding:13px 15px; cursor:pointer; list-style:none; user-select:none; }
.maker-session-card > summary::-webkit-details-marker,
.execution-leg-disclosure > summary::-webkit-details-marker,
.execution-overall-disclosure > summary::-webkit-details-marker { display:none; }
.maker-session-state { display:inline-flex; align-items:center; justify-content:center; min-width:48px; padding:4px 8px;
                       border-radius:99px; color:#84baf6; border:1px solid rgba(57,135,229,.38);
                       background:rgba(57,135,229,.10); font-size:.69rem; font-weight:800; }
.maker-session-card.complete .maker-session-state { color:var(--good); border-color:rgba(28,184,65,.38); background:rgba(28,184,65,.09); }
.maker-session-card.warning .maker-session-state { color:#ff9b9b; border-color:rgba(208,59,59,.45); background:rgba(208,59,59,.11); }
.maker-session-summary > div { min-width:0; }
.maker-session-summary strong { display:block; color:var(--ink); font-size:.9rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.maker-session-summary small { display:block; margin-top:3px; color:var(--muted); font-size:.7rem; }
.maker-session-toggle,.execution-leg-toggle { color:var(--muted); font-size:.72rem; white-space:nowrap; }
.maker-session-toggle::before { content:"展开三腿⌄"; }
.maker-session-card[open] .maker-session-toggle::before { content:"收起三腿⌃"; }
.maker-session-body { padding:0 13px 13px; border-top:1px solid rgba(57,135,229,.18); }
.execution-leg-list { display:grid; gap:8px; margin-top:12px; }
.execution-leg-disclosure { border:1px solid var(--grid); border-radius:9px; overflow:hidden; background:rgba(0,0,0,.13); }
.execution-leg-disclosure > summary { display:grid; grid-template-columns:auto minmax(190px,1fr) auto auto; align-items:center;
                                      gap:10px; padding:10px 12px; cursor:pointer; list-style:none; user-select:none; }
.execution-leg-side { display:inline-flex; padding:2px 7px; border-radius:99px; color:var(--muted);
                      border:1px solid var(--grid); font-size:.67rem; font-weight:800; }
.execution-leg-side.buy { color:var(--good); border-color:rgba(28,184,65,.38); background:rgba(28,184,65,.07); }
.execution-leg-side.sell { color:#ff9292; border-color:rgba(208,59,59,.42); background:rgba(208,59,59,.07); }
.execution-leg-disclosure summary strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ink-2); font-size:.8rem; }
.execution-leg-total { color:#9cc4f2; font-size:.72rem; white-space:nowrap; }
.execution-leg-toggle::before { content:"查看流程⌄"; }
.execution-leg-disclosure[open] > summary .execution-leg-toggle::before,
.execution-overall-disclosure[open] > summary .execution-leg-toggle::before { content:"收起流程⌃"; }
.execution-leg-process { padding:0 11px 11px; border-top:1px solid var(--grid); }
.leg-execution-group { margin-top:10px; }
.leg-execution-group h4 { margin:0 0 6px; color:#9cc4f2; font-size:.7rem; letter-spacing:.04em; }
.leg-execution-group > div { display:grid; gap:6px; }
.leg-execution-step { padding:9px 10px; border:1px solid rgba(255,255,255,.055); border-radius:7px; background:rgba(255,255,255,.018); }
.leg-execution-step.warning { border-color:rgba(208,59,59,.34); background:rgba(208,59,59,.045); }
.leg-step-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.leg-step-head span { color:#9cc4f2; font-size:.68rem; font-weight:760; }
.leg-step-head time { color:var(--muted); font-size:.66rem; }
.leg-step-title { margin-top:4px; color:var(--ink-2); font-size:.76rem; overflow-wrap:anywhere; }
.leg-execution-step .event-details { margin-top:7px; }
.leg-execution-step .event-details span { padding:3px 6px; font-size:.68rem; }
.execution-overall-disclosure { margin-top:8px; border:1px solid var(--grid); border-radius:9px; overflow:hidden; }
.execution-overall-disclosure > summary { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:10px; align-items:center;
                                         padding:9px 12px; cursor:pointer; list-style:none; user-select:none; }
.execution-overall-disclosure summary strong { color:var(--ink-2); font-size:.76rem; }
.execution-overall-disclosure summary > span:not(.execution-leg-toggle) { color:var(--muted); font-size:.68rem; }
.execution-overall-steps { display:grid; gap:8px; padding:10px; border-top:1px solid var(--grid); }
.execution-overall-steps .event-item { grid-template-columns:34px minmax(0,1fr); gap:8px; }
.execution-overall-steps .event-marker { padding-top:11px; }
.execution-overall-steps .event-marker span { width:24px; height:24px; box-shadow:none; }
.execution-overall-steps .event-body { padding:10px 11px; }
.issue-disclosure { margin-top:12px; border:1px solid rgba(208,59,59,.28); border-radius:9px;
                    background:rgba(208,59,59,.035); overflow:hidden; }
.issue-disclosure summary { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center;
                            gap:8px; padding:9px 11px; cursor:pointer; list-style:none; user-select:none; }
.issue-disclosure summary::-webkit-details-marker { display:none; }
.issue-disclosure summary:focus-visible { outline:1px solid rgba(208,59,59,.38); outline-offset:-1px; }
.issue-summary-tag { display:inline-flex; padding:2px 7px; border-radius:5px; color:#f1a0a0;
                     background:rgba(208,59,59,.13); font-size:.68rem; font-weight:780; }
.issue-disclosure summary strong { min-width:0; color:#ffd0d0; font-size:.79rem; font-weight:700;
                                   overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.collapse-label { color:var(--muted); font-size:.7rem; white-space:nowrap; }
.collapse-label::before { content:"展开详情"; }
.issue-disclosure[open] .collapse-label::before { content:"收起详情"; }
.collapse-chevron { display:inline-block; color:#bc8585; font-size:.9rem; line-height:1; transition:transform .16s; }
.issue-disclosure[open] .collapse-chevron { transform:rotate(180deg); }
.issue-panel { padding:12px; border-top:1px solid rgba(208,59,59,.22);
               background:rgba(208,59,59,.045); }
.issue-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.issue-grid > div { min-width:0; padding:8px 9px; border-radius:7px; background:rgba(0,0,0,.16);
                    border:1px solid rgba(255,255,255,.055); }
.issue-grid small { display:block; color:#bc8585; font-size:.67rem; font-weight:700; }
.issue-grid p { color:var(--ink-2); font-size:.76rem; line-height:1.55; margin-top:3px; overflow-wrap:anywhere; }
.issue-evidence { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; padding-top:9px;
                  border-top:1px solid rgba(208,59,59,.18); }
.issue-evidence span { display:inline-flex; align-items:center; gap:5px; padding:3px 7px; border-radius:5px;
                       background:rgba(0,0,0,.18); border:1px solid rgba(255,255,255,.06); font-size:.69rem; }
.issue-evidence b { color:var(--muted); font-weight:600; }
.issue-evidence em { color:var(--ink-2); font-style:normal; font-family:ui-monospace,Consolas,monospace; }
.event-empty { display:flex; flex-direction:column; align-items:center; gap:4px; margin:0; padding:50px 24px; }
.event-empty .empty-icon { display:grid; place-items:center; width:42px; height:42px; margin-bottom:6px;
                           border-radius:50%; color:#7e899e; background:rgba(57,135,229,.08); border:1px solid rgba(57,135,229,.2); }
.event-empty strong { color:var(--ink-2); font-size:.92rem; }
.event-empty span { font-size:.78rem; }
.log { margin-top: 12px; height: min(60vh, 720px); min-height: 420px; overflow-y: auto;
       border: 1px solid var(--grid); border-radius: 10px; background: #111; }
.log-row { display: grid; grid-template-columns: 112px 94px minmax(0,1fr); align-items: start; gap: 10px;
           padding: 9px 12px; border-top: 1px solid var(--grid); font-size: .84rem; color: var(--muted); }
.log-row:first-child { border-top: 0; background: rgba(255,255,255,.025); }
.log-row .ts { color: #777; }
.log-kind { justify-self: start; padding: 1px 7px; border-radius: 99px; border: 1px solid var(--grid);
            color: var(--ink-2); font-size: .7rem; font-weight: 700; white-space: nowrap; }
.log-message { min-width: 0; color: var(--ink-2); overflow-wrap: anywhere; line-height: 1.55; }
.log-row.close .log-kind { color: #ffc59e; border-color: rgba(217,89,38,.5); }
.log-row.warning .log-kind { color: #ffd68a; border-color: rgba(250,178,25,.5); }
.log-row.warning .log-message { color: #ffe4a8; }
.log-row.fill .log-kind { color: #8fe08f; border-color: rgba(12,163,12,.5); }
.log-row.order .log-kind { color: #9cc4f2; border-color: rgba(57,135,229,.5); }
.empty { border: 1px dashed var(--grid); border-radius: 10px; padding: 26px;
         text-align: center; color: var(--muted); font-size: 0.9375rem; margin-top: 14px; }
.position-rule-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:16px; }
.position-rule-list { display:grid; gap:9px; margin-top:14px; }
.position-rule { min-width:0; padding:12px 13px; border:1px solid var(--grid); border-radius:9px;
                 background:rgba(255,255,255,.014); }
.position-rule-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.position-rule-head strong { color:var(--ink-2); font-size:.82rem; }
.position-rule-head span { padding:2px 7px; border:1px solid var(--grid); border-radius:99px;
                           color:var(--muted); font-size:.66rem; font-weight:750; white-space:nowrap; }
.position-rule-value { margin-top:8px; color:#9cc4f2; font-size:.94rem; font-weight:720; overflow-wrap:anywhere; }
.position-rule p { margin-top:5px; color:var(--muted); font-size:.71rem; line-height:1.55; }
.position-rule.triggered { border-color:rgba(208,59,59,.55); background:rgba(208,59,59,.08); }
.position-rule.triggered .position-rule-head span,.position-rule.triggered .position-rule-value { color:#ff9b9b; }
.position-rule.ready { border-color:rgba(250,178,25,.44); background:rgba(250,178,25,.065); }
.position-rule.ready .position-rule-head span,.position-rule.ready .position-rule-value { color:#ffd068; }
.position-rule.done { border-color:rgba(12,163,12,.43); background:rgba(12,163,12,.065); }
.position-rule.done .position-rule-head span,.position-rule.done .position-rule-value { color:#7fd67f; }
.position-rule.disabled { opacity:.6; }
.position-summary-tiles { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:14px; }
.position-leg-table { overflow-x:auto; margin-top:14px; }
.position-leg-table .leg-metric-main { display:block; font-weight:720; }
.position-leg-table td small { display:block; margin-top:3px; color:var(--muted); font-size:.68rem; }
.position-valuation-note { margin:8px 2px 0; color:var(--muted); font-size:.72rem; line-height:1.55; }
.position-empty { display:flex; flex-direction:column; gap:4px; }
.position-empty strong { color:var(--ink-2); }
.position-empty span { font-size:.78rem; }
.position-records { display:grid; gap:0; margin-top:14px; border:1px solid var(--grid); border-radius:10px; overflow:hidden; }
.position-record { position:relative; display:grid; grid-template-columns:18px minmax(0,1fr); gap:10px;
                   padding:12px 14px; border-top:1px solid var(--grid); background:rgba(255,255,255,.012); }
.position-record:first-child { border-top:0; }
.position-record-dot { width:9px; height:9px; margin-top:5px; border-radius:50%; background:var(--muted); }
.position-record.open .position-record-dot { background:var(--good); }
.position-record.reduce .position-record-dot { background:var(--warn); }
.position-record.close .position-record-dot { background:var(--crit); }
.position-record-top { display:flex; justify-content:space-between; gap:12px; }
.position-record-top b { color:var(--ink-2); font-size:.82rem; }
.position-record-top time,.position-record p { color:var(--muted); font-size:.7rem; }
.position-record p { margin-top:4px; }
.instrument-with-flags { display:inline-flex; align-items:center; flex-wrap:wrap; gap:7px; }
.quarantine-badge { display:inline-flex; align-items:center; padding:2px 7px; border-radius:99px;
                    border:1px solid rgba(250,178,25,.55); background:rgba(250,178,25,.09);
                    color:#ffd068; font-family:inherit; font-size:.65rem; font-weight:750;
                    line-height:1.35; white-space:nowrap; cursor:help; }
.current-group-badge { display:inline-flex; align-items:center; padding:2px 7px; border-radius:99px;
                       border:1px solid rgba(57,135,229,.55); background:rgba(57,135,229,.09);
                       color:#9cc4f2; font-family:inherit; font-size:.65rem; font-weight:750;
                       line-height:1.35; white-space:nowrap; }
footer { margin-top: 28px; color: var(--muted); font-size: 0.8125rem; }
@media (max-width: 760px) {
  body { padding: 18px 14px 36px; }
  .grid.cols-2 { grid-template-columns: 1fr; }
  .status-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pipeline { grid-template-columns: 1fr; }
  .quote-strip { grid-template-columns: 1fr; }
  .log { min-height: 360px; height: 65vh; }
  .log-row { grid-template-columns: 58px minmax(0,1fr); }
  .log-kind { grid-column: 2; }
  .log-message { grid-column: 2; }
  .btn { flex: 1 1 150px; }
  .log-head { align-items:stretch; }
  .log-tools { justify-content:flex-start; width:100%; }
  .log-tools input { flex:1; width:auto; min-width:150px; }
  .timeline-usage-hint { justify-content:flex-start; }
  .event-timeline { height:clamp(520px,72vh,760px); padding:8px 7px 12px 7px; }
  .event-item { grid-template-columns:32px minmax(0,1fr); gap:8px; }
  .event-timeline::before { left:22px; }
  .event-marker span { width:24px; height:24px; box-shadow:0 0 0 4px #1a1a19; }
  .event-top { align-items:flex-start; flex-direction:column; gap:5px; }
  .maker-session-card > summary { grid-template-columns:auto minmax(0,1fr); gap:8px; }
  .maker-session-toggle { grid-column:2; }
  .execution-leg-disclosure > summary { grid-template-columns:auto minmax(0,1fr) auto; gap:7px; }
  .execution-leg-total { grid-column:2; }
  .execution-leg-toggle { grid-column:3; grid-row:1 / 3; }
  .issue-grid { grid-template-columns:1fr; }
  .issue-disclosure summary { grid-template-columns:auto minmax(0,1fr) auto; }
  .collapse-label { display:none; }
  .entry-gates { grid-template-columns:1fr; }
  .signal-condition-grid { grid-template-columns:1fr; }
  .position-rule-layout { grid-template-columns:1fr; }
  .position-summary-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .position-record-top { flex-direction:column; gap:3px; }
  .maker-leg-row { grid-template-columns:1fr; gap:7px; }
  .maker-leg-row small { text-align:left; }
}
