:root {
  --linear-deep: #020203;
  --linear-base: #050506;
  --linear-elevated: #0a0a0c;
  --linear-input: #0f0f12;
  --linear-surface: rgba(255, 255, 255, .05);
  --linear-surface-hover: rgba(255, 255, 255, .08);
  --linear-foreground: #ededef;
  --linear-muted: #8a8f98;
  --linear-subtle: rgba(255, 255, 255, .6);
  --linear-accent: #5e6ad2;
  --linear-accent-bright: #6872d9;
  --linear-accent-glow: rgba(94, 106, 210, .3);
  --linear-line: rgba(255, 255, 255, .06);
  --linear-line-strong: rgba(255, 255, 255, .1);
  --linear-profit: #66cdb0;
  --linear-risk: #ef717b;
  --linear-warn: #d5ad69;
  --linear-body: Inter, "Geist Sans", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  --linear-display: "Geist Sans", Inter, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  --linear-data: "SFMono-Regular", "Cascadia Mono", Consolas, monospace;
  --linear-ease: cubic-bezier(.16, 1, .3, 1);
  --linear-shadow: 0 0 0 1px rgba(255, 255, 255, .045), 0 2px 18px rgba(0, 0, 0, .36), 0 18px 50px rgba(0, 0, 0, .18);
  --linear-shadow-hover: 0 0 0 1px rgba(255, 255, 255, .1), 0 10px 38px rgba(0, 0, 0, .42), 0 0 64px rgba(94, 106, 210, .1);
}

* { box-sizing: border-box; }

body.dashboard-v2,
body.source-trend-ui {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  isolation: isolate;
  color: var(--linear-foreground);
  background: var(--linear-base);
  font-family: var(--linear-body);
  font-variant-numeric: tabular-nums;
}

body.dashboard-v2::before,
body.source-trend-ui::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  opacity: 1;
  background:
    linear-gradient(rgba(255, 255, 255, .018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .018) 1px, transparent 1px),
    radial-gradient(ellipse 82% 58% at 50% -10%, #11111b 0%, #08080b 48%, var(--linear-deep) 100%);
  background-size: 64px 64px, 64px 64px, auto;
}

body.dashboard-v2::after,
body.source-trend-ui::after {
  content: "";
  position: fixed;
  inset: -22%;
  z-index: -1;
  pointer-events: none;
  opacity: .78;
  filter: blur(42px);
  background:
    radial-gradient(ellipse 38% 28% at 51% 10%, rgba(94, 106, 210, .24), transparent 70%),
    radial-gradient(ellipse 24% 26% at 12% 46%, rgba(102, 73, 171, .13), transparent 74%),
    radial-gradient(ellipse 26% 22% at 91% 37%, rgba(68, 104, 185, .12), transparent 74%),
    radial-gradient(ellipse 32% 20% at 52% 100%, rgba(94, 106, 210, .1), transparent 72%);
  animation: linear-ambient-drift 10s ease-in-out infinite alternate;
}

@keyframes linear-ambient-drift {
  from { transform: translate3d(-1%, 0, 0) scale(1); }
  to { transform: translate3d(1.5%, -1.5%, 0) scale(1.04); }
}

.dashboard-v2,
.source-trend-ui {
  --v2-bg: var(--linear-base);
  --v2-top: rgba(5, 5, 6, .72);
  --v2-sidebar: rgba(8, 8, 11, .67);
  --v2-panel: var(--linear-elevated);
  --v2-panel-2: #101015;
  --v2-panel-3: #17171d;
  --v2-line: var(--linear-line-strong);
  --v2-line-soft: var(--linear-line);
  --v2-text: var(--linear-foreground);
  --v2-muted: var(--linear-muted);
  --v2-blue: var(--linear-accent);
  --v2-blue-soft: rgba(94, 106, 210, .15);
  --v2-green: var(--linear-profit);
  --v2-green-soft: rgba(102, 205, 176, .12);
  --v2-red: var(--linear-risk);
  --v2-red-soft: rgba(239, 113, 123, .12);
  --v2-yellow: var(--linear-warn);
  --v2-yellow-soft: rgba(213, 173, 105, .12);
}

.dashboard-v2 .v2-app,
.source-trend-ui .app-shell {
  min-height: 100vh;
  position: relative;
  background: transparent;
}

.dashboard-v2 a,
.source-trend-ui a { color: inherit; text-decoration: none; }

.dashboard-v2 button,
.dashboard-v2 input,
.dashboard-v2 select,
.dashboard-v2 textarea,
.source-trend-ui button,
.source-trend-ui input,
.source-trend-ui select {
  font-family: inherit;
}

.dashboard-v2 button,
.source-trend-ui button { cursor: pointer; }

.dashboard-v2 button:disabled,
.source-trend-ui button:disabled { cursor: not-allowed; opacity: .46; }

.dashboard-v2 :focus-visible,
.source-trend-ui :focus-visible {
  outline: 2px solid rgba(104, 114, 217, .9);
  outline-offset: 2px;
}

/* Shared application frame */
.dashboard-v2 .v2-topbar {
  min-height: 64px;
  height: 64px;
  padding: 0 28px;
  border-bottom: 1px solid var(--linear-line);
  background: rgba(5, 5, 6, .68);
  backdrop-filter: blur(22px);
}

.dashboard-v2 .v2-shell { grid-template-columns: 226px minmax(0, 1fr); min-height: calc(100vh - 64px); }

.dashboard-v2 .v2-sidebar,
.source-trend-ui .sidebar {
  border-right: 1px solid var(--linear-line);
  background: rgba(7, 7, 10, .55);
  backdrop-filter: blur(22px);
}

