:root {
  --fubit-blue: #0D1A2E;
  --fubit-cyan: #00C8C8;
  --fubit-dark: #1F1F1F;
  --fubit-silver: #D9D9D9;
  --fubit-deep-cyan: #006F7A;
  --fubit-bg: #0D1A2E;
  --fubit-panel: rgba(13, 26, 46, 0.92);
  --fubit-panel-2: rgba(18, 34, 58, 0.88);
  --fubit-panel-soft: rgba(18, 34, 58, 0.88);
  --fubit-cyan-dark: #006F7A;
  --fubit-gradient: linear-gradient(90deg, #00E4FF 0%, #00B3C2 100%);
  --ok: #16c784;
  --warn: #ffb020;
  --danger: #ff5d5d;
  --status-ok: #16c784;
  --status-slow: #ffb020;
  --status-block: #ff5d5d;
  --status-loading: #7aa2ff;
  --status-muted: #7f8ea3;
  --warn-bg: rgba(255, 93, 93, 0.10);
  --warn-border: rgba(255, 93, 93, 0.35);
  --slow-bg: rgba(255, 176, 32, 0.10);
  --slow-border: rgba(255, 176, 32, 0.30);
  --ok-bg: rgba(22, 199, 132, 0.10);
  --ok-border: rgba(22, 199, 132, 0.28);
  --fubit-border: rgba(0, 200, 200, 0.18);
  --fubit-border-strong: rgba(0, 200, 200, 0.38);
  --fubit-text-main: #F5FBFF;
  --fubit-text-secondary: rgba(217, 217, 217, 0.88);
  --text-main: #f4fbff;
  --text-muted: rgba(217, 217, 217, 0.78);
  --shadow-soft: 0 16px 42px rgba(0, 0, 0, 0.24);
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
  background:
    radial-gradient(circle at top right, rgba(0, 200, 200, 0.14), transparent 28%),
    radial-gradient(circle at bottom left, rgba(0, 111, 122, 0.16), transparent 24%),
    var(--fubit-bg);
  color: var(--text-main);
  font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

body {
  min-height: 100vh;
}

a {
  color: inherit;
  text-decoration: none;
}

.tos-shell {
  min-height: 100vh;
  padding: 24px;
}

.tos-header {
  min-height: 72px;
  height: 72px;
  padding: 0 24px;
  border: 1px solid var(--fubit-border);
  border-radius: 18px;
  background: rgba(13, 26, 46, 0.86);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(12px);
}

.shell-header,
.app-header,
.top-header,
.tos-header {
  position: relative;
  display: flex;
  align-items: center;
  height: 72px;
  padding: 0 24px;
}

.header-left,
.tos-brand {
  position: absolute;
  left: 24px;
  display: flex;
  align-items: center;
}

.tos-brand {
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  flex-shrink: 0;
}

.brand-logo {
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.brand-sub {
  color: var(--fubit-cyan);
  font-size: 0.88rem;
  letter-spacing: 0.08em;
}

.main-nav,
.nav-group,
.tos-nav {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: nowrap;
  min-width: 0;
}

.tos-nav a {
  position: relative;
  padding: 10px 16px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--text-muted);
  font-size: 0.95rem;
  transition: all 0.2s ease;
}

.tos-nav a:hover,
.tos-nav a.is-active,
.tos-nav a.active {
  color: var(--text-main);
  border-color: var(--fubit-border);
  background: rgba(0, 200, 200, 0.08);
  box-shadow: 0 0 18px rgba(0, 228, 255, 0.16);
}

.tos-nav a.is-active::after,
.tos-nav a.active::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: var(--fubit-gradient);
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.sub-nav-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 20px;
  background: rgba(10, 20, 38, 0.70);
  border: 1px solid var(--fubit-border);
  border-radius: 12px;
  backdrop-filter: blur(8px);
  flex-wrap: wrap;
}

.sub-nav-bar.is-hidden {
  display: none;
}

.sub-nav-item {
  position: relative;
  padding: 6px 14px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--text-muted);
  font-size: 0.88rem;
  transition: all 0.18s ease;
}

.sub-nav-item:hover {
  color: var(--text-main);
  border-color: var(--fubit-border);
  background: rgba(0, 200, 200, 0.06);
}

.sub-nav-item.active {
  color: var(--fubit-cyan);
  border-color: rgba(0, 228, 255, 0.35);
  background: rgba(0, 228, 255, 0.08);
  box-shadow: 0 0 12px rgba(0, 228, 255, 0.12);
}

.header-right,
.header-actions,
.user-area,
.top-actions,
.tos-tools {
  position: absolute;
  right: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: nowrap;
  min-width: 0;
  overflow: hidden;
}

.header-actions,
.user-area,
.top-actions,
.tos-tools {
  justify-content: flex-end;
}

#now-time {
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}

.api-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid var(--fubit-border);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.02);
  font-size: 0.9rem;
  color: var(--text-main);
}

.api-status .dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: var(--status-loading);
  box-shadow: 0 0 12px rgba(122, 162, 255, 0.9);
}

.audit-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 16px;
}

.audit-table th,
.audit-table td {
  padding: 12px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  text-align: left;
}

.audit-result-success {
  color: #5cff9d;
  font-weight: 700;
}

.audit-result-blocked {
  color: #ff5c6c;
  font-weight: 700;
}

.admin-table-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 12px;
}

.admin-search-input {
  width: 360px;
  max-width: 100%;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid rgba(64, 206, 230, 0.28);
  background: rgba(8, 20, 38, 0.9);
  color: #eef6ff;
  outline: none;
}

.admin-search-input::placeholder {
  color: #7f93b4;
}

.admin-table-count {
  color: #9fb2d0;
  font-size: 13px;
  white-space: nowrap;
}

.admin-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 18px;
}

.admin-pagination button {
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid rgba(64, 206, 230, 0.28);
  background: rgba(8, 20, 38, 0.9);
  color: #eef6ff;
  cursor: pointer;
}

.admin-pagination button:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.admin-owner-row {
  cursor: pointer;
}

.admin-owner-row.selected {
  background: rgba(64, 206, 230, 0.08);
  outline: 1px solid rgba(64, 206, 230, 0.28);
}

.admin-owner-row:hover {
  background: rgba(64, 206, 230, 0.05);
}

.api-status.is-loading {
  border-color: rgba(122, 162, 255, 0.24);
  color: #dbe6ff;
}

.api-status.is-loading .dot {
  background: var(--status-loading);
  box-shadow: 0 0 12px rgba(122, 162, 255, 0.9);
}

.api-status.is-ok {
  border-color: var(--ok-border);
  color: #d7fff0;
}

.api-status.is-ok .dot {
  background: var(--status-ok);
  box-shadow: 0 0 12px rgba(22, 199, 132, 0.9);
}

.api-status.is-error {
  border-color: var(--warn-border);
  color: #ffd7d7;
}

.api-status.is-error .dot {
  background: var(--status-block);
  box-shadow: 0 0 12px rgba(255, 93, 93, 0.9);
}

.global-alert {
  margin-top: 18px;
  padding: 14px 18px;
  border-radius: 10px;
  border: 1px solid transparent;
  display: grid;
  gap: 6px;
}

.global-alert.is-hidden {
  display: none;
}

.global-alert.is-ok {
  border-color: var(--ok-border);
  background: var(--ok-bg);
}

.global-alert.is-slow {
  border-color: var(--slow-border);
  background: var(--slow-bg);
}

.global-alert.is-block {
  border-color: var(--warn-border);
  background: var(--warn-bg);
  box-shadow: inset 0 0 20px rgba(255, 93, 93, 0.08), 0 0 24px rgba(255, 93, 93, 0.1);
}

.global-alert-title {
  font-size: 0.98rem;
  font-weight: 700;
}

.global-alert-desc {
  color: var(--text-muted);
  line-height: 1.65;
}

.tos-system-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.metric,
.card {
  border: 1px solid var(--fubit-border);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(16, 40, 68, 0.95), rgba(13, 26, 46, 0.96));
  box-shadow: var(--shadow-soft);
}

.heartbeat-bar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.heartbeat-item {
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--fubit-border);
  background: rgba(16, 40, 68, 0.82);
}

.heartbeat-muted {
  display: block;
  color: var(--status-muted);
  font-size: 0.82rem;
  margin-bottom: 8px;
}

.heartbeat-value {
  display: block;
  font-size: 1.02rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.metric {
  padding: 14px 16px;
}

.metric span {
  display: block;
  margin-bottom: 8px;
  color: var(--text-muted);
  font-size: 0.82rem;
}

.metric strong {
  display: block;
  font-size: 1.15rem;
  font-weight: 700;
}

.metric strong.is-ok,
.badge.is-ok {
  color: var(--ok);
}

.badge.is-slow {
  color: var(--warn);
  border-color: var(--slow-border);
  background: var(--slow-bg);
}

.badge.is-block {
  color: var(--danger);
  border-color: var(--warn-border);
  background: var(--warn-bg);
}

.metric strong.is-warn,
.badge.is-warn {
  color: var(--warn);
}

.metric strong.is-danger,
.badge.is-danger {
  color: var(--danger);
}

.tos-view {
  margin-top: 20px;
}

.view-stack {
  display: grid;
  gap: 18px;
}

.grid-overview,
.overview-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.card {
  padding: 18px;
}

.overview-card {
  padding: 18px;
  border-radius: 12px;
  border: 1px solid var(--fubit-border);
  background: linear-gradient(180deg, rgba(16, 40, 68, 0.95), rgba(13, 26, 46, 0.96));
  box-shadow: var(--shadow-soft);
}

.overview-card.is-ok {
  border-color: var(--ok-border);
  background: linear-gradient(180deg, rgba(13, 44, 56, 0.94), rgba(13, 26, 46, 0.98));
}

.overview-card.is-slow {
  border-color: var(--slow-border);
  background: linear-gradient(180deg, rgba(48, 35, 12, 0.94), rgba(13, 26, 46, 0.98));
}

.overview-card.is-block {
  border-color: var(--warn-border);
  background: linear-gradient(180deg, rgba(62, 18, 18, 0.94), rgba(13, 26, 46, 0.98));
  box-shadow: 0 0 26px rgba(255, 93, 93, 0.14);
}

.system-judgement-card {
  display: grid;
  gap: 16px;
  padding: 20px;
  border-radius: 12px;
  border: 1px solid var(--fubit-border);
  background: linear-gradient(180deg, rgba(16, 40, 68, 0.95), rgba(13, 26, 46, 0.96));
  box-shadow: var(--shadow-soft);
}

.system-judgement-card.is-ok {
  border-color: var(--ok-border);
  background: linear-gradient(180deg, rgba(13, 44, 56, 0.94), rgba(13, 26, 46, 0.98));
}

.system-judgement-card.is-warning {
  border-color: var(--slow-border);
  background: linear-gradient(180deg, rgba(48, 35, 12, 0.94), rgba(13, 26, 46, 0.98));
}

.system-judgement-card.is-danger {
  border-color: var(--warn-border);
  background: linear-gradient(180deg, rgba(62, 18, 18, 0.94), rgba(13, 26, 46, 0.98));
  box-shadow: 0 0 28px rgba(255, 93, 93, 0.14);
}

.system-judgement-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.system-judgement-title {
  margin: 0;
  font-size: 1.28rem;
  line-height: 1.45;
}

.judgement-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 96px;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid var(--fubit-border);
  background: rgba(0, 200, 200, 0.08);
  font-size: 0.86rem;
  font-weight: 800;
}

.judgement-status.is-ok {
  color: var(--ok);
  border-color: var(--ok-border);
  background: var(--ok-bg);
}

.judgement-status.is-warning {
  color: var(--warn);
  border-color: var(--slow-border);
  background: var(--slow-bg);
}

.judgement-status.is-danger {
  color: var(--danger);
  border-color: var(--warn-border);
  background: var(--warn-bg);
}

.judgement-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.judgement-item {
  min-width: 0;
  padding: 14px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
}

.judgement-item.is-wide {
  grid-column: span 3;
}

.judgement-item span {
  display: block;
  color: var(--status-muted);
  font-size: 0.8rem;
  margin-bottom: 8px;
}

.judgement-item strong {
  display: block;
  font-size: 1rem;
  line-height: 1.45;
  word-break: break-word;
}

.strategy-route-card {
  display: grid;
  gap: 14px;
  padding: 18px 20px;
  border-radius: 12px;
  border: 1px solid var(--fubit-border);
  background: linear-gradient(180deg, rgba(14, 32, 56, 0.96), rgba(9, 20, 35, 0.96));
  box-shadow: var(--shadow-soft);
}

.strategy-route-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.route-row {
  display: grid;
  grid-template-columns: minmax(60px, 1fr) auto minmax(82px, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 14px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
}

.route-strategy,
.route-exchange {
  overflow-wrap: anywhere;
}

.route-strategy {
  color: var(--text-main);
  font-weight: 800;
}

.route-arrow {
  color: var(--fubit-cyan);
  font-weight: 700;
}

.route-exchange {
  color: #d7fff8;
  text-align: right;
}

.route-empty {
  grid-column: 1 / -1;
  padding: 18px;
  border-radius: 10px;
  border: 1px dashed rgba(255, 255, 255, 0.12);
  color: var(--text-muted);
  text-align: center;
}

/* ── Dashboard IDLE 状态卡片 ─────────────────────────────────────────────── */

.system-judgement-card.is-idle {
  border-color: rgba(122, 162, 255, 0.22);
  background: linear-gradient(180deg, rgba(20, 28, 56, 0.96), rgba(13, 26, 46, 0.97));
}

.judgement-status.is-idle {
  color: #7aa2ff;
  border-color: rgba(122, 162, 255, 0.28);
  background: rgba(122, 162, 255, 0.08);
}

.idle-notice {
  padding: 16px;
  border-radius: 10px;
  border: 1px solid rgba(122, 162, 255, 0.18);
  background: rgba(122, 162, 255, 0.05);
}

.idle-notice-title {
  font-size: 0.88rem;
  font-weight: 800;
  color: #7aa2ff;
  letter-spacing: 0.06em;
  margin-bottom: 8px;
}

.idle-notice-desc {
  color: var(--text-muted);
  font-size: 0.9rem;
  line-height: 1.65;
  margin: 0 0 12px;
}

.idle-checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.idle-checklist li {
  font-size: 0.88rem;
  padding-left: 20px;
  position: relative;
  color: var(--text-muted);
}

.idle-checklist li::before {
  position: absolute;
  left: 0;
  font-weight: 700;
}

.idle-checklist li.is-done {
  color: var(--ok);
}

.idle-checklist li.is-done::before {
  content: "✓";
  color: var(--ok);
}

.idle-checklist li.is-pending::before {
  content: "○";
  color: var(--status-muted);
}

/* ── Dashboard KPI grid (8 cards) ───────────────────────────────────────── */

.dash-kpi-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.overview-value--sm {
  font-size: 1.1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 8px;
}

.dash-gate-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  border: 1px solid transparent;
}

.dash-gate-badge.is-allow {
  color: var(--ok);
  border-color: var(--ok-border);
  background: var(--ok-bg);
}

.dash-gate-badge.is-deny {
  color: var(--danger);
  border-color: var(--warn-border);
  background: var(--warn-bg);
}

.dashboard-decision-panel {
  border: 1px solid rgba(0, 200, 200, 0.28);
  border-radius: 16px;
  padding: 18px 20px;
  margin: 16px 0;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  background: linear-gradient(135deg, rgba(13, 26, 46, 0.96), rgba(4, 18, 28, 0.96));
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22);
}

.dashboard-decision-panel h2 {
  margin: 4px 0 10px;
  font-size: 22px;
}

.decision-label {
  font-size: 28px;
  font-weight: 800;
  margin: 8px 0;
}

.decision-mode-box {
  min-width: 180px;
  align-self: stretch;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: rgba(255, 255, 255, 0.04);
}

.decision-mode-box span {
  font-size: 12px;
  color: rgba(220, 240, 255, 0.68);
}

.decision-mode-box strong {
  margin-top: 8px;
  font-size: 22px;
}

.decision-reasons {
  margin: 10px 0 0;
  padding-left: 18px;
  color: #ffb3b3;
}

.decision-pass {
  margin-top: 10px;
  color: #7dffcf;
  font-weight: 700;
}

.decision-live {
  border-color: rgba(0, 255, 170, 0.55);
}

.decision-armed {
  border-color: rgba(255, 193, 7, 0.65);
}

.decision-dry {
  border-color: rgba(0, 180, 255, 0.55);
}

.dashboard-decision-panel.decision-blocked {
  color: inherit;
  border-color: rgba(244, 67, 54, 0.72);
  background: linear-gradient(135deg, rgba(46, 13, 18, 0.96), rgba(24, 6, 8, 0.96));
}

.control-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(0, 200, 200, 0.05);
  border: 1px solid rgba(0, 200, 200, 0.2);
  border-radius: 12px;
  padding: 12px 16px;
  margin-bottom: 16px;
  gap: 14px;
}

.control-title {
  font-size: 14px;
  color: #00c8c8;
}

.control-mode {
  font-size: 12px;
  opacity: 0.7;
}

.control-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.control-actions button {
  padding: 6px 12px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-weight: 700;
}

.btn-dry {
  background: #2b6cb0;
  color: white;
}

.btn-armed {
  background: #b7791f;
  color: white;
}

.btn-live {
  background: #c53030;
  color: white;
}

/* ── Account summary ────────────────────────────────────────────────────── */

.account-summary-list {
  display: grid;
  gap: 10px;
}

.account-summary-row {
  display: grid;
  grid-template-columns: 1fr auto auto 1fr 1fr auto auto;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
}

.account-summary-row.is-disabled {
  opacity: 0.65;
}

.acct-id {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.acct-exchange {
  font-size: 0.78rem;
  color: var(--fubit-cyan);
  font-weight: 600;
  letter-spacing: 0.04em;
}

.acct-role {
  color: var(--text-muted);
  font-size: 0.88rem;
}

.acct-strategy {
  color: var(--text-muted);
  font-size: 0.88rem;
}

.acct-risk,
.acct-notional,
.acct-guard {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.92rem;
  font-variant-numeric: tabular-nums;
}

.acct-risk-label {
  display: block;
  font-size: 0.76rem;
  color: var(--status-muted);
}

/* ── Execution summary ──────────────────────────────────────────────────── */

.exec-empty {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 18px;
  border-radius: 10px;
  border: 1px dashed rgba(255, 255, 255, 0.10);
  color: var(--text-muted);
  font-size: 0.92rem;
}

.exec-empty-icon {
  font-size: 1.2rem;
  color: var(--status-muted);
}

.exec-header-row {
  display: grid;
  grid-template-columns: 1.6fr 0.8fr 1fr 1fr 1.8fr;
  gap: 10px;
  padding: 8px 12px;
  font-size: 0.78rem;
  color: var(--status-muted);
  font-weight: 600;
  letter-spacing: 0.04em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  margin-bottom: 6px;
}

.exec-list {
  display: grid;
  gap: 6px;
}

.exec-item {
  display: grid;
  grid-template-columns: 1.6fr 0.8fr 1fr 1fr 1.8fr;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.04);
  background: rgba(255, 255, 255, 0.02);
  font-size: 0.88rem;
}

.exec-time {
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
  font-size: 0.82rem;
}

.exec-strategy {
  font-weight: 700;
}

.exec-account {
  color: var(--fubit-cyan);
  font-size: 0.82rem;
}

.exec-reason {
  color: var(--text-muted);
  font-size: 0.82rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Strategy summary ───────────────────────────────────────────────────── */

.strat-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.strat-kpi {
  padding: 14px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
}

.strat-kpi span {
  display: block;
  font-size: 0.78rem;
  color: var(--status-muted);
  margin-bottom: 8px;
}

.strat-kpi strong {
  font-size: 1.1rem;
  display: block;
}

.strat-kpi strong.is-warn {
  color: var(--warn);
}

.strat-summary-list {
  display: grid;
  gap: 8px;
}

.strat-summary-row {
  display: grid;
  grid-template-columns: 28px 1fr auto 1fr 1fr 1fr;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.05);
  background: rgba(255, 255, 255, 0.02);
  font-size: 0.9rem;
}

.strat-summary-row.is-top-risk {
  border-color: rgba(0, 200, 200, 0.18);
  background: rgba(0, 200, 200, 0.05);
}

.strat-rank {
  color: var(--status-muted);
  font-size: 0.8rem;
  text-align: center;
}

.strat-name {
  overflow-wrap: anywhere;
}

.strat-risk,
.strat-pnl,
.strat-dd {
  color: var(--text-muted);
  font-size: 0.86rem;
  font-variant-numeric: tabular-nums;
}

.inline-link {
  color: var(--fubit-cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.portfolio-table {
  min-width: 720px;
}

.status-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 56px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  border: 1px solid transparent;
}

.status-chip.is-enabled {
  color: var(--ok);
  border-color: var(--ok-border);
  background: var(--ok-bg);
}

.status-chip.is-disabled {
  color: var(--status-muted);
  border-color: rgba(127, 142, 163, 0.22);
  background: rgba(127, 142, 163, 0.07);
}

.status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.status-ok {
  color: #7dffcf;
  background: rgba(0, 200, 120, 0.14);
  border: 1px solid rgba(0, 200, 120, 0.36);
}

.status-muted {
  color: rgba(220, 240, 255, 0.55);
  background: rgba(220, 240, 255, 0.08);
  border: 1px solid rgba(220, 240, 255, 0.16);
}

.status-danger {
  color: #ffb3b3;
  background: rgba(244, 67, 54, 0.14);
  border: 1px solid rgba(244, 67, 54, 0.42);
}

.guard-reason {
  display: block;
  margin-top: 4px;
  color: rgba(220, 240, 255, 0.62);
  font-size: 12px;
}

.ledger-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 0.76rem;
  font-weight: 700;
  border: 1px solid transparent;
}

.ledger-chip.is-dry-run {
  color: #7aa2ff;
  border-color: rgba(122, 162, 255, 0.24);
  background: rgba(122, 162, 255, 0.08);
}

.ledger-chip.is-blocked {
  color: var(--danger);
  border-color: var(--warn-border);
  background: var(--warn-bg);
}

.ledger-chip.is-rejected {
  color: var(--warn);
  border-color: var(--slow-border);
  background: var(--slow-bg);
}

.ledger-chip.is-failed {
  color: #ff8d8d;
  border-color: rgba(255, 93, 93, 0.24);
  background: rgba(255, 93, 93, 0.06);
}

.ledger-chip.is-submitted {
  color: var(--ok);
  border-color: var(--ok-border);
  background: var(--ok-bg);
}

.ledger-chip.is-zero {
  color: var(--status-muted);
  border-color: rgba(127, 142, 163, 0.14);
  background: transparent;
}

/* ── Debug render flag ───────────────────────────────────────────────────── */
.debug-render-flag {
  margin: 16px 0;
  padding: 10px 14px;
  border: 1px solid #00c8c8;
  border-radius: 10px;
  color: #00e4ff;
  background: rgba(0, 200, 200, 0.08);
  font-weight: 700;
}

/* ── Strategy instance table ─────────────────────────────────────────────── */

.strategy-instance-card {
  display: grid;
  gap: 16px;
  padding: 20px;
  border-radius: 12px;
  border: 1px solid var(--fubit-border);
  background: linear-gradient(180deg, rgba(14, 32, 56, 0.96), rgba(9, 20, 35, 0.96));
  box-shadow: var(--shadow-soft);
}

.strategy-instance-table {
  min-width: 900px;
}

.strategy-instance-row td {
  vertical-align: middle;
}

.strategy-instance-row.is-disabled-row td {
  opacity: 0.72;
}

.strategy-instance-row.is-unconfigured-row td {
  opacity: 0.60;
}

.strategy-domain-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--fubit-border);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(16, 40, 68, 0.95), rgba(13, 26, 46, 0.96));
  box-shadow: var(--shadow-soft);
}

.strategy-domain-tabs {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.strategy-domain-tab {
  min-width: 150px;
  border: 1px solid rgba(0, 200, 200, 0.26);
  background: rgba(0, 200, 200, 0.08);
  color: #ffffff;
  border-radius: 12px;
  padding: 12px 14px;
  cursor: pointer;
  text-align: left;
}

.strategy-domain-tab strong {
  display: block;
  font-size: 15px;
}

.strategy-domain-tab span {
  display: block;
  margin-top: 5px;
  font-size: 11px;
  color: rgba(220, 240, 255, 0.62);
}

.strategy-domain-tab.active {
  border-color: rgba(0, 255, 220, 0.72);
  background: rgba(0, 200, 200, 0.18);
  box-shadow: 0 0 18px rgba(0, 200, 200, 0.16);
}

.strategy-domain-tab.disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.strategy-domain-tab.disabled span {
  color: #ffe082;
}

.domain-risk-panel {
  padding: 18px;
  border: 1px solid rgba(0, 200, 200, 0.35);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(16, 40, 68, 0.95), rgba(13, 26, 46, 0.96));
  box-shadow: var(--shadow-soft);
}

.domain-risk-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.domain-risk-card {
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 16px;
  padding: 16px;
  background: linear-gradient(135deg, rgba(13, 26, 46, 0.96), rgba(5, 18, 28, 0.96));
}

.domain-risk-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
}

.domain-risk-head h3 {
  margin: 4px 0 0;
  font-size: 22px;
}

.domain-risk-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.domain-risk-metrics > div {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.03);
}

.domain-risk-metrics span {
  display: block;
  font-size: 12px;
  color: rgba(220, 240, 255, 0.62);
  margin-bottom: 5px;
}

.domain-risk-metrics strong {
  font-size: 16px;
}

.domain-risk-reason {
  margin-top: 12px;
  color: rgba(220, 240, 255, 0.72);
  font-size: 12px;
}

.domain-risk-actions {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}

.domain-risk-actions button {
  flex: 1;
  border: none;
  border-radius: 9px;
  padding: 8px 10px;
  cursor: pointer;
  font-weight: 700;
}

.domain-risk-actions button:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.domain-capital-panel {
  padding: 18px;
  border: 1px solid rgba(0, 200, 200, 0.35);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(16, 40, 68, 0.95), rgba(13, 26, 46, 0.96));
  box-shadow: var(--shadow-soft);
}

.domain-capital-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.domain-capital-card {
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 16px;
  padding: 16px;
  background: linear-gradient(135deg, rgba(13, 26, 46, 0.96), rgba(5, 18, 28, 0.96));
}

.domain-capital-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
}

.domain-capital-head h3 {
  margin: 4px 0 0;
  font-size: 22px;
}

.domain-capital-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.domain-capital-metrics > div {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.03);
}

.domain-capital-metrics span {
  display: block;
  font-size: 12px;
  color: rgba(220, 240, 255, 0.62);
  margin-bottom: 5px;
}

.domain-capital-metrics strong {
  font-size: 16px;
}

.domain-capital-reason {
  margin-top: 12px;
  color: rgba(220, 240, 255, 0.72);
  font-size: 12px;
}

.domain-capital-actions {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}

.domain-capital-actions button {
  flex: 1;
  border: none;
  border-radius: 9px;
  padding: 8px 10px;
  cursor: pointer;
  font-weight: 700;
}

.domain-capital-actions button:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.system-risk-panel {
  padding: 18px;
  border: 1px solid rgba(255, 193, 7, 0.35);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(16, 40, 68, 0.95), rgba(13, 26, 46, 0.96));
  box-shadow: var(--shadow-soft);
}

.system-risk-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.system-risk-card {
  border: 1px solid rgba(255, 193, 7, 0.18);
  border-radius: 14px;
  padding: 14px;
  background: rgba(255, 193, 7, 0.06);
}

.system-risk-card span {
  display: block;
  font-size: 12px;
  color: rgba(220, 240, 255, 0.62);
  margin-bottom: 6px;
}

.system-risk-card strong {
  font-size: 20px;
}

.system-risk-card small {
  display: block;
  margin-top: 6px;
  color: rgba(220, 240, 255, 0.6);
}

.strategy-control-panel {
  padding: 18px;
  border: 1px solid var(--fubit-border);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(16, 40, 68, 0.95), rgba(13, 26, 46, 0.96));
  box-shadow: var(--shadow-soft);
}

.strategy-control-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.strategy-control-card {
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 16px;
  padding: 16px;
  background: linear-gradient(135deg, rgba(13, 26, 46, 0.96), rgba(6, 18, 30, 0.96));
}

.strategy-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.strategy-card-header h3 {
  margin: 4px 0 0;
  font-size: 22px;
}

.strategy-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 10px 0;
}

.strategy-card-block {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.03);
}

.strategy-card-block span,
.strategy-guard-row span {
  display: block;
  font-size: 12px;
  color: rgba(220, 240, 255, 0.62);
  margin-bottom: 5px;
}

.strategy-card-block strong {
  font-size: 16px;
}

.strategy-card-block small,
.strategy-guard-row small {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  color: rgba(220, 240, 255, 0.55);
}

.strategy-subtitle {
  margin-top: 14px;
  font-size: 13px;
  color: #00c8c8;
  font-weight: 700;
}

.strategy-guard-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: 10px;
}

.strategy-guard-row > div {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.03);
}

.strategy-actions {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}

.strategy-actions button {
  flex: 1;
  border: none;
  border-radius: 9px;
  padding: 8px 10px;
  cursor: pointer;
  font-weight: 700;
}

.status-warning {
  color: #ffe082;
  background: rgba(255, 193, 7, 0.14);
  border: 1px solid rgba(255, 193, 7, 0.38);
}

.strat-name-cell {
  font-size: 1rem;
  letter-spacing: 0.04em;
}

.strat-account-id {
  font-family: "Segoe UI Mono", "Consolas", monospace;
  font-size: 0.84rem;
  color: var(--fubit-cyan);
}

.strat-exchange-tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  border: 1px solid rgba(0, 200, 200, 0.2);
  background: rgba(0, 200, 200, 0.07);
  color: #d6ffff;
}

/* Status chips for strategies */

.strategy-status-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 108px;
  padding: 5px 10px;
  border-radius: 8px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  border: 1px solid transparent;
}

.strategy-status-enabled {
  color: var(--ok);
  border-color: var(--ok-border);
  background: var(--ok-bg);
}

.strategy-status-disabled {
  color: var(--status-muted);
  border-color: rgba(127, 142, 163, 0.22);
  background: rgba(127, 142, 163, 0.07);
}

.strategy-status-unconfigured {
  color: var(--warn);
  border-color: var(--slow-border);
  background: var(--slow-bg);
}

/* Action pills (read-only) */

.strategy-action-pill {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: default;
  border: 1px solid transparent;
  user-select: none;
}

.strategy-action-pill.is-running {
  color: var(--ok);
  border-color: var(--ok-border);
  background: var(--ok-bg);
}

.strategy-action-pill.is-stopped {
  color: var(--status-muted);
  border-color: rgba(127, 142, 163, 0.2);
  background: rgba(127, 142, 163, 0.06);
}

.strategy-action-pill.is-unconfigured {
  color: var(--warn);
  border-color: var(--slow-border);
  background: var(--slow-bg);
}

.route-config-card {
  display: grid;
  gap: 16px;
  padding: 20px;
  border-radius: 12px;
  border: 1px solid var(--fubit-border);
  background: linear-gradient(180deg, rgba(14, 32, 56, 0.96), rgba(9, 20, 35, 0.96));
  box-shadow: var(--shadow-soft);
}

.route-config-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.route-config-row {
  display: grid;
  grid-template-columns: 1fr auto minmax(120px, 1fr);
  align-items: center;
  gap: 10px;
  padding: 14px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
}

.route-config-strategy {
  color: var(--text-main);
  font-weight: 800;
  overflow-wrap: anywhere;
}

.route-config-arrow {
  color: var(--fubit-cyan);
  font-weight: 700;
}

.route-config-select {
  appearance: none;
  -webkit-appearance: none;
  background-color: rgba(0, 200, 200, 0.08);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2300C8C8' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  border: 1px solid var(--fubit-border);
  border-radius: 8px;
  color: #d7fff8;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 700;
  padding: 8px 30px 8px 10px;
  transition: border-color 0.2s ease;
  width: 100%;
}

.route-config-select:hover,
.route-config-select:focus {
  border-color: var(--fubit-cyan);
  outline: none;
}

.route-config-select option {
  background: #0e2038;
  color: var(--text-main);
}

.route-config-empty {
  grid-column: 1 / -1;
  padding: 18px;
  border-radius: 10px;
  border: 1px dashed rgba(255, 255, 255, 0.12);
  color: var(--text-muted);
  text-align: center;
}

.route-config-footer {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 4px;
}

.save-config-feedback {
  font-size: 0.9rem;
  font-weight: 600;
}

.save-config-feedback.is-success {
  color: var(--ok);
}

.save-config-feedback.is-error {
  color: var(--danger);
}

.card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.card-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
}

.card-subtitle {
  margin: 8px 0 0;
  color: var(--text-muted);
  line-height: 1.6;
}

.hero-title {
  margin: 0 0 8px;
  font-size: 1.7rem;
}

.hero-desc {
  margin: 0;
  color: var(--text-muted);
  line-height: 1.7;
}

.overview-value {
  margin-top: 10px;
  font-size: 2rem;
  font-weight: 800;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.overview-label,
.overview-sub {
  margin-top: 6px;
  color: var(--text-muted);
  font-size: 0.88rem;
}

.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  padding: 6px 10px;
  border: 1px solid var(--fubit-border);
  border-radius: 999px;
  background: rgba(0, 200, 200, 0.08);
  font-size: 0.82rem;
  font-weight: 700;
}

.table-wrap {
  overflow-x: auto;
}

.table,
.risk-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 1120px;
}

.table th,
.table td,
.risk-table th,
.risk-table td {
  padding: 12px 10px;
  border-bottom: 1px solid rgba(0, 200, 200, 0.08);
  text-align: left;
  font-size: 0.92rem;
  white-space: nowrap;
  vertical-align: middle;
}

.table th,
.risk-table th {
  color: var(--text-muted);
  font-weight: 600;
  letter-spacing: 0.02em;
}

.table tbody tr:hover,
.risk-table tbody tr:hover {
  background: rgba(0, 200, 200, 0.04);
}

.table .num,
.risk-table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.risk-events-table {
  min-width: 720px;
}

.risk-events-table .badge {
  min-width: 86px;
}

.risk-events-empty {
  color: var(--text-muted);
  text-align: center;
}

.risk-event-list {
  display: grid;
  gap: 8px;
}

.risk-event-item {
  display: grid;
  grid-template-columns: 160px 120px 160px 1fr;
  gap: 12px;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding: 9px 0;
}

.risk-event-item:last-child {
  border-bottom: none;
}

.risk-event-reason {
  color: rgba(220, 240, 255, 0.72);
}

.risk-row-top td {
  background: rgba(0, 200, 200, 0.08);
  box-shadow: inset 3px 0 0 var(--fubit-cyan);
}

.risk-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 76px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(217, 217, 217, 0.14);
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.02);
  font-size: 0.78rem;
  font-weight: 700;
}

.risk-chip.is-top {
  color: #061521;
  border-color: transparent;
  background: var(--fubit-gradient);
}

.risk-chip.is-high {
  color: #ffe7cc;
  border-color: var(--slow-border);
  background: rgba(255, 176, 32, 0.12);
}

.risk-chip.is-mid {
  color: #d1f8f8;
  border-color: rgba(0, 200, 200, 0.18);
  background: rgba(0, 200, 200, 0.09);
}

.risk-chip.is-low {
  color: var(--text-muted);
}

.empty-state,
.error-box {
  padding: 26px;
  border-radius: 12px;
  border: 1px dashed var(--fubit-border);
  text-align: left;
  line-height: 1.8;
}

.empty-state {
  background: rgba(0, 200, 200, 0.05);
  color: var(--text-muted);
}

.empty-state-title {
  margin: 0 0 10px;
  color: var(--text-main);
  font-size: 1.05rem;
}

.empty-state-desc {
  margin: 0;
  color: var(--text-muted);
}

.error-box {
  border-color: rgba(255, 93, 93, 0.35);
  background: rgba(255, 93, 93, 0.09);
  color: #ffd7d7;
}

.error-box.is-fatal {
  border-style: solid;
  box-shadow: 0 0 26px rgba(255, 93, 93, 0.12);
}

.btn {
  border: 1px solid var(--fubit-border);
  border-radius: 10px;
  padding: 10px 16px;
  background: transparent;
  color: var(--text-main);
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn-primary {
  background: var(--fubit-gradient);
  color: var(--fubit-blue);
  border-color: transparent;
  font-weight: 700;
}

#btn-refresh {
  min-width: 108px;
}

#btn-refresh.is-loading {
  opacity: 0.72;
  cursor: wait;
  pointer-events: none;
  filter: saturate(0.8);
}

.btn-ghost {
  background: rgba(255, 255, 255, 0.02);
}

.section-kicker {
  margin: 0 0 8px;
  color: var(--fubit-cyan);
  letter-spacing: 0.08em;
  font-size: 0.8rem;
  text-transform: uppercase;
}

.pill-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.pill {
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--fubit-border);
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.02);
}

.charts-section {
  display: grid;
  gap: 16px;
}

.charts-section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px;
  border: 1px solid rgba(122, 162, 255, 0.16);
  border-radius: 16px;
  background:
    radial-gradient(circle at top right, rgba(0, 200, 200, 0.10), transparent 32%),
    linear-gradient(180deg, rgba(7, 18, 32, 0.98), rgba(9, 24, 42, 0.96));
  box-shadow: var(--shadow-soft);
}

.chart-alert {
  min-width: 220px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--warn-border);
  background: rgba(255, 93, 93, 0.12);
  color: #ffd7d7;
  font-size: 0.9rem;
  line-height: 1.6;
}

.chart-alert.is-hidden {
  display: none;
}

.charts-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.chart-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
  padding: 18px;
  border-radius: 16px;
  border: 1px solid rgba(122, 162, 255, 0.16);
  background:
    linear-gradient(180deg, rgba(8, 20, 35, 0.98), rgba(11, 27, 45, 0.97)),
    rgba(8, 17, 31, 0.98);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.26);
  overflow: hidden;
}

.chart-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.chart-card-title {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 700;
}

.chart-card-subtitle {
  margin: 8px 0 0;
  color: var(--text-muted);
  font-size: 0.88rem;
  line-height: 1.6;
}

.chart-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0, 200, 200, 0.16);
  background: rgba(0, 200, 200, 0.08);
  color: #d6ffff;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

.chart-canvas-shell {
  position: relative;
  flex: 0 0 auto;
  height: 248px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.04);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.01)),
    rgba(5, 13, 24, 0.86);
  overflow: hidden;
}

.chart-canvas-shell canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.chart-empty {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  color: var(--text-muted);
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  background: rgba(5, 13, 24, 0.72);
  text-align: center;
}

.chart-empty.is-hidden {
  display: none;
}

.chart-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.chart-meta-item {
  min-width: 0;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.05);
  background: rgba(255, 255, 255, 0.03);
}

.chart-meta-label {
  display: block;
  color: var(--status-muted);
  font-size: 0.8rem;
  margin-bottom: 8px;
}

.chart-meta-value {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.35;
  word-break: break-word;
}

.chart-meta-value.is-positive {
  color: var(--ok);
}

.chart-meta-value.is-negative {
  color: #ff8d8d;
}

.chart-meta-value.is-neutral {
  color: #dff7ff;
}

@media (max-width: 1200px) {
  .system-risk-grid,
  .domain-capital-grid,
  .domain-risk-grid,
  .strategy-control-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .strategy-domain-panel {
    flex-direction: column;
    align-items: stretch;
  }

  .strategy-domain-tabs {
    width: 100%;
  }

  .strategy-domain-tab {
    flex: 1;
  }
}

@media (max-width: 1280px) {
  .tos-header {
    height: auto;
    min-height: 0;
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
  }

  .tos-brand,
  .tos-nav,
  .tos-tools {
    position: static;
    left: auto;
    right: auto;
    transform: none;
  }

  .tos-tools {
    justify-content: flex-end;
    flex-wrap: wrap;
    overflow: visible;
  }

  .tos-nav {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

@media (max-width: 960px) {
  .tos-header {
    padding: 16px;
  }

  .tos-tools {
    justify-content: flex-start;
  }

  .tos-system-strip,
  .grid-overview,
  .overview-grid,
  .dash-kpi-grid,
  .heartbeat-bar,
  .charts-grid,
  .strategy-route-list,
  .route-config-list,
  .judgement-grid,
  .strat-kpi-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .account-summary-row {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto auto;
  }

  .strat-summary-row {
    grid-template-columns: 28px 1fr auto;
  }

  .dashboard-decision-panel {
    flex-direction: column;
  }

  .control-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .control-actions {
    justify-content: flex-start;
  }

  .risk-event-item {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .exec-header-row,
  .exec-item {
    grid-template-columns: 1fr 1fr;
  }

  .charts-section-header {
    flex-direction: column;
  }

  .chart-alert {
    min-width: 0;
    width: 100%;
  }
}

@media (max-width: 720px) {
  .tos-shell {
    padding: 14px;
  }

  .tos-system-strip,
  .grid-overview,
  .overview-grid,
  .dash-kpi-grid,
  .heartbeat-bar,
  .charts-grid,
  .judgement-grid,
  .strategy-route-list,
  .route-config-list,
  .strat-kpi-row,
  .chart-meta {
    grid-template-columns: 1fr;
  }

  .account-summary-row {
    grid-template-columns: 1fr;
  }

  .exec-header-row {
    display: none;
  }

  .exec-item {
    grid-template-columns: 1fr;
  }

  .system-judgement-main {
    flex-direction: column;
  }

  .judgement-item.is-wide {
    grid-column: auto;
  }

  .tos-nav {
    width: 100%;
  }

  .tos-nav a {
    flex: 1 1 calc(20% - 10px);
    text-align: center;
  }

  .sub-nav-bar {
    padding: 6px 12px;
  }

  .sub-nav-item {
    flex: 1 1 auto;
    text-align: center;
  }

  .charts-section-header,
  .chart-card {
    padding: 16px;
  }

  .chart-canvas-shell {
    height: 220px;
  }
}

/* ── Gate chips ──────────────────────────────────────────────────────────── */

.gate-chip {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border: 1px solid transparent;
}

.gate-chip-normal {
  background: rgba(22, 199, 132, 0.15);
  color: var(--ok);
  border-color: var(--ok-border);
}

.gate-chip-reduced {
  background: rgba(255, 176, 32, 0.15);
  color: var(--warn);
  border-color: var(--slow-border);
}

.gate-chip-locked {
  background: rgba(255, 93, 93, 0.15);
  color: var(--danger);
  border-color: var(--warn-border);
}

.gate-chip-unknown {
  background: rgba(127, 142, 163, 0.12);
  color: var(--status-muted);
  border-color: rgba(127, 142, 163, 0.2);
}

/* Blocked variant — gate not allowed */
.gate-chip-blocked {
  opacity: 0.85;
  font-style: italic;
}

.exec-result-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.07);
  margin: 4px 0;
}

/* ── Budget chips ────────────────────────────────────────────────────────── */

.budget-chip {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border: 1px solid transparent;
}

.budget-chip-ok {
  background: rgba(22, 199, 132, 0.15);
  color: var(--ok);
  border-color: var(--ok-border);
}

.budget-chip-blocked {
  background: rgba(255, 93, 93, 0.15);
  color: var(--danger);
  border-color: var(--warn-border);
  font-style: italic;
}

.budget-chip-unknown {
  background: rgba(127, 142, 163, 0.12);
  color: var(--status-muted);
  border-color: rgba(127, 142, 163, 0.2);
}

.budget-chip-disabled {
  background: rgba(255, 176, 32, 0.12);
  color: var(--warn);
  border-color: var(--slow-border);
}

/* ── Risk Consumption chips & table ─────────────────────────────────────── */

.consumption-chip {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border: 1px solid transparent;
}

.consumption-chip-ok {
  background: rgba(22, 199, 132, 0.15);
  color: var(--ok);
  border-color: var(--ok-border);
}

.consumption-chip-exhausted {
  background: rgba(255, 93, 93, 0.15);
  color: var(--danger);
  border-color: var(--warn-border);
}

.consumption-chip-disabled {
  background: rgba(127, 142, 163, 0.12);
  color: var(--status-muted);
  border-color: rgba(127, 142, 163, 0.2);
}

.consumption-metric {
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  color: var(--text-secondary, #aab);
}

.consumption-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.is-exhausted {
  color: var(--danger);
  font-weight: 600;
}

/* ── Execution console ───────────────────────────────────────────────────── */

.execution-console {
  display: grid;
  gap: 20px;
}

.execution-gate-card .card-header,
.execution-form-card .card-header,
.execution-ledger-card .card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}

.execution-gate-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.execution-gate-item {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.execution-gate-item.execution-gate-reason {
  grid-column: 1 / -1;
}

.gate-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
}

.gate-value {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-main);
}

.execution-audit-panel {
  border-color: rgba(0, 200, 255, 0.28);
}

.execution-snapshot-panel {
  border-color: rgba(80, 180, 255, 0.28);
}

.execution-snapshot-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.snapshot-step-card {
  border: 1px solid rgba(120, 180, 220, 0.16);
  border-radius: 14px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.03);
}

.snapshot-step-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.snapshot-step-head span {
  font-weight: 800;
  color: #fff;
}

.snapshot-step-head strong {
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.04em;
}

.snapshot-step-meta {
  display: grid;
  gap: 8px;
}

.snapshot-step-meta div {
  border: 1px solid rgba(120, 180, 220, 0.14);
  border-radius: 10px;
  padding: 9px;
  background: rgba(255, 255, 255, 0.03);
}

.snapshot-step-meta span {
  display: block;
  font-size: 11px;
  color: rgba(220, 240, 255, 0.6);
  margin-bottom: 4px;
}

.snapshot-step-meta strong {
  font-size: 13px;
  font-weight: 800;
  color: #fff;
  word-break: break-word;
}

.snapshot-step-ok {
  border-color: rgba(34, 197, 94, 0.3);
}

.snapshot-step-ok .snapshot-step-head strong {
  color: #22c55e;
}

.snapshot-step-blocked {
  border-color: rgba(239, 68, 68, 0.34);
}

.snapshot-step-blocked .snapshot-step-head strong {
  color: #ef4444;
}

.snapshot-step-warning {
  border-color: rgba(59, 130, 246, 0.3);
}

.snapshot-step-warning .snapshot-step-head strong {
  color: #60a5fa;
}

.snapshot-reason-chain {
  margin-top: 16px;
  border: 1px solid rgba(120, 180, 220, 0.16);
  border-radius: 14px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.03);
}

.snapshot-reason-chain span {
  display: block;
  font-size: 12px;
  color: rgba(220, 240, 255, 0.62);
  margin-bottom: 6px;
}

.snapshot-reason-chain strong {
  display: block;
  color: #fff;
  line-height: 1.6;
}

.execution-feedback-panel {
  border-color: rgba(255, 120, 80, 0.28);
}

.feedback-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.feedback-card {
  border: 1px solid rgba(255, 120, 80, 0.22);
  border-radius: 14px;
  padding: 14px;
  background: rgba(255, 120, 80, 0.05);
}

.feedback-card-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.feedback-card-head span {
  font-weight: 900;
  color: #fff;
}

.feedback-metrics {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.feedback-metrics div {
  border: 1px solid rgba(120, 180, 220, 0.14);
  border-radius: 10px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.03);
}

.feedback-metrics span {
  display: block;
  font-size: 11px;
  color: rgba(220, 240, 255, 0.62);
  margin-bottom: 5px;
}

.feedback-metrics strong {
  font-size: 17px;
  font-weight: 900;
}

.feedback-card small {
  display: block;
  margin-top: 12px;
  color: rgba(220, 240, 255, 0.62);
}

.audit-table-wrap {
  margin-top: 16px;
  overflow-x: auto;
}

.audit-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 980px;
}

.audit-table th,
.audit-table td {
  padding: 12px 10px;
  border-bottom: 1px solid rgba(120, 180, 220, 0.14);
  text-align: left;
  font-size: 13px;
}

.audit-table th {
  color: rgba(220, 240, 255, 0.7);
  font-weight: 700;
}

.audit-table td {
  color: rgba(255, 255, 255, 0.88);
}

.audit-table .pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0, 200, 255, 0.24);
  background: rgba(0, 200, 255, 0.08);
  font-weight: 800;
  font-size: 12px;
}

@media (max-width: 1200px) {
  .execution-snapshot-grid {
    grid-template-columns: 1fr;
  }

  .feedback-grid {
    grid-template-columns: 1fr;
  }
}

/* Execution status chips */
.execution-status-chip {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border: 1px solid transparent;
}

.execution-gate-is-normal {
  background: rgba(22, 199, 132, 0.15);
  color: var(--ok);
  border-color: var(--ok-border);
}

.execution-gate-is-reduced {
  background: rgba(255, 176, 32, 0.15);
  color: var(--warn);
  border-color: var(--slow-border);
}

.execution-gate-is-locked {
  background: rgba(255, 93, 93, 0.15);
  color: var(--danger);
  border-color: var(--warn-border);
}

.execution-status-dry-run,
.execution-status-dry {
  background: rgba(0, 200, 200, 0.15);
  color: #00e4ff;
  border-color: rgba(0, 200, 200, 0.35);
}

.execution-status-blocked {
  background: rgba(255, 93, 93, 0.15);
  color: var(--danger);
  border-color: var(--warn-border);
}

.execution-status-rejected {
  background: rgba(255, 136, 0, 0.15);
  color: #ff8800;
  border-color: rgba(255, 136, 0, 0.35);
}

.execution-status-failed,
.execution-status-real-failed {
  background: rgba(220, 0, 60, 0.15);
  color: #ff204e;
  border-color: rgba(220, 0, 60, 0.35);
}

.execution-status-submitted,
.execution-status-real-submitted {
  background: rgba(120, 90, 255, 0.15);
  color: #a484ff;
  border-color: rgba(120, 90, 255, 0.35);
}

/* DRY_RUN form */
.execution-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.exec-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.exec-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
}

.exec-select {
  background: rgba(14, 32, 56, 0.9);
  border: 1px solid var(--fubit-border);
  border-radius: 8px;
  color: var(--text-main);
  padding: 8px 12px;
  font-size: 13px;
  width: 100%;
  box-sizing: border-box;
}

.exec-select:focus {
  outline: none;
  border-color: var(--fubit-cyan);
}

.exec-readonly {
  font-size: 13px;
  color: var(--text-main);
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  opacity: 0.8;
}

.execution-form-footer {
  margin-top: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.exec-submit-btn {
  padding: 10px 26px;
  background: rgba(0, 200, 200, 0.12);
  border: 1px solid var(--fubit-cyan);
  border-radius: 10px;
  color: var(--fubit-cyan);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  letter-spacing: 0.02em;
}

.exec-submit-btn:hover:not(:disabled) {
  background: rgba(0, 200, 200, 0.22);
}

.exec-submit-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

/* Result box */
.execution-result-box {
  margin-top: 18px;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.exec-result-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.exec-result-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  min-width: 80px;
}

.exec-result-value {
  font-size: 13px;
  color: var(--text-main);
}

.exec-result-error {
  color: var(--danger);
  font-size: 13px;
  font-weight: 600;
}

/* Ledger table */
.execution-ledger-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-top: 14px;
}

.execution-ledger-table {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
  font-size: 12px;
}

.execution-ledger-table th,
.execution-ledger-table td {
  padding: 8px 10px;
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  white-space: nowrap;
}

.execution-ledger-table th {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  font-weight: 600;
}

.execution-ledger-table .ledger-ts {
  font-family: monospace;
  font-size: 11px;
}

.execution-ledger-table .ledger-reason {
  max-width: 200px;
  white-space: normal;
  word-break: break-word;
}

.execution-ledger-table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

/* Capital summary */
.capital-summary .capital-header {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  padding: 4px 0 8px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  font-weight: 600;
  border-bottom: 1px solid rgba(255, 255, 255, 0.10);
  margin-bottom: 4px;
}

.capital-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  padding: 6px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 12px;
}

.capital-acc {
  font-weight: 600;
  color: var(--fubit-cyan);
  font-family: monospace;
}