.dashboard-v2 .v2-sidebar { padding: 20px 14px 90px; }
.source-trend-ui .sidebar { padding: 22px 14px 18px; }

.dashboard-v2 .v2-brand,
.source-trend-ui .brand { gap: 11px; }

.dashboard-v2 .v2-brand-mark,
.source-trend-ui .brand-mark {
  display: grid;
  place-items: center;
  color: #f5f5f7;
  border: 1px solid rgba(127, 138, 236, .46);
  border-radius: 11px;
  background: linear-gradient(145deg, #727be0, #4a53ad);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .12) inset, 0 6px 20px rgba(62, 69, 168, .32);
}

.dashboard-v2 .v2-brand-mark { width: 32px; height: 32px; }
.source-trend-ui .brand-mark { width: 36px; height: 36px; clip-path: none; font: 650 13px var(--linear-data); }

.dashboard-v2 .v2-brand-title,
.source-trend-ui .brand strong {
  color: var(--linear-foreground);
  font-family: var(--linear-display);
  font-weight: 650;
  letter-spacing: -.02em;
}

.dashboard-v2 .v2-brand-subtitle,
.source-trend-ui .brand small,
.dashboard-v2 .v2-nav-label,
.source-trend-ui .nav-label { color: var(--linear-muted); }

.dashboard-v2 .v2-nav-label,
.source-trend-ui .nav-label {
  padding: 0 10px 10px;
  font: 11px var(--linear-data);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dashboard-v2 .sidebar-nav,
.source-trend-ui .sidebar-nav { gap: 4px; }

.dashboard-v2 .sidebar-nav .nav-item,
.source-trend-ui .sidebar-nav a {
  min-height: 42px;
  position: relative;
  border: 1px solid transparent;
  border-radius: 9px;
  color: #a4a6ad;
  background: transparent;
  transition: color 200ms var(--linear-ease), background 200ms var(--linear-ease), border-color 200ms var(--linear-ease), transform 200ms var(--linear-ease);
}

.dashboard-v2 .sidebar-nav .nav-item:hover,
.source-trend-ui .sidebar-nav a:hover {
  color: var(--linear-foreground);
  border-color: var(--linear-line);
  background: rgba(255, 255, 255, .045);
  transform: translateX(2px);
}

.dashboard-v2 .sidebar-nav .nav-item.active,
.source-trend-ui .sidebar-nav a.active {
  color: #f2f2f6;
  border-color: rgba(115, 126, 222, .34);
  background: linear-gradient(90deg, rgba(94, 106, 210, .22), rgba(94, 106, 210, .06));
  box-shadow: inset 1px 0 rgba(255, 255, 255, .1), 0 8px 22px rgba(48, 54, 145, .1);
}

.dashboard-v2 .sidebar-nav .nav-item.active::before,
.source-trend-ui .sidebar-nav a.active::before {
  width: 2px;
  height: 22px;
  left: -1px;
  border-radius: 0 2px 2px 0;
  background: var(--linear-accent-bright);
}

.source-trend-ui .sidebar-nav a { grid-template-columns: 31px minmax(0, 1fr) 14px; gap: 9px; padding: 7px 10px; }
.source-trend-ui .nav-icon,
.source-trend-ui .active .nav-icon {
  width: 28px;
  height: 28px;
  color: #acb2e8;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 8px;
  background: rgba(94, 106, 210, .1);
  font: 10px var(--linear-data);
}
.source-trend-ui .nav-copy strong { color: inherit; font-size: 13px; font-weight: 600; }
.source-trend-ui .nav-copy small,
.source-trend-ui .nav-arrow { color: var(--linear-muted); }

.dashboard-v2 .v2-sidebar-status,
.source-trend-ui .sidebar-status {
  border: 1px solid var(--linear-line);
  border-radius: 12px;
  color: var(--linear-muted);
  background: rgba(255, 255, 255, .028);
  box-shadow: inset 0 1px rgba(255, 255, 255, .045);
}

.dashboard-v2 .v2-status-dot,
.source-trend-ui .status-light { background: var(--linear-profit); box-shadow: 0 0 0 4px rgba(102, 205, 176, .1); }

.dashboard-v2 .v2-workspace,
.source-trend-ui .content { padding: 24px clamp(18px, 2.7vw, 40px) 56px; }

.dashboard-v2 .v2-page-head,
.source-trend-ui .page-header {
  min-height: auto;
  position: relative;
  overflow: hidden;
  margin-bottom: 18px;
  padding: 8px 0 18px;
  border: 0;
  border-bottom: 1px solid var(--linear-line);
  border-radius: 0;
  background: transparent;
}

.source-trend-ui .page-header { padding: 22px 24px; border: 1px solid var(--linear-line); border-radius: 16px; background: linear-gradient(120deg, rgba(255, 255, 255, .065), rgba(255, 255, 255, .018)); box-shadow: var(--linear-shadow); }
.source-trend-ui .page-header::after { opacity: .42; background: linear-gradient(90deg, transparent, rgba(94, 106, 210, .13), transparent); }

.dashboard-v2 .v2-page-head h1,
.source-trend-ui .page-header h1 {
  color: transparent;
  background: linear-gradient(180deg, #ffffff 0%, #e7e7eb 58%, #9c9ca7 100%);
  background-clip: text;
  -webkit-background-clip: text;
  font-family: var(--linear-display);
  font-weight: 650;
  letter-spacing: -.035em;
}

.dashboard-v2 .v2-page-head h1 { font-size: clamp(26px, 3vw, 38px); }
.source-trend-ui .page-header h1 { font-size: clamp(28px, 3.2vw, 44px); }
.dashboard-v2 .v2-page-head p,
.source-trend-ui .page-header p { color: var(--linear-muted); }

/* Status pulse */
.ops-pulse,
.source-trend-ui .top-status {
  position: relative;
  overflow: hidden;
  margin: 0 0 18px;
  border: 1px solid var(--linear-line);
  border-radius: 14px;
  background: rgba(12, 12, 15, .96);
  box-shadow: none;
}

.ops-pulse::before {
  display: none;
}

.ops-pulse-heading { min-height: 30px; position: relative; display: flex; align-items: center; gap: 10px; padding: 0 13px; border-bottom: 1px solid var(--linear-line); }
.ops-pulse-name { color: #b4b7c1; font: 11px var(--linear-data); letter-spacing: .11em; }
.ops-pulse-name i { width: 6px; height: 6px; background: var(--linear-profit); box-shadow: 0 0 0 4px rgba(102, 205, 176, .1); }
.ops-pulse-sync { margin-left: auto; color: var(--linear-muted); font: 11px var(--linear-data); }
.ops-pulse-grid { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ops-pulse-item { min-width: 0; min-height: 52px; display: flex; flex-direction: column; justify-content: center; gap: 3px; padding: 9px 13px; border-right: 1px solid var(--linear-line); }
.ops-pulse-item:last-child { border-right: 0; }
.ops-pulse-item small { overflow: hidden; color: var(--linear-muted); font-size: 10px; letter-spacing: .04em; text-overflow: ellipsis; white-space: nowrap; }
.ops-pulse-item strong { overflow: hidden; color: var(--linear-foreground); font: 600 12px var(--linear-data); text-overflow: ellipsis; white-space: nowrap; }
.ops-pulse.is-degraded .ops-pulse-name i { background: var(--linear-risk); box-shadow: 0 0 0 4px rgba(239, 113, 123, .1); }
.pulse-updated { animation: linear-pulse-update 450ms var(--linear-ease); }
@keyframes linear-pulse-update { from { color: #b9c0ff; } to { color: inherit; } }

/* Surfaces, bento cards and data */
.dashboard-v2 .v2-panel,
.dashboard-v2 .panel,
.source-trend-ui .panel,
.source-trend-ui .metric,
.source-trend-ui .bot-list-row,
.dashboard-v2 .v2-overview,
.dashboard-v2 .advanced-details,
.dashboard-v2 .subpanel,
.dashboard-v2 .v2-key-panel,
.dashboard-v2 .v2-level-panel {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--linear-line);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .025));
  box-shadow: var(--linear-shadow);
  transition: border-color 240ms var(--linear-ease), box-shadow 240ms var(--linear-ease), transform 240ms var(--linear-ease), background 240ms var(--linear-ease);
}

.dashboard-v2 .v2-panel:hover,
.dashboard-v2 .panel:hover,
.source-trend-ui .panel:hover,
.source-trend-ui .metric:hover,
.source-trend-ui .bot-list-row:hover { border-color: var(--linear-line-strong); box-shadow: var(--linear-shadow-hover); transform: translateY(-2px); }

.lm-spotlight::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(310px circle at var(--lm-x, 50%) var(--lm-y, 50%), rgba(110, 122, 227, .14), transparent 68%);
  transition: opacity 240ms var(--linear-ease);
}
.lm-spotlight:hover::before { opacity: 1; }
.lm-spotlight > * { position: relative; z-index: 1; }

.dashboard-v2 .v2-overview { display: grid; gap: 0; margin-bottom: 16px; }
.dashboard-v2 .overview-card { min-height: 102px; padding: 16px 18px; border-right: 1px solid var(--linear-line); background: transparent; }
.dashboard-v2 .overview-card:hover { background: rgba(255, 255, 255, .025); }
.dashboard-v2 .overview-label,
.source-trend-ui .metric span { color: var(--linear-muted); font-size: 12px; }
.dashboard-v2 .overview-value,
.source-trend-ui .metric strong { color: var(--linear-foreground); font-family: var(--linear-data); font-variant-numeric: tabular-nums; }

.dashboard-v2 .v2-content-grid { grid-template-columns: minmax(0, 1fr) minmax(300px, 31%); gap: 16px; }
.dashboard-v2 .v2-main-stack,
.dashboard-v2 .v2-side-stack,
.source-trend-ui .page-stack { gap: 16px; }

.dashboard-v2 .v2-panel-head,
.dashboard-v2 .panel-heading,
.source-trend-ui .panel-title {
  min-height: 56px;
  position: relative;
  margin-bottom: 0;
  padding: 12px 16px;
  border-bottom: 1px solid var(--linear-line);
}

.dashboard-v2 .v2-panel-head h2,
.dashboard-v2 .panel-heading h2,
.source-trend-ui .panel-title span { color: var(--linear-foreground); font-weight: 620; letter-spacing: -.01em; }
.dashboard-v2 .v2-panel-head p,
.dashboard-v2 .panel-heading p,
.source-trend-ui .panel-title small,
.dashboard-v2 .panel-meta { color: var(--linear-muted); }

.dashboard-v2 .positions-table-wrap,
.dashboard-v2 .levels-wrap,
.dashboard-v2 .table-shell,
.source-trend-ui .table-wrap { border: 0; border-radius: 0; background: transparent; }

.dashboard-v2 .positions-table thead tr,
.dashboard-v2 .levels-table thead tr,
.dashboard-v2 .history-table thead tr,
.source-trend-ui th { background: rgba(255, 255, 255, .028); }

.dashboard-v2 .positions-table th,
.dashboard-v2 .positions-table td,
.dashboard-v2 .levels-table th,
.dashboard-v2 .levels-table td,
.dashboard-v2 .history-table th,
.dashboard-v2 .history-table td,
.source-trend-ui th,
.source-trend-ui td { border-bottom-color: var(--linear-line); }

.dashboard-v2 .positions-table th,
.dashboard-v2 .levels-table th,
.dashboard-v2 .history-table th,
.source-trend-ui th { color: var(--linear-muted); font: 11px var(--linear-data); letter-spacing: .045em; }

.dashboard-v2 .positions-table td,
.dashboard-v2 .levels-table td,
.dashboard-v2 .history-table td,
.source-trend-ui td { color: #d4d4da; font-family: var(--linear-data); font-variant-numeric: tabular-nums; }

.dashboard-v2 .positions-table tbody tr:hover,
.dashboard-v2 .levels-table tbody tr:hover,
.dashboard-v2 .history-table tbody tr:hover,
.source-trend-ui tbody tr:hover { background: rgba(255, 255, 255, .032); }

.dashboard-v2 .coin-badge,
.source-trend-ui .coin-avatar { color: #dfe2ff; border: 1px solid rgba(122, 133, 226, .3); background: rgba(94, 106, 210, .22); }
.dashboard-v2 .symbol-sub,
.source-trend-ui .bot-list-cell small,
.source-trend-ui .trade-sub { color: var(--linear-muted); }

.dashboard-v2 .key-metric { border-color: var(--linear-line); background: rgba(255, 255, 255, .018); }
.dashboard-v2 .key-metric span { color: var(--linear-muted); }
.dashboard-v2 .key-metric strong { color: var(--linear-foreground); font-family: var(--linear-data); }

.dashboard-v2 .risk-priority { order: -1; border-color: rgba(115, 126, 222, .3); background: linear-gradient(145deg, rgba(94, 106, 210, .17), rgba(255, 255, 255, .025)); }
.dashboard-v2 .risk-box { background: transparent; }
.dashboard-v2 .risk-title { color: var(--linear-foreground); }
.dashboard-v2 .risk-caption { color: var(--linear-muted); }
.dashboard-v2 .risk-bar,
.source-trend-ui .progress-track { background: rgba(255, 255, 255, .08); }
.dashboard-v2 .risk-bar span,
.source-trend-ui .progress-track > span { background: linear-gradient(90deg, var(--linear-accent), #8992ec); }

.dashboard-v2 .event-item { border-bottom-color: var(--linear-line); }
.dashboard-v2 .event-symbol { color: var(--linear-foreground); }
.dashboard-v2 .event-text { color: #bebec7; }
.dashboard-v2 .event-time,
.dashboard-v2 .event-empty { color: var(--linear-muted); }

.dashboard-v2 .positive-text,
.dashboard-v2 .positive,
.source-trend-ui .positive,
.source-trend-ui .condition-ok { color: var(--linear-profit) !important; }
.dashboard-v2 .negative-text,
.dashboard-v2 .negative,
.source-trend-ui .negative,
.source-trend-ui .condition-fail { color: var(--linear-risk) !important; }

/* Forms, controls and badges */
.dashboard-v2 .toolbar-button,
.dashboard-v2 .env-switch-group,
.dashboard-v2 .action-button,
.source-trend-ui .primary,
.source-trend-ui .secondary,
.source-trend-ui .ghost,
.source-trend-ui .danger-button {
  border: 1px solid var(--linear-line);
  border-radius: 9px;
  color: #d9d9df;
  background: rgba(255, 255, 255, .045);
  box-shadow: inset 0 1px rgba(255, 255, 255, .07);
  transition: color 200ms var(--linear-ease), border-color 200ms var(--linear-ease), background 200ms var(--linear-ease), box-shadow 200ms var(--linear-ease), transform 200ms var(--linear-ease);
}

.dashboard-v2 .toolbar-button:hover,
.dashboard-v2 .action-button:hover:not(:disabled),
.source-trend-ui .secondary:hover,
.source-trend-ui .ghost:hover {
  color: #fff;
  border-color: var(--linear-line-strong);
  background: var(--linear-surface-hover);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .22), inset 0 1px rgba(255, 255, 255, .1);
  transform: translateY(-1px);
}

.dashboard-v2 .env-switch.active,
.dashboard-v2 .solid-button,
.dashboard-v2 .accent-button,
.dashboard-v2 .action-button.primary,
.source-trend-ui .primary {
  color: #fff;
  border-color: rgba(138, 147, 232, .65);
  background: var(--linear-accent);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .11) inset, 0 6px 18px rgba(94, 106, 210, .32);
}

.dashboard-v2 .solid-button:hover,
.dashboard-v2 .accent-button:hover,
.dashboard-v2 .action-button.primary:hover,
.source-trend-ui .primary:hover { background: var(--linear-accent-bright); box-shadow: 0 0 0 1px rgba(255, 255, 255, .14) inset, 0 8px 22px rgba(94, 106, 210, .4); }
.dashboard-v2 .toolbar-button:active,
.dashboard-v2 .action-button:active,
.source-trend-ui button:active { transform: scale(.98); }

.dashboard-v2 .env-pill,
.dashboard-v2 .status-pill,
.dashboard-v2 .count-badge,
.source-trend-ui .badge {
  border: 1px solid var(--linear-line);
  border-radius: 999px;
  color: #bfc2d2;
  background: rgba(255, 255, 255, .045);
  font-family: var(--linear-data);
}

.dashboard-v2 .env-pill { color: #c5cafc; border-color: rgba(115, 126, 222, .3); background: rgba(94, 106, 210, .14); }
.dashboard-v2 .mode-badge,
.dashboard-v2 .auto-badge,
.dashboard-v2 .state-holding,
.source-trend-ui .badge.good { color: #c5cafc; border-color: rgba(115, 126, 222, .35); background: rgba(94, 106, 210, .14); }
.dashboard-v2 .state-adding,
.dashboard-v2 .state-shorting,
.source-trend-ui .badge.warn { color: var(--linear-warn); border-color: rgba(213, 173, 105, .28); background: rgba(213, 173, 105, .1); }
.dashboard-v2 .state-closing_stop_loss,
.dashboard-v2 .state-closing_external,
.source-trend-ui .badge.danger,
.source-trend-ui .danger-button { color: #ffabb3; border-color: rgba(239, 113, 123, .34); background: rgba(239, 113, 123, .1); }

.dashboard-v2 input,
.dashboard-v2 select,
.dashboard-v2 textarea,
.source-trend-ui input,
.source-trend-ui select {
  border: 1px solid var(--linear-line-strong);
  border-radius: 9px;
  color: var(--linear-foreground);
  background: var(--linear-input);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, .25);
  transition: border-color 200ms var(--linear-ease), box-shadow 200ms var(--linear-ease), background 200ms var(--linear-ease);
}

.dashboard-v2 input:focus,
.dashboard-v2 select:focus,
.dashboard-v2 textarea:focus,
.source-trend-ui input:focus,
.source-trend-ui select:focus {
  border-color: rgba(122, 133, 230, .9);
  outline: 0;
  background: #111116;
  box-shadow: 0 0 0 3px rgba(94, 106, 210, .2), inset 0 1px 1px rgba(0, 0, 0, .25);
}

.dashboard-v2 .field-label,
.dashboard-v2 .form-field,
.source-trend-ui .form-grid label,
.source-trend-ui .parameter-fields label { color: #b5b6be; }
.dashboard-v2 .field-note,
.source-trend-ui .hint,
.source-trend-ui .parameter-toggle small { color: var(--linear-muted); }

.source-trend-ui .parameter-band,
.source-trend-ui .run-select,
.source-trend-ui .selected-progress {
  border-color: var(--linear-line);
  border-radius: 12px;
  background: rgba(255, 255, 255, .025);
}
.source-trend-ui .parameter-band > header { border-bottom-color: var(--linear-line); background: rgba(255, 255, 255, .03); }
.source-trend-ui .parameter-band header strong,
.source-trend-ui .run-summary strong,
.source-trend-ui .snapshot-identity strong,
.source-trend-ui .status-copy strong { color: var(--linear-foreground); }
.source-trend-ui .parameter-band header > span,
.source-trend-ui .snapshot-seal,
.source-trend-ui .snapshot-divider,
.source-trend-ui .eyebrow { color: #aeb5ff; }
.source-trend-ui .run-select:hover,
.source-trend-ui .run-select.selected { border-color: rgba(115, 126, 222, .5); background: rgba(94, 106, 210, .13); }
.source-trend-ui .chart { border-color: var(--linear-line); border-radius: 12px; background-color: rgba(255, 255, 255, .018); }

/* Login, modal and feedback states */
.dashboard-v2.auth-page,
.dashboard-v2 .auth-shell { background: transparent; }
.dashboard-v2 .auth-frame {
  border: 1px solid var(--linear-line);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .075), rgba(255, 255, 255, .025));
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .025) inset, 0 28px 90px rgba(0, 0, 0, .44), 0 0 110px rgba(94, 106, 210, .1);
}
.dashboard-v2 .auth-card { background: transparent; }
.dashboard-v2 .auth-aside { border-left-color: var(--linear-line); background: rgba(94, 106, 210, .06); }
.dashboard-v2 .auth-submit { border: 1px solid rgba(138, 147, 232, .65); border-radius: 10px; background: var(--linear-accent); box-shadow: 0 0 0 1px rgba(255, 255, 255, .1) inset, 0 7px 20px rgba(94, 106, 210, .32); }
.dashboard-v2 .auth-submit:hover { background: var(--linear-accent-bright); }
.dashboard-v2 .toast-card,
.dashboard-v2 .modal-content,
.dashboard-v2 .offcanvas { border: 1px solid var(--linear-line-strong); border-radius: 14px; color: var(--linear-foreground); background: #101015; box-shadow: 0 22px 70px rgba(0, 0, 0, .48); }
.dashboard-v2 .toast-card.success { border-color: rgba(102, 205, 176, .42); }
.dashboard-v2 .toast-card.danger { border-color: rgba(239, 113, 123, .46); }
.dashboard-v2 .modal-header,
.dashboard-v2 .modal-footer,
.dashboard-v2 .offcanvas-header { border-color: var(--linear-line); }

/* Motion is intentionally small and optional. */
.lm-reveal { opacity: 0; transform: translateY(8px); transition: opacity 500ms var(--linear-ease), transform 500ms var(--linear-ease); }
.lm-reveal.is-visible { opacity: 1; transform: translateY(0); }
.lm-parallax { will-change: transform, opacity; }

@media (max-width: 1040px) {
  .dashboard-v2 .v2-content-grid { grid-template-columns: 1fr; }
  .dashboard-v2 .v2-side-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .dashboard-v2 .v2-topbar { min-height: 58px; height: auto; padding: 10px 14px; }
  .dashboard-v2 .v2-shell,
  .source-trend-ui .app-shell { grid-template-columns: 1fr; }
  .dashboard-v2 .v2-sidebar,
  .source-trend-ui .sidebar { position: static; height: auto; padding: 8px 10px; border-right: 0; border-bottom: 1px solid var(--linear-line); }
  .dashboard-v2 .v2-sidebar-status,
  .source-trend-ui .sidebar-status,
  .source-trend-ui .nav-label,
  .source-trend-ui .sidebar-back { display: none; }
  .dashboard-v2 .sidebar-nav,
  .source-trend-ui .sidebar-nav { display: flex; overflow-x: auto; }
  .dashboard-v2 .sidebar-nav .nav-item,
  .source-trend-ui .sidebar-nav a { flex: 0 0 auto; min-height: 38px; }
  .source-trend-ui .sidebar-nav a { grid-template-columns: 26px minmax(0, 1fr); }
  .source-trend-ui .nav-copy small,
  .source-trend-ui .nav-arrow { display: none; }
  .dashboard-v2 .v2-workspace,
  .source-trend-ui .content { padding: 14px; }
  .ops-pulse-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ops-pulse-item:nth-child(2) { border-right: 0; }
  .ops-pulse-item:nth-child(-n + 2) { border-bottom: 1px solid var(--linear-line); }
  .source-trend-ui .page-header { padding: 20px; }
}

@media (max-width: 560px) {
  .dashboard-v2 .v2-brand-subtitle,
  .dashboard-v2 .env-pill { display: none; }
  .dashboard-v2 .v2-page-head h1 { font-size: 25px; }
  .source-trend-ui .page-header h1 { font-size: 30px; }
  .dashboard-v2 .v2-side-stack { grid-template-columns: 1fr; }
  .dashboard-v2 .overview-card { border-right: 0; border-bottom: 1px solid var(--linear-line); }
  .dashboard-v2 .overview-card:last-child { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  body.dashboard-v2::after,
  body.source-trend-ui::after { animation: none; }
}

/* Unified execution shell: structure carries the hierarchy, not decoration. */
.dashboard-v2.console-page .v2-topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  min-height: 58px;
  height: 58px;
  padding-inline: 22px;
}

.dashboard-v2.console-page .v2-shell { grid-template-columns: 212px minmax(0, 1fr); }
.dashboard-v2.console-page .v2-sidebar { padding: 16px 12px 84px; }
.dashboard-v2.console-page .v2-nav-label { padding-bottom: 8px; }
.dashboard-v2.console-page .v2-sidebar-status { left: 16px; right: 16px; bottom: 16px; }
.dashboard-v2.console-page .v2-workspace { padding: 16px clamp(16px, 2.3vw, 34px) 42px; }

.dashboard-v2.console-page .ops-pulse {
  position: sticky;
  top: 72px;
  z-index: 18;
  margin-bottom: 14px;
  border-radius: 12px;
  backdrop-filter: blur(20px);
}
.dashboard-v2.console-page .ops-pulse-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.dashboard-v2.console-page .ops-pulse-item { min-height: 52px; padding: 9px 12px; }
.dashboard-v2.console-page .ops-pulse-item small { font: 10px var(--linear-data); letter-spacing: .04em; }
.dashboard-v2.console-page .ops-pulse-item strong { font-size: 12px; }

.page-kicker {
  display: block;
  margin-bottom: 5px;
  color: #adb5ff;
  font: 10px var(--linear-data);
  letter-spacing: .13em;
}
.dashboard-v2.console-page .execution-page-head {
  min-height: 78px;
  align-items: center;
  margin-bottom: 14px;
  padding-bottom: 14px;
}
.dashboard-v2.console-page .execution-page-head h1 { margin: 0; }
.dashboard-v2.console-page .execution-page-head p { margin-top: 3px; }

/* Overview: risk begins the page, then exposure and executable positions. */
.execution-primary-row {
  display: grid;
  grid-template-columns: minmax(260px, .78fr) minmax(0, 2.22fr);
  gap: 14px;
  align-items: stretch;
  margin-bottom: 14px;
}
.execution-primary-row .execution-risk-panel {
  display: grid;
  grid-template-rows: auto 1fr;
  order: 0;
  min-height: 132px;
  margin: 0;
  border-color: rgba(119, 131, 230, .34);
  background: linear-gradient(145deg, rgba(94, 106, 210, .17), rgba(255, 255, 255, .027));
}
.execution-primary-row .execution-risk-panel .v2-panel-head { min-height: 48px; }
.execution-primary-row .risk-box { display: grid; align-content: center; padding: 14px 16px 16px; }
.execution-primary-row .risk-title { font-size: 14px; }
.execution-primary-row .risk-caption { font-size: 11px; }
.execution-primary-row .risk-bar { margin-top: 13px; }

.dashboard-v2.console-page .execution-exposure-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-height: 132px;
  margin: 0;
}
.dashboard-v2.console-page .execution-exposure-grid .overview-card { min-height: 132px; padding: 15px 16px; }
.dashboard-v2.console-page .execution-exposure-grid .overview-value { margin-top: 9px; font-size: clamp(18px, 1.8vw, 25px); }
.dashboard-v2.console-page .execution-data-grid { grid-template-columns: minmax(0, 1fr) minmax(280px, 24%); gap: 14px; }
.dashboard-v2.console-page .execution-side-stack { gap: 14px; }
.dashboard-v2.console-page .execution-side-stack .v2-panel { min-height: 0; }
.dashboard-v2.console-page .quant-summary-panel .daily-strategy-box { min-height: 92px; padding: 14px 16px; }
.dashboard-v2.console-page .positions-panel { min-height: 430px; }

/* All runtime pages follow summary → instances → selected detail. */
.dashboard-v2.console-page .execution-runtime-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 14px;
  border-radius: 14px;
}
.dashboard-v2.console-page .execution-runtime-overview .overview-card { min-height: 106px; }
.dashboard-v2.console-page .strategy-runtime-panel { margin-bottom: 14px; }
.dashboard-v2.console-page .strategy-runtime-grid { gap: 10px; padding: 12px; }
.dashboard-v2.console-page .strategy-runtime-card { border-radius: 12px; }
.dashboard-v2.console-page .strategy-detail-panel { margin-bottom: 0; }

/* Quant strategy owns one page hierarchy under the shared console shell. */
.dashboard-v2.source-trend-ui .quant-execution-page { width: 100%; max-width: 1560px; margin: 0 auto; }
.dashboard-v2.source-trend-ui .page-stack { max-width: none; gap: 14px; }
.dashboard-v2.source-trend-ui .page-header {
  min-height: 106px;
  align-items: center;
  margin: 0;
  padding: 18px 20px;
  border-radius: 14px;
}
.dashboard-v2.source-trend-ui .page-header h1 { font-size: clamp(26px, 2.7vw, 36px); }
.dashboard-v2.source-trend-ui .page-header p { max-width: 840px; font-size: 13px; line-height: 1.55; }
.quant-strategy-navigation { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.quant-strategy-tabs {
  display: flex;
  align-items: center;
  gap: 4px;
  width: fit-content;
  max-width: 100%;
  overflow-x: auto;
  padding: 4px;
  border: 1px solid var(--linear-line);
  border-radius: 11px;
  background: rgba(5, 5, 6, .52);
}
.quant-strategy-tabs a {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 11px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--linear-muted);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  transition: color 180ms var(--linear-ease), border-color 180ms var(--linear-ease), background 180ms var(--linear-ease);
}
.quant-strategy-tabs a:hover { color: var(--linear-foreground); background: rgba(255, 255, 255, .045); }
.quant-strategy-tabs a.active { color: #f5f5ff; border-color: rgba(115, 126, 222, .36); background: rgba(94, 106, 210, .23); box-shadow: inset 0 1px rgba(255, 255, 255, .08); }
.quant-strategy-tabs i { color: #aeb5ff; }
.quant-api-link {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 11px;
  border: 1px solid var(--linear-line);
  border-radius: 10px;
  color: #c4c8e8;
  background: rgba(94, 106, 210, .07);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  transition: color 180ms var(--linear-ease), border-color 180ms var(--linear-ease), background 180ms var(--linear-ease);
}
.quant-api-link i { color: #aeb5ff; }
.quant-api-link:hover { color: #fff; border-color: rgba(132, 143, 234, .52); background: rgba(94, 106, 210, .16); }
.dashboard-v2.source-trend-ui .metrics-grid.five { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.dashboard-v2.source-trend-ui .metric { min-height: 92px; padding: 14px; border-radius: 12px; }
.dashboard-v2.source-trend-ui .split-grid { grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); gap: 14px; }
.dashboard-v2.source-trend-ui .backtest-layout { grid-template-columns: minmax(0, 1.14fr) minmax(340px, .86fr); }
.dashboard-v2.source-trend-ui .panel { border-radius: 14px; }
.dashboard-v2.source-trend-ui .panel-title { min-height: 49px; margin-bottom: 13px; padding-bottom: 11px; }
.dashboard-v2.source-trend-ui .parameter-band { border-radius: 10px; }
.dashboard-v2.source-trend-ui .parameter-fields { gap: 10px; padding: 11px; }
.dashboard-v2.source-trend-ui .bot-list-row { border-radius: 12px; }
.dashboard-v2.source-trend-ui .bot-list-row.is-editing { border-color: rgba(132, 143, 234, .55); box-shadow: inset 3px 0 0 var(--linear-accent); transform: none; }
.dashboard-v2.source-trend-ui .bot-list-edit { margin-top: 4px; padding-top: 14px; }
.dashboard-v2.source-trend-ui .bot-list-edit > #editor { margin: 0; padding: 16px; border-color: rgba(132, 143, 234, .28); border-radius: 10px; background: rgba(94, 106, 210, .055); box-shadow: none; }
.dashboard-v2.source-trend-ui .bot-list-edit > #editor .panel-title { min-height: 45px; }
.dashboard-v2.source-trend-ui .backtest-sidebar { gap: 14px; }
.dashboard-v2.source-trend-ui .result-panel { gap: 12px; }

/* Backtest history is a dense run ledger: selection owns the card; actions stay secondary. */
.dashboard-v2.source-trend-ui .run-list {
  gap: 6px;
  max-height: 402px;
  padding-right: 3px;
  scrollbar-color: rgba(126, 136, 226, .48) transparent;
  scrollbar-width: thin;
}
.dashboard-v2.source-trend-ui .run-list::-webkit-scrollbar { width: 6px; }
.dashboard-v2.source-trend-ui .run-list::-webkit-scrollbar-track { background: transparent; }
.dashboard-v2.source-trend-ui .run-list::-webkit-scrollbar-thumb { border-radius: 99px; background: rgba(126, 136, 226, .48); }
.dashboard-v2.source-trend-ui .run-item { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 5px; }
.dashboard-v2.source-trend-ui .run-select {
  min-height: 66px;
  align-items: center;
  padding: 9px 10px 9px 13px;
  border-color: rgba(255, 255, 255, .075);
  border-radius: 10px;
  background: rgba(255, 255, 255, .018);
}
.dashboard-v2.source-trend-ui .run-select:hover { border-color: rgba(132, 143, 234, .32); background: rgba(94, 106, 210, .07); }
.dashboard-v2.source-trend-ui .run-select.selected {
  border-color: rgba(132, 143, 234, .48);
  background: rgba(94, 106, 210, .12);
  box-shadow: inset 3px 0 0 var(--linear-accent);
}
.dashboard-v2.source-trend-ui .run-summary { gap: 4px; }
.dashboard-v2.source-trend-ui .run-summary strong { overflow: hidden; color: #e0e1ea; font: 600 12px var(--linear-data); text-overflow: ellipsis; white-space: nowrap; }
.dashboard-v2.source-trend-ui .run-summary small { color: var(--linear-muted); font: 10px var(--linear-data); }
.dashboard-v2.source-trend-ui .progress-row { max-width: 170px; gap: 6px; }
.dashboard-v2.source-trend-ui .progress-track { height: 2px; background: rgba(255, 255, 255, .09); }
.dashboard-v2.source-trend-ui .progress-track > span { background: var(--linear-accent); }
.dashboard-v2.source-trend-ui .run-select .badge {
  flex: 0 0 auto;
  align-self: center;
  min-height: 0;
  padding: 4px 6px;
  border-radius: 6px;
  font-size: 10px;
  line-height: 1.2;
  white-space: nowrap;
}
.dashboard-v2.source-trend-ui .run-actions { align-self: stretch; gap: 3px; }
.dashboard-v2.source-trend-ui .run-actions button {
  min-width: 34px;
  min-height: 30px;
  padding: 4px 5px;
  border-color: transparent;
  background: transparent;
  font-size: 10px;
}
.dashboard-v2.source-trend-ui .run-actions .danger-button { color: rgba(255, 171, 179, .72); }
.dashboard-v2.source-trend-ui .run-actions .danger-button:hover { border-color: rgba(239, 113, 123, .3); background: rgba(239, 113, 123, .1); }

/* Configuration stays dense while retaining the existing save and validation flow. */
.dashboard-v2.console-page .config-execution-page .config-stack { gap: 20px; }
.dashboard-v2.console-page .config-execution-page .panel-heading { position: relative; top: auto; z-index: auto; background: transparent; }
.dashboard-v2.console-page .config-execution-page .config-card-list { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); padding: 12px; }
.dashboard-v2.console-page .config-execution-page .config-card { border-radius: 12px; background: rgba(255, 255, 255, .022); }
.dashboard-v2.console-page .config-execution-page .panel-actions { margin-left: auto; }
.dashboard-v2.console-page .config-execution-page .advanced-details { border-radius: 10px; }
.dashboard-v2.console-page .security-workspace .security-panel { max-width: 760px; }

.dashboard-v2.console-page .execution-ledger-panel { overflow: hidden; }
.dashboard-v2.console-page .execution-ledger-panel .panel-heading { min-height: 56px; }

@media (max-width: 1120px) {
  .dashboard-v2.console-page .v2-shell { grid-template-columns: 72px minmax(0, 1fr); }
  .dashboard-v2.console-page .v2-sidebar { padding-inline: 10px; }
  .dashboard-v2.console-page .v2-nav-label,
  .dashboard-v2.console-page .sidebar-nav .nav-item span,
  .dashboard-v2.console-page .v2-sidebar-status { display: none; }
  .dashboard-v2.console-page .sidebar-nav .nav-item { justify-content: center; padding-inline: 8px; }
  .execution-primary-row { grid-template-columns: minmax(235px, .9fr) minmax(0, 2.1fr); }
  .dashboard-v2.console-page .execution-data-grid { grid-template-columns: minmax(0, 1fr) 300px; }
}

@media (max-width: 860px) {
  .dashboard-v2.console-page .v2-topbar { position: relative; height: auto; min-height: 58px; padding: 9px 14px; }
  .dashboard-v2.console-page .v2-shell { grid-template-columns: 1fr; }
  .dashboard-v2.console-page .v2-sidebar { padding: 7px 10px; }
  .dashboard-v2.console-page .sidebar-nav .nav-item span { display: inline; }
  .dashboard-v2.console-page .ops-pulse { position: relative; top: auto; }
  .dashboard-v2.console-page .ops-pulse-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-v2.console-page .ops-pulse-item { border-bottom: 1px solid var(--linear-line); }
  .dashboard-v2.console-page .ops-pulse-item:nth-child(2n) { border-right: 0; }
  .dashboard-v2.console-page .ops-pulse-item:last-child { grid-column: span 2; border-bottom: 0; }
  .execution-primary-row,
  .dashboard-v2.console-page .execution-data-grid { grid-template-columns: 1fr; }
  .dashboard-v2.console-page .execution-risk-panel { min-height: 118px; }
  .dashboard-v2.console-page .execution-side-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-v2.console-page .execution-runtime-overview,
  .dashboard-v2.source-trend-ui .metrics-grid.five { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-v2.source-trend-ui .split-grid,
  .dashboard-v2.source-trend-ui .backtest-layout { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .dashboard-v2.console-page .topbar-actions { gap: 6px; }
  .dashboard-v2.console-page .topbar-actions .toolbar-button span { display: none; }
  .dashboard-v2.console-page .topbar-actions .env-switch-group { display: none; }
  .dashboard-v2.console-page .execution-page-head { min-height: 0; align-items: flex-start; }
  .dashboard-v2.console-page .execution-page-head h1 { font-size: 25px; }
  .dashboard-v2.console-page .execution-exposure-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-v2.console-page .execution-exposure-grid .overview-card { min-height: 102px; }
  .dashboard-v2.console-page .execution-side-stack { grid-template-columns: 1fr; }
  .quant-strategy-navigation { width: 100%; }
  .quant-strategy-tabs { width: 100%; }
  .quant-strategy-tabs a { flex: 1 0 auto; justify-content: center; }
  .quant-api-link { width: 100%; justify-content: center; }
  .dashboard-v2.source-trend-ui .page-header { align-items: flex-start; min-height: 0; padding: 16px; }
  .dashboard-v2.source-trend-ui .page-header h1 { font-size: 28px; }
  .dashboard-v2.source-trend-ui .metrics-grid.five { grid-template-columns: 1fr; }
}