.decision-blocked { color: #ff4d4f; font-weight: bold; }
.decision-dryrun { color: #1890ff; font-weight: bold; }
.decision-filled { color: #52c41a; font-weight: bold; }

.risk-alert {
  background: rgba(255,77,79,0.15);
  border: 1px solid #ff4d4f;
  padding: 10px;
  margin-bottom: 10px;
}

.capital-guard-block {
  background: rgba(255, 0, 0, 0.15);
  border: 1px solid #ff4d4f;
  color: #ffb3b3;
  padding: 10px;
  margin-bottom: 10px;
  border-radius: 8px;
}

.strategy-block {
  background: rgba(255, 165, 0, 0.15);
  border: 1px solid orange;
  color: #ffd18a;
  padding: 10px;
  margin-bottom: 10px;
  border-radius: 8px;
}

.risk-ok {
  background: rgba(82,196,26,0.15);
  border: 1px solid #52c41a;
  padding: 10px;
  margin-bottom: 10px;
}

.risk-strike-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0;
  border: 1px solid;
  white-space: nowrap;
}

.risk-strike-none {
  color: #33e6c1;
  background: rgba(51, 230, 193, 0.10);
  border-color: rgba(51, 230, 193, 0.32);
}

.risk-strike-pause {
  color: #ffd666;
  background: rgba(250, 173, 20, 0.14);
  border-color: rgba(250, 173, 20, 0.40);
}

.risk-strike-block {
  color: #ff7875;
  background: rgba(255, 77, 79, 0.15);
  border-color: rgba(255, 77, 79, 0.45);
}

.risk-strike-reason {
  color: #aab6c6;
  font-size: 11px;
  overflow-wrap: anywhere;
}

.risk-strike-v2-card {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 10px;
  border: 1px solid rgba(120, 150, 190, 0.18);
  border-radius: 8px;
  background: rgba(4, 12, 24, 0.48);
}

.risk-strike-level-notice {
  color: #69c0ff;
  background: rgba(24, 144, 255, 0.12);
  border-color: rgba(24, 144, 255, 0.36);
}

.risk-strike-level-warn {
  color: #ffd666;
  background: rgba(250, 173, 20, 0.13);
  border-color: rgba(250, 173, 20, 0.40);
}

.risk-strike-level-limit {
  color: #ffc069;
  background: rgba(250, 140, 22, 0.14);
  border-color: rgba(250, 140, 22, 0.42);
}

.risk-strike-level-pause {
  color: #ff9c6e;
  background: rgba(250, 84, 28, 0.15);
  border-color: rgba(250, 84, 28, 0.45);
}

.risk-strike-level-block {
  color: #ff7875;
  background: rgba(255, 77, 79, 0.16);
  border-color: rgba(255, 77, 79, 0.50);
}

.risk-strike-scope {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 700;
  color: #c4d3e8;
  background: rgba(120, 150, 190, 0.12);
  border: 1px solid rgba(120, 150, 190, 0.28);
  white-space: nowrap;
}

.mode-dry,
.mode-dry-run {
  color: #7aa2ff;
}

.mode-armed {
  color: #faad14;
  font-weight: 700;
}

.mode-live,
.mode-real {
  color: #ff4d4f;
  font-weight: bold;
}

.guard-warning {
  border: 1px solid rgba(255, 193, 7, 0.6);
  background: rgba(255, 193, 7, 0.12);
  color: #ffe082;
  padding: 10px 12px;
  border-radius: 8px;
  margin: 10px 0;
  font-weight: 600;
}

.guard-blocked {
  border: 1px solid rgba(244, 67, 54, 0.7);
  background: rgba(244, 67, 54, 0.12);
  color: #ffb3b3;
  padding: 10px 12px;
  border-radius: 8px;
  margin: 10px 0;
  font-weight: 600;
}

.guard-ok {
  border: 1px solid rgba(76, 175, 80, 0.6);
  background: rgba(76, 175, 80, 0.12);
  color: #b7f7c1;
  padding: 10px 12px;
  border-radius: 8px;
  margin: 10px 0;
  font-weight: 600;
}

.adaptive-risk-panel {
  border-color: rgba(255, 180, 0, 0.3);
}

.adaptive-risk-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.adaptive-risk-card {
  border: 1px solid rgba(255, 180, 0, 0.2);
  border-radius: 14px;
  padding: 14px;
  background: rgba(255, 180, 0, 0.05);
}

.adaptive-risk-card span {
  display: block;
  font-size: 12px;
  color: rgba(220, 240, 255, 0.62);
  margin-bottom: 6px;
}

.adaptive-risk-card strong {
  font-size: 20px;
  font-weight: 900;
}

.adaptive-risk-card small {
  display: block;
  margin-top: 6px;
  color: rgba(220, 240, 255, 0.62);
}

@media (max-width: 1200px) {
  .adaptive-risk-grid {
    grid-template-columns: 1fr;
  }
}

.phase-gate-panel {
  border-color: rgba(255, 80, 80, 0.3);
}

.phase-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}

.phase-card {
  border: 1px solid rgba(255, 80, 80, 0.2);
  border-radius: 12px;
  padding: 12px;
  background: rgba(255, 80, 80, 0.05);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.phase-card span {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.phase-card strong {
  font-size: 1rem;
  color: var(--text-main);
}

.phase-card.highlight {
  border-width: 1px;
  border-style: solid;
}

.phase-dry-run {
  border-color: rgba(127, 142, 163, 0.5);
  background: rgba(127, 142, 163, 0.08);
}

.phase-dry-run strong {
  color: var(--status-muted);
}

.phase-armed {
  border-color: rgba(255, 176, 32, 0.5);
  background: rgba(255, 176, 32, 0.08);
}

.phase-armed strong {
  color: var(--warn);
}

.phase-limited {
  border-color: rgba(0, 200, 200, 0.5);
  background: rgba(0, 200, 200, 0.08);
}

.phase-limited strong {
  color: var(--fubit-cyan);
}

.phase-scale {
  border-color: rgba(22, 199, 132, 0.5);
  background: rgba(22, 199, 132, 0.08);
}

.phase-scale strong {
  color: var(--ok);
}

.phase-desc {
  color: var(--text-muted);
  font-size: 0.85rem;
  margin: 0 0 16px;
}

.phase-progression {
  margin-top: 20px;
}

.phase-prog-label {
  font-size: 0.72rem;
  color: var(--text-muted);
  display: block;
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.phase-prog-steps {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.phase-prog-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 0.8rem;
  color: var(--text-main);
}

.phase-prog-step small {
  font-size: 0.7rem;
  color: var(--text-muted);
}

.phase-prog-arrow {
  color: var(--text-muted);
  font-size: 0.85rem;
}

.strategy-weight-panel {
  border-color: rgba(0, 200, 200, 0.32);
}

.strategy-weight-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.strategy-weight-card {
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 16px;
  padding: 16px;
  background: rgba(0, 200, 200, 0.05);
}

.strategy-weight-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.strategy-weight-head h3 {
  margin: 0;
  font-size: 18px;
}

.strategy-weight-value {
  margin-top: 14px;
  font-size: 30px;
  font-weight: 900;
}

.strategy-weight-bar {
  margin-top: 10px;
  height: 8px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.08);
}

.strategy-weight-bar > div {
  height: 100%;
  border-radius: 999px;
  background: rgba(0, 200, 200, 0.9);
}

.strategy-weight-card small {
  display: block;
  margin-top: 10px;
  color: rgba(220, 240, 255, 0.62);
}

.strategy-weight-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 10px;
  margin-top: 12px;
}

.sw-metric {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.sw-metric span {
  font-size: 0.68rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.sw-metric strong {
  font-size: 0.88rem;
  color: var(--text-main);
}

.feedback-weight-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.feedback-weight-meta div {
  border: 1px solid rgba(120, 180, 220, 0.14);
  border-radius: 10px;
  padding: 9px;
  background: rgba(255, 255, 255, 0.03);
}

.feedback-weight-meta span {
  display: block;
  font-size: 11px;
  color: rgba(220, 240, 255, 0.58);
  margin-bottom: 4px;
}

.feedback-weight-meta strong {
  font-size: 13px;
  font-weight: 900;
  color: #fff;
}

.feedback-status-normal {
  color: #22c55e;
}

.feedback-status-degraded {
  color: #f59e0b;
}

.feedback-status-frozen {
  color: #ef4444;
}

.reason-tag {
  margin-top: 10px;
  font-size: 12px;
  opacity: 0.8;
  color: var(--fubit-cyan);
}

.cap-notice {
  margin: 8px 0 14px;
  padding: 8px 12px;
  border-radius: 8px;
  background: rgba(255, 176, 32, 0.1);
  border: 1px solid rgba(255, 176, 32, 0.3);
  color: var(--warn);
  font-size: 0.82rem;
}

.weight-source {
  margin-top: 6px;
  font-size: 12px;
  opacity: 0.7;
}

.weight-source-fallback {
  color: var(--warn);
}

.weight-source-competition {
  color: var(--ok);
}

@media (max-width: 1200px) {
  .strategy-weight-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .feedback-weight-meta {
    grid-template-columns: 1fr;
  }
}

.capital-flywheel-panel {
  border-color: rgba(0, 255, 180, 0.28);
}

.capital-flywheel-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.capital-flywheel-card {
  border: 1px solid rgba(0, 255, 180, 0.18);
  border-radius: 14px;
  padding: 14px;
  background: rgba(0, 255, 180, 0.05);
}

.capital-flywheel-card span {
  display: block;
  font-size: 12px;
  color: rgba(220, 240, 255, 0.62);
  margin-bottom: 6px;
}

.capital-flywheel-card strong {
  font-size: 20px;
  font-weight: 900;
}

.capital-flywheel-card small {
  display: block;
  margin-top: 6px;
  color: rgba(220, 240, 255, 0.6);
}

@media (max-width: 1200px) {
  .capital-flywheel-grid {
    grid-template-columns: 1fr;
  }
}

.risk-consumption-panel {
  border-color: rgba(255, 120, 0, 0.25);
}

.risk-consumption-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.risk-consumption-card {
  border: 1px solid rgba(255, 120, 0, 0.2);
  border-radius: 12px;
  padding: 12px;
  background: rgba(255, 120, 0, 0.05);
}

.risk-consumption-card span {
  display: block;
  font-size: 12px;
  color: rgba(220, 240, 255, 0.62);
  margin-bottom: 6px;
}

.risk-consumption-card strong {
  font-size: 20px;
  font-weight: 900;
}

.risk-consumption-card small {
  display: block;
  margin-top: 6px;
  color: rgba(220, 240, 255, 0.6);
}

@media (max-width: 1200px) {
  .risk-consumption-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Risk Consumption Engine — account-level lock styles ───────────── */

.risk-consumption-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  vertical-align: middle;
  background: rgba(0, 200, 180, 0.15);
  color: #00e0c0;
  border: 1px solid rgba(0, 200, 180, 0.35);
}

.risk-capacity-block {
  background: rgba(255, 80, 30, 0.18) !important;
  color: #ff6644 !important;
  border-color: rgba(255, 80, 30, 0.5) !important;
}

.risk-alert.risk-capacity-block {
  border-left: 4px solid #ff4422;
  background: rgba(255, 60, 20, 0.1);
  color: #ff7755;
  padding: 10px 14px;
  border-radius: 8px;
  margin-bottom: 10px;
  font-weight: 600;
}

.risk-usage-bar {
  margin-top: 6px;
  height: 6px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  overflow: hidden;
}

.risk-usage-fill {
  height: 100%;
  border-radius: 4px;
  background: linear-gradient(90deg, #00c8b4, #00a0e0);
  transition: width 0.4s ease;
}

.risk-usage-fill.risk-usage-fill-warn {
  background: linear-gradient(90deg, #e0a000, #e06000);
}

.risk-usage-fill.risk-usage-fill-danger {
  background: linear-gradient(90deg, #e03020, #ff2200);
}

/* ── /Risk Consumption Engine ──────────────────────────────────────── */

/* ── Risk Aggregation Engine — dynamic budget styles ───────────────── */

.risk-aggregation-panel {
  border-color: rgba(120, 80, 255, 0.25);
}

.risk-aggregation-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.risk-aggregation-card {
  border: 1px solid rgba(180, 160, 255, 0.2);
  border-radius: 12px;
  padding: 14px;
  background: rgba(120, 80, 255, 0.05);
}

.risk-aggregation-card span {
  display: block;
  font-size: 12px;
  color: rgba(220, 240, 255, 0.62);
  margin-bottom: 4px;
}

.risk-aggregation-card small {
  display: block;
  font-size: 11px;
  color: rgba(220, 240, 255, 0.55);
  margin-top: 4px;
}

/* State colours */
.risk-state-normal {
  color: #00d4aa;
}

.risk-state-warning {
  color: #e0a030;
}

.risk-state-danger {
  color: #e04030;
}

.risk-aggregation-card.risk-state-normal {
  border-color: rgba(0, 212, 170, 0.3);
  background: rgba(0, 212, 170, 0.05);
}

.risk-aggregation-card.risk-state-warning {
  border-color: rgba(224, 160, 48, 0.35);
  background: rgba(224, 160, 48, 0.06);
}

.risk-aggregation-card.risk-state-danger {
  border-color: rgba(224, 64, 48, 0.4);
  background: rgba(224, 64, 48, 0.07);
}

.effective-risk-block {
  background: rgba(200, 80, 20, 0.18) !important;
  color: #f08040 !important;
  border-color: rgba(200, 80, 20, 0.5) !important;
}

.risk-alert.effective-risk-block {
  border-left: 4px solid #e05020;
  background: rgba(200, 70, 20, 0.1);
  color: #f09060;
  padding: 10px 14px;
  border-radius: 8px;
  margin-bottom: 10px;
  font-weight: 600;
}

.risk-factor-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  vertical-align: middle;
  background: rgba(120, 80, 255, 0.12);
  border: 1px solid rgba(120, 80, 255, 0.3);
}

.risk-factor-badge.risk-state-normal {
  background: rgba(0, 212, 170, 0.12);
  border-color: rgba(0, 212, 170, 0.35);
}

.risk-factor-badge.risk-state-warning {
  background: rgba(224, 160, 48, 0.14);
  border-color: rgba(224, 160, 48, 0.4);
}

.risk-factor-badge.risk-state-danger {
  background: rgba(224, 64, 48, 0.15);
  border-color: rgba(224, 64, 48, 0.45);
}

.effective-budget-text {
  font-size: 12px;
  color: rgba(220, 240, 255, 0.7);
  margin: 3px 0;
}

/* ── /Risk Aggregation Engine ──────────────────────────────────────── */

.preflight-panel {
  margin-top: 20px;
  padding: 16px;
  border: 1px solid rgba(0, 200, 200, 0.6);
  border-radius: 10px;
}

.preflight-check-list {
  margin-top: 14px;
}

.preflight-action-row {
  display: flex;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.check-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 4px 0;
  padding: 10px 12px;
  font-size: 13px;
  border-radius: 10px;
  border: 1px solid rgba(120, 180, 220, 0.14);
  background: rgba(255, 255, 255, 0.03);
}

.check-row.ok {
  color: #00ff9c;
  border-color: rgba(0, 255, 156, 0.28);
}

.check-row.fail {
  color: #ff5c5c;
  border-color: rgba(255, 92, 92, 0.28);
}

.final-result {
  margin-top: 10px;
  font-weight: bold;
}

.final-result.ok {
  color: #00ff9c;
}

.final-result.fail {
  color: #ff5c5c;
}

.preflight-blockers {
  margin-top: 14px;
  border-color: rgba(255, 92, 92, 0.32);
}

.preflight-blocker {
  color: #ff5c5c;
}

.preflight-ready {
  color: #00ff9c;
  text-shadow: 0 0 12px rgba(0, 255, 156, 0.25);
}

.armed-warning {
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid rgba(255, 180, 0, 0.28);
  background: rgba(255, 180, 0, 0.08);
  line-height: 1.6;
}

.armed-warning.mode-dry-run {
  border-color: rgba(122, 162, 255, 0.28);
  background: rgba(122, 162, 255, 0.08);
}

.armed-warning.mode-armed {
  border-color: rgba(250, 173, 20, 0.34);
  background: rgba(250, 173, 20, 0.1);
}

.armed-warning.mode-real {
  border-color: rgba(255, 92, 92, 0.34);
  background: rgba(255, 92, 92, 0.1);
}

/* ── REAL 激活硬锁样式 ─────────────────────────────── */

.real-activation-panel {
  margin-top: 16px;
  padding: 16px;
  border-radius: 8px;
  border: 1px solid rgba(255, 92, 92, 0.4);
  background: rgba(255, 40, 40, 0.07);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.real-token-box {
  padding: 12px 14px;
  border-radius: 6px;
  border: 1px solid rgba(255, 180, 0, 0.5);
  background: rgba(255, 180, 0, 0.08);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.real-token-label {
  font-size: 0.78rem;
  color: var(--text-muted, #8899aa);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.real-token-value {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  color: #faad14;
  font-family: monospace;
}

.real-token-expiry {
  font-size: 0.78rem;
  color: var(--text-muted, #8899aa);
}

.real-activation-warning {
  font-size: 0.83rem;
  color: #faad14;
  font-weight: 600;
  padding: 6px 0;
}

.real-activation-danger {
  font-size: 0.88rem;
  color: #ff7875;
  font-weight: 600;
  padding: 4px 0;
}

.real-activation-success {
  font-size: 0.88rem;
  color: #52c41a;
  font-weight: 600;
  padding: 6px 10px;
  border-radius: 4px;
  background: rgba(82, 196, 26, 0.1);
  border: 1px solid rgba(82, 196, 26, 0.3);
}

.real-activation-error {
  font-size: 0.85rem;
  color: #ff4d4f;
  font-weight: 600;
  padding: 6px 10px;
  border-radius: 4px;
  background: rgba(255, 77, 79, 0.1);
  border: 1px solid rgba(255, 77, 79, 0.3);
}

.real-activation-input-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.real-activation-input {
  flex: 1;
  padding: 8px 12px;
  border-radius: 5px;
  border: 1px solid rgba(255, 92, 92, 0.5);
  background: rgba(255, 40, 40, 0.06);
  color: #fff;
  font-size: 1rem;
  font-family: monospace;
  letter-spacing: 0.15em;
  outline: none;
}

.real-activation-input:focus {
  border-color: rgba(255, 92, 92, 0.9);
  box-shadow: 0 0 0 2px rgba(255, 92, 92, 0.18);
}

.real-activation-button {
  padding: 8px 18px;
  border-radius: 5px;
  border: 1px solid rgba(255, 92, 92, 0.7);
  background: rgba(255, 40, 40, 0.18);
  color: #ff7875;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  white-space: nowrap;
}

.real-activation-button:hover:not(:disabled) {
  background: rgba(255, 40, 40, 0.32);
  border-color: rgba(255, 92, 92, 1);
  color: #fff;
}

.real-activation-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.real-mode-live {
  margin-top: 12px;
  padding: 12px 16px;
  border-radius: 6px;
  border: 1.5px solid rgba(255, 40, 40, 0.8);
  background: rgba(255, 20, 20, 0.12);
  color: #ff4d4f;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
  animation: real-mode-pulse 1.8s infinite;
}

@keyframes real-mode-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 40, 40, 0.25); }
  50%       { box-shadow: 0 0 0 6px rgba(255, 40, 40, 0); }
}

/* ── Portfolio Control Engine 样式 ─────────────────────────────── */

.portfolio-control-panel {
  border-left: 3px solid rgba(122, 162, 255, 0.4);
}

.portfolio-status-card {
  display: inline-flex;
  align-items: center;
  padding: 4px 14px;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  border: 1px solid transparent;
}

.portfolio-status-safe {
  color: #52c41a;
  background: rgba(82, 196, 26, 0.1);
  border-color: rgba(82, 196, 26, 0.35);
}

.portfolio-status-warning {
  color: #faad14;
  background: rgba(250, 173, 20, 0.1);
  border-color: rgba(250, 173, 20, 0.35);
}

.portfolio-status-degraded {
  color: #fa8c16;
  background: rgba(250, 140, 22, 0.1);
  border-color: rgba(250, 140, 22, 0.35);
}

.portfolio-status-blocked {
  color: #ff4d4f;
  background: rgba(255, 77, 79, 0.1);
  border-color: rgba(255, 77, 79, 0.35);
}

.portfolio-control-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.portfolio-ctrl-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 12px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.is-ok {
  color: #52c41a;
  font-weight: 600;
}

.is-blocked {
  color: #ff4d4f;
  font-weight: 600;
}

.portfolio-cap-box {
  margin: 12px 0;
  padding: 12px 14px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.07);
}

.cap-title {
  font-size: 0.8rem;
  color: var(--text-muted, #8899aa);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: 10px;
}

.cap-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.cap-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.cap-label {
  font-size: 0.75rem;
  color: var(--text-muted, #8899aa);
}

.cap-val {
  font-size: 0.95rem;
  font-weight: 600;
  font-family: monospace;
}

.portfolio-cap-bar {
  height: 8px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
  position: relative;
}

.portfolio-cap-bar-fill {
  height: 100%;
  border-radius: 4px;
  background: #52c41a;
  transition: width 0.3s ease;
}

.portfolio-cap-bar.is-elevated .portfolio-cap-bar-fill { background: #faad14; }
.portfolio-cap-bar.is-high .portfolio-cap-bar-fill     { background: #fa8c16; }
.portfolio-cap-bar.is-critical .portfolio-cap-bar-fill { background: #ff4d4f; }

.cap-alert {
  margin-top: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 4px;
}

.cap-alert.is-high    { color: #fa8c16; background: rgba(250, 140, 22, 0.1); }
.cap-alert.is-critical { color: #ff4d4f; background: rgba(255, 77, 79, 0.1); }

.strategy-leader-card {
  padding: 14px 16px;
  border-radius: 8px;
  border: 1px solid rgba(122, 162, 255, 0.3);
  background: rgba(122, 162, 255, 0.06);
  margin-bottom: 8px;
}

.leader-strategy {
  font-size: 1.1rem;
  font-weight: 700;
  color: #7aa2ff;
  margin-bottom: 6px;
}

.leader-meta {
  display: flex;
  gap: 12px;
  font-size: 0.83rem;
  color: var(--text-muted, #8899aa);
  margin-bottom: 6px;
}

.leader-reason {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 0.78rem;
}

.leader-reason span {
  padding: 2px 8px;
  border-radius: 3px;
  background: rgba(122, 162, 255, 0.1);
  color: #a8bfff;
}

.strategy-ranking-table {
  width: 100%;
}

.portfolio-blockers {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 0;
}

.blocker-chip {
  padding: 4px 12px;
  border-radius: 4px;
  font-size: 0.8rem;
  font-weight: 700;
  background: rgba(255, 77, 79, 0.12);
  color: #ff4d4f;
  border: 1px solid rgba(255, 77, 79, 0.3);
}

.portfolio-no-blocker {
  font-size: 0.85rem;
  color: #52c41a;
  padding: 8px 0;
}

.portfolio-warning-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 6px 0;
}

.warning-chip {
  padding: 4px 12px;
  border-radius: 4px;
  font-size: 0.8rem;
  font-weight: 600;
  background: rgba(250, 173, 20, 0.1);
  color: #faad14;
  border: 1px solid rgba(250, 173, 20, 0.3);
}

.control-decision-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 3px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.control-allow {
  background: rgba(82, 196, 26, 0.12);
  color: #52c41a;
  border: 1px solid rgba(82, 196, 26, 0.3);
}

.control-deny {
  background: rgba(255, 77, 79, 0.1);
  color: #ff7875;
  border: 1px solid rgba(255, 77, 79, 0.25);
}

/* ── Portfolio Gate 样式 ─────────────────────────────── */

.portfolio-gate-panel {
  border-left-width: 3px;
  border-left-style: solid;
}

.portfolio-gate-passed {
  border-left-color: rgba(82, 196, 26, 0.6);
}

.portfolio-gate-blocked {
  border-left-color: rgba(255, 77, 79, 0.7);
}

.portfolio-gate-unknown {
  border-left-color: rgba(250, 173, 20, 0.5);
}

.portfolio-gate-reason {
  font-size: 0.9rem;
  font-weight: 600;
  padding: 10px 0 6px;
  line-height: 1.5;
}

.portfolio-gate-passed .portfolio-gate-reason { color: #52c41a; }
.portfolio-gate-blocked .portfolio-gate-reason { color: #ff4d4f; }
.portfolio-gate-unknown .portfolio-gate-reason { color: #faad14; }

.portfolio-gate-chain {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 10px 0 4px;
  align-items: center;
}

.gate-chip-pass {
  background: rgba(82, 196, 26, 0.12) !important;
  color: #52c41a !important;
  border-color: rgba(82, 196, 26, 0.3) !important;
}

.portfolio-gate-priority {
  margin-top: 14px;
  padding: 10px 14px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.priority-chain {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.priority-step {
  padding: 4px 12px;
  border-radius: 4px;
  font-size: 0.8rem;
  font-weight: 600;
  background: rgba(122, 162, 255, 0.08);
  color: var(--text-muted, #8899aa);
  border: 1px solid rgba(122, 162, 255, 0.15);
}

.priority-step.priority-active {
  background: rgba(122, 162, 255, 0.18);
  color: #a8bfff;
  border-color: rgba(122, 162, 255, 0.4);
}

.priority-arrow {
  color: var(--text-muted, #8899aa);
  font-size: 0.85rem;
  padding: 0 2px;
}

/* ── Auto Degrade Engine 样式 ─────────────────────────────── */

.auto-degrade-panel {
  border-left-width: 3px;
  border-left-style: solid;
}

.auto-degrade-none {
  border-left-color: rgba(82, 196, 26, 0.5);
}

.auto-degrade-warning {
  border-left-color: rgba(250, 140, 22, 0.6);
}

.auto-degrade-critical {
  border-left-color: rgba(255, 77, 79, 0.8);
}

.auto-degrade-unknown {
  border-left-color: rgba(250, 173, 20, 0.5);
}

.auto-degrade-reason {
  font-size: 0.9rem;
  font-weight: 600;
  padding: 10px 0 6px;
  line-height: 1.5;
}

.auto-degrade-none .auto-degrade-reason     { color: #52c41a; }
.auto-degrade-warning .auto-degrade-reason  { color: #fa8c16; }
.auto-degrade-critical .auto-degrade-reason { color: #ff4d4f; }
.auto-degrade-unknown .auto-degrade-reason  { color: #faad14; }

.auto-degrade-button {
  padding: 7px 16px;
  border-radius: 5px;
  border: 1px solid rgba(122, 162, 255, 0.4);
  background: rgba(122, 162, 255, 0.08);
  color: #a8bfff;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.auto-degrade-button:hover:not(:disabled) {
  background: rgba(122, 162, 255, 0.18);
  border-color: rgba(122, 162, 255, 0.7);
  color: #fff;
}

.auto-degrade-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.auto-degrade-changed {
  margin-left: 10px;
  font-size: 0.85rem;
  font-weight: 700;
  color: #ff7875;
  vertical-align: middle;
}

.auto-degrade-snapshot {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.82rem;
  color: var(--text-muted, #8899aa);
}

/* ─────────────────────────────────────────
   Position Kill Switch
───────────────────────────────────────── */

.position-kill-panel {
  border-left: 4px solid transparent;
}

.position-kill-normal {
  border-left-color: #52c41a;
  background: rgba(82, 196, 26, 0.04);
}

.position-kill-active {
  border-left-color: #ff4d4f;
  background: rgba(255, 77, 79, 0.07);
  animation: kill-pulse 2s ease-in-out infinite;
}

.position-kill-unknown {
  border-left-color: #faad14;
  background: rgba(250, 173, 20, 0.04);
}

@keyframes kill-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 77, 79, 0); }
  50%       { box-shadow: 0 0 12px 4px rgba(255, 77, 79, 0.2); }
}

.position-kill-reason {
  font-size: 0.93rem;
  font-weight: 600;
  padding: 10px 0 6px;
  line-height: 1.5;
}

.position-kill-normal .position-kill-reason  { color: #52c41a; }
.position-kill-active .position-kill-reason  { color: #ff4d4f; }
.position-kill-unknown .position-kill-reason { color: #faad14; }

.position-kill-activate-btn {
  padding: 7px 16px;
  border-radius: 5px;
  border: 1px solid rgba(255, 77, 79, 0.4);
  background: rgba(255, 77, 79, 0.08);
  color: #ff7875;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.position-kill-activate-btn:hover:not(:disabled) {
  background: rgba(255, 77, 79, 0.18);
  border-color: rgba(255, 77, 79, 0.7);
  color: #fff;
}

.position-kill-activate-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.position-kill-reset-btn {
  padding: 7px 16px;
  border-radius: 5px;
  border: 1px solid rgba(82, 196, 26, 0.4);
  background: rgba(82, 196, 26, 0.08);
  color: #95de64;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.position-kill-reset-btn:hover:not(:disabled) {
  background: rgba(82, 196, 26, 0.18);
  border-color: rgba(82, 196, 26, 0.7);
  color: #fff;
}

.position-kill-reset-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.position-kill-result {
  margin-left: 10px;
  font-size: 0.85rem;
  font-weight: 700;
  color: #ff7875;
  vertical-align: middle;
}

/* ─────────────────────────────────────────
   Trader Config V1
───────────────────────────────────────── */

.trader-config-panel {
  border-left: 4px solid rgba(122, 162, 255, 0.35);
}

.trader-summary-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 10px;
}

.trader-route-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.trader-route-table th {
  text-align: left;
  padding: 8px 10px;
  color: var(--text-muted, #8899aa);
  font-weight: 600;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  white-space: nowrap;
}

.trader-route-table td {
  padding: 9px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  vertical-align: top;
  line-height: 1.5;
}

.trader-route-table tr:hover td {
  background: rgba(255, 255, 255, 0.02);
}

.trader-owner-section {
  border-left: 4px solid rgba(122, 162, 255, 0.25);
}

.trader-status-enabled {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
  background: rgba(82, 196, 26, 0.12);
  color: #95de64;
  border: 1px solid rgba(82, 196, 26, 0.3);
  letter-spacing: 0.03em;
}

.trader-status-disabled {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.05);
  color: var(--text-muted, #8899aa);
  border: 1px solid rgba(255, 255, 255, 0.1);
  letter-spacing: 0.03em;
}

.trader-action-button {
  padding: 5px 12px;
  border-radius: 4px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
}

.trader-action-stop {
  border: 1px solid rgba(255, 77, 79, 0.35);
  background: rgba(255, 77, 79, 0.07);
  color: #ff7875;
}

.trader-action-stop:hover:not(:disabled) {
  background: rgba(255, 77, 79, 0.16);
  border-color: rgba(255, 77, 79, 0.6);
  color: #fff;
}

.trader-action-start {
  border: 1px solid rgba(82, 196, 26, 0.35);
  background: rgba(82, 196, 26, 0.07);
  color: #95de64;
}

.trader-action-start:hover:not(:disabled) {
  background: rgba(82, 196, 26, 0.16);
  border-color: rgba(82, 196, 26, 0.6);
  color: #fff;
}

.trader-action-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.trader-brain-chip {
  display: inline-block;
  padding: 2px 7px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 600;
  background: rgba(122, 162, 255, 0.1);
  color: #a8bfff;
  border: 1px solid rgba(122, 162, 255, 0.25);
}

.trader-strategy-chip {
  display: inline-block;
  padding: 2px 7px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 600;
  background: rgba(250, 173, 20, 0.1);
  color: #ffc53d;
  border: 1px solid rgba(250, 173, 20, 0.25);
  margin-right: 4px;
}

.trader-warning-box {
  margin: 10px 0;
  padding: 10px 14px;
  border-radius: 6px;
  background: rgba(255, 77, 79, 0.07);
  border: 1px solid rgba(255, 77, 79, 0.2);
  color: #ff7875;
  font-size: 0.87rem;
  font-weight: 500;
}

.trader-lifecycle-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  border: 1px solid transparent;
  text-transform: uppercase;
}

.trader-state-created,
.trader-state-configuring,
.trader-state-configured,
.trader-state-validated {
  background: rgba(122, 162, 255, 0.12);
  border-color: rgba(122, 162, 255, 0.32);
  color: #a8bfff;
}

.trader-state-enabled {
  background: rgba(82, 196, 26, 0.14);
  border-color: rgba(82, 196, 26, 0.34);
  color: #95de64;
}

.trader-state-paused {
  background: rgba(250, 173, 20, 0.14);
  border-color: rgba(250, 173, 20, 0.32);
  color: #ffd666;
}

.trader-state-disabled {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.16);
  color: #9aa4b2;
}

.trader-state-blocked,
.trader-state-settlement-hold {
  background: rgba(255, 77, 79, 0.12);
  border-color: rgba(255, 77, 79, 0.32);
  color: #ff9c9c;
}

.trader-missing-list {
  margin: 8px 0 0;
  padding-left: 18px;
  color: #ffd6d6;
  font-size: 0.82rem;
}

.trader-lifecycle-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
}

.owner-type-self {
  color: #52c41a;
  font-weight: 700;
}

.owner-type-external {
  color: #fa8c16;
  font-weight: 700;
}

/* ─────────────────────────────────────────
   Trader Scheduler V1
───────────────────────────────────────── */

.scheduler-panel {
  border-left: 4px solid rgba(250, 173, 20, 0.35);
}

.scheduler-summary-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 10px;
}

.scheduler-control-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 14px;
}

.scheduler-button {
  padding: 7px 16px;
  border-radius: 5px;
  border: 1px solid rgba(82, 196, 26, 0.4);
  background: rgba(82, 196, 26, 0.08);
  color: #95de64;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.scheduler-button:hover:not(:disabled) {
  background: rgba(82, 196, 26, 0.18);
  border-color: rgba(82, 196, 26, 0.7);
  color: #fff;
}

.scheduler-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.scheduler-button-danger {
  border-color: rgba(255, 77, 79, 0.4);
  background: rgba(255, 77, 79, 0.08);
  color: #ff7875;
}

.scheduler-button-danger:hover:not(:disabled) {
  background: rgba(255, 77, 79, 0.18);
  border-color: rgba(255, 77, 79, 0.7);
  color: #fff;
}

.scheduler-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
}

.scheduler-table th {
  text-align: left;
  padding: 8px 10px;
  color: var(--text-muted, #8899aa);
  font-weight: 600;
  font-size: 0.77rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  white-space: nowrap;
}

.scheduler-table td {
  padding: 9px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  vertical-align: middle;
}

.scheduler-table tr.scheduler-due td {
  background: rgba(250, 173, 20, 0.06);
}

.scheduler-table tr.scheduler-disabled td {
  opacity: 0.5;
}

.scheduler-table tr:hover td {
  background: rgba(255, 255, 255, 0.02);
}

.scheduler-result-box {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.scheduler-dryrun-warning {
  margin: 10px 0;
  padding: 10px 14px;
  border-radius: 6px;
  background: rgba(250, 173, 20, 0.07);
  border: 1px solid rgba(250, 173, 20, 0.25);
  color: #ffc53d;
  font-size: 0.87rem;
  font-weight: 600;
}

.scheduler-status-enabled {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
  background: rgba(250, 173, 20, 0.12);
  color: #ffc53d;
  border: 1px solid rgba(250, 173, 20, 0.3);
}

.scheduler-status-disabled {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.05);
  color: var(--text-muted, #8899aa);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* ─────────────────────────────────────────
   Trader Execution Router V1
───────────────────────────────────────── */

.router-panel {
  border-left: 4px solid rgba(250, 173, 20, 0.5);
}

.router-plan-box,
.router-result-box {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.router-task-card {
  padding: 8px 10px;
  margin-bottom: 6px;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.router-dryrun-warning {
  margin: 8px 0;
  padding: 9px 14px;
  border-radius: 6px;
  background: rgba(250, 173, 20, 0.08);
  border: 1px solid rgba(250, 173, 20, 0.28);
  color: #ffc53d;
  font-size: 0.87rem;
  font-weight: 600;
}

.router-action-button {
  display: block;
  width: 100%;
  padding: 5px 10px;
  border-radius: 4px;
  border: 1px solid rgba(122, 162, 255, 0.35);
  background: rgba(122, 162, 255, 0.07);
  color: #a8bfff;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
  text-align: center;
  margin-bottom: 3px;
}

.router-action-button:hover:not(:disabled) {
  background: rgba(122, 162, 255, 0.16);
  border-color: rgba(122, 162, 255, 0.65);
  color: #fff;
}

.router-action-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.router-result-success {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
  background: rgba(82, 196, 26, 0.12);
  color: #95de64;
  border: 1px solid rgba(82, 196, 26, 0.3);
}

.router-result-error {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
  background: rgba(255, 77, 79, 0.1);
  color: #ff7875;
  border: 1px solid rgba(255, 77, 79, 0.25);
}

.router-result {
  border-left: 3px solid #00c8c8;
  padding-left: 10px;
  margin-top: 8px;
  font-size: 12px;
  color: #d9d9d9;
}

.brain-signal-box {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
}

.brain-signal-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
  color: #d9d9d9;
  font-size: 0.84rem;
}

.brain-signal-trade {
  border-left: 3px solid #52c41a;
  background: rgba(82, 196, 26, 0.06);
}

.brain-signal-skip {
  border-left: 3px solid #faad14;
  background: rgba(250, 173, 20, 0.06);
}

.brain-signal-mock {
  margin-top: 6px;
  margin-bottom: 6px;
  padding: 7px 10px;
  border-radius: 5px;
  background: rgba(0, 200, 200, 0.08);
  border: 1px solid rgba(0, 200, 200, 0.26);
  color: #8ff7f7;
  font-size: 0.8rem;
  font-weight: 600;
}

.real-signal-panel {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.real-signal-used {
  margin-top: 6px;
  margin-bottom: 6px;
  padding: 7px 10px;
  border-radius: 5px;
  background: rgba(82, 196, 26, 0.1);
  border: 1px solid rgba(82, 196, 26, 0.3);
  color: #d9f7be;
  font-size: 0.8rem;
  font-weight: 600;
}

.real-signal-mock {
  margin-top: 6px;
  margin-bottom: 6px;
  padding: 7px 10px;
  border-radius: 5px;
  background: rgba(0, 200, 200, 0.08);
  border: 1px solid rgba(0, 200, 200, 0.26);
  color: #8ff7f7;
  font-size: 0.8rem;
  font-weight: 600;
}

.real-signal-button {
  padding: 7px 12px;
  border-radius: 6px;
  border: 1px solid rgba(0, 200, 200, 0.35);
  background: rgba(0, 200, 200, 0.08);
  color: #8ff7f7;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.real-signal-button:hover:not(:disabled) {
  background: rgba(0, 200, 200, 0.16);
  border-color: rgba(0, 200, 200, 0.62);
  color: #fff;
}

.real-signal-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.real-signal-clear-button {
  border-color: rgba(255, 120, 117, 0.35);
  background: rgba(255, 120, 117, 0.08);
  color: #ffb3b1;
}

.real-signal-clear-button:hover:not(:disabled) {
  background: rgba(255, 120, 117, 0.16);
  border-color: rgba(255, 120, 117, 0.62);
  color: #fff1f0;
}

.real-signal-skip {
  background: rgba(250, 173, 20, 0.08);
  border-color: rgba(250, 173, 20, 0.3);
  color: #ffd666;
}

.real-signal-source {
  color: #91d5ff;
}

.real-signal-chain {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.real-signal-warning {
  margin-top: 8px;
  margin-bottom: 8px;
  padding: 9px 12px;
  border-radius: 6px;
  background: rgba(24, 144, 255, 0.08);
  border: 1px solid rgba(24, 144, 255, 0.26);
  color: #91d5ff;
  font-size: 0.84rem;
  line-height: 1.6;
}

.signal-life-panel {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.signal-status-new {
  background: rgba(82, 196, 26, 0.12);
  border-color: rgba(82, 196, 26, 0.32);
  color: #d9f7be;
}

.signal-status-consumed {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.16);
  color: #c9d1d9;
}

.signal-status-expired {
  background: rgba(255, 77, 79, 0.12);
  border-color: rgba(255, 77, 79, 0.3);
  color: #ffb3b3;
}

.signal-id-chip,
.signal-ttl-chip {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: #d9d9d9;
}

.signal-consume-box {
  margin-top: 8px;
}

.signal-expire-button {
  border-color: rgba(255, 77, 79, 0.28);
  background: rgba(255, 77, 79, 0.08);
  color: #ffb3b3;
}

.signal-expire-button:hover:not(:disabled) {
  border-color: rgba(255, 77, 79, 0.55);
  background: rgba(255, 77, 79, 0.16);
}

.signal-consume-button {
  border-color: rgba(201, 209, 217, 0.28);
  background: rgba(201, 209, 217, 0.08);
  color: #d0d7de;
}

.signal-consume-button:hover:not(:disabled) {
  border-color: rgba(201, 209, 217, 0.55);
  background: rgba(201, 209, 217, 0.16);
}

.signal-lifecycle-warning {
  margin-top: 8px;
  margin-bottom: 8px;
  padding: 9px 12px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #d0d7de;
  font-size: 0.84rem;
  line-height: 1.6;
}

.credential-server-panel {
  border-left: 4px solid rgba(82, 196, 26, 0.35);
}

.credential-exchange-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.credential-exchange-card {
  min-width: 0;
  border-left: 4px solid rgba(82, 196, 26, 0.28);
}

.credential-card-note {
  margin-top: 8px;
  color: #a8bfff;
  font-size: 0.84rem;
  font-weight: 600;
}

.credential-server-warning {
  margin-top: 8px;
  margin-bottom: 8px;
  padding: 9px 12px;
  border-radius: 6px;
  background: rgba(82, 196, 26, 0.08);
  border: 1px solid rgba(82, 196, 26, 0.24);
  color: #d9f7be;
  font-size: 0.84rem;
  line-height: 1.6;
}

.credential-runtime-warning {
  margin-top: 10px;
  padding: 9px 12px;
  border-radius: 6px;
  background: rgba(250, 173, 20, 0.09);
  border: 1px solid rgba(250, 173, 20, 0.28);
  color: #ffd666;
  font-size: 0.83rem;
  line-height: 1.6;
}

.credential-status-grid,
.credential-save-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.credential-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.credential-form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.credential-form-field span {
  color: var(--text-muted, #8899aa);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.credential-form-field-wide,
.credential-form-field-full {
  grid-column: span 2;
}

.credential-form-input,
.credential-form-textarea {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: var(--text-main, #f4fbff);
  font-size: 0.9rem;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.credential-form-input:focus,
.credential-form-textarea:focus {
  border-color: rgba(82, 196, 26, 0.45);
  box-shadow: 0 0 0 3px rgba(82, 196, 26, 0.12);
  background: rgba(255, 255, 255, 0.055);
}

.credential-form-input:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.credential-form-textarea {
  resize: vertical;
  min-height: 72px;
}

@media (max-width: 760px) {
  .credential-exchange-grid {
    grid-template-columns: 1fr;
  }

  .credential-form-grid {
    grid-template-columns: 1fr;
  }

  .credential-form-field-wide,
  .credential-form-field-full {
    grid-column: span 1;
  }
}

.signal-score-panel {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.signal-score-rank-a {
  background: rgba(82, 196, 26, 0.14);
  border-color: rgba(82, 196, 26, 0.34);
  color: #d9f7be;
}

.signal-score-rank-b {
  background: rgba(24, 144, 255, 0.14);
  border-color: rgba(24, 144, 255, 0.32);
  color: #91d5ff;
}

.signal-score-rank-c {
  background: rgba(250, 173, 20, 0.14);
  border-color: rgba(250, 173, 20, 0.32);
  color: #ffd666;
}

.signal-score-rank-d {
  background: rgba(255, 77, 79, 0.12);
  border-color: rgba(255, 77, 79, 0.3);
  color: #ffb3b3;
}

.signal-score-breakdown {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 6px 10px;
  margin-top: 8px;
  color: #d9d9d9;
  font-size: 0.8rem;
}

.signal-risk-multiplier,
.signal-score-chip {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.05);
  color: #d9d9d9;
}

.signal-risk-multiplier {
  color: #8ff7f7;
  border-color: rgba(0, 200, 200, 0.28);
  background: rgba(0, 200, 200, 0.08);
}

.signal-adjusted-notional {
  color: #8ff7f7;
  font-weight: 700;
}

.signal-pool-panel {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.025);
  min-width: 240px;
}

.signal-pool-summary {
  margin-bottom: 8px;
  color: #d0d7de;
  font-size: 0.8rem;
  font-weight: 700;
}

.signal-pool-item {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 6px;
  padding: 6px 8px;
  border-radius: 6px;
  font-size: 0.78rem;
}

.signal-pool-item-selected {
  background: rgba(82, 196, 26, 0.08);
  border: 1px solid rgba(82, 196, 26, 0.26);
  color: #d9f7be;
}

.signal-pool-item-rejected {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #aab4be;
}

.brain-confidence-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 700;
  color: #d9f7be;
  background: rgba(82, 196, 26, 0.14);
  border: 1px solid rgba(82, 196, 26, 0.28);
  white-space: nowrap;
}

.brain-reason-chain {
  margin-top: 8px;
}

.brain-test-button {
  display: block;
  width: 100%;
  padding: 5px 10px;
  border-radius: 4px;
  border: 1px solid rgba(0, 200, 200, 0.35);
  background: rgba(0, 200, 200, 0.07);
  color: #8ff7f7;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
  text-align: center;
}

.brain-test-button:hover:not(:disabled) {
  background: rgba(0, 200, 200, 0.16);
  border-color: rgba(0, 200, 200, 0.62);
  color: #fff;
}

.brain-test-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.router-chain-chip {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 0.75rem;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.06);
  color: #8899aa;
  border: 1px solid rgba(255, 255, 255, 0.08);
  margin-right: 3px;
  margin-bottom: 2px;
}

.router-external-warning {
  margin: 8px 0;
  padding: 9px 14px;
  border-radius: 6px;
  background: rgba(255, 77, 79, 0.07);
  border: 1px solid rgba(255, 77, 79, 0.22);
  color: #ff7875;
  font-size: 0.87rem;
  font-weight: 600;
}

/* ── Portfolio Risk Aggregator ── */
.portfolio-risk-box {
  margin: 8px 0;
  padding: 10px 14px;
  border-radius: 6px;
  background: rgba(24, 144, 255, 0.06);
  border: 1px solid rgba(24, 144, 255, 0.22);
  font-size: 0.82rem;
}

.portfolio-risk-box.portfolio-risk-warning {
  background: rgba(250, 173, 20, 0.06);
  border-color: rgba(250, 173, 20, 0.3);
}

.portfolio-risk-box.portfolio-risk-critical {
  background: rgba(255, 77, 79, 0.07);
  border-color: rgba(255, 77, 79, 0.35);
}

.portfolio-risk-title {
  font-weight: 700;
  font-size: 0.8rem;
  color: #69c0ff;
  margin-bottom: 7px;
  letter-spacing: 0.03em;
}

.portfolio-risk-box.portfolio-risk-warning .portfolio-risk-title {
  color: #ffc53d;
}

.portfolio-risk-box.portfolio-risk-critical .portfolio-risk-title {
  color: #ff7875;
}

.portfolio-risk-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-bottom: 6px;
}

.portfolio-clamp-ratio {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #8899aa;
  font-size: 0.78rem;
  font-weight: 600;
}

.portfolio-clamp-ratio.is-active {
  background: rgba(250, 173, 20, 0.15);
  border-color: rgba(250, 173, 20, 0.4);
  color: #ffc53d;
}

.portfolio-utilization-bar-wrap {
  width: 100%;
  height: 6px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 6px;
}

.portfolio-utilization-bar {
  height: 100%;
  border-radius: 3px;
  transition: width 0.3s ease;
}

.portfolio-utilization-bar-ok {
  background: linear-gradient(90deg, #52c41a, #73d13d);
}

.portfolio-utilization-bar-warn {
  background: linear-gradient(90deg, #faad14, #ffd666);
}

.portfolio-utilization-bar-critical {
  background: linear-gradient(90deg, #ff4d4f, #ff7875);
}

.portfolio-risk-warning-text {
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 600;
  color: #ffc53d;
  background: rgba(250, 173, 20, 0.1);
  border: 1px solid rgba(250, 173, 20, 0.25);
  margin-bottom: 4px;
}

.portfolio-risk-critical-text {
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
  color: #ff7875;
  background: rgba(255, 77, 79, 0.1);
  border: 1px solid rgba(255, 77, 79, 0.3);
  margin-bottom: 4px;
}

.portfolio-risk-breakdown {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 4px;
}

/* ── Signal → Risk Budget 动态耦合 ── */
.signal-risk-coupling {
  margin: 8px 0;
  padding: 8px 12px;
  border-radius: 6px;
  background: rgba(82, 196, 26, 0.06);
  border: 1px solid rgba(82, 196, 26, 0.22);
  font-size: 0.82rem;
}

.signal-risk-coupling-title {
  font-weight: 700;
  font-size: 0.8rem;
  color: #95de64;
  margin-bottom: 6px;
  letter-spacing: 0.03em;
}

.signal-risk-budget-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-bottom: 4px;
}

.signal-adjusted-notional-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-bottom: 4px;
}

.signal-effective-budget {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-bottom: 4px;
  color: #ffe58f;
}

.signal-effective-budget strong {
  color: #ffd666;
  font-weight: 700;
}

/* Rank chip overrides inside coupling box */
.signal-risk-rank-a {
  background: rgba(82, 196, 26, 0.18) !important;
  border-color: rgba(82, 196, 26, 0.5) !important;
  color: #95de64 !important;
}

.signal-risk-rank-b {
  background: rgba(250, 173, 20, 0.18) !important;
  border-color: rgba(250, 173, 20, 0.5) !important;
  color: #ffc53d !important;
}

.signal-risk-rank-c {
  background: rgba(255, 122, 0, 0.18) !important;
  border-color: rgba(255, 122, 0, 0.5) !important;
  color: #ff9c6e !important;
}

.signal-risk-rank-d {
  background: rgba(255, 77, 79, 0.18) !important;
  border-color: rgba(255, 77, 79, 0.5) !important;
  color: #ff7875 !important;
}

.signal-risk-rank-note {
  margin-top: 5px;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 600;
}

.signal-risk-rank-note.signal-risk-rank-b {
  background: rgba(250, 173, 20, 0.1);
  color: #ffc53d;
  border: 1px solid rgba(250, 173, 20, 0.3);
}

.signal-risk-rank-note.signal-risk-rank-c {
  background: rgba(255, 122, 0, 0.1);
  color: #ff9c6e;
  border: 1px solid rgba(255, 122, 0, 0.3);
}

.signal-risk-rank-note.signal-risk-rank-d {
  background: rgba(255, 77, 79, 0.1);
  color: #ff7875;
  border: 1px solid rgba(255, 77, 79, 0.3);
}

/* ── Correlation Risk Engine ─────────────────────────────────── */
.correlation-risk-box {
  margin: 10px 0;
  padding: 12px 14px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
}

.correlation-risk-box.correlation-risk-warning {
  border-color: rgba(250, 173, 20, 0.45);
  background: rgba(250, 173, 20, 0.06);
}

.correlation-risk-box.correlation-risk-critical {
  border-color: rgba(255, 77, 79, 0.5);
  background: rgba(255, 77, 79, 0.07);
}

.correlation-risk-title {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8899aa;
  margin-bottom: 8px;
}

.correlation-risk-box.correlation-risk-warning .correlation-risk-title {
  color: #ffc53d;
}

.correlation-risk-box.correlation-risk-critical .correlation-risk-title {
  color: #ff7875;
}

.correlation-risk-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-bottom: 6px;
}

.correlation-status-chip {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.correlation-status-safe {
  background: rgba(82, 196, 26, 0.15);
  border: 1px solid rgba(82, 196, 26, 0.4);
  color: #95de64;
}

.correlation-status-warning {
  background: rgba(250, 173, 20, 0.15);
  border: 1px solid rgba(250, 173, 20, 0.4);
  color: #ffc53d;
}

.correlation-status-blocked {
  background: rgba(255, 77, 79, 0.15);
  border: 1px solid rgba(255, 77, 79, 0.45);
  color: #ff7875;
}

.correlation-risk-warning-text {
  font-size: 0.78rem;
  color: #ffc53d;
  margin: 5px 0;
  font-weight: 600;
}

.correlation-risk-critical-text {
  font-size: 0.78rem;
  color: #ff7875;
  margin: 5px 0;
  font-weight: 700;
}

.correlation-cluster-breakdown {
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.correlation-cluster-chip {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.74rem;
  font-family: monospace;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #aabbcc;
}

.correlation-cluster-chip.is-over-cap {
  background: rgba(250, 140, 22, 0.12);
  border-color: rgba(250, 140, 22, 0.4);
  color: #ffa940;
}

/* ── Execution Audit V1 ──────────────────────────────────────── */
.audit-v1-panel {
  margin: 10px 0;
}

.audit-v1-record {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  margin-bottom: 8px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.02);
}

.audit-v1-record-header {
  padding: 8px 12px;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  font-size: 0.82rem;
}

.audit-v1-record-header:hover {
  background: rgba(255, 255, 255, 0.04);
}

.audit-v1-record-body {
  padding: 8px 12px 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.8rem;
}

.audit-v1-id {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-family: monospace;
  font-size: 0.74rem;
  background: rgba(99, 179, 237, 0.12);
  border: 1px solid rgba(99, 179, 237, 0.3);
  color: #63b3ed;
  cursor: pointer;
}

.audit-v1-status-skip {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 4px;
  font-size: 0.74rem;
  font-weight: 700;
  background: rgba(250, 173, 20, 0.15);
  border: 1px solid rgba(250, 173, 20, 0.4);
  color: #ffc53d;
}

.audit-v1-status-blocked {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 4px;
  font-size: 0.74rem;
  font-weight: 700;
  background: rgba(255, 77, 79, 0.15);
  border: 1px solid rgba(255, 77, 79, 0.4);
  color: #ff7875;
}

.audit-v1-status-dryrun {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 4px;
  font-size: 0.74rem;
  font-weight: 700;
  background: rgba(56, 139, 253, 0.15);
  border: 1px solid rgba(56, 139, 253, 0.4);
  color: #79b8ff;
}

.audit-v1-chain {
  margin: 6px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.audit-v1-snapshot {
  margin-top: 5px;
  padding: 5px 8px;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.76rem;
  color: #aabbcc;
}

.audit-v1-refresh-button {
  padding: 5px 12px;
  border-radius: 5px;
  border: 1px solid rgba(99, 179, 237, 0.4);
  background: rgba(99, 179, 237, 0.1);
  color: #63b3ed;
  font-size: 0.8rem;
  cursor: pointer;
}

.audit-v1-refresh-button:hover {
  background: rgba(99, 179, 237, 0.18);
}

.audit-v1-clear-button {
  padding: 5px 12px;
  border-radius: 5px;
  border: 1px solid rgba(250, 173, 20, 0.4);
  background: rgba(250, 173, 20, 0.08);
  color: #ffc53d;
  font-size: 0.8rem;
  cursor: pointer;
}

.audit-v1-clear-button:hover {
  background: rgba(250, 173, 20, 0.15);
}

/* ===== Flow Panel ===== */
.flow-grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 0 16px 24px;
}

.flow-card {
  background: var(--fubit-panel, #0E2038);
  border: 1px solid var(--fubit-border, rgba(0,200,200,0.18));
  border-radius: 10px;
  padding: 16px 20px;
}

.flow-card-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 14px;
}

.flow-trader-id {
  font-size: 1rem;
  color: var(--fubit-cyan, #00C8C8);
  letter-spacing: 0.02em;
}

.flow-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  font-size: 0.78rem;
}

.flow-line {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 4px;
  margin-bottom: 10px;
}

.flow-arrow {
  display: flex;
  align-items: center;
  color: rgba(0, 200, 200, 0.4);
  font-size: 1rem;
  padding: 0 2px;
  align-self: center;
}

.flow-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 90px;
  padding: 8px 12px;
  border-radius: 7px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
  text-align: center;
  gap: 3px;
}

.flow-node-label {
  font-size: 0.72rem;
  color: rgba(217,217,217,0.55);
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.flow-node-status {
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.flow-node-sub {
  font-size: 0.68rem;
  color: rgba(217,217,217,0.5);
  max-width: 110px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.flow-node.ok {
  border-color: rgba(22,199,132,0.35);
  background: rgba(22,199,132,0.07);
}
.flow-node.ok .flow-node-status { color: #52c41a; }

.flow-node.warn {
  border-color: rgba(255,176,32,0.35);
  background: rgba(255,176,32,0.07);
}
.flow-node.warn .flow-node-status { color: #ffb020; }

.flow-node.blocked {
  border-color: rgba(255,93,93,0.35);
  background: rgba(255,93,93,0.07);
}
.flow-node.blocked .flow-node-status { color: #ff5d5d; }

.flow-node.disabled {
  border-color: rgba(127,142,163,0.25);
  background: rgba(127,142,163,0.05);
}
.flow-node.disabled .flow-node-status { color: #7f8ea3; }

.flow-detail-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  font-size: 0.75rem;
  border-top: 1px solid rgba(255,255,255,0.05);
  padding-top: 8px;
  margin-top: 4px;
}

.flow-loading {
  padding: 40px 24px;
  color: rgba(217,217,217,0.5);
  font-size: 0.9rem;
  text-align: center;
}

@media (max-width: 600px) {
  .flow-line {
    flex-direction: column;
    align-items: flex-start;
  }
  .flow-arrow {
    transform: rotate(90deg);
    align-self: flex-start;
    margin-left: 40px;
  }
  .flow-node {
    width: 100%;
    flex-direction: row;
    justify-content: flex-start;
    gap: 8px;
    min-width: unset;
  }
}

/* ── Execution Sandbox ─────────────────────────────────────────── */
.flow-sandbox-bar {
  display: flex;
  align-items: center;
  padding: 8px 16px 6px;
  border-top: 1px solid var(--fubit-border);
}

.sandbox-result {
  padding: 0 12px 4px;
}

.sandbox-result-inner {
  border-radius: 8px;
  padding: 12px 16px;
  margin: 6px 0 4px;
  border: 1px solid var(--fubit-border);
}

.sandbox-ok {
  background: rgba(52, 199, 89, 0.08);
  border-color: var(--ok);
}

.sandbox-warn {
  background: rgba(255, 204, 0, 0.08);
  border-color: var(--warn);
}

.sandbox-block {
  background: rgba(255, 59, 48, 0.08);
  border-color: var(--danger);
}

.sandbox-result-title {
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 10px;
}

.sandbox-sections {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.sandbox-section {
  flex: 1 1 180px;
  min-width: 160px;
}

.sandbox-section-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--fubit-text-muted, #8e8e93);
  margin-bottom: 6px;
}

.sandbox-table {
  border-collapse: collapse;
  width: 100%;
  font-size: 12px;
}

.sandbox-table td {
  padding: 2px 6px 2px 0;
  vertical-align: top;
}

.sandbox-key {
  color: var(--fubit-text-muted, #8e8e93);
  white-space: nowrap;
  padding-right: 10px;
  font-size: 11px;
}

/* ── Trader 控制面板 / Execution Sandbox ────────────────────────── */
.trader-control-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}

.trader-form-panel {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  padding: 16px;
}

.trader-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px 16px;
}

@media (max-width: 600px) {
  .trader-form-grid {
    grid-template-columns: 1fr;
  }
}

.trader-form-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.trader-sandbox-result {
  padding: 4px 8px 8px;
}

.trader-sandbox-inner {
  border-radius: 6px;
  padding: 10px 14px;
  font-size: 12px;
  border-left: 3px solid transparent;
}

.trader-sandbox-loading {
  padding: 8px 14px;
  color: var(--fubit-text-muted, #8e8e93);
  font-size: 12px;
}

.trader-sandbox-ok {
  background: rgba(82,196,26,0.07);
  border-left-color: #52c41a;
  color: #95de64;
}

.trader-sandbox-warn {
  background: rgba(250,173,20,0.07);
  border-left-color: #faad14;
  color: #ffc53d;
}

.trader-sandbox-block {
  background: rgba(255,77,79,0.07);
  border-left-color: #ff4d4f;
  color: #ff7875;
}

.trader-sandbox-disabled {
  background: rgba(140,140,140,0.07);
  border-left-color: #595959;
  color: #8c8c8c;
}

.trader-sandbox-title {
  font-weight: 600;
  font-size: 13px;
  margin-bottom: 8px;
}

.trader-sandbox-notice {
  margin-top: 8px;
  font-size: 11px;
  color: var(--fubit-text-muted, #8e8e93);
  font-style: italic;
}

/* ── Finance / Owner Settlement ─────────────────────────────────── */
.finance-card {
  padding: 20px 24px;
}

.finance-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.finance-table th {
  text-align: left;
  padding: 8px 10px;
  background: rgba(255,255,255,0.04);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  color: var(--fubit-text-muted, #8e8e93);
  font-weight: 500;
  white-space: nowrap;
}
.finance-table td {
  padding: 8px 10px;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  vertical-align: middle;
}
.finance-table tr:hover td {
  background: rgba(255,255,255,0.02);
}

.owner-status-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.owner-settlement-normal {
  background: rgba(82,196,26,0.12);
  color: #73d13d;
  border: 1px solid rgba(82,196,26,0.3);
}
.owner-settlement-warning {
  background: rgba(250,173,20,0.12);
  color: #ffc53d;
  border: 1px solid rgba(250,173,20,0.3);
}
.owner-settlement-danger {
  background: rgba(255,77,79,0.12);
  color: #ff7875;
  border: 1px solid rgba(255,77,79,0.3);
}
.settlement-card {
  padding: 12px;
  background: rgba(8, 14, 24, 0.72);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
}
.withdraw-card,
.reset-card {
  padding: 8px 10px;
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 6px;
  min-width: 120px;
}
.withdraw-card strong,
.reset-card strong {
  display: block;
  margin-top: 3px;
  color: var(--fubit-text, #e8e8ed);
}
.capital-state-running {
  background: rgba(82,196,26,0.12);
  color: #73d13d;
  border: 1px solid rgba(82,196,26,0.34);
}
.capital-state-settlement-hold {
  background: rgba(250,140,22,0.14);
  color: #ffa940;
  border: 1px solid rgba(250,140,22,0.36);
}
.capital-state-settled {
  background: rgba(24,144,255,0.14);
  color: #69c0ff;
  border: 1px solid rgba(24,144,255,0.36);
}
.capital-state-withdrawable {
  background: rgba(114,46,209,0.16);
  color: #b37feb;
  border: 1px solid rgba(114,46,209,0.42);
}

.finance-ledger-card {
  margin-top: 20px;
  padding: 14px 16px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 8px;
}
.owner-ledger-list {
  list-style: none;
  padding: 0;
  margin: 6px 0 0;
  font-size: 12px;
}
.owner-ledger-list li {
  padding: 4px 0;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  color: var(--fubit-text, #e8e8ed);
}
.owner-ledger-list li:last-child {
  border-bottom: none;
}

/* ── Owner Commercial Center ──────────────────────────────────────── */
.owner-center-card {
  padding: 20px 24px;
}
.owner-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.owner-tab-btn {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 6px;
  color: var(--fubit-text, #e8e8ed);
  cursor: pointer;
  font-size: 13px;
  padding: 5px 16px;
  transition: background .15s, border-color .15s;
}
.owner-tab-btn:hover {
  background: rgba(22,119,255,0.15);
  border-color: rgba(22,119,255,0.4);
}
.owner-tab-btn.is-active {
  background: rgba(22,119,255,0.2);
  border-color: rgba(22,119,255,0.6);
  color: #4096ff;
  font-weight: 600;
}
.owner-center-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 16px;
}
.owner-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 16px 18px;
}
.owner-card-wide {
  grid-column: 1 / -1;
}
.owner-card-overview {
  grid-column: 1 / -1;
}
.owner-overview-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.owner-overview-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 100px;
}
.owner-overview-item .gate-label {
  font-size: 11px;
}
.owner-overview-item strong {
  font-size: 14px;
  color: var(--fubit-text, #e8e8ed);
}
.owner-sub-info-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 100px;
}
.owner-sub-info-item strong {
  font-size: 13px;
  color: var(--fubit-text, #e8e8ed);
}
.owner-plan-grid {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.owner-plan-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  padding: 12px 16px;
  min-width: 160px;
  flex: 1 1 160px;
  max-width: 260px;
}
.owner-plan-card.is-active-plan {
  border-color: rgba(82,196,26,0.4);
  background: rgba(82,196,26,0.05);
}
.owner-plan-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--fubit-text, #e8e8ed);
  margin-bottom: 4px;
}
.owner-plan-price {
  font-size: 15px;
  font-weight: 700;
  color: #4096ff;
  margin-bottom: 6px;
}
.owner-sub-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  white-space: nowrap;
}
.owner-sub-active {
  background: rgba(82,196,26,0.12);
  color: #73d13d;
  border: 1px solid rgba(82,196,26,0.3);
}
.owner-sub-expired {
  background: rgba(255,77,79,0.12);
  color: #ff7875;
  border: 1px solid rgba(255,77,79,0.3);
}
.owner-sub-inactive {
  background: rgba(255,255,255,0.06);
  color: #8b8fa8;
  border: 1px solid rgba(255,255,255,0.1);
}

.subscription-panel {
  border-color: rgba(0, 200, 200, 0.22);
}

.subscription-plan-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 10px;
}

.subscription-plan-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02));
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
}

.subscription-plan-card.active {
  border-color: rgba(0, 200, 200, 0.72);
  background: linear-gradient(180deg, rgba(0, 228, 255, 0.16), rgba(0, 179, 194, 0.08));
  box-shadow: 0 16px 36px rgba(0, 200, 200, 0.16);
}

.subscription-plan-card.subscription-plan-trial {
  border-color: rgba(255, 176, 32, 0.35);
}

.subscription-plan-card.subscription-plan-pro {
  border-color: rgba(69, 214, 255, 0.4);
}

.subscription-status-active {
  color: #73d13d;
  font-weight: 700;
}

.subscription-status-expired,
.subscription-status-suspended {
  color: #ff7875;
  font-weight: 700;
}

.subscription-status-none {
  color: #ffb020;
  font-weight: 700;
}

.subscription-limit-warning {
  color: #ffb020 !important;
}

.subscription-block-note {
  margin: 8px 0 14px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255, 93, 93, 0.36);
  background: rgba(255, 93, 93, 0.12);
  color: #ffd2d2;
  font-weight: 700;
}

.subscription-plan-price {
  font-size: 18px;
  font-weight: 800;
  color: #45d6ff;
}

.subscription-plan-feature {
  color: var(--text-muted);
  font-size: 12px;
}

.subscription-upgrade-button {
  margin-top: auto;
  border: 1px solid rgba(0, 200, 200, 0.28);
  background: rgba(0, 200, 200, 0.12);
  color: #dffcff;
  border-radius: 999px;
  padding: 8px 14px;
  cursor: pointer;
  font-weight: 700;
}

.subscription-upgrade-button:hover {
  background: rgba(0, 200, 200, 0.18);
}

.owner-subscription-card {
  overflow: hidden;
}

.owner-summary-inline-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: stretch;
}

.owner-summary-inline-item {
  flex: 1 1 120px;
  min-width: 110px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(0, 200, 200, 0.14);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 100%),
    rgba(10, 23, 40, 0.72);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 6px;
  min-height: 0;
}

.owner-summary-inline-item.is-wide {
  flex-basis: 200px;
}

.owner-summary-inline-label {
  color: var(--fubit-text-secondary);
  font-size: 12px;
  line-height: 1.35;
}

.owner-summary-inline-value {
  color: #00E4FF;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.01em;
  word-break: break-word;
}

.owner-summary-inline-value.owner-status-good,
.owner-summary-inline-value.owner-status-bad,
.owner-summary-inline-value.owner-status-warn {
  font-size: 20px;
}

.owner-summary-inline-value .owner-sub-badge,
.owner-summary-inline-value .owner-status-badge,
.owner-summary-inline-value .withdrawal-status-pending,
.owner-summary-inline-value .withdrawal-status-done,
.owner-summary-inline-value .withdrawal-status-approved,
.owner-summary-inline-value .withdrawal-status-approved1 {
  font-size: 11px;
}

.owner-subscription-actions {
  margin-top: 12px;
}

#owner-subscription-modal-root {
  position: relative;
  z-index: 99999;
}

.owner-subscription-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  background: rgba(0, 8, 18, 0.72);
  backdrop-filter: blur(8px);
}

.owner-subscription-modal {
  display: block;
  width: min(720px, calc(100vw - 32px));
  max-height: calc(100vh - 64px);
  overflow-y: auto;
  border-radius: 24px;
  border: 1px solid #006F7A;
  background: #0D1A2E;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.42);
  color: var(--fubit-text, #e8e8ed);
}

body.owner-subscription-modal-open {
  overflow: hidden;
}

body.owner-modal-open {
  overflow: hidden;
}

body.owner-page .owner-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 99998;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  background: rgba(0, 8, 18, 0.72);
  backdrop-filter: blur(8px);
}

body.owner-page .owner-modal {
  display: block;
  width: min(720px, calc(100vw - 32px));
  max-height: calc(100vh - 64px);
  overflow-y: auto;
  border-radius: 24px;
  border: 1px solid #006F7A;
  background: #0D1A2E;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.42);
  color: var(--fubit-text, #e8e8ed);
}

body.owner-page .owner-modal-header,
body.owner-page .owner-modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
}

body.owner-page .owner-modal-header {
  border-bottom: 1px solid rgba(69, 214, 255, 0.14);
  justify-content: flex-start;
}

body.owner-page .owner-modal-header h2 {
  margin: 4px 0 0;
  font-size: 22px;
  color: #f7feff;
}

body.owner-page .owner-modal-header p {
  margin: 6px 0 0;
  color: var(--fubit-text-secondary);
  font-size: 13px;
  line-height: 1.6;
}

body.owner-page .owner-modal-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 18px 20px;
}

body.owner-page .owner-modal-footer {
  border-top: 1px solid rgba(69, 214, 255, 0.14);
}

body.owner-page .owner-withdrawal-draft-modal {
  max-width: 880px;
}

body.owner-page .owner-withdrawal-draft-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

body.owner-page .owner-withdrawal-draft-card {
  border: 1px solid rgba(0, 200, 200, 0.32);
  border-radius: 18px;
  padding: 18px;
  background: rgba(13, 26, 46, 0.78);
}

body.owner-page .owner-withdrawal-draft-card span {
  display: block;
  color: #D9D9D9;
  margin-bottom: 8px;
}

body.owner-page .owner-withdrawal-draft-card strong {
  display: block;
  color: #00E4FF;
  font-size: 24px;
  margin-bottom: 8px;
}

body.owner-page .owner-withdrawal-draft-card p,
body.owner-page .owner-withdrawal-draft-notice p {
  color: #D9D9D9;
  line-height: 1.7;
}

body.owner-page .owner-withdrawal-draft-notice {
  margin-top: 18px;
  border: 1px solid rgba(0, 200, 200, 0.24);
  border-radius: 18px;
  padding: 18px;
  background: rgba(0, 111, 122, 0.12);
}

body.owner-page .owner-withdrawal-draft-notice h3 {
  margin: 0 0 10px;
  color: #f7feff;
  font-size: 18px;
}

body.owner-page .owner-withdrawal-draft-form {
  margin-top: 18px;
  display: grid;
  gap: 14px;
}

body.owner-page .owner-withdrawal-draft-form label {
  display: grid;
  gap: 8px;
  color: #D9D9D9;
}

body.owner-page .owner-withdrawal-draft-form input,
body.owner-page .owner-withdrawal-draft-form textarea {
  width: 100%;
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(7, 18, 34, 0.84);
  color: #D9D9D9;
}

body.owner-page .owner-withdrawal-draft-form textarea {
  min-height: 96px;
  resize: vertical;
}

body.owner-page .owner-replenishment-draft-modal {
  max-width: 880px;
}

body.owner-page .owner-replenishment-draft-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

body.owner-page .owner-replenishment-draft-card {
  border: 1px solid rgba(0, 200, 200, 0.32);
  border-radius: 18px;
  padding: 18px;
  background: rgba(13, 26, 46, 0.78);
}

body.owner-page .owner-replenishment-draft-card span {
  display: block;
  color: #D9D9D9;
  margin-bottom: 8px;
}

body.owner-page .owner-replenishment-draft-card strong {
  display: block;
  color: #00E4FF;
  font-size: 24px;
  margin-bottom: 8px;
}

body.owner-page .owner-replenishment-draft-card p,
body.owner-page .owner-replenishment-draft-notice p {
  color: #D9D9D9;
  line-height: 1.7;
}

body.owner-page .owner-replenishment-draft-notice {
  margin-top: 18px;
  border: 1px solid rgba(0, 200, 200, 0.24);
  border-radius: 18px;
  padding: 18px;
  background: rgba(0, 111, 122, 0.12);
}

body.owner-page .owner-replenishment-draft-notice h3 {
  margin: 0 0 10px;
  color: #f7feff;
  font-size: 18px;
}

body.owner-page .owner-replenishment-draft-form {
  margin-top: 18px;
  display: grid;
  gap: 14px;
}

body.owner-page .owner-replenishment-draft-form label {
  display: grid;
  gap: 8px;
  color: #D9D9D9;
}

body.owner-page .owner-replenishment-draft-form input,
body.owner-page .owner-replenishment-draft-form textarea {
  width: 100%;
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(7, 18, 34, 0.84);
  color: #D9D9D9;
}

body.owner-page .owner-replenishment-draft-form textarea {
  min-height: 96px;
  resize: vertical;
}

body.owner-page .owner-ledger-draft-modal {
  max-width: 1080px;
}

body.owner-page .owner-ledger-draft-notice {
  border: 1px solid rgba(0, 200, 200, 0.24);
  border-radius: 18px;
  padding: 18px;
  background: rgba(0, 111, 122, 0.12);
  margin-bottom: 18px;
}

body.owner-page .owner-ledger-draft-notice h3 {
  margin: 0 0 10px;
  color: #00E4FF;
}

body.owner-page .owner-ledger-draft-notice p {
  color: #D9D9D9;
  line-height: 1.7;
  margin: 6px 0;
}

body.owner-page .owner-ledger-draft-types {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}

body.owner-page .owner-ledger-draft-types span {
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 999px;
  padding: 8px 12px;
  color: #D9D9D9;
  background: rgba(13, 26, 46, 0.72);
  font-size: 12px;
}

body.owner-page .owner-ledger-draft-table {
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 18px;
  overflow: hidden;
}

.owner-subscription-modal-header,
.owner-subscription-modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
}

.owner-subscription-modal-header {
  border-bottom: 1px solid rgba(69, 214, 255, 0.14);
  justify-content: flex-start;
}

.owner-subscription-modal-header h3 {
  margin: 4px 0 0;
  font-size: 22px;
  color: #f7feff;
}

.owner-subscription-modal-subtitle {
  margin-top: 6px;
  color: var(--fubit-text-secondary);
  font-size: 13px;
}

.owner-subscription-modal-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 18px 20px;
}

.owner-subscription-modal-footer {
  border-top: 1px solid rgba(69, 214, 255, 0.14);
}

.owner-subscription-payment-box {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(69, 214, 255, 0.18);
  background:
    linear-gradient(180deg, rgba(69, 214, 255, 0.08), rgba(8, 18, 34, 0.76)),
    rgba(8, 18, 34, 0.92);
}

.owner-subscription-payment-panel {
  margin-top: 14px;
  padding: 16px;
  border-radius: 14px;
  border: 1px solid rgba(69, 214, 255, 0.28);
  background:
    linear-gradient(180deg, rgba(69, 214, 255, 0.08), rgba(8, 18, 34, 0.88)),
    rgba(8, 18, 34, 0.92);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.owner-subscription-plan-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.owner-subscription-plan-card {
  cursor: pointer;
  border-color: rgba(255, 255, 255, 0.08);
  background:
    linear-gradient(180deg, rgba(14, 24, 42, 0.96), rgba(7, 19, 32, 0.96)),
    #071320;
}

.owner-subscription-plan-card.is-selected,
.owner-subscription-plan-card.active {
  border-color: #00c8c8;
  background: linear-gradient(180deg, rgba(0, 228, 255, 0.16), rgba(0, 179, 194, 0.1));
  box-shadow: 0 18px 40px rgba(0, 200, 200, 0.18);
}

.owner-subscription-plan-card input[type="radio"] {
  accent-color: #45d6ff;
}

.owner-subscription-payment-notes {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.owner-subscription-payment-method,
.owner-subscription-proof-input {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.owner-subscription-payment-head {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.owner-subscription-method-choice {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  color: var(--fubit-text, #e8e8ed);
}

.owner-subscription-method-choice label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}

.owner-subscription-receipt {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.owner-subscription-address {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--fubit-text, #e8e8ed);
}

.owner-subscription-address code {
  display: block;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(69, 214, 255, 0.2);
  background: rgba(255, 255, 255, 0.04);
  color: #9ffeff;
  word-break: break-all;
}

.owner-subscription-qr-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.owner-subscription-qr-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.owner-subscription-qr-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.owner-subscription-qr {
  display: block;
  max-width: 120px;
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(69, 214, 255, 0.24);
  background: rgba(255, 255, 255, 0.04);
}

.owner-subscription-note-input {
  min-height: 88px;
  resize: vertical;
}

.owner-subscription-inline-msg {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(69, 214, 255, 0.18);
  background: rgba(69, 214, 255, 0.08);
  color: #9ffeff;
  font-size: 12px;
}

.owner-subscription-inline-msg.is-error {
  border-color: rgba(255, 120, 117, 0.28);
  background: rgba(255, 77, 79, 0.12);
  color: #ffd2d2;
}

.owner-subscription-inline-msg.is-success {
  border-color: rgba(115, 209, 61, 0.26);
  background: rgba(82, 196, 26, 0.12);
  color: #d9f7be;
}

.owner-sub-pending {
  background: rgba(255, 176, 32, 0.14);
  color: #ffd666;
  border: 1px solid rgba(255, 176, 32, 0.3);
}

@media (max-width: 640px) {
  .owner-subscription-modal-backdrop {
    padding: 16px 12px;
    align-items: flex-start;
  }

  .owner-subscription-modal {
    width: calc(100vw - 24px);
    max-height: calc(100vh - 32px);
  }

  .owner-subscription-modal-header,
  .owner-subscription-modal-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .owner-subscription-modal-body {
    padding: 16px;
  }

  body.owner-page .owner-modal-backdrop {
    padding: 16px 12px;
    align-items: flex-start;
  }

  body.owner-page .owner-modal {
    width: calc(100vw - 24px);
    max-height: calc(100vh - 32px);
  }

  body.owner-page .owner-modal-header,
  body.owner-page .owner-modal-footer {
    flex-direction: column;
    align-items: stretch;
  }

  body.owner-page .owner-modal-body {
    padding: 16px;
  }

  .owner-subscription-payment-panel {
    padding: 14px;
  }

  .owner-subscription-plan-list {
    grid-template-columns: 1fr;
  }

  .owner-subscription-qr-grid {
    flex-direction: column;
  }

  .owner-subscription-qr-row {
    flex-direction: column;
  }
}

/* ── Wallet & Withdrawal ──────────────────────────────────────────── */
.wallet-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 14px 16px;
}
.wallet-form {
  margin-top: 8px;
}
.wallet-input {
  outline: none;
  transition: border-color .15s;
}
.wallet-input:focus {
  border-color: rgba(22,119,255,0.5) !important;
}
.withdrawal-table th,
.withdrawal-table td {
  font-size: 11px;
}
.withdrawal-status-pending {
  display: inline-flex;
  align-items: center;
  background: rgba(250,173,20,0.12);
  color: #ffc53d;
  border: 1px solid rgba(250,173,20,0.3);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 7px;
  white-space: nowrap;
}
.withdrawal-status-done {
  display: inline-flex;
  align-items: center;
  background: rgba(82,196,26,0.12);
  color: #73d13d;
  border: 1px solid rgba(82,196,26,0.3);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 7px;
  white-space: nowrap;
}
.withdrawal-status-approved {
  display: inline-flex;
  align-items: center;
  background: rgba(24,144,255,0.12);
  color: #69c0ff;
  border: 1px solid rgba(24,144,255,0.3);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 7px;
  white-space: nowrap;
}
.withdrawal-status-approved1 {
  display: inline-flex;
  align-items: center;
  background: rgba(19,82,0,0.25);
  color: #95de64;
  border: 1px solid rgba(82,196,26,0.3);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 7px;
  white-space: nowrap;
}
.withdrawal-confirmation-list {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  font-size: 10px;
  color: var(--color-muted, #8b8fa8);
}
.withdrawal-confirmation-list li {
  padding: 1px 0;
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.withdrawal-rate-limit-box {
  font-size: 10px;
  color: var(--color-muted, #8b8fa8);
  background: rgba(255,77,79,0.06);
  border: 1px solid rgba(255,77,79,0.15);
  border-radius: 4px;
  padding: 3px 6px;
  white-space: nowrap;
}
.withdrawal-cooling-badge {
  display: inline-flex;
  align-items: center;
  background: rgba(250,140,22,0.12);
  color: #ffa940;
  border: 1px solid rgba(250,140,22,0.25);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 6px;
}
.withdrawal-danger-note {
  margin-bottom: 12px;
  padding: 10px 14px;
  background: rgba(255,77,79,0.07);
  border: 1px solid rgba(255,77,79,0.2);
  border-radius: 6px;
  font-size: 12px;
  color: #ff9c9c;
  line-height: 1.6;
}
.withdrawal-status-blocked {
  display: inline-flex;
  align-items: center;
  background: rgba(255,77,79,0.12);
  color: #ff7875;
  border: 1px solid rgba(255,77,79,0.3);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 7px;
  white-space: nowrap;
}
.withdrawal-warning {
  color: #ffc53d;
  font-weight: 600;
}

/* ── Budget Lock & Settlement Styles ─────────────────────── */
.withdrawal-budget-lock-card {
  background: rgba(255,199,61,0.04);
  border: 1px solid rgba(255,199,61,0.18);
  border-radius: 8px;
  padding: 14px 16px;
}

.withdrawal-lock-active {
  display: inline-flex;
  align-items: center;
  background: rgba(255,199,61,0.14);
  color: #ffc53d;
  border: 1px solid rgba(255,199,61,0.3);
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  padding: 1px 6px;
  white-space: nowrap;
}

.withdrawal-lock-released {
  display: inline-flex;
  align-items: center;
  background: rgba(82,196,26,0.1);
  color: #73d13d;
  border: 1px solid rgba(82,196,26,0.25);
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  padding: 1px 6px;
  white-space: nowrap;
}

.withdrawal-settlement-badge {
  display: inline-flex;
  align-items: center;
  background: rgba(105,177,255,0.12);
  color: #69b1ff;
  border: 1px solid rgba(105,177,255,0.25);
  border-radius: 4px;
  font-size: 10px;
  font-family: monospace;
  padding: 1px 6px;
  white-space: nowrap;
}

.withdrawal-platform-priority {
  display: inline-flex;
  align-items: center;
  background: rgba(147,112,219,0.14);
  color: #b37feb;
  border: 1px solid rgba(147,112,219,0.28);
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  padding: 1px 5px;
  margin-left: 4px;
  white-space: nowrap;
}

/* ── Withdrawal Window Styles ─────────────────────────────── */
.withdrawal-window-card {
  border-radius: 8px;
  padding: 14px 16px;
}

.withdrawal-window-open {
  background: rgba(82,196,26,0.05);
  border: 1px solid rgba(82,196,26,0.25);
}

.withdrawal-window-closed {
  background: rgba(250,140,22,0.05);
  border: 1px solid rgba(250,140,22,0.28);
}

.withdrawal-window-status-open {
  display: inline-flex;
  align-items: center;
  background: rgba(82,196,26,0.12);
  color: #73d13d;
  border: 1px solid rgba(82,196,26,0.3);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  white-space: nowrap;
}

.withdrawal-window-status-closed {
  display: inline-flex;
  align-items: center;
  background: rgba(250,140,22,0.12);
  color: #ffa940;
  border: 1px solid rgba(250,140,22,0.3);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  white-space: nowrap;
}

/* ── Settlement Lock Styles ───────────────────────────────── */
.settlement-lock-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  padding: 1px 6px;
  white-space: nowrap;
}

.settlement-lock-active {
  background: rgba(23,190,207,0.13);
  color: #13c2c2;
  border: 1px solid rgba(23,190,207,0.28);
}

.settlement-lock-released {
  background: rgba(82,196,26,0.10);
  color: #73d13d;
  border: 1px solid rgba(82,196,26,0.22);
}

.settlement-lock-completed {
  background: rgba(105,177,255,0.12);
  color: #69b1ff;
  border: 1px solid rgba(105,177,255,0.25);
}

/* ── Owner 商业中心：手动刷新模式 ────────────────────────── */
.manual-refresh-mode {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  color: var(--color-muted, #8b8fa8);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 2px 8px;
  white-space: nowrap;
}

.owner-refresh-notice,
.finance-refresh-notice,
.credentials-refresh-notice,
.flow-manual-notice {
  font-size: 11px;
  color: var(--color-muted, #8b8fa8);
  background: rgba(250, 173, 20, 0.06);
  border: 1px solid rgba(250, 173, 20, 0.18);
  border-radius: 5px;
  padding: 6px 12px;
  margin-bottom: 16px;
  line-height: 1.5;
}

/* ── Risk Cooldown Engine ───────────────────────────────────── */
.risk-cooldown-card {
  background: rgba(30, 25, 20, 0.7);
  border: 1px solid rgba(250, 120, 20, 0.25);
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
  min-width: 220px;
}

.risk-cooldown-active {
  border-left: 4px solid #fa8c16;
  background: rgba(250, 140, 22, 0.08);
}

.risk-cooldown-expired {
  border-left: 4px solid #555;
  background: rgba(80, 80, 80, 0.08);
  color: #666;
}

.risk-cooldown-badge {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  vertical-align: middle;
  background: rgba(250, 120, 20, 0.18);
  border: 1px solid rgba(250, 120, 20, 0.5);
  color: #fa8c16;
}

.risk-cooldown-timer {
  font-weight: 700;
  color: #fa8c16;
  font-size: 13px;
}

.risk-alert.risk-cooldown-active {
  border-left: 4px solid #fa8c16;
  background: rgba(250, 140, 22, 0.1);
  color: #ffa940;
  padding: 10px 14px;
  border-radius: 8px;
  margin-bottom: 10px;
  font-weight: 600;
}

/* ── Strategy Throttle Engine ───────────────────────────────── */
.strategy-throttle-card {
  background: rgba(20, 25, 35, 0.7);
  border: 1px solid rgba(64, 140, 255, 0.25);
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 13px;
  min-width: 180px;
}

.strategy-throttle-badge {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  vertical-align: middle;
  background: rgba(230, 80, 30, 0.18);
  border: 1px solid rgba(230, 80, 30, 0.5);
  color: #ff6b3d;
}

.strategy-throttle-active {
  border-left: 3px solid #ff6b3d;
  background: rgba(230, 80, 30, 0.07);
  color: #ff8c5a;
}

.strategy-throttle-event {
  display: grid;
  grid-template-columns: 1fr 1fr 80px 1fr 1fr;
  gap: 4px;
  font-size: 12px;
  padding: 4px 2px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.strategy-throttle-event:last-child {
  border-bottom: none;
}

.strategy-throttle-count {
  font-size: 13px;
  color: var(--color-muted, #8b8fa8);
}

.strategy-throttle-count strong {
  color: #40a9ff;
  font-size: 16px;
  margin-left: 4px;
}

.risk-alert.strategy-throttle-active {
  border-left: 4px solid #ff6b3d;
  background: rgba(230, 80, 30, 0.1);
  color: #ff8c5a;
  padding: 10px 14px;
  border-radius: 8px;
  margin-bottom: 10px;
  font-weight: 600;
}

/* ── Meta Risk Override ─────────────────────────────────────────────── */
.meta-override-allowed {
  border-left: 4px solid #5b8dee;
  background: rgba(60, 100, 220, 0.10);
  color: #a0b8f8;
  padding: 10px 14px;
  border-radius: 8px;
  margin-bottom: 10px;
}

.meta-override-badge {
  display: inline-block;
  background: rgba(80, 120, 240, 0.25);
  color: #7eb3ff;
  border: 1px solid #3b6fcc;
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-right: 8px;
}

.meta-override-note {
  font-size: 0.88rem;
  font-weight: 600;
  color: #a0b8f8;
}

.ledger-chip.is-override {
  background: rgba(60, 100, 220, 0.20);
  color: #7eb3ff;
  border: 1px solid #3b6fcc;
  border-radius: 4px;
  padding: 2px 7px;
  font-size: 0.78rem;
  font-weight: 700;
}

.execution-status-override-allowed {
  color: #7eb3ff;
  font-weight: 700;
  background: rgba(60, 100, 220, 0.15);
  padding: 2px 8px;
  border-radius: 4px;
}

/* ── Strategy Weight Feedback ───────────────────────────────────────── */
.sw-feedback-panel {
  border-left: 4px solid #3a7bd5;
  background: rgba(20, 40, 80, 0.25);
  padding: 14px 16px;
  border-radius: 8px;
  margin-bottom: 16px;
}

.sw-feedback-note {
  font-size: 0.83rem;
  color: #7090b0;
  margin-bottom: 10px;
}

.sw-feedback-header {
  display: grid;
  grid-template-columns: 80px 70px 1fr 160px;
  gap: 8px;
  font-size: 0.78rem;
  color: #5a7a9a;
  font-weight: 600;
  padding: 4px 0 6px;
  border-bottom: 1px solid rgba(80, 120, 180, 0.2);
  margin-bottom: 6px;
}

.sw-feedback-row {
  display: grid;
  grid-template-columns: 80px 70px 1fr 160px;
  gap: 8px;
  align-items: center;
  padding: 5px 0;
  border-bottom: 1px solid rgba(60, 90, 130, 0.12);
  font-size: 0.85rem;
}

.sw-feedback-strategy {
  font-weight: 700;
  color: #a8c0e0;
}

.sw-feedback-reason {
  color: #8899aa;
  font-size: 0.80rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sw-feedback-time {
  color: #6a8099;
  font-size: 0.78rem;
}

.strategy-weight-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.80rem;
  font-weight: 700;
}

.strategy-weight-normal {
  background: rgba(40, 160, 80, 0.18);
  color: #5cd68a;
  border: 1px solid rgba(60, 180, 100, 0.35);
}

.strategy-weight-mid {
  background: rgba(200, 140, 20, 0.18);
  color: #f0b850;
  border: 1px solid rgba(220, 160, 30, 0.35);
}

.strategy-weight-low {
  background: rgba(200, 50, 50, 0.18);
  color: #f07070;
  border: 1px solid rgba(220, 60, 60, 0.35);
}

.strategy-weight-history {
  font-size: 0.78rem;
  color: #6a8099;
  margin-top: 4px;
}

/* ── Owner Console V2 ─────────────────────────────────────────── */
.owner-console-v2 {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.owner-section {
  background: rgba(10, 20, 38, 0.55);
  border: 1px solid var(--fubit-border);
  border-radius: 14px;
  padding: 18px 20px;
}

.owner-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}

.owner-action-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.owner-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
}

.owner-summary-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--fubit-border);
  border-radius: 10px;
  padding: 10px 12px;
  min-width: 0;
}

.owner-summary-card .gate-label {
  font-size: 10px;
}

.owner-summary-card strong {
  font-size: 13px;
  font-weight: 600;
}

.login-route .tos-header,
.login-route #sub-nav-bar,
.login-route #global-alert,
.login-route .tos-system-strip,
.login-route .heartbeat-bar {
  display: none !important;
}

body.auth-page .tos-header,
body.auth-page #sub-nav-bar,
body.auth-page #global-alert,
body.auth-page .tos-system-strip,
body.auth-page .heartbeat-bar,
body.auth-page .system-kpi-grid,
body.auth-page .risk-summary-grid,
body.auth-page .shell-system-metrics,
body.auth-page .legacy-system-status,
body.auth-page .owner-page {
  display: none !important;
}

.login-route .tos-shell {
  min-height: 100vh;
  padding: 0;
}

body.auth-page .tos-shell {
  min-height: 100vh;
  padding: 0;
}

.login-route .tos-view {
  min-height: 100vh;
}

body.auth-page .tos-view,
body.auth-page #app-root {
  min-height: 100vh;
}

.login-page {
  height: 100vh;
  background: radial-gradient(circle at 30% 20%, #0f2a44, #050b16);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.login-container {
  width: min(420px, 100%);
}

.login-card {
  background: rgba(15, 25, 40, 0.85);
  border-radius: 16px;
  padding: 40px;
  box-shadow: 0 0 60px rgba(0, 200, 200, 0.15);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 200, 200, 0.2);
}

.auth-panel {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.login-card h1 {
  margin: 0;
  font-size: 32px;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: #f4fbff;
}

.login-card .subtitle {
  margin: 0 0 10px;
  color: rgba(217, 217, 217, 0.78);
  font-size: 15px;
  letter-spacing: 0.08em;
}

.auth-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.auth-input {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border-radius: 10px;
  border: 1px solid rgba(0, 200, 200, 0.16);
  background: rgba(255, 255, 255, 0.04);
  color: #eef6ff;
  outline: none;
}

.auth-input::placeholder {
  color: rgba(214, 228, 255, 0.45);
}

.auth-input:focus {
  border-color: rgba(77, 208, 225, 0.62);
  box-shadow: 0 0 0 3px rgba(0, 200, 200, 0.08);
}

.auth-button,
.auth-secondary-button,
.login-btn,
.register-btn {
  width: 100%;
  border-radius: 8px;
  font-weight: 700;
  cursor: pointer;
}

.login-btn {
  width: 100%;
  height: 48px;
  background: linear-gradient(90deg, #00c8c8, #4dd0e1);
  border: none;
  border-radius: 8px;
  color: #001;
  font-weight: bold;
  margin-top: 20px;
  cursor: pointer;
}

.register-btn {
  width: 100%;
  height: 44px;
  margin-top: 12px;
  background: transparent;
  border: 1px solid rgba(0, 200, 200, 0.4);
  color: #00c8c8;
  border-radius: 8px;
}

.divider {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 14px;
  color: rgba(214, 228, 255, 0.48);
  font-size: 13px;
  letter-spacing: 0.12em;
}

.auth-message {
  min-height: 20px;
  font-size: 13px;
  color: rgba(214, 228, 255, 0.75);
  margin-top: 6px;
}

.auth-message.success {
  color: #73d13d;
}

.auth-message.error {
  color: #ff7875;
}

.admin-tip {
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid rgba(0, 200, 200, 0.12);
  color: rgba(214, 228, 255, 0.58);
  font-size: 12px;
  line-height: 1.7;
}

.user-badge,
.owner-isolation-badge,
.admin-view-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}

.user-menu {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 12px;
  flex-wrap: nowrap;
  flex-shrink: 0;
  white-space: nowrap;
}

.owner-isolation-badge {
  background: rgba(19, 194, 194, 0.14);
  color: #87e8de;
  border: 1px solid rgba(19, 194, 194, 0.34);
}

.admin-view-badge {
  background: rgba(250, 140, 22, 0.16);
  color: #ffbb96;
  border: 1px solid rgba(250, 140, 22, 0.34);
}

.access-denied-card {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255, 77, 79, 0.34);
  background: rgba(255, 77, 79, 0.12);
  color: #ffb3b3;
  font-size: 12px;
}

.profit-accumulation-card {
  margin-bottom: 12px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
}

.profit-lock-card {
  margin-bottom: 12px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid rgba(0, 200, 200, 0.16);
  background: rgba(7, 24, 40, 0.50);
}

.risk-compression-card {
  margin-bottom: 12px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid rgba(105, 192, 255, 0.18);
  background: rgba(8, 18, 34, 0.58);
}

.lock-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.lock-badge.is-none {
  background: rgba(255, 255, 255, 0.05);
  color: #9ca3af;
}

.lock-badge.is-locked {
  background: rgba(19, 194, 194, 0.14);
  color: #87e8de;
  border-color: rgba(19, 194, 194, 0.34);
}

.lock-badge.is-high {
  background: rgba(82, 196, 26, 0.14);
  color: #b7eb8f;
  border-color: rgba(82, 196, 26, 0.34);
}

.lock-level-indicator {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(105, 177, 255, 0.24);
  background: rgba(105, 177, 255, 0.08);
  color: #9dd6ff;
  font-size: 11px;
  font-weight: 700;
}

.locked-profit-highlight {
  color: #87e8de;
}

.risk-compression-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 11px;
  font-weight: 700;
}

.risk-compression-normal {
  color: #95de64;
  border-color: rgba(115, 209, 61, 0.34);
  background: rgba(115, 209, 61, 0.12);
}

.risk-compression-compressed {
  color: #87e8de;
  border-color: rgba(19, 194, 194, 0.34);
  background: rgba(19, 194, 194, 0.12);
}

.risk-compression-warning {
  color: #ffd666;
  border-color: rgba(250, 173, 20, 0.34);
  background: rgba(250, 173, 20, 0.12);
}

.risk-compression-hard-block {
  color: #ffb3b3;
  border-color: rgba(255, 77, 79, 0.38);
  background: rgba(255, 77, 79, 0.12);
}

.risk-compression-bar {
  width: 100%;
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid rgba(120, 150, 190, 0.16);
  background: rgba(255, 255, 255, 0.05);
}

.risk-compression-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 220ms ease;
}

.risk-compression-fill.risk-compression-normal {
  background: linear-gradient(90deg, rgba(115, 209, 61, 0.72), rgba(149, 222, 100, 0.94));
}

.risk-compression-fill.risk-compression-compressed {
  background: linear-gradient(90deg, rgba(0, 228, 255, 0.70), rgba(135, 232, 222, 0.92));
}

.risk-compression-fill.risk-compression-warning {
  background: linear-gradient(90deg, rgba(250, 173, 20, 0.78), rgba(255, 214, 102, 0.96));
}

.risk-compression-fill.risk-compression-hard-block {
  background: linear-gradient(90deg, rgba(255, 77, 79, 0.82), rgba(255, 140, 140, 0.98));
}

.profit-carry-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(250, 173, 20, 0.14);
  color: #ffd666;
  border: 1px solid rgba(250, 173, 20, 0.34);
  font-size: 11px;
  font-weight: 700;
}

.profit-settlement-required {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(19, 194, 194, 0.14);
  color: #87e8de;
  border: 1px solid rgba(19, 194, 194, 0.34);
  font-size: 11px;
  font-weight: 700;
}

.profit-force-required {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255, 77, 79, 0.14);
  color: #ffb3b3;
  border: 1px solid rgba(255, 77, 79, 0.34);
  font-size: 11px;
  font-weight: 700;
}

.profit-window-closed {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(250, 140, 22, 0.12);
  color: #ffa940;
  border: 1px solid rgba(250, 140, 22, 0.28);
  font-size: 11px;
  font-weight: 700;
}

.profit-window-open {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(82, 196, 26, 0.12);
  color: #95de64;
  border: 1px solid rgba(82, 196, 26, 0.28);
  font-size: 11px;
  font-weight: 700;
}

/* Step path */
.owner-step-path {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.owner-step-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid var(--fubit-border);
  background: rgba(255, 255, 255, 0.02);
}

.owner-step-card.is-done {
  border-color: rgba(115, 209, 61, 0.30);
  background: rgba(115, 209, 61, 0.04);
}

.owner-step-num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
  background: rgba(0, 228, 255, 0.10);
  color: var(--fubit-cyan);
  border: 1px solid rgba(0, 228, 255, 0.25);
}

.owner-step-card.is-done .owner-step-num {
  background: rgba(115, 209, 61, 0.15);
  color: #73d13d;
  border-color: rgba(115, 209, 61, 0.35);
}

.owner-step-body {
  flex: 1;
  min-width: 0;
}

.owner-step-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-main);
}

.owner-step-hint {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 2px;
}

/* Trader card list */
.owner-trader-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 28px;
}

.owner-trader-list-wrap {
  width: 100%;
  margin-top: 10px;
  padding: 14px 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  background: rgba(7, 20, 35, 0.42);
}

.owner-trader-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
  padding-left: 2px;
  flex-wrap: wrap;
}

.owner-trader-list-grid {
  display: grid;
  gap: 12px;
}

.owner-owner-card-limit {
  width: 100%;
  color: #ffb347;
}

.owner-trader-list-toggle.is-active {
  border-color: rgba(0, 228, 255, 0.58);
  background: rgba(0, 228, 255, 0.12);
  color: #aefcff;
}

.owner-trader-list .config-saved-card {
  justify-content: space-between;
  flex-wrap: wrap;
}

.trader-card {
  border: 1px solid rgba(64,206,230,.22);
  border-radius: 12px;
  padding: 16px;
  margin-top: 12px;
  background: rgba(12, 26, 45, 0.72);
}

.trader-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}

.trader-actions {
  display: flex;
  gap: 10px;
  margin-top: 10px;
  flex-wrap: wrap;
}

.status {
  padding: 4px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.status.DRY_RUN {
  background: #2a3a50;
}

.status.REAL_ARMED {
  background: #f5a623;
  color: #000;
}

.status.REAL_LIVE {
  background: #ff4d4f;
}

button.danger {
  background: #ff4d4f;
}

.kill-switch {
  padding: 6px 12px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  border: 1px solid rgba(64,206,230,.3);
}

.kill-switch.off {
  background: #2a3a50;
  color: #9fb2d0;
}

.kill-switch.on {
  background: #ff4d4f;
  color: #fff;
}

.owner-trader-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--fubit-border);
  border-radius: 10px;
  flex-wrap: wrap;
}

.owner-trader-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.owner-trader-meta {
  font-size: 11px;
  color: var(--text-muted);
}

.risk-strike-summary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 10px;
  border: 1px solid rgba(120, 150, 190, 0.18);
  border-radius: 8px;
  background: rgba(4, 12, 24, 0.42);
}

.risk-strike-reason-pause {
  margin-top: 6px;
  padding: 7px 9px;
  border-radius: 8px;
  color: #ffd666;
  border: 1px solid rgba(250, 173, 20, 0.36);
  background: rgba(250, 173, 20, 0.10);
}

.risk-strike-reason-block {
  margin-top: 6px;
  padding: 7px 9px;
  border-radius: 8px;
  color: #ffb3b3;
  border: 1px solid rgba(255, 77, 79, 0.38);
  background: rgba(255, 77, 79, 0.11);
}

.owner-override-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.owner-override-actions .router-action-button {
  border-color: rgba(105, 192, 255, 0.36);
  color: #9dd6ff;
  background: rgba(24, 144, 255, 0.12);
}

.owner-override-danger {
  border-color: rgba(255, 77, 79, 0.52) !important;
  color: #ffb3b3 !important;
  background: rgba(255, 77, 79, 0.16) !important;
}

.owner-trader-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
  flex-shrink: 0;
}

.execution-gate-box {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(4, 12, 24, 0.48);
}

.execution-gate-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
  margin-top: 8px;
}

.execution-gate-check {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 11px;
}

.execution-gate-check.ok {
  color: #b7f5c4;
  border-color: rgba(82, 196, 26, 0.3);
  background: rgba(82, 196, 26, 0.09);
}

.execution-gate-check.fail {
  color: #ffb3b3;
  border-color: rgba(255, 77, 79, 0.34);
  background: rgba(255, 77, 79, 0.1);
}

.system-real-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.system-real-badge.on {
  color: #ffd7d7;
  border-color: rgba(255, 77, 79, 0.5);
  background: rgba(255, 77, 79, 0.16);
  box-shadow: 0 0 18px rgba(255, 77, 79, 0.12);
}

.system-real-badge.off {
  color: #c8ffd4;
  border-color: rgba(82, 196, 26, 0.36);
  background: rgba(82, 196, 26, 0.11);
}

.system-real-control {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.system-real-button {
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid transparent;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.system-real-button.enable {
  color: #ffe1e1;
  border-color: rgba(255, 77, 79, 0.58);
  background: linear-gradient(135deg, rgba(130, 18, 26, 0.92), rgba(74, 8, 16, 0.96));
  box-shadow: 0 10px 22px rgba(255, 77, 79, 0.14);
}

.system-real-button.disable {
  color: #d8fff1;
  border-color: rgba(24, 144, 255, 0.4);
  background: linear-gradient(135deg, rgba(7, 91, 118, 0.88), rgba(8, 53, 88, 0.96));
}

.system-real-button.enable:hover:not(:disabled) {
  border-color: rgba(255, 120, 117, 0.82);
  background: linear-gradient(135deg, rgba(161, 29, 41, 0.95), rgba(98, 11, 23, 0.98));
}

.system-real-button.disable:hover:not(:disabled) {
  border-color: rgba(105, 192, 255, 0.62);
  background: linear-gradient(135deg, rgba(10, 115, 149, 0.92), rgba(9, 66, 111, 0.98));
}

.real-live-button,
.real-live-button.danger {
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid rgba(255, 77, 79, 0.58);
  background: linear-gradient(135deg, rgba(130, 18, 26, 0.9), rgba(74, 8, 16, 0.96));
  color: #ffe1e1;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  box-shadow: 0 0 0 1px rgba(255, 77, 79, 0.12), 0 10px 20px rgba(255, 77, 79, 0.14);
}

.real-live-button:hover:not(:disabled),
.real-live-button.danger:hover:not(:disabled) {
  border-color: rgba(255, 120, 117, 0.82);
  background: linear-gradient(135deg, rgba(161, 29, 41, 0.95), rgba(98, 11, 23, 0.98));
  color: #fff3f3;
}

.real-live-button:disabled,
.real-live-button.danger:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
}

/* Status badges */
.owner-status-ok {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(115, 209, 61, 0.12);
  color: #73d13d;
  border: 1px solid rgba(115, 209, 61, 0.30);
  white-space: nowrap;
}

.owner-status-warn {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(250, 173, 20, 0.12);
  color: #faad14;
  border: 1px solid rgba(250, 173, 20, 0.30);
  white-space: nowrap;
}

.owner-status-blocked {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(255, 77, 79, 0.12);
  color: #ff4d4f;
  border: 1px solid rgba(255, 77, 79, 0.30);
  white-space: nowrap;
}

/* ── Owner Console V2 — Action Buttons ──────────────────────── */
.btn-start,
.btn-stop,
.btn-edit,
.btn-exec {
  padding: 5px 12px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  color: #fff;
  transition: opacity 0.15s;
  white-space: nowrap;
}

.btn-start { background: #00c8c8; }
.btn-start:disabled { background: #00c8c8; cursor: not-allowed; }
.btn-stop  { background: #ff5a5a; }
.btn-edit  { background: #2a6cff; }
.btn-exec  { background: #555e72; }

.btn-start:hover:not(:disabled) { opacity: 0.82; }
.btn-stop:hover  { opacity: 0.82; }
.btn-edit:hover  { opacity: 0.82; }
.btn-exec:hover  { opacity: 0.82; }

/* ── Owner global system status bar ─────────────────────────── */
.owner-global-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 6px;
  margin-bottom: 12px;
  border: 1px solid;
}

.owner-global-status.is-dry {
  background: rgba(0, 200, 200, 0.07);
  color: var(--fubit-cyan);
  border-color: rgba(0, 200, 200, 0.20);
}

.owner-global-status.is-armed {
  background: rgba(250, 173, 20, 0.10);
  color: #faad14;
  border-color: rgba(250, 173, 20, 0.28);
}

.owner-global-status.is-real {
  background: rgba(255, 77, 79, 0.10);
  color: #ff4d4f;
  border-color: rgba(255, 77, 79, 0.28);
}

.owner-global-status.is-blocked {
  background: rgba(255, 77, 79, 0.08);
  color: #ff4d4f;
  border-color: rgba(255, 77, 79, 0.25);
  display: block;
  margin-bottom: 10px;
}

/* ── Step nav hover ──────────────────────────────────────────── */
.owner-step-nav[data-step-route]:hover {
  border-color: rgba(0, 228, 255, 0.30);
  background: rgba(0, 228, 255, 0.05);
}

/* ── Portfolio Page (资金视角) ───────────────────────────────── */
.portfolio-page-header {
  border-left: 3px solid rgba(0, 200, 200, 0.60);
  background: rgba(0, 200, 200, 0.04);
}
.portfolio-page-header .section-kicker {
  color: var(--fubit-cyan);
}

/* ── Onboarding Panel ────────────────────────────────────────── */
.onboarding-panel {
  border: 1px solid rgba(0, 200, 200, 0.35);
  background: rgba(0, 200, 200, 0.04);
  border-radius: 10px;
  padding: 16px 18px;
  margin-bottom: 20px;
}

.onboarding-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
}

.onboarding-title {
  font-size: 15px;
  font-weight: 700;
  color: #2dd4bf;
  letter-spacing: .03em;
  white-space: nowrap;
}

.onboarding-progress-wrap {
  flex: 1;
  min-width: 80px;
  height: 6px;
  background: rgba(255,255,255,0.08);
  border-radius: 3px;
  overflow: hidden;
}

.onboarding-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, #2dd4bf 0%, #06b6d4 100%);
  border-radius: 3px;
  transition: width .4s ease;
}

.onboarding-status-badge {
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.onboarding-steps {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.onboarding-step {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 12px;
  border-radius: 6px;
  font-size: 13px;
  transition: background .15s;
}

.onboarding-step.done {
  color: #2dd4bf;
  background: rgba(45, 212, 191, 0.07);
}

.onboarding-step.todo {
  color: #8b8fa8;
  background: rgba(255,255,255,0.03);
}

.onboarding-step.todo[data-onboard-route]:hover {
  background: rgba(45, 212, 191, 0.10);
  color: #a5f3fc;
}

.onboarding-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
}

.onboarding-step-num.done {
  background: rgba(45, 212, 191, 0.18);
  color: #2dd4bf;
}

.onboarding-step-num.todo {
  background: rgba(255,255,255,0.07);
  color: #6b7280;
}

.onboarding-step-label {
  flex: 1;
}

.onboarding-step-arrow {
  font-size: 12px;
  color: #4b5563;
}

.onboarding-footer {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.onboarding-auto-btn {
  padding: 7px 18px;
  border-radius: 7px;
  border: 1px solid rgba(45, 212, 191, 0.50);
  background: rgba(45, 212, 191, 0.10);
  color: #2dd4bf;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
  white-space: nowrap;
}

.onboarding-auto-btn:hover:not(:disabled) {
  background: rgba(45, 212, 191, 0.20);
}

.onboarding-auto-btn:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.onboarding-ready-note {
  font-size: 12px;
  color: #2dd4bf;
  font-weight: 600;
}

.onboarding-not-ready-note {
  font-size: 12px;
  color: #6b7280;
}

/* ── Account Center v2 ───────────────────────────────────────── */
.account-center-v2 {
  border-left: 3px solid rgba(45, 212, 191, 0.50);
}
.account-center-v2 .section-kicker {
  color: #2dd4bf;
}

.account-switcher {
  background: rgba(45, 212, 191, 0.06);
  border: 1px solid rgba(45, 212, 191, 0.30);
  color: #e2e8f0;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 13px;
}
.account-switcher:focus {
  outline: none;
  border-color: rgba(45, 212, 191, 0.60);
}

.account-current-card {
  background: rgba(45, 212, 191, 0.07);
  border: 1px solid rgba(45, 212, 191, 0.25);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 13px;
  color: #2dd4bf;
}

.account-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.account-summary-card {
  background: rgba(45, 212, 191, 0.05);
  border: 1px solid rgba(45, 212, 191, 0.15);
  border-radius: 7px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.account-path-card {
  background: rgba(45, 212, 191, 0.04);
  border-left: 3px solid rgba(45, 212, 191, 0.35);
  border-radius: 6px;
  padding: 10px 14px;
  margin-bottom: 8px;
}

.account-trader-card {
  background: rgba(30, 41, 59, 0.60);
  border: 1px solid rgba(45, 212, 191, 0.12);
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 10px;
}

.account-resource-card {
  background: rgba(30, 41, 59, 0.50);
  border: 1px solid rgba(100, 116, 139, 0.25);
  border-radius: 7px;
  padding: 10px 12px;
}

.account-admin-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 700;
  background: rgba(251, 146, 60, 0.15);
  border: 1px solid rgba(251, 146, 60, 0.40);
  color: #fb923c;
  letter-spacing: .04em;
}

.account-owner-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 700;
  background: rgba(45, 212, 191, 0.12);
  border: 1px solid rgba(45, 212, 191, 0.35);
  color: #2dd4bf;
  letter-spacing: .04em;
}

.account-isolation-note {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: rgba(45, 212, 191, 0.80);
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(45, 212, 191, 0.06);
  border: 1px solid rgba(45, 212, 191, 0.18);
}

.account-create-modal {
  background: var(--bg-card, #1e293b);
  border: 1px solid rgba(45, 212, 191, 0.30);
  border-radius: 12px;
  padding: 20px;
  max-width: 420px;
  margin: 20px auto;
}

.account-form-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 12px;
}

.account-danger-note {
  background: rgba(255, 77, 79, 0.08);
  border: 1px solid rgba(255, 77, 79, 0.30);
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 12px;
  color: #ff7875;
}

/* Strategy locked badge inside account center */
.strategy-locked-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 9px;
  border-radius: 10px;
  font-size: 11px;
  background: rgba(45, 212, 191, 0.10);
  border: 1px solid rgba(45, 212, 191, 0.30);
  color: #2dd4bf;
  white-space: nowrap;
}

.strategy-system-owned {
  font-size: 11px;
  color: rgba(45, 212, 191, 0.75);
  margin-top: 4px;
}

.strategy-warning-note {
  font-size: 11px;
  color: #faad14;
  background: rgba(250, 173, 20, 0.08);
  border-left: 3px solid rgba(250, 173, 20, 0.40);
  padding: 5px 10px;
  border-radius: 4px;
  margin-top: 6px;
}

.strategy-catalog-select {
  background: rgba(45, 212, 191, 0.06);
  border: 1px solid rgba(45, 212, 191, 0.28);
  color: #e2e8f0;
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 13px;
  width: 100%;
}

/* ── Risk Status Page (风控视角) ─────────────────────────────── */
.risk-status-page-header {
  border-left: 3px solid rgba(255, 77, 79, 0.60);
  background: rgba(255, 77, 79, 0.04);
}
.risk-status-page-header .section-kicker {
  color: #ff4d4f;
}
.risk-status-page-header .card-title {
  color: #ffa39e;
}
.owner-account-switcher {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0 0 14px;
  padding: 14px;
  border-radius: 14px;
  border: 1px solid rgba(69, 214, 255, 0.18);
  background: linear-gradient(135deg, rgba(9, 19, 28, 0.92), rgba(14, 29, 40, 0.82));
}

.owner-account-card,
.account-card,
.market-account-card {
  position: relative;
  cursor: pointer;
}

.owner-account-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  min-width: 170px;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid rgba(139, 143, 168, 0.24);
  background: rgba(255, 255, 255, 0.02);
  color: #d8e4f0;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}

.owner-account-card:hover {
  border-color: rgba(139, 143, 168, 0.45);
  background: rgba(255, 255, 255, 0.04);
}

.owner-account-card.active,
.owner-account-card.selected,
.account-card.active,
.market-account-card.active {
  border: 2px solid #facc15;
  box-shadow:
    0 0 0 1px rgba(250, 204, 21, 0.35),
    0 0 22px rgba(250, 204, 21, 0.22);
  background: linear-gradient(180deg, rgba(250, 204, 21, 0.10), rgba(15, 35, 60, 0.92));
}

.owner-account-card.active::after,
.owner-account-card.selected::after,
.account-card.active::after,
.market-account-card.active::after {
  content: "当前选中";
  position: absolute;
  top: 12px;
  right: 12px;
  font-size: 12px;
  color: #facc15;
  border: 1px solid rgba(250, 204, 21, 0.55);
  border-radius: 999px;
  padding: 3px 8px;
  background: rgba(80, 60, 0, 0.35);
  pointer-events: none;
}

.owner-account-card.market-crypto {
  border-color: rgba(69, 214, 255, 0.32);
}

.owner-account-card.market-prediction {
  border-color: rgba(166, 121, 255, 0.35);
}

.owner-account-card.market-us-stock {
  border-color: rgba(77, 148, 255, 0.35);
}

.owner-account-card.market-cn-stock {
  border-color: rgba(214, 76, 76, 0.35);
}

.owner-dashboard .owner-account-card,
.owner-dashboard .owner-system-card,
.owner-dashboard .owner-trader-card,
.owner-dashboard .owner-guide-card {
  border: 1px solid rgba(64,206,230,0.2);
  border-radius: 14px;
  padding: 18px;
  margin-bottom: 18px;
  background: rgba(8,20,38,0.9);
}

.owner-dashboard .owner-account-card {
  cursor: default;
  display: block;
}

.owner-account-header,
.owner-trader-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.owner-account-title,
.owner-system-title,
.owner-guide-title,
.owner-trader-name {
  color: #eef6ff;
  font-size: 18px;
  font-weight: 800;
}

.owner-account-meta,
.owner-trader-meta {
  color: #9fb2d0;
  margin-top: 8px;
  line-height: 1.6;
}

.owner-account-actions,
.owner-trader-actions {
  margin-top: 14px;
}

.owner-trader-actions button {
  margin-right: 10px;
}

.owner-trader-status {
  color: #eef6ff;
  font-weight: 700;
}

.owner-system-desc {
  color: #9fb2d0;
  margin-top: 6px;
}

.owner-guide-card ul {
  margin: 10px 0 0;
  padding-left: 20px;
  color: #d8e4f0;
  line-height: 1.8;
}

.owner-account-market-badge,
.owner-account-cycle-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11px;
}

.owner-account-market-badge {
  background: rgba(69, 214, 255, 0.12);
  color: #7fe5ff;
}

.owner-account-cycle-badge {
  background: rgba(255, 209, 102, 0.12);
  color: #ffd166;
}

.owner-account-create-panel {
  padding: 14px;
  border-radius: 12px;
  border: 1px dashed rgba(69, 214, 255, 0.25);
  background: rgba(255, 255, 255, 0.03);
}

.market-type-option {
  color: #d8e4f0;
}

.settlement-cycle-note {
  color: #8fb4cc;
  font-size: 12px;
}

.monthly-settlement-disabled {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255, 107, 107, 0.28);
  background: rgba(255, 107, 107, 0.08);
  color: #ff8f8f;
  font-size: 12px;
}

.event-settlement-note {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(166, 121, 255, 0.26);
  background: rgba(166, 121, 255, 0.08);
  color: #ceb2ff;
  font-size: 12px;
}

/* ── Onboarding Step List (新版启动引导页) ─────────────────────── */
.onboarding-step-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 16px 0;
}

.onboarding-step-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 13px;
  transition: background .15s;
}

.onboarding-step-item.done {
  background: rgba(45, 212, 191, 0.08);
  color: #2dd4bf;
}

.onboarding-step-item.current {
  background: rgba(69, 214, 255, 0.12);
  color: #45d6ff;
  font-weight: 600;
  border: 1px solid rgba(69, 214, 255, 0.30);
}

.onboarding-step-item.pending {
  background: rgba(255, 255, 255, 0.03);
  color: #faad14;
}

.onboarding-step-item.blocked {
  background: rgba(255, 107, 107, 0.07);
  color: #ff6b6b;
}

.onboarding-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
}

.onboarding-step-number.done {
  background: rgba(45, 212, 191, 0.18);
  color: #2dd4bf;
}

.onboarding-step-number.current {
  background: rgba(69, 214, 255, 0.22);
  color: #45d6ff;
}

.onboarding-step-number.pending {
  background: rgba(250, 173, 20, 0.15);
  color: #faad14;
}

.onboarding-step-number.blocked {
  background: rgba(255, 107, 107, 0.15);
  color: #ff6b6b;
}

.onboarding-step-title {
  flex: 1;
}

.onboarding-step-desc {
  font-size: 12px;
  color: var(--color-muted, #8b8fa8);
  margin-top: 2px;
}

.onboarding-action-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 18px;
}

.router-action-button.secondary {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.15);
  color: #8b8fa8;
}

.router-action-button.secondary:hover {
  background: rgba(255, 255, 255, 0.09);
  color: #d0d4e8;
}

.owner-required-warning {
  margin: 10px 0;
  padding: 10px 14px;
  border-radius: 9px;
  border: 1px solid rgba(255, 173, 20, 0.30);
  background: rgba(255, 173, 20, 0.08);
  color: #faad14;
  font-size: 13px;
}

/* 步骤面板 current 状态高亮 */
.onboarding-step.current {
  background: rgba(69, 214, 255, 0.10);
  color: #45d6ff;
  font-weight: 600;
  border-left: 3px solid #45d6ff;
}

.onboarding-step-num.current {
  background: rgba(69, 214, 255, 0.22);
  color: #45d6ff;
}

/* ── Onboarding Hard Gate 样式 ──────────────────────────────── */
.onboarding-step-item.locked {
  background: rgba(255, 255, 255, 0.02);
  color: #4b5563;
  cursor: not-allowed;
  opacity: 0.55;
}

.onboarding-step-item.blocked {
  background: rgba(255, 107, 107, 0.08);
  color: #ff6b6b;
  border-left: 3px solid rgba(255, 107, 107, 0.40);
}

.onboarding-step-number.locked {
  background: rgba(255, 255, 255, 0.05);
  color: #374151;
}

.onboarding-hard-gate-warning {
  margin: 12px 0;
  padding: 12px 16px;
  border-radius: 10px;
  border: 1px solid rgba(255, 107, 107, 0.35);
  background: rgba(255, 107, 107, 0.08);
  color: #ff8f8f;
  font-size: 13px;
  font-weight: 500;
}

.onboarding-route-blocked {
  margin: 10px 0;
  padding: 10px 14px;
  border-radius: 9px;
  border: 1px solid rgba(250, 173, 20, 0.30);
  background: rgba(250, 173, 20, 0.07);
  color: #faad14;
  font-size: 13px;
}

.owner-scope-warning {
  margin: 8px 0 14px;
  padding: 9px 13px;
  border-radius: 8px;
  border: 1px solid rgba(69, 214, 255, 0.20);
  background: rgba(69, 214, 255, 0.06);
  color: #7fe5ff;
  font-size: 12px;
}

.step-locked-badge {
  font-size: 12px;
  margin-left: auto;
  opacity: 0.7;
}

/* ── Guard Toast 通知 ─────────────────────────────────────────── */
.guard-toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  padding: 12px 20px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  max-width: 360px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.40);
  animation: guard-toast-in 0.2s ease;
  pointer-events: none;
}

.guard-toast.info {
  background: rgba(45, 212, 191, 0.15);
  border: 1px solid rgba(45, 212, 191, 0.35);
  color: #2dd4bf;
}

.guard-toast.warn {
  background: rgba(250, 173, 20, 0.14);
  border: 1px solid rgba(250, 173, 20, 0.35);
  color: #faad14;
}

.guard-toast.error {
  background: rgba(255, 107, 107, 0.14);
  border: 1px solid rgba(255, 107, 107, 0.35);
  color: #ff6b6b;
}

@keyframes guard-toast-in {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Onboarding Owner Info Bar ───────────────────────────────── */
.onboarding-owner-info {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px 12px;
  margin-bottom: 12px;
  border-radius: 8px;
  background: rgba(69, 214, 255, 0.06);
  border: 1px solid rgba(69, 214, 255, 0.15);
  font-size: 12px;
}

.ob-info-label {
  color: #6b7280;
}

.ob-info-value {
  color: #a5f3fc;
  font-weight: 500;
}

.ob-info-sep {
  color: #374151;
  padding: 0 4px;
}

/* ── Empty Owner Block ─────────────────────────────────────── */
#app-view > .owner-page {
  display: flex;
  flex-direction: column;
  gap: 18px;
  width: 100%;
}

.owner-page {
  min-height: 100vh;
  background: radial-gradient(circle at 20% 0%, #12345a 0%, #07111f 42%, #050b16 100%);
  color: #eef6ff;
  padding: 32px;
  box-sizing: border-box;
}

.owner-shell {
  width: 100%;
  max-width: 1480px;
  margin: 0 auto;
}

.owner-topbar {
  width: 100%;
  min-height: 120px;
  border: 1px solid rgba(64, 206, 230, 0.22);
  border-radius: 18px;
  background: rgba(8, 20, 38, 0.82);
  padding: 28px 32px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.owner-title-block h1 {
  margin: 0;
  font-size: 28px;
  letter-spacing: 1px;
}

.owner-subtitle {
  margin-top: 8px;
  color: #43d7df;
  font-size: 15px;
}

.owner-user-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
  max-width: 55%;
}

.owner-user-actions button {
  white-space: nowrap;
  border: 1px solid rgba(0, 200, 200, 0.42);
  background: rgba(0, 200, 200, 0.14);
  color: #68fff6;
  border-radius: 8px;
  padding: 10px 14px;
  font-weight: 800;
  cursor: pointer;
}

.owner-email {
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #dcecff;
}

.owner-empty-card {
  margin-top: 28px;
  border: 1px solid rgba(64, 206, 230, 0.22);
  border-radius: 18px;
  background: rgba(8, 20, 38, 0.82);
  padding: 40px 36px;
  box-sizing: border-box;
}

.owner-empty-card h2 {
  margin: 0 0 18px 0;
  font-size: 28px;
}

.owner-empty-card p {
  margin: 0 0 24px 0;
  color: #9fb2d0;
}

.owner-empty-card .primary {
  border: 1px solid rgba(0, 200, 200, 0.42);
  background: rgba(0, 200, 200, 0.14);
  color: #68fff6;
  border-radius: 8px;
  padding: 10px 14px;
  font-weight: 800;
  cursor: pointer;
}

.owner-shell .owner-center-card {
  width: 100%;
  margin-top: 28px;
  box-sizing: border-box;
}

.owner-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 4px 0 10px;
}

.owner-header h1 {
  margin: 0;
  color: #ffffff;
  font-size: 28px;
  font-weight: 800;
}

.owner-header .sub,
.owner-header .user {
  margin-top: 4px;
  color: var(--color-muted, #8b8fa8);
  font-size: 13px;
}

.owner-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.owner-actions button,
.owner-card.empty .primary {
  border: 1px solid rgba(0, 200, 200, 0.42);
  background: rgba(0, 200, 200, 0.14);
  color: #68fff6;
  border-radius: 8px;
  padding: 10px 14px;
  font-weight: 800;
  cursor: pointer;
}

.owner-card.empty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 28px;
}

.owner-card.empty .empty-title {
  color: #ffffff;
  font-size: 22px;
  font-weight: 800;
}

.owner-card.empty .empty-desc {
  color: var(--color-muted, #8b8fa8);
  font-size: 15px;
  line-height: 1.6;
}

.empty-owner-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 24px;
  text-align: center;
  gap: 16px;
}
.empty-owner-icon {
  font-size: 48px;
  line-height: 1;
}
.empty-owner-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--color-text, #e5e7eb);
  margin: 0;
}
.empty-owner-desc {
  font-size: 14px;
  color: var(--color-muted, #8b8fa8);
  margin: 0;
  line-height: 1.6;
}
.empty-owner-create-form {
  width: 100%;
  max-width: 420px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 8px;
  text-align: left;
}

@media (max-width: 900px) {
  .owner-page {
    padding: 20px;
  }

  .owner-topbar {
    flex-direction: column;
    align-items: flex-start;
    padding: 24px;
  }

  .owner-user-actions {
    max-width: 100%;
    flex-wrap: wrap;
  }

  .owner-empty-card {
    padding: 28px 24px;
  }
}

/* Owner Readable Dashboard */
.owner-dashboard {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.owner-section {
  background: rgba(14, 30, 55, 0.88);
  border: 1px solid rgba(0, 200, 200, 0.18);
  border-radius: 18px;
  padding: 22px;
}

.owner-section-title {
  color: #55f0e6;
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 16px;
}

.owner-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}

.owner-card {
  background: rgba(9, 22, 42, 0.85);
  border: 1px solid rgba(0, 200, 200, 0.18);
  border-radius: 14px;
  padding: 16px;
}

.owner-card-label {
  color: #8b9bb8;
  font-size: 13px;
  margin-bottom: 8px;
}

.owner-card-value {
  color: #ffffff;
  font-size: 22px;
  font-weight: 800;
}

.owner-status-good {
  color: #7CFC00;
  font-weight: 800;
}

.owner-status-warn {
  color: #ffc107;
  font-weight: 800;
}

.owner-status-bad {
  color: #ff4d4f;
  font-weight: 800;
}

.owner-muted {
  color: #8b9bb8;
}

.owner-trader-card {
  background: rgba(9, 22, 42, 0.85);
  border: 1px solid rgba(120, 160, 255, 0.18);
  border-radius: 16px;
  padding: 18px;
}

.owner-trader-title {
  font-size: 18px;
  font-weight: 800;
  color: #ffffff;
  margin-bottom: 8px;
}

.owner-trader-meta {
  color: #8b9bb8;
  font-size: 13px;
  margin-bottom: 12px;
}

.owner-progress-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.owner-progress-item {
  display: flex;
  justify-content: space-between;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(9, 22, 42, 0.7);
  border: 1px solid rgba(255,255,255,0.06);
}

.owner-profit-up {
  color: #7CFC00 !important;
  font-weight: 800;
}

.owner-profit-down {
  color: #ff4d4f !important;
  font-weight: 800;
}

.owner-profit-flat {
  color: #8b9bb8 !important;
  font-weight: 800;
}

.owner-strategy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}

.owner-strategy-card {
  background: linear-gradient(180deg, rgba(12, 30, 58, 0.96), rgba(8, 20, 38, 0.96));
  border: 1px solid rgba(0, 200, 200, 0.20);
  border-radius: 18px;
  padding: 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.20);
}

.owner-strategy-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 12px;
}

.owner-strategy-title {
  font-size: 20px;
  color: #ffffff;
  font-weight: 900;
}

.owner-strategy-label {
  margin-top: 4px;
  color: #55f0e6;
  font-size: 13px;
  font-weight: 700;
}

.owner-strategy-status {
  white-space: nowrap;
  font-size: 13px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.06);
}

.owner-strategy-scene {
  margin-top: 12px;
  color: #b9c7dd;
  font-size: 14px;
}

.owner-strategy-desc {
  margin-top: 8px;
  color: #8b9bb8;
  font-size: 13px;
  line-height: 1.6;
}

.owner-strategy-status-message {
  margin-top: 14px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(255,255,255,0.05);
  color: #dce8ff;
  font-size: 13px;
  line-height: 1.5;
}

.owner-strategy-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 16px;
}

.owner-strategy-metrics div {
  background: rgba(5, 14, 28, 0.75);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 12px;
  padding: 12px;
}

.owner-strategy-metrics span {
  display: block;
  color: #8b9bb8;
  font-size: 12px;
  margin-bottom: 6px;
}

.owner-strategy-metrics strong {
  display: block;
  color: #ffffff;
  font-size: 20px;
  font-weight: 900;
}

.owner-empty {
  padding: 24px;
  border-radius: 16px;
  background: rgba(9, 22, 42, 0.75);
  color: #8b9bb8;
  border: 1px dashed rgba(255,255,255,0.14);
}

.owner-product-header {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.8fr);
  gap: 18px;
  align-items: stretch;
  margin: 18px 0;
}

.owner-product-header-left,
.owner-product-header-status {
  border: 1px solid rgba(0, 200, 200, 0.18);
  background: linear-gradient(180deg, rgba(13, 30, 56, 0.96), rgba(8, 20, 38, 0.96));
  border-radius: 18px;
  padding: 22px;
}

.owner-product-eyebrow {
  color: #55f0e6;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1px;
  margin-bottom: 8px;
}

.owner-product-header h1 {
  margin: 0;
  color: #ffffff;
  font-size: 28px;
  font-weight: 900;
}

.owner-product-header p {
  margin: 10px 0 0;
  color: #8b9bb8;
  font-size: 15px;
}

.owner-product-header-status {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.owner-product-status-label {
  font-size: 26px;
  font-weight: 900;
  margin-bottom: 8px;
}

.owner-product-status-desc {
  color: #b9c7dd;
  font-size: 14px;
  line-height: 1.6;
}

.owner-header-status-ready,
.owner-header-status-ready .owner-product-status-label {
  color: #7CFC00 !important;
}

.owner-header-status-warn,
.owner-header-status-warn .owner-product-status-label {
  color: #ffc107 !important;
}

.owner-header-status-blocked,
.owner-header-status-blocked .owner-product-status-label {
  color: #ff4d4f !important;
}

.owner-product-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 0 0 20px;
}

.owner-product-kpi {
  border: 1px solid rgba(0, 200, 200, 0.18);
  background: rgba(9, 22, 42, 0.86);
  border-radius: 16px;
  padding: 18px;
}

.owner-product-kpi span {
  display: block;
  color: #8b9bb8;
  font-size: 13px;
  margin-bottom: 8px;
}

.owner-product-kpi strong {
  display: block;
  color: #ffffff;
  font-size: 26px;
  font-weight: 900;
}

.old-nav,
.legacy-tabs,
.system-tabs {
  display: none !important;
}

body.owner-page .tos-nav,
body.owner-page #sub-nav-bar,
body.owner-page #global-alert,
body.owner-page #now-time,
body.owner-page .api-status,
body.owner-page .tos-system-strip,
body.owner-page .heartbeat-bar,
body.owner-page .system-kpi-grid,
body.owner-page .risk-summary-grid,
body.owner-page .shell-system-metrics,
body.owner-page .legacy-system-status {
  display: none !important;
}

body.owner-page .tos-brand {
  position: static;
}

body.owner-page .tos-tools {
  position: static;
  margin-left: auto;
}

body.owner-page .tos-header {
  justify-content: space-between;
}

.owner-start-gate {
  margin-top: 20px;
  padding: 16px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.1);
}

.owner-start-gate.ready {
  border-color: rgba(0,200,100,0.4);
  background: rgba(0,80,40,0.2);
}

.owner-start-gate.blocked {
  border-color: rgba(255,80,80,0.4);
  background: rgba(80,0,0,0.2);
}

.gate-title {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 6px;
}

.gate-message {
  font-size: 13px;
  color: #ccc;
  margin-bottom: 10px;
}

.gate-missing {
  font-size: 13px;
  color: #ff8080;
  margin-bottom: 10px;
}

.gate-action {
  font-size: 13px;
  color: #00c8c8;
}

/* ===== 资金安全模块 ===== */
.owner-safety-card {
  margin-top: 20px;
  padding: 16px 18px;
  border: 1px solid rgba(0,200,200,0.2);
  border-radius: 10px;
  background: rgba(0, 40, 60, 0.25);
}

.owner-safety-card .card-title {
  font-size: 14px;
  color: #00c8c8;
  margin-bottom: 10px;
  font-weight: 600;
}

.safety-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.safety-list li {
  font-size: 13px;
  color: #ccc;
  margin-bottom: 6px;
}

/* ===== 策略解释模块 ===== */
.owner-strategy-explain {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed rgba(255,255,255,0.08);
}

.explain-row {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  margin-bottom: 4px;
}

.explain-row .label {
  color: #888;
}

.explain-row .value {
  color: #ccc;
  text-align: right;
  max-width: 70%;
}

.explain-row .value.highlight {
  color: #00c8c8;
  font-weight: 500;
}

.start-gate {
  border-radius: 12px;
  padding: 20px;
  margin-top: 20px;
}

.start-gate.blocked {
  border: 1px solid rgba(255, 80, 80, 0.5);
  background: rgba(255, 0, 0, 0.05);
}

.start-gate.ready {
  border: 1px solid rgba(0, 255, 150, 0.5);
  background: rgba(0, 255, 150, 0.05);
}

.gate-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 6px 0;
}

.gate-item.fail span {
  color: #ff6b6b;
}

.gate-item.ok span {
  color: #4cd964;
}

.gate-item button {
  background: rgba(255, 200, 0, 0.15);
  border: 1px solid rgba(255, 200, 0, 0.4);
  color: #ffd666;
  padding: 4px 10px;
  border-radius: 6px;
  cursor: pointer;
  flex-shrink: 0;
}

.gate-next {
  margin-top: 16px;
  padding: 12px;
  border-top: 1px dashed rgba(255,255,255,0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.gate-next button {
  background: #00c8c8;
  color: #000;
  border: none;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
  flex-shrink: 0;
}

@media (max-width: 1000px) {
  .owner-product-header {
    grid-template-columns: 1fr;
  }

  .owner-product-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .owner-product-kpis {
    grid-template-columns: 1fr;
  }

  .owner-product-header h1 {
    font-size: 24px;
  }

  .gate-item,
  .gate-next {
    flex-direction: column;
    align-items: flex-start;
  }
}

.trading-config-center {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

body.trading-config-page .system-kpi-grid,
body.trading-config-page .risk-summary-grid,
body.trading-config-page .trader-route-table,
body.trading-config-page .real-signal-panel,
body.trading-config-page .ai-brain-debug,
body.trading-config-page .signal-pool-panel,
body.trading-config-page .mock-panel,
body.trading-config-page .shell-system-metrics,
body.trading-config-page .heartbeat-bar,
body.trading-config-page .legacy-system-status {
  display: none !important;
}

body.trading-config-page * {
  transition: none !important;
}

body.trading-config-page .legacy-dashboard,
body.trading-config-page .kpi-panel,
body.trading-config-page .system-strip {
  display: none !important;
}

body.trading-config-page .tos-system-strip,
body.trading-config-page .system-kpi-grid,
body.trading-config-page .risk-summary-grid,
body.trading-config-page .status-grid,
body.trading-config-page .metrics-grid,
body.trading-config-page .legacy-dashboard,
body.trading-config-page .kpi-panel,
body.trading-config-page .system-strip {
  display: none !important;
}

body.owner-onboarding-page .tos-system-strip,
body.owner-onboarding-page .system-kpi-grid,
body.owner-onboarding-page .risk-summary-grid,
body.owner-onboarding-page .status-grid,
body.owner-onboarding-page .metrics-grid,
body.owner-onboarding-page .legacy-dashboard,
body.owner-onboarding-page .kpi-panel,
body.owner-onboarding-page .system-strip {
  display: none !important;
}

body.trading-config-clean .shell-nav,
body.trading-config-clean .main-nav,
body.trading-config-clean .top-tabs,
body.trading-config-clean .system-tabs,
body.trading-config-clean .legacy-tabs,
body.trading-config-clean .system-kpi-grid,
body.trading-config-clean .risk-summary-grid,
body.trading-config-clean .status-grid,
body.trading-config-clean .metrics-grid,
body.trading-config-clean .system-strip,
body.trading-config-clean .refresh-status-grid,
body.trading-config-clean .tos-nav,
body.trading-config-clean #sub-nav-bar,
body.trading-config-clean .tos-system-strip,
body.trading-config-clean .heartbeat-bar,
body.trading-config-clean #now-time,
body.trading-config-clean #api-status {
  display: none !important;
}

body.trading-config-clean .trading-config-center {
  margin-top: 0;
}

body.owner-onboarding-booting .tos-system-strip,
body.owner-onboarding-booting .system-kpi-grid,
body.owner-onboarding-booting .risk-summary-grid,
body.owner-onboarding-booting .status-grid,
body.owner-onboarding-booting .metrics-grid,
body.owner-onboarding-booting .owner-dashboard,
body.owner-onboarding-booting .owner-center,
body.owner-onboarding-booting .owner-strategy-section {
  display: none !important;
}

body.owner-onboarding-page .tos-system-strip,
body.owner-onboarding-page .system-kpi-grid,
body.owner-onboarding-page .risk-summary-grid,
body.owner-onboarding-page .status-grid,
body.owner-onboarding-page .metrics-grid {
  display: none !important;
}

.owner-onboarding-card {
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 22px;
  min-height: 460px;
  background: linear-gradient(180deg, rgba(13, 30, 56, 0.94), rgba(8, 20, 38, 0.96));
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
}

.owner-onboarding-inner {
  text-align: center;
  max-width: 560px;
}

.owner-onboarding-icon {
  font-size: 58px;
  margin-bottom: 18px;
}

.owner-onboarding-inner h1 {
  margin: 0 0 18px;
  color: #fff;
  font-size: 30px;
}

.owner-onboarding-inner p {
  margin: 8px 0;
  color: #9fb0cc;
  font-size: 16px;
}

.owner-onboarding-inner .primary-action {
  margin-top: 22px;
}

.owner-empty-account-card {
  border: 1px dashed rgba(0, 200, 200, 0.28);
  border-radius: 18px;
  padding: 28px;
  background: rgba(5, 18, 36, 0.58);
  margin-top: 18px;
}

.owner-empty-account-card h3 {
  margin: 0 0 10px;
  color: #ffffff;
  font-size: 22px;
}

.owner-empty-account-card p {
  margin: 0 0 18px;
  color: #9fb0cc;
  font-size: 15px;
}

body.owner-page .owner-onboarding-card {
  display: none !important;
}

.config-hero {
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 20px;
  padding: 24px;
  background: linear-gradient(180deg, rgba(13, 30, 56, 0.96), rgba(7, 18, 34, 0.96));
  display: block;
}

.config-hero.blocked {
  border-color: rgba(255, 193, 7, 0.36);
}

.config-hero.ready {
  border-color: rgba(124, 252, 0, 0.36);
}

.config-eyebrow {
  color: #55f0e6;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1px;
  margin-bottom: 8px;
}

.config-hero h1 {
  margin: 0;
  font-size: 28px;
  color: #fff;
}

.config-hero p {
  margin: 10px 0 0;
  color: #9fb0cc;
  font-size: 15px;
}

.trader-config-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.trader-config-tab {
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(9, 22, 42, 0.86);
  border-radius: 16px;
  padding: 18px;
  text-align: left;
  cursor: pointer;
  min-height: 118px;
  transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.trader-config-tab:hover {
  border-color: rgba(69, 214, 255, 0.36);
  transform: translateY(-1px);
}

.trader-config-tab.is-current {
  border-color: rgba(69, 214, 255, 0.5);
  box-shadow: 0 0 0 1px rgba(69, 214, 255, 0.28) inset;
}

.trader-config-tab-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
}

.trader-config-tab strong {
  display: block;
  color: #fff;
  font-size: 18px;
}

.trader-config-tab-detail {
  margin: 0 0 10px;
  color: #b5c3dd;
  font-size: 12px;
  line-height: 1.5;
  min-height: 36px;
}

.trader-config-tab em {
  color: #9fb0cc;
  font-style: normal;
  font-size: 13px;
}

.trader-config-tab-status {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.trader-config-tab-status.is-done {
  background: rgba(125, 255, 178, 0.14);
  border: 1px solid rgba(125, 255, 178, 0.28);
  color: #7dffb2;
}

.trader-config-tab-status.is-pending {
  background: rgba(69, 214, 255, 0.1);
  border: 1px solid rgba(69, 214, 255, 0.2);
  color: #7fdcff;
}

.trader-config-workspace {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.trader-config-context-card {
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.trader-config-context-card-edit {
  gap: 12px;
}

.trader-config-summary-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.trader-config-mode-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(69, 214, 255, 0.28);
  background: rgba(69, 214, 255, 0.10);
  color: #a9f5ff;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.trader-config-mode-badge.is-edit {
  border-color: rgba(125, 255, 178, 0.30);
  background: rgba(125, 255, 178, 0.12);
  color: #b8ffd5;
}

.trader-config-summary-text {
  color: #a9b8d3;
  font-size: 13px;
  line-height: 1.5;
}

.trader-config-summary-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  width: 100%;
}

.trader-config-summary-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  max-width: 100%;
  padding: 7px 10px;
  border-radius: 12px;
  border: 1px solid rgba(125, 166, 255, 0.14);
  background: rgba(255, 255, 255, 0.03);
}

.trader-config-summary-label {
  color: #87a0c5;
  font-size: 12px;
  white-space: nowrap;
}

.trader-config-summary-value {
  color: #edf6ff;
  font-size: 13px;
  line-height: 1.45;
  word-break: break-word;
}

.trader-config-context-hint {
  font-weight: 700;
}

.trader-config-context-hint.is-ready {
  color: #7dffb2;
}

.trader-config-context-hint.is-pending {
  color: #7fdcff;
}

.primary-action,
.config-section-head button {
  border: 1px solid rgba(0, 200, 200, 0.42);
  background: rgba(0, 200, 200, 0.14);
  color: #68fff6;
  border-radius: 14px;
  padding: 11px 16px;
  font-weight: 800;
  cursor: pointer;
}

.config-hero-actions {
  display: flex;
  gap: 12px;
  align-items: center;
}

.secondary-action {
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.05);
  color: #dce8ff;
  border-radius: 12px;
  padding: 10px 14px;
  cursor: pointer;
}

.secondary-action:hover {
  color: #00c8c8;
  border-color: #00c8c8;
}

.config-progress-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.config-progress-card {
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(9, 22, 42, 0.86);
  border-radius: 16px;
  padding: 18px;
}

.config-progress-card span {
  display: inline-flex;
  width: 26px;
  height: 26px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  margin-bottom: 10px;
  font-weight: 900;
}

.config-progress-card.done span {
  background: rgba(124, 252, 0, 0.14);
  color: #7CFC00;
}

.config-progress-card.todo span {
  background: rgba(255, 193, 7, 0.14);
  color: #ffc107;
}

.config-progress-card strong {
  display: block;
  color: #fff;
  font-size: 18px;
  margin-bottom: 8px;
}

.config-progress-card em {
  color: #9fb0cc;
  font-style: normal;
  font-size: 13px;
}

.config-section {
  border: 1px solid rgba(0, 200, 200, 0.16);
  border-radius: 20px;
  padding: 22px;
  background: rgba(13, 30, 56, 0.72);
}

.config-section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 18px;
}

.config-section-head h2 {
  margin: 0;
  color: #55f0e6;
  font-size: 22px;
}

.config-section-head p {
  margin: 8px 0 0;
  color: #9fb0cc;
  font-size: 14px;
  line-height: 1.6;
}

.trader-page-notice {
  position: sticky;
  top: 16px;
  z-index: 12;
  display: block;
  margin-bottom: 16px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(159, 176, 204, 0.18);
  background: rgba(11, 24, 42, 0.92);
  color: #b8c2d9;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(10px);
}

.trader-page-notice.is-success {
  border-color: rgba(125,255,178,0.24);
  background: rgba(10, 42, 35, 0.9);
  color: #92f5c0;
}

.trader-page-notice.is-warning {
  border-color: rgba(255, 196, 94, 0.26);
  background: rgba(48, 33, 8, 0.92);
  color: #ffd27a;
}

.trader-page-notice.is-error {
  border-color: rgba(255, 143, 143, 0.22);
  background: rgba(48, 16, 20, 0.92);
  color: #ffb0b0;
}

.config-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

/* 自适应资源池 grid — 桌面 3 列，宽屏自然扩展，窄屏自动换行 */
.resource-pool-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
  align-items: start;
}

.resource-card {
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(7, 18, 34, 0.72);
  border-radius: 16px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.resource-card.resource-card-current {
  border-color: rgba(125, 255, 178, 0.46);
  box-shadow: 0 0 0 1px rgba(125, 255, 178, 0.20) inset;
  background: rgba(10, 30, 20, 0.82);
}

/* badge 槽：高度固定，所有卡片一致，有 badge 时显示，无时透明占位 */
.resource-card-badge-slot {
  height: 24px;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
}

.resource-card-current-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 2px 10px;
  font-size: 11px;
  font-weight: 800;
  background: rgba(125,255,178,0.14);
  border: 1px solid rgba(125,255,178,0.28);
  color: #7dffb2;
  line-height: 1;
}

.resource-card.resource-card-pending {
  border-color: rgba(255, 195, 80, 0.40);
  box-shadow: 0 0 0 1px rgba(255, 195, 80, 0.16) inset;
  background: rgba(30, 22, 5, 0.82);
}

.resource-card-badge-pending {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 2px 10px;
  font-size: 11px;
  font-weight: 800;
  background: rgba(255,195,80,0.13);
  border: 1px solid rgba(255,195,80,0.30);
  color: #ffc350;
  line-height: 1;
}

.resource-card strong {
  display: block;
  color: #fff;
  font-size: 15px;
  margin-bottom: 8px;
}

.resource-card p {
  margin: 5px 0;
  color: #9fb0cc;
  font-size: 13px;
}

/* 顶部摘要区瘦身 — 字号降低，信息密度减小 */
.trader-edit-summary-slim .trader-config-summary-tag {
  min-height: 28px;
  padding: 5px 9px;
}

.trader-edit-summary-slim .trader-config-summary-label {
  font-size: 11px;
}

.trader-edit-summary-slim .trader-config-summary-value {
  font-size: 12px;
}

.trader-edit-summary-slim .trader-config-summary-text {
  font-size: 12px;
}

.config-item-card {
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(7, 18, 34, 0.72);
  border-radius: 16px;
  padding: 16px;
}

.config-item-card.is-selected {
  border-color: rgba(69,214,255,0.46);
  box-shadow: 0 0 0 1px rgba(69,214,255,0.24) inset;
}

.config-item-card strong {
  display: block;
  color: #fff;
  font-size: 17px;
  margin-bottom: 10px;
}

.config-item-card p {
  margin: 6px 0;
  color: #9fb0cc;
  font-size: 13px;
}

.config-empty {
  border: 1px dashed rgba(255,255,255,0.14);
  border-radius: 14px;
  padding: 18px;
  color: #9fb0cc;
  grid-column: 1 / -1;
}

.exchange-config-form-grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.exchange-config-form-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 14px;
}

.exchange-config-form-row .credential-form-field {
  flex: 0 1 auto;
  min-width: 0;
}

.form-field-short {
  flex-basis: 200px;
  max-width: 220px;
}

.form-field-medium {
  flex-basis: 290px;
  max-width: 320px;
}

.form-field-long {
  flex: 1 1 420px;
  min-width: 360px;
  max-width: 480px;
}

.exchange-config-status-slot {
  flex: 1 1 260px;
  min-width: 220px;
  margin: 0;
}

.exchange-config-status-placeholder {
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.exchange-config-action-row {
  margin-top: 0;
  margin-left: auto;
  align-self: flex-end;
  flex-wrap: wrap;
}

.sensitive-field-wrap {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.sensitive-field-input {
  padding-right: 74px;
}

.sensitive-field-input[type="text"],
.sensitive-field-input[type="password"] {
  background: rgba(255, 255, 255, 0.04);
  color: #eef6ff;
}

.field-visibility-toggle {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  min-width: 46px;
  height: 30px;
  padding: 0 10px;
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 999px;
  background: rgba(7, 20, 35, 0.94);
  color: #8cfbfb;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.field-visibility-toggle:hover {
  border-color: rgba(0, 228, 255, 0.5);
  background: rgba(0, 200, 200, 0.12);
  color: #cfffff;
}

.field-visibility-toggle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 228, 255, 0.12);
}

.auth-textarea {
  min-height: 110px;
  height: auto;
  padding: 12px 14px;
  resize: vertical;
  line-height: 1.5;
}

.resource-list-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.resource-status-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 12px;
  font-weight: 800;
}

.resource-status-badge.success {
  background: rgba(125,255,178,0.14);
  border: 1px solid rgba(125,255,178,0.26);
  color: #7dffb2;
}

.resource-status-badge.failed {
  background: rgba(255,123,123,0.12);
  border: 1px solid rgba(255,123,123,0.24);
  color: #ff8f8f;
}

.resource-status-badge.untested {
  background: rgba(127,220,255,0.12);
  border: 1px solid rgba(127,220,255,0.2);
  color: #7fdcff;
}

body.owner-page .auth-input option,
.auth-input option {
  color: #10233a;
  background: #eef6ff;
}

@media (max-width: 1000px) {
  .config-hero,
  .config-section-head {
    flex-direction: column;
  }

  .config-hero-actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .trader-config-tabs {
    grid-template-columns: 1fr;
  }

  .config-progress-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .config-card-grid {
    grid-template-columns: 1fr;
  }

  .resource-pool-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }

  .form-field-short,
  .form-field-medium,
  .form-field-long,
  .exchange-config-status-slot {
    flex: 1 1 calc(50% - 7px);
    max-width: none;
    min-width: 240px;
  }

  .exchange-config-action-row {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .trader-config-tab-header,
  .config-saved-card {
    flex-direction: column;
    align-items: flex-start;
  }

  .trader-config-summary-tag {
    width: 100%;
  }

  .config-progress-grid {
    grid-template-columns: 1fr;
  }

  .config-hero h1 {
    font-size: 24px;
  }

  .form-field-short,
  .form-field-medium,
  .form-field-long,
  .exchange-config-status-slot {
    flex: 1 1 100%;
    min-width: 0;
  }

  .sensitive-field-input {
    padding-right: 72px;
  }
}

.config-page {
  padding: 24px;
}

.config-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}

.config-steps {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.step {
  border: 1px solid #1e3a5f;
  padding: 16px;
  border-radius: 12px;
}

.step h2 {
  margin-bottom: 10px;
}

.primary {
  background: #00c2ff;
  border: none;
  padding: 10px 16px;
  border-radius: 8px;
}

.config-modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.68);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.config-modal-card {
  width: 520px;
  max-width: calc(100vw - 32px);
  background: #0b1728;
  border: 1px solid #1e6078;
  border-radius: 16px;
  padding: 24px;
}

.config-modal-card label {
  display: block;
  margin-top: 14px;
  margin-bottom: 6px;
}

.config-modal-card input,
.config-modal-card select {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #244766;
  background: #07111f;
  color: #eaf6ff;
}

.checkbox-row {
  display: flex;
  gap: 18px;
  margin-top: 8px;
}

.config-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 22px;
}

.config-saved-card,
.config-empty {
  border: 1px solid #1e3a5f;
  border-radius: 10px;
  padding: 12px;
  margin-bottom: 10px;
}

.config-saved-card {
  display: flex;
  gap: 16px;
  align-items: center;
}

/* ── Owner Brand Refresh ─────────────────────────────────────────────── */
body.owner-page {
  background:
    radial-gradient(circle at top right, rgba(0, 228, 255, 0.16), transparent 24%),
    radial-gradient(circle at bottom left, rgba(0, 111, 122, 0.18), transparent 26%),
    linear-gradient(180deg, rgba(8, 18, 34, 0.32) 0%, rgba(13, 26, 46, 0.08) 100%),
    var(--fubit-bg);
}

body.owner-page #app-root,
body.owner-page #app-view {
  background: transparent;
}

body.owner-page .owner-page {
  min-height: 100vh;
  background: transparent;
  color: var(--fubit-text-main);
  padding: 32px 24px 48px;
}

body.owner-page .owner-shell {
  max-width: 1440px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

body.owner-page .owner-topbar {
  min-height: 116px;
  padding: 26px 28px;
  border-radius: 20px;
  border: 1px solid var(--fubit-border-strong);
  background:
    linear-gradient(135deg, rgba(0, 200, 200, 0.08), transparent 34%),
    var(--fubit-panel);
  box-shadow: 0 22px 60px rgba(2, 8, 18, 0.34);
  backdrop-filter: blur(14px);
}

body.owner-page .owner-title-block h1 {
  color: var(--fubit-text-main);
  font-size: 30px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

body.owner-page .owner-subtitle {
  margin-top: 10px;
  color: var(--fubit-cyan);
  font-size: 14px;
  letter-spacing: 0.12em;
}

body.owner-page .owner-user-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
  max-width: 60%;
}

body.owner-page .owner-email {
  padding: 0 4px;
  color: var(--fubit-text-secondary);
  font-size: 13px;
}

body.owner-page .owner-top-section,
body.owner-page .owner-center-summary-stack {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

body.owner-page .owner-section-card,
body.owner-page .owner-empty-card,
body.owner-page .owner-owner-card,
body.owner-page .owner-trader-card,
body.owner-page .config-empty,
body.owner-page .empty-owner-create-form {
  background: var(--fubit-panel-soft);
  border: 1px solid var(--fubit-border);
  border-radius: 18px;
  box-shadow: 0 12px 36px rgba(4, 10, 20, 0.20);
}

body.owner-page .owner-section-card:hover,
body.owner-page .owner-owner-card:hover,
body.owner-page .owner-trader-card:hover {
  border-color: var(--fubit-border-strong);
  box-shadow: 0 18px 42px rgba(3, 10, 20, 0.28);
}

body.owner-page .owner-section {
  padding: 22px 22px 20px;
}

body.owner-page .owner-section-header {
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(0, 200, 200, 0.12);
}

body.owner-page .section-kicker {
  color: var(--fubit-cyan);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

body.owner-page .owner-summary-grid,
body.owner-page .owner-overview-grid {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}

body.owner-page .owner-top-summary-card.owner-section {
  padding: 18px 18px 16px;
}

body.owner-page .owner-top-summary-card .owner-section-header {
  margin-bottom: 12px;
  padding-bottom: 10px;
}

body.owner-page .owner-top-summary-card .flow-manual-notice {
  margin-top: 8px;
}

body.owner-page .owner-summary-card {
  min-height: 104px;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(0, 200, 200, 0.14);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 100%),
    rgba(10, 23, 40, 0.72);
}

body.owner-page .owner-summary-card:hover {
  border-color: rgba(0, 228, 255, 0.26);
}

body.owner-page .owner-metric-value,
body.owner-page .owner-summary-card strong,
body.owner-page .owner-card-value {
  color: #00E4FF;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.01em;
  word-break: break-word;
}

body.owner-page .owner-summary-card .owner-muted-text,
body.owner-page .owner-muted-text,
body.owner-page .owner-muted,
body.owner-page .owner-summary-card .gate-label,
body.owner-page .gate-label {
  color: var(--fubit-text-secondary);
}

body.owner-page .owner-center-notice,
body.owner-page .config-empty,
body.owner-page .flow-manual-notice {
  padding: 12px 16px;
  border-radius: 14px;
  border: 1px solid rgba(0, 200, 200, 0.12);
  background: rgba(7, 20, 35, 0.62);
  color: var(--fubit-text-secondary);
  line-height: 1.7;
}

body.owner-page .flow-manual-notice {
  margin-top: 10px;
}

body.owner-page .owner-management-bar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  margin: 16px 0 20px;
  border: 1px solid rgba(0, 200, 200, 0.18);
  border-radius: 16px;
  background: rgba(13, 26, 46, 0.55);
}

body.owner-page .owner-management-tip {
  color: rgba(217, 217, 217, 0.9);
  font-size: 15px;
  line-height: 1.5;
}

body.owner-page .owner-management-actions {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

body.owner-page .owner-management-actions .owner-action-btn {
  margin: 0;
}

body.owner-page .owner-management-limit {
  margin-top: -6px;
}

body.owner-page .owner-trader-list {
  gap: 16px;
  margin-top: 0;
}

body.owner-page .owner-owner-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  padding: 20px;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

body.owner-page .owner-owner-card:hover {
  border-color: rgba(0, 228, 255, 0.38);
  box-shadow: 0 18px 42px rgba(3, 10, 20, 0.30);
  transform: translateY(-1px);
}

body.owner-page .owner-owner-card.is-current-owner {
  border-color: rgba(0, 228, 255, 0.58);
  box-shadow:
    0 0 0 1px rgba(0, 228, 255, 0.18),
    0 20px 44px rgba(0, 228, 255, 0.12);
  background:
    linear-gradient(180deg, rgba(0, 228, 255, 0.08), rgba(13, 26, 46, 0.92)),
    var(--fubit-panel-soft);
}

body.owner-page .owner-current-badge {
  color: #9ffeff;
  border: 1px solid rgba(0, 228, 255, 0.42);
  background: rgba(0, 228, 255, 0.10);
}

body.owner-page .owner-owner-card-top,
body.owner-page .owner-owner-card-summary,
body.owner-page .owner-owner-card-actions,
body.owner-page .owner-trader-card-title,
body.owner-page .owner-trader-card-meta,
body.owner-page .owner-trader-card-actions {
  width: 100%;
}

body.owner-page .owner-owner-card-top,
body.owner-page .owner-owner-card-summary {
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(0, 200, 200, 0.10);
}

body.owner-page .owner-owner-card-title strong,
body.owner-page .owner-trader-card strong:first-child {
  color: var(--fubit-text-main);
  font-size: 18px;
  font-weight: 800;
  word-break: break-word;
}

body.owner-page .owner-owner-card-meta,
body.owner-page .owner-owner-card-summary {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  row-gap: 10px;
}

body.owner-page .owner-owner-card-meta {
  justify-content: flex-end;
}

body.owner-page .owner-owner-card-summary {
  gap: 10px 12px;
}

body.owner-page .owner-action-group-label {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0, 200, 200, 0.18);
  background: rgba(0, 200, 200, 0.06);
  color: var(--fubit-text-secondary);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

body.owner-page .owner-trader-card {
  padding: 18px;
  gap: 14px;
  background:
    linear-gradient(180deg, rgba(0, 200, 200, 0.04), transparent 100%),
    var(--fubit-panel);
}

body.owner-page .owner-trader-card-archived {
  opacity: 0.92;
}

body.owner-page .trader-row {
  margin-bottom: 0;
}

body.owner-page .owner-trader-card-note {
  padding-top: 2px;
  border-top: 1px solid rgba(0, 200, 200, 0.08);
}

body.owner-page .owner-trader-list-wrap {
  margin-left: 8px;
  border-color: rgba(0, 200, 200, 0.12);
  background:
    linear-gradient(180deg, rgba(0, 200, 200, 0.03), transparent 100%),
    rgba(7, 20, 35, 0.58);
}

body.owner-page .owner-trader-list-header strong {
  color: var(--fubit-text-main);
  font-size: 14px;
}

body.owner-page .owner-trader-list-toggle.is-active {
  box-shadow: 0 0 0 1px rgba(0, 228, 255, 0.18), 0 10px 24px rgba(0, 228, 255, 0.08);
}

@media (max-width: 640px) {
  .owner-trader-list-wrap,
  body.owner-page .owner-trader-list-wrap {
    margin-left: 0;
    padding-left: 14px;
    padding-right: 14px;
  }
}

body.owner-page .owner-action-btn,
body.owner-page .router-action-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 10px 16px;
  border-radius: 12px;
  border: 1px solid transparent;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease, color 0.18s ease, opacity 0.18s ease;
  text-decoration: none;
  white-space: nowrap;
}

body.owner-page .owner-action-btn:hover:not(:disabled),
body.owner-page .router-action-button:hover:not(:disabled) {
  transform: translateY(-1px);
}

body.owner-page .owner-action-btn:focus-visible,
body.owner-page .router-action-button:focus-visible,
body.owner-page .auth-input:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 228, 255, 0.16);
}

body.owner-page .owner-primary-btn {
  background: var(--fubit-gradient);
  color: var(--fubit-blue);
  border-color: transparent;
  box-shadow: 0 10px 24px rgba(0, 179, 194, 0.22);
}

body.owner-page #ownerCreateAccountBtn {
  position: relative;
  z-index: 3;
  pointer-events: auto;
  cursor: pointer;
}

body.owner-page .owner-primary-btn:hover:not(:disabled) {
  filter: brightness(1.05);
  box-shadow: 0 14px 28px rgba(0, 179, 194, 0.30);
}

body.owner-page .owner-secondary-btn {
  background: rgba(13, 26, 46, 0.46);
  color: var(--fubit-cyan);
  border-color: rgba(0, 200, 200, 0.46);
}

body.owner-page .owner-secondary-btn:hover:not(:disabled) {
  background: rgba(0, 200, 200, 0.12);
  border-color: rgba(0, 228, 255, 0.62);
  color: #9ffeff;
}

body.owner-page .owner-danger-btn {
  background: rgba(255, 110, 110, 0.08);
  color: #FF8A8A;
  border-color: rgba(255, 110, 110, 0.55);
}

body.owner-page .owner-danger-btn:hover:not(:disabled) {
  background: rgba(255, 110, 110, 0.14);
  border-color: rgba(255, 138, 138, 0.76);
}

body.owner-page .owner-action-btn:disabled,
body.owner-page .router-action-button:disabled {
  opacity: 0.42;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

body.owner-page .owner-user-actions .owner-action-btn,
body.owner-page .owner-user-actions .router-action-button {
  margin: 0;
}

body.owner-page .owner-status-badge,
body.owner-page .owner-sub-badge,
body.owner-page .status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

body.owner-page .status-dry-run {
  background: rgba(0, 111, 122, 0.26);
  color: #A8F8FF;
  border-color: rgba(0, 200, 200, 0.34);
}

body.owner-page .status-real-armed {
  background: rgba(0, 200, 200, 0.14);
  color: #74F7F7;
  border-color: rgba(0, 228, 255, 0.42);
}

body.owner-page .status-real-live {
  background: var(--fubit-gradient);
  color: var(--fubit-blue);
  border-color: transparent;
  box-shadow: 0 8px 20px rgba(0, 179, 194, 0.22);
}

body.owner-page .status-active,
body.owner-page .owner-settlement-normal,
body.owner-page .owner-sub-active,
body.owner-page .withdrawal-status-done {
  background: rgba(53, 191, 122, 0.16);
  color: #9CF2C7;
  border-color: rgba(53, 191, 122, 0.34);
}

body.owner-page .status-disabled,
body.owner-page .owner-sub-inactive,
body.owner-page .withdrawal-status-pending {
  background: rgba(143, 155, 176, 0.12);
  color: #C4CDDA;
  border-color: rgba(143, 155, 176, 0.28);
}

body.owner-page .status-archived {
  background: rgba(90, 100, 118, 0.10);
  color: rgba(217, 217, 217, 0.72);
  border-color: rgba(143, 155, 176, 0.18);
}

body.owner-page .owner-settlement-warning,
body.owner-page .withdrawal-status-approved,
body.owner-page .withdrawal-status-approved1 {
  background: rgba(0, 200, 200, 0.14);
  color: #8CFBFB;
  border-color: rgba(0, 200, 200, 0.34);
}

body.owner-page .owner-settlement-danger,
body.owner-page .owner-sub-expired,
body.owner-page .withdrawal-status-blocked {
  background: rgba(255, 110, 110, 0.10);
  color: #FFAAAA;
  border-color: rgba(255, 138, 138, 0.36);
}

body.owner-page .owner-system-real-toggle {
  min-width: 92px;
}

body.owner-page .kill-switch.off.owner-system-real-toggle {
  background: rgba(13, 26, 46, 0.50);
  color: var(--fubit-text-secondary);
  border-color: rgba(143, 155, 176, 0.24);
}

body.owner-page .kill-switch.on.owner-system-real-toggle {
  background: var(--fubit-gradient);
  color: var(--fubit-blue);
  border-color: transparent;
}

body.owner-page .auth-input,
body.owner-page .market-type-option {
  background: rgba(7, 20, 35, 0.72);
  border: 1px solid rgba(0, 200, 200, 0.18);
  border-radius: 12px;
  color: var(--fubit-text-main);
}

body.owner-page .auth-input::placeholder {
  color: rgba(217, 217, 217, 0.40);
}

body.owner-page .empty-owner-create-form {
  padding: 18px;
}

body.owner-page #ownerCreateDialog,
body.owner-page .owner-dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  background: rgba(5, 10, 18, 0.55);
  pointer-events: auto;
}

body.owner-page .owner-dialog-panel {
  width: min(520px, 92vw);
  max-height: min(86vh, 760px);
  overflow-y: auto;
  background: #0D1A2E;
  border: 1px solid rgba(0, 200, 200, 0.22);
  border-radius: 18px;
  padding: 20px;
  box-shadow: 0 24px 60px rgba(2, 10, 20, 0.42);
}

body.owner-page .owner-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

body.owner-page .owner-dialog-header h3 {
  margin: 0 0 6px;
  color: var(--fubit-text-main);
  font-size: 22px;
}

body.owner-page .owner-dialog-subtitle {
  color: var(--fubit-text-secondary);
  line-height: 1.6;
  font-size: 13px;
}

body.owner-page .owner-dialog-body {
  display: grid;
  gap: 14px;
}

body.owner-page .owner-dialog-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 18px;
}

body.owner-page .owner-dialog-input {
  background: rgba(9, 19, 34, 0.96);
  border: 1px solid rgba(0, 200, 200, 0.28);
  color: var(--fubit-text-main);
}

body.owner-page .owner-dialog-input:focus,
body.owner-page .owner-dialog-input:focus-visible {
  border-color: rgba(0, 228, 255, 0.72);
  box-shadow: 0 0 0 3px rgba(0, 228, 255, 0.14);
}

body.owner-page .owner-dialog-message {
  min-height: 18px;
  color: var(--fubit-text-secondary);
}

body.owner-page .owner-action-row,
body.owner-page .owner-trader-actions,
body.owner-page .trader-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

body.owner-page .owner-trader-actions button,
body.owner-page .trader-actions button {
  margin-right: 0;
}

body.owner-page .owner-empty-card {
  padding: 32px 28px;
}

body.owner-page .owner-empty-card h2 {
  color: var(--fubit-text-main);
}

body.owner-page .owner-empty-card p {
  color: var(--fubit-text-secondary);
}

body.owner-page .owner-funds-center {
  margin-top: 24px;
  margin-bottom: 36px;
  padding: 24px;
  border: 1px solid #006F7A;
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(0, 200, 200, 0.05), rgba(0, 0, 0, 0) 28%),
    #0D1A2E;
  box-shadow: 0 16px 40px rgba(2, 12, 24, 0.30);
}

body.owner-page .owner-funds-center-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(0, 200, 200, 0.16);
}

body.owner-page .owner-funds-center-header h2 {
  margin: 6px 0 8px;
  color: #D9D9D9;
  font-size: 28px;
  font-weight: 800;
  line-height: 1.15;
}

body.owner-page .owner-funds-center-header p {
  margin: 0;
  color: rgba(217, 217, 217, 0.82);
  line-height: 1.6;
}

body.owner-page .owner-funds-center-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(0, 200, 200, 0.42);
  background: rgba(0, 200, 200, 0.10);
  color: #00C8C8;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

body.owner-page .owner-funds-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

body.owner-page .owner-funds-card {
  min-height: 168px;
  padding: 18px 18px 16px;
  border: 1px solid rgba(0, 111, 122, 0.92);
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(0, 200, 200, 0.04), rgba(0, 0, 0, 0) 100%),
    rgba(8, 19, 33, 0.78);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

body.owner-page .owner-funds-card span {
  display: block;
  margin-bottom: 12px;
  color: rgba(217, 217, 217, 0.78);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

body.owner-page .owner-funds-card strong {
  display: block;
  margin-bottom: 10px;
  color: #00C8C8;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.2;
}

body.owner-page .owner-funds-card p {
  margin: 0 0 8px;
  color: #D9D9D9;
  font-size: 14px;
  line-height: 1.65;
}

body.owner-page .owner-funds-card p:last-child {
  margin-bottom: 0;
}

body.owner-page .owner-funds-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

body.owner-page .owner-funds-mini-grid > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(0, 111, 122, 0.58);
  border-radius: 14px;
  background: rgba(13, 26, 46, 0.74);
}

body.owner-page .owner-funds-mini-grid span {
  display: block;
  margin-bottom: 6px;
  color: rgba(217, 217, 217, 0.72);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

body.owner-page .owner-funds-mini-grid strong {
  display: block;
  margin-bottom: 0;
  color: #9ffeff;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.35;
  word-break: break-word;
}

body.owner-page .owner-funds-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 18px;
}

body.owner-page .owner-funds-actions .btn-owner-secondary {
  min-width: 148px;
}

body.owner-page .owner-funds-ledger {
  margin-top: 20px;
  padding: 18px;
  border: 1px solid rgba(0, 111, 122, 0.9);
  border-radius: 18px;
  background: rgba(6, 16, 29, 0.76);
}

body.owner-page .owner-funds-ledger-header {
  margin-bottom: 14px;
}

body.owner-page .owner-funds-ledger-header h3 {
  margin: 0 0 8px;
  color: #D9D9D9;
  font-size: 20px;
  font-weight: 800;
}

body.owner-page .owner-funds-ledger-header p {
  margin: 0 0 6px;
  color: rgba(217, 217, 217, 0.76);
  line-height: 1.6;
}

body.owner-page .owner-ledger-table {
  overflow: hidden;
  border: 1px solid rgba(0, 111, 122, 0.72);
  border-radius: 16px;
  background: rgba(13, 26, 46, 0.72);
}

body.owner-page .owner-ledger-row {
  display: grid;
  grid-template-columns: 1.1fr 1.2fr 1.4fr 1fr 1fr 1.8fr;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
}

body.owner-page .owner-ledger-row span {
  min-width: 0;
  word-break: break-word;
}

body.owner-page .owner-ledger-head {
  border-bottom: 1px solid rgba(0, 200, 200, 0.14);
  background: rgba(0, 200, 200, 0.08);
  color: #00C8C8;
  font-size: 13px;
  font-weight: 800;
}

body.owner-page .owner-ledger-head span {
  min-width: 0;
}

body.owner-page .owner-ledger-empty {
  padding: 24px;
  color: rgba(217, 217, 217, 0.82);
  line-height: 1.7;
}

@media (max-width: 1080px) {
  body.owner-page .owner-top-section,
  body.owner-page .owner-center-summary-stack {
    grid-template-columns: 1fr;
  }

  body.owner-page .owner-user-actions {
    max-width: 100%;
    justify-content: flex-start;
  }

  body.owner-page .owner-funds-grid {
    grid-template-columns: 1fr;
  }

  body.owner-page .owner-funds-mini-grid {
    grid-template-columns: 1fr 1fr;
  }

  body.owner-page .owner-ledger-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  body.owner-page .owner-withdrawal-draft-grid {
    grid-template-columns: 1fr;
  }

  body.owner-page .owner-replenishment-draft-grid {
    grid-template-columns: 1fr;
  }

  body.owner-page .owner-page {
    padding: 20px 14px 36px;
  }

  body.owner-page .owner-topbar {
    padding: 22px 18px;
  }

  body.owner-page .owner-title-block h1 {
    font-size: 26px;
  }

  body.owner-page .owner-summary-grid,
  body.owner-page .owner-overview-grid {
    grid-template-columns: 1fr 1fr;
  }

  body.owner-page .owner-summary-inline-item {
    flex: 1 1 calc(50% - 10px);
  }

  body.owner-page .owner-management-bar {
    flex-direction: column;
    align-items: flex-start;
    padding: 14px 16px;
    margin: 14px 0 18px;
  }

  body.owner-page .owner-management-actions {
    width: 100%;
    justify-content: flex-start;
  }

  body.owner-page .owner-funds-center {
    padding: 20px 18px;
    margin-top: 20px;
    margin-bottom: 30px;
  }

  body.owner-page .owner-funds-center-header {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 640px) {
  body.owner-page .owner-summary-grid,
  body.owner-page .owner-overview-grid {
    grid-template-columns: 1fr;
  }

  body.owner-page .owner-summary-inline-item,
  body.owner-page .owner-summary-inline-item.is-wide {
    flex-basis: 100%;
    min-width: 0;
  }

  body.owner-page .owner-topbar,
  body.owner-page .owner-owner-card,
  body.owner-page .owner-trader-card,
  body.owner-page .owner-empty-card,
  body.owner-page .owner-section {
    padding-left: 16px;
    padding-right: 16px;
  }

  body.owner-page .owner-action-btn,
  body.owner-page .router-action-button {
    width: 100%;
  }

  body.owner-page .owner-user-actions {
    width: 100%;
  }

  body.owner-page .owner-email {
    max-width: 100%;
    white-space: normal;
    word-break: break-all;
  }

  body.owner-page .owner-funds-center,
  body.owner-page .owner-funds-ledger {
    padding-left: 16px;
    padding-right: 16px;
  }

  body.owner-page .owner-funds-actions .owner-action-btn {
    width: 100%;
  }

  body.owner-page .owner-funds-mini-grid {
    grid-template-columns: 1fr;
  }

  body.owner-page .owner-ledger-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

.strategy-item {
  border: 1px solid #1e3a5f;
  padding: 12px;
  border-radius: 10px;
  margin-bottom: 10px;
  cursor: pointer;
}

.strategy-item:hover {
  border-color: #00c2ff;
}

body.auth-page {
  min-height: 100vh;
}

.auth-page-shell {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
}

.auth-page-brand {
  position: absolute;
  top: 32px;
  left: 32px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.auth-page-logo {
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.auth-page-subtitle {
  color: var(--fubit-cyan);
  font-size: 0.88rem;
  letter-spacing: 0.08em;
}

.auth-page-card {
  width: min(100%, 420px);
  padding: 32px 28px;
  border: 1px solid var(--fubit-border);
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(10, 22, 40, 0.96), rgba(14, 28, 48, 0.92));
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.32);
}

.auth-page-kicker {
  color: var(--fubit-cyan);
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.auth-page-title {
  margin: 12px 0 8px;
  font-size: 2rem;
}

.auth-page-copy {
  margin: 0 0 22px;
  color: var(--text-muted);
  line-height: 1.6;
}

.auth-page-copy-secondary {
  margin-top: -12px;
  font-size: 0.95rem;
}

.auth-page-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.auth-page-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--text-muted);
  font-size: 0.92rem;
}

.auth-page-remember {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text-muted);
  font-size: 0.92rem;
}

.auth-page-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.auth-page-forgot {
  border: 0;
  background: transparent;
  color: var(--fubit-cyan);
  cursor: pointer;
  font-size: 0.92rem;
  padding: 0;
}

.auth-page-forgot:hover {
  opacity: 0.86;
}

.auth-page-submit,
.auth-page-switch {
  border: 0;
  border-radius: 14px;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease;
}

.auth-page-submit {
  margin-top: 6px;
  padding: 14px 16px;
  background: var(--fubit-gradient);
  color: #04121f;
  font-size: 1rem;
  font-weight: 700;
  box-shadow: 0 16px 36px rgba(0, 200, 200, 0.18);
}

.auth-page-submit:hover,
.auth-page-switch:hover {
  transform: translateY(-1px);
}

.auth-page-switch {
  width: 100%;
  margin-top: 12px;
  padding: 12px 16px;
  background: rgba(0, 200, 200, 0.08);
  color: var(--text-main);
  border: 1px solid rgba(0, 200, 200, 0.18);
}

.auth-page-message {
  min-height: 22px;
  margin-top: 14px;
  color: var(--text-muted);
  font-size: 0.92rem;
}

.auth-page-message.is-error {
  color: #ff8d8d;
}

.auth-page-message.is-loading {
  color: var(--fubit-cyan);
}

@media (max-width: 720px) {
  .auth-page-brand {
    top: 22px;
    left: 22px;
  }

  .auth-page-card {
    padding: 28px 20px;
  }

  .auth-page-title {
    font-size: 1.8rem;
  }
}

body.owner-page .owner-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}

body.owner-page .owner-subnav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 9px 14px;
  border-radius: 999px;
  border: 1px solid rgba(120, 139, 173, 0.24);
  background: rgba(12, 19, 34, 0.72);
  color: #dbe7ff;
  text-decoration: none;
  font-size: 13px;
  line-height: 1;
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

body.owner-page .owner-subnav-link:hover {
  border-color: rgba(94, 224, 255, 0.45);
  background: rgba(19, 34, 59, 0.86);
  transform: translateY(-1px);
}

body.owner-page .owner-subnav-link-active {
  border-color: rgba(94, 224, 255, 0.5);
  background: linear-gradient(135deg, rgba(18, 93, 120, 0.95), rgba(10, 40, 68, 0.94));
  color: #f3fbff;
  box-shadow: 0 12px 26px rgba(0, 136, 170, 0.18);
}

body.owner-page .owner-subnav-link-disabled {
  opacity: 0.7;
  cursor: default;
}

body.owner-page .owner-page-section {
  margin-bottom: 18px;
  padding: 20px 22px;
  border-radius: 20px;
  background: rgba(10, 16, 28, 0.84);
  border: 1px solid rgba(99, 122, 166, 0.14);
  box-shadow: 0 18px 40px rgba(3, 8, 18, 0.24);
}

body.owner-page .owner-page-hero {
  background: linear-gradient(135deg, rgba(8, 22, 39, 0.96), rgba(12, 18, 33, 0.94));
}

body.owner-page .owner-page-title,
body.owner-page .owner-page-section-title {
  margin: 6px 0 0;
  color: #f4f8ff;
  font-size: 24px;
  line-height: 1.25;
}

body.owner-page .owner-page-description {
  margin: 10px 0 0;
  color: #aebed9;
  line-height: 1.72;
  font-size: 14px;
}

body.owner-page .owner-page-context {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

body.owner-page .owner-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}

body.owner-page .owner-summary-card.owner-summary-card-compact,
body.owner-page .owner-summary-card.owner-quick-action-card {
  min-height: 150px;
}

body.owner-page .owner-summary-card.owner-summary-card-compact {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

body.owner-page .owner-quick-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
}

body.owner-page .owner-quick-action-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-decoration: none;
  cursor: pointer;
}

body.owner-page .owner-quick-action-card-disabled {
  opacity: 0.8;
}

body.owner-page .owner-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
}

body.owner-page .owner-accounts-page-grid {
  display: grid;
  gap: 18px;
}

body.owner-page .owner-empty-state {
  padding: 18px 20px;
  border-radius: 16px;
  border: 1px dashed rgba(114, 138, 177, 0.26);
  background: rgba(14, 20, 34, 0.7);
  color: #b9c6dd;
  line-height: 1.72;
}

body.owner-page .owner-state-loading,
body.owner-page .owner-state-error {
  min-height: 96px;
  display: flex;
  align-items: center;
}

body.owner-page .owner-noncustodial-note {
  border-left: 4px solid rgba(94, 224, 255, 0.48);
  color: #ddf5ff;
  line-height: 1.78;
  background: rgba(7, 31, 44, 0.92);
}

@media (max-width: 720px) {
  body.owner-page .owner-subnav {
    gap: 8px;
  }

  body.owner-page .owner-subnav-link {
    min-height: 36px;
    padding: 8px 12px;
    font-size: 12px;
  }

  body.owner-page .owner-page-section {
    padding: 16px;
  }

  body.owner-page .owner-page-title,
  body.owner-page .owner-page-section-title {
    font-size: 20px;
  }
}

body.admin-page {
  min-height: 100vh;
  background:
    radial-gradient(circle at top left, rgba(0, 200, 200, 0.10), transparent 30%),
    radial-gradient(circle at top right, rgba(255, 166, 0, 0.08), transparent 26%),
    linear-gradient(180deg, rgba(8, 18, 34, 0.32) 0%, rgba(13, 26, 46, 0.08) 100%),
    var(--fubit-bg);
}

body.admin-page #app-root,
body.admin-page #app-view {
  background: transparent;
}

body.admin-page .admin-page {
  --admin-brand-blue: #0D1A2E;
  --admin-brand-cyan: #00C8C8;
  --admin-brand-slate: #1F1F1F;
  --admin-brand-silver: #D9D9D9;
  --admin-brand-deep-cyan: #006F7A;
  --admin-brand-gradient: linear-gradient(135deg, #00E4FF 0%, #00B3C2 100%);
  min-height: 100vh;
  background:
    radial-gradient(circle at top right, rgba(0, 200, 200, 0.12), transparent 26%),
    linear-gradient(180deg, rgba(13, 26, 46, 0.96), rgba(8, 15, 28, 0.98));
  color: var(--fubit-text-main);
  padding: 20px 24px 36px;
}

body.admin-page .admin-shell {
  max-width: 1380px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

body.admin-page .admin-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px 20px;
  min-height: 84px;
  padding: 16px 20px;
  border-radius: 18px;
  border: 1px solid rgba(0, 111, 122, 0.72);
  background:
    linear-gradient(135deg, rgba(0, 200, 200, 0.12), transparent 40%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 100%),
    #0D1A2E;
  box-shadow: 0 14px 34px rgba(2, 8, 18, 0.28);
  backdrop-filter: blur(12px);
}

body.admin-page .admin-title-block {
  min-width: 0;
}

body.admin-page .admin-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

body.admin-page .admin-title-row h1 {
  color: var(--fubit-text-main);
  margin: 0;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

body.admin-page .admin-subtitle {
  margin-top: 6px;
  color: #D9D9D9;
  font-size: 13px;
  letter-spacing: 0.05em;
}

body.admin-page .admin-shell-version-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0, 111, 122, 0.62);
  background: rgba(0, 200, 200, 0.08);
  color: #8FE8E8;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.03em;
}

body.admin-page .admin-user-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  max-width: 62%;
}

body.admin-page .admin-email {
  padding: 0 2px;
  color: #D9D9D9;
  font-size: 12px;
  word-break: break-all;
}

body.admin-page .admin-real-indicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 14px;
  border-radius: 12px;
  border: 1px solid rgba(0, 111, 122, 0.58);
  background: rgba(0, 111, 122, 0.16);
  color: #D9D9D9;
  font-size: 12px;
  font-weight: 700;
}

body.admin-page .admin-real-indicator.is-on {
  border-color: rgba(255, 132, 132, 0.48);
  background: rgba(153, 35, 35, 0.18);
  color: #FFD0D0;
}

body.admin-page .admin-real-indicator.is-off {
  border-color: rgba(0, 111, 122, 0.58);
  color: #D9D9D9;
}

body.admin-page .owner-action-btn,
body.admin-page .router-action-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 10px 16px;
  border-radius: 12px;
  border: 1px solid transparent;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease, color 0.18s ease, opacity 0.18s ease;
}

body.admin-page .owner-secondary-btn {
  background: rgba(13, 26, 46, 0.46);
  color: var(--fubit-cyan);
  border-color: rgba(0, 200, 200, 0.46);
}

body.admin-page .owner-secondary-btn:hover:not(:disabled),
body.admin-page .router-action-button:hover:not(:disabled) {
  background: rgba(0, 200, 200, 0.12);
  border-color: rgba(0, 228, 255, 0.62);
  color: #9ffeff;
  transform: translateY(-1px);
}

body.admin-page .owner-action-btn:disabled,
body.admin-page .router-action-button:disabled {
  opacity: 0.42;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

body.admin-page .admin-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}

body.admin-page .admin-subnav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid rgba(0, 111, 122, 0.52);
  background: rgba(13, 26, 46, 0.84);
  color: #D9D9D9;
  text-decoration: none;
  font-size: 12px;
  line-height: 1;
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

body.admin-page .admin-subnav-link:hover {
  border-color: rgba(0, 200, 200, 0.68);
  background: rgba(15, 37, 57, 0.94);
  color: #F5FEFE;
  transform: translateY(-1px);
}

body.admin-page .admin-subnav-link-active {
  border-color: rgba(0, 228, 255, 0.72);
  background: linear-gradient(135deg, rgba(0, 228, 255, 0.24), rgba(0, 179, 194, 0.22));
  color: #F5FEFE;
  box-shadow: 0 10px 24px rgba(0, 111, 122, 0.22);
}

body.admin-page .admin-subnav-link-disabled {
  opacity: 0.7;
  cursor: default;
}

body.admin-page .admin-subnav-link-legacy {
  border-style: dashed;
  opacity: 0.86;
}

body.admin-page .admin-page-section {
  margin-bottom: 14px;
  padding: 18px 18px 20px;
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.015), transparent 100%),
    rgba(13, 26, 46, 0.82);
  border: 1px solid rgba(0, 111, 122, 0.28);
  box-shadow: 0 14px 32px rgba(3, 8, 18, 0.2);
}

body.admin-page .admin-page-hero {
  background:
    linear-gradient(135deg, rgba(0, 200, 200, 0.08), transparent 42%),
    linear-gradient(180deg, rgba(13, 26, 46, 0.96), rgba(11, 23, 40, 0.94));
}

body.admin-page .section-kicker {
  color: #00C8C8;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

body.admin-page .owner-section-header {
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(0, 111, 122, 0.24);
}

body.admin-page .admin-page-title,
body.admin-page .admin-page-section-title {
  margin: 6px 0 0;
  color: #F4FBFF;
  font-size: 22px;
  line-height: 1.25;
}

body.admin-page .admin-page-description {
  margin: 8px 0 0;
  color: #D9D9D9;
  line-height: 1.66;
  font-size: 13px;
}

body.admin-page .admin-page-context {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

body.admin-page .admin-shell-version-note {
  margin-top: 12px;
  color: rgba(217, 217, 217, 0.78);
  font-size: 11px;
  line-height: 1.6;
}

body.admin-page .admin-overview-grid,
body.admin-page .admin-risk-reason-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}

body.admin-page .admin-summary-card {
  min-height: 132px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 14px 15px;
  border-radius: 16px;
  border: 1px solid rgba(0, 111, 122, 0.28);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 100%),
    rgba(13, 26, 46, 0.7);
}

body.admin-page .admin-summary-card:hover {
  border-color: rgba(0, 200, 200, 0.42);
}

body.admin-page .admin-summary-card.is-safe {
  border-color: rgba(0, 200, 200, 0.34);
}

body.admin-page .admin-summary-card.is-warn {
  border-color: rgba(255, 144, 92, 0.32);
}

body.admin-page .admin-card-label,
body.admin-page .admin-card-note,
body.admin-page .gate-label {
  color: var(--fubit-text-secondary);
}

body.admin-page .admin-card-value {
  color: #00C8C8;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.2;
  word-break: break-word;
  text-shadow: 0 0 18px rgba(0, 200, 200, 0.14);
}

body.admin-page .admin-quick-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
}

body.admin-page .admin-quick-card {
  text-decoration: none;
  cursor: pointer;
}

body.admin-page .admin-quick-card-disabled {
  opacity: 0.8;
}

body.admin-page .admin-quick-card-legacy {
  border-style: dashed;
}

body.admin-page .admin-empty-state {
  padding: 18px 20px;
  border-radius: 16px;
  border: 1px dashed rgba(0, 111, 122, 0.42);
  background: rgba(13, 26, 46, 0.6);
  color: #D9D9D9;
  line-height: 1.72;
}

body.admin-page .admin-state-loading,
body.admin-page .admin-state-error {
  min-height: 96px;
  display: flex;
  align-items: center;
}

body.admin-page .admin-owner-grid,
body.admin-page .admin-wallet-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}

body.admin-page .admin-owner-card,
body.admin-page .admin-wallet-card,
body.admin-page .admin-finance-ledger-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 18px;
  border-radius: 18px;
  border: 1px solid rgba(0, 111, 122, 0.28);
  background:
    linear-gradient(180deg, rgba(0, 200, 200, 0.05), transparent 100%),
    var(--fubit-panel-soft);
  box-shadow: 0 12px 36px rgba(4, 10, 20, 0.20);
}

body.admin-page .admin-owner-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

body.admin-page .admin-owner-card h3 {
  margin: 6px 0 0;
  color: var(--fubit-text-main);
  font-size: 18px;
}

body.admin-page .admin-owner-code,
body.admin-page .admin-owner-meta,
body.admin-page .admin-wallet-address {
  color: var(--fubit-text-secondary);
  line-height: 1.65;
  word-break: break-word;
}

body.admin-page .admin-owner-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 6px;
}

body.admin-page .admin-table-wrap {
  width: 100%;
  overflow-x: auto;
}

body.admin-page .admin-readonly-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
}

body.admin-page .admin-readonly-table th,
body.admin-page .admin-readonly-table td {
  padding: 12px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  text-align: left;
  vertical-align: top;
  color: #dbe7ff;
}

body.admin-page .admin-readonly-table th {
  color: #00C8C8;
  font-weight: 700;
  white-space: nowrap;
}

body.admin-page .admin-code-inline {
  font-family: monospace;
  font-size: 12px;
}

body.admin-page .admin-risk-event-list {
  display: grid;
  gap: 12px;
}

body.admin-page .admin-risk-event-item {
  display: grid;
  grid-template-columns: 180px 120px 120px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid rgba(0, 111, 122, 0.22);
  background: rgba(13, 26, 46, 0.56);
}

body.admin-page .admin-risk-event-time,
body.admin-page .admin-risk-event-type,
body.admin-page .admin-risk-event-reason,
body.admin-page .admin-budget-lock-note {
  color: var(--fubit-text-secondary);
  line-height: 1.7;
}

body.admin-page .admin-finance-ledger-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.admin-page .admin-finance-ledger-list li {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(13, 26, 46, 0.68);
  color: #dbe7ff;
}

body.admin-page .admin-noncustodial-note {
  border-left: 4px solid rgba(0, 200, 200, 0.48);
  color: #D9F8F8;
  line-height: 1.78;
  background: rgba(16, 39, 55, 0.92);
}

body.admin-page .owner-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

body.admin-page .status-active,
body.admin-page .owner-settlement-normal,
body.admin-page .withdrawal-status-done {
  background: rgba(53, 191, 122, 0.16);
  color: #9CF2C7;
  border-color: rgba(53, 191, 122, 0.34);
}

body.admin-page .status-disabled,
body.admin-page .withdrawal-status-pending {
  background: rgba(143, 155, 176, 0.12);
  color: #C4CDDA;
  border-color: rgba(143, 155, 176, 0.28);
}

body.admin-page .owner-settlement-warning,
body.admin-page .withdrawal-status-approved,
body.admin-page .withdrawal-status-approved1 {
  background: rgba(255, 184, 77, 0.16);
  color: #ffd79c;
  border-color: rgba(255, 184, 77, 0.34);
}

body.admin-page .owner-settlement-danger,
body.admin-page .withdrawal-status-blocked {
  background: rgba(255, 110, 110, 0.10);
  color: #FFAAAA;
  border-color: rgba(255, 138, 138, 0.36);
}

@media (max-width: 1080px) {
  body.admin-page .admin-user-actions {
    max-width: 100%;
    justify-content: flex-start;
  }

  body.admin-page .admin-risk-event-item {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 900px) {
  body.admin-page .admin-page {
    padding: 16px 14px 28px;
  }

  body.admin-page .admin-topbar {
    padding: 14px 16px;
  }

  body.admin-page .admin-title-row h1 {
    font-size: 20px;
  }

  body.admin-page .admin-overview-grid,
  body.admin-page .admin-risk-reason-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 720px) {
  body.admin-page .admin-subnav {
    gap: 6px;
  }

  body.admin-page .admin-subnav-link {
    min-height: 34px;
    padding: 7px 11px;
    font-size: 12px;
  }

  body.admin-page .admin-page-section {
    padding: 15px;
  }

  body.admin-page .admin-page-title,
  body.admin-page .admin-page-section-title {
    font-size: 19px;
  }
}

@media (max-width: 640px) {
  body.admin-page .admin-overview-grid,
  body.admin-page .admin-risk-reason-grid {
    grid-template-columns: 1fr;
  }

  body.admin-page .admin-topbar,
  body.admin-page .admin-page-section,
  body.admin-page .admin-owner-card,
  body.admin-page .admin-wallet-card,
  body.admin-page .admin-finance-ledger-card {
    padding-left: 16px;
    padding-right: 16px;
  }

  body.admin-page .admin-user-actions {
    width: 100%;
  }

  body.admin-page .owner-action-btn,
  body.admin-page .router-action-button {
    width: 100%;
  }

  body.admin-page .admin-owner-actions .owner-action-btn {
    width: 100%;
  }

  body.admin-page .admin-risk-event-item,
  body.admin-page .admin-finance-ledger-list li {
    grid-template-columns: 1fr;
  }

  body.admin-page .admin-readonly-table {
    min-width: 620px;
  }
}

.strategy-user-note {
  margin-top: 10px;
  color: #b9c6dd;
  line-height: 1.7;
}

.strategy-user-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}

.strategy-user-pending-note {
  margin-top: 12px;
  color: #9fb0c9;
  font-size: 13px;
  line-height: 1.7;
}

.strategy-market-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.strategy-market-filter .owner-subnav-link {
  min-height: 38px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(114, 138, 177, 0.2);
  background: rgba(12, 20, 34, 0.88);
  color: #cfe6ff;
  cursor: pointer;
}

.strategy-market-filter .owner-subnav-link-active {
  border-color: rgba(94, 224, 255, 0.4);
  background: rgba(8, 37, 48, 0.96);
  color: #ecfbff;
}

.strategy-user-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

.strategy-user-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 220px;
  padding: 18px;
  border-radius: 18px;
  border: 1px solid rgba(0, 200, 200, 0.14);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 100%),
    rgba(10, 23, 40, 0.72);
}

.strategy-user-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.strategy-user-card-title {
  margin: 8px 0 0;
  color: #f6fbff;
  font-size: 20px;
  line-height: 1.3;
}

.strategy-user-code-tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(94, 224, 255, 0.12);
  color: #99ecff;
  font-size: 12px;
  letter-spacing: 0.02em;
}

.strategy-user-card-desc {
  margin: 0;
  color: #b9c6dd;
  line-height: 1.7;
}

.strategy-user-card-meta {
  display: grid;
  gap: 8px;
  color: #ddf5ff;
  font-size: 13px;
}

.strategy-user-card-actions {
  margin-top: auto;
  display: flex;
  justify-content: flex-start;
}

.strategy-user-action-note {
  color: #8f9fb8;
  font-size: 12px;
  line-height: 1.6;
}

.strategy-risk-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.strategy-risk-badge.is-high {
  background: rgba(255, 87, 87, 0.16);
  color: #ff9a9a;
}

.strategy-risk-badge.is-medium {
  background: rgba(255, 196, 87, 0.16);
  color: #ffd47e;
}

.strategy-risk-badge.is-low {
  background: rgba(78, 216, 123, 0.16);
  color: #88f0a8;
}
