:root {
  /* Exchange-inspired dark trading palette. */
  --font-stack: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --safe-top: env(safe-area-inset-top);
  --safe-right: env(safe-area-inset-right);
  --safe-bottom: env(safe-area-inset-bottom);
  --safe-left: env(safe-area-inset-left);
  --bg: #050505;
  --bg-soft: #0b0b0b;
  --panel: #111111;
  --panel-strong: #161616;
  --panel-elevated: #1b1b1b;
  --ink: #f5f5f5;
  --muted: #8f8f8f;
  --muted-strong: #c8c8c8;
  --accent: #ff1f1f;
  --accent-ink: #ffffff;
  --success: #00c076;
  --danger: #ff4d4f;
  --warning: #f0b90b;
  --border: rgba(255, 255, 255, 0.1);
  --border-strong: rgba(255, 31, 31, 0.42);
  --shadow: 0 20px 52px rgba(0, 0, 0, 0.42);
  --radius-lg: 1rem;
  --radius-md: 0.75rem;
  --radius-sm: 0.5rem;
  --tap-size: 48px;
  --bottom-nav-height: 72px;
}

* {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  background: var(--bg);
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100svh;
  font-family: var(--font-stack);
  background:
    radial-gradient(circle at 16% -12%, rgba(255, 31, 31, 0.18), transparent 28rem),
    radial-gradient(circle at 92% 8%, rgba(0, 192, 118, 0.09), transparent 30rem),
    radial-gradient(circle at 50% 112%, rgba(255, 31, 31, 0.08), transparent 26rem),
    linear-gradient(180deg, #050505 0%, #0b0b0b 48%, #050505 100%);
  color: var(--ink);
  line-height: 1.45;
  overflow-x: hidden;
  overscroll-behavior-y: none;
  -webkit-tap-highlight-color: transparent;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.016) 1px, transparent 1px),
    radial-gradient(circle at 18% 20%, rgba(255, 31, 31, 0.1), transparent 22rem);
  background-size: 34px 34px, 34px 34px, auto;
  opacity: 0.72;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.74), rgba(0, 0, 0, 0.2) 72%, transparent 100%);
}

.site-header,
.page-shell,
.banner,
.flash-stack {
  width: min(1240px, calc(100vw - 2rem));
  margin: 0 auto;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 1rem 0;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  backdrop-filter: blur(18px);
}

.site-header::before {
  content: "";
  position: absolute;
  inset: 0 calc((100vw - min(1240px, calc(100vw - 2rem))) / -2);
  z-index: -1;
  background: rgba(11, 15, 20, 0.82);
  border-bottom: 1px solid var(--border);
}

.site-header h1 {
  margin: 0;
  font-size: clamp(1.55rem, 4vw, 2.45rem);
  letter-spacing: -0.045em;
  line-height: 1;
}

.nav {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
}

.nav a,
button {
  min-height: var(--tap-size);
  border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(29, 41, 56, 0.98), rgba(18, 25, 35, 0.98));
  color: var(--ink);
  padding: 0.72rem 1rem;
  text-decoration: none;
  border-radius: 999px;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  letter-spacing: -0.01em;
  transition: transform 0.18s ease, background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
  touch-action: manipulation;
}

.nav a:hover,
button:hover {
  transform: translateY(-1px);
  background: var(--panel-elevated);
  border-color: var(--border-strong);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22);
}

.nav a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(255, 31, 31, 0.42);
  outline-offset: 2px;
}

.nav a.primary,
button.primary {
  background: linear-gradient(180deg, #ff4b4b, #d60000);
  color: var(--accent-ink);
  border-color: rgba(255, 31, 31, 0.72);
  box-shadow: 0 12px 28px rgba(255, 31, 31, 0.22);
}

.nav a.primary:hover,
button.primary:hover {
  filter: brightness(1.04);
}

.danger-link,
.danger-button {
  background: linear-gradient(180deg, rgba(246, 70, 93, 0.98), rgba(197, 44, 64, 0.98));
  color: #ffffff;
  border-color: rgba(246, 70, 93, 0.72);
}

.secondary {
  background: rgba(18, 25, 35, 0.55);
  color: var(--muted-strong);
  border-color: var(--border);
}

.banner {
  padding: 0.9rem 1rem;
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  margin-bottom: 1rem;
  color: var(--ink);
  background: rgba(18, 25, 35, 0.78);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}

.banner.info {
  border-color: rgba(240, 185, 11, 0.35);
  background: linear-gradient(90deg, rgba(240, 185, 11, 0.12), rgba(18, 18, 18, 0.82));
}

.banner.warning {
  border-color: rgba(240, 185, 11, 0.42);
  background: linear-gradient(90deg, rgba(240, 185, 11, 0.16), rgba(18, 25, 35, 0.82));
}

.banner.danger {
  border-color: rgba(246, 70, 93, 0.42);
  background: linear-gradient(90deg, rgba(246, 70, 93, 0.16), rgba(18, 25, 35, 0.82));
}

.page-shell {
  padding-bottom: max(2rem, env(safe-area-inset-bottom));
}

.grid {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
}

.two-up {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.three-up {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.card {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(18, 25, 35, 0.96), rgba(13, 19, 28, 0.96));
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 1rem;
  box-shadow: var(--shadow);
}

.card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.22), transparent);
}

.card h2,
.card h3 {
  margin-top: 0;
  letter-spacing: -0.025em;
}

.danger-card {
  border-color: rgba(246, 70, 93, 0.45);
  box-shadow: 0 20px 48px rgba(246, 70, 93, 0.08), var(--shadow);
}

.form-grid {
  display: grid;
  gap: 0.9rem;
}

label {
  display: grid;
  gap: 0.4rem;
  font-weight: 700;
  color: var(--muted-strong);
  font-size: 0.92rem;
}

.checkbox-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.checkbox-row input {
  width: auto;
}

.inline-inputs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
  gap: 0.6rem;
}

input,
select,
textarea {
  width: 100%;
  min-height: var(--tap-size);
  padding: 0.72rem 0.85rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: #0d131c;
  color: var(--ink);
  font: inherit;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

input::placeholder,
textarea::placeholder {
  color: rgba(143, 155, 174, 0.74);
}

input:focus,
select:focus,
textarea:focus {
  border-color: rgba(14, 203, 129, 0.58);
  background: #101722;
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.94rem;
}

.card:has(table) {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

th,
td {
  text-align: left;
  padding: 0.72rem 0.55rem;
  border-bottom: 1px solid rgba(143, 155, 174, 0.13);
  vertical-align: top;
  color: var(--ink);
  white-space: nowrap;
}

th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: rgba(18, 25, 35, 0.98);
  color: var(--muted-strong);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.055em;
}

tr:hover td {
  background: rgba(255, 255, 255, 0.025);
}

.compact-list {
  margin: 0;
  padding-left: 1.1rem;
}

.compact-list li+li {
  margin-top: 0.35rem;
}

.flash-stack {
  display: grid;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.flash {
  padding: 0.85rem 1rem;
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  color: var(--ink);
  background: rgba(18, 25, 35, 0.86);
}

.flash.success {
  border-color: rgba(0, 192, 118, 0.35);
  background: rgba(0, 192, 118, 0.12);
}

.flash.warning {
  border-color: rgba(240, 185, 11, 0.4);
  background: rgba(240, 185, 11, 0.13);
}

.flash.danger {
  border-color: rgba(255, 77, 79, 0.4);
  background: rgba(255, 77, 79, 0.13);
}

.muted {
  color: var(--muted);
}

/* Utility classes for exchange-style values when templates use them. */
.positive,
.pnl-positive,
.profit,
.buy {
  color: var(--success);
}

.negative,
.pnl-negative,
.loss,
.sell {
  color: var(--danger);
}

.live-badge {
  color: #ffffff;
  background: rgba(255, 77, 79, 0.18);
  border: 1px solid rgba(255, 77, 79, 0.48);
  border-radius: 999px;
  padding: 0.28rem 0.58rem;
}

.paper-badge,
.backtest-badge {
  color: var(--accent);
  background: rgba(240, 185, 11, 0.12);
  border: 1px solid rgba(240, 185, 11, 0.34);
  border-radius: 999px;
  padding: 0.28rem 0.58rem;
}

@media (max-width: 980px) {

  .two-up,
  .three-up,
  .four-up {
    grid-template-columns: 1fr;
  }

  .site-header,
  .page-shell,
  .banner,
  .flash-stack {
    width: min(100% - 1.25rem, 760px);
  }
}

@media (max-width: 720px) {
  :root {
    --radius-lg: 1rem;
  }

  body {
    background:
      radial-gradient(circle at top left, rgba(240, 185, 11, 0.16), transparent 20rem),
      linear-gradient(180deg, #0b0f14 0%, #0f1621 100%);
  }

  .site-header {
    align-items: stretch;
    flex-direction: column;
    gap: 0.8rem;
    padding: calc(0.8rem + env(safe-area-inset-top)) 0 0.8rem;
  }

  .site-header h1 {
    font-size: 1.7rem;
  }

  .nav {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
  }

  .nav a,
  .nav button,
  button {
    width: 100%;
    justify-content: center;
    text-align: center;
    padding: 0.78rem 0.7rem;
  }

  .page-shell {
    padding-bottom: calc(1.5rem + env(safe-area-inset-bottom));
  }

  .card,
  .banner,
  .flash {
    padding: 0.9rem;
  }

  table {
    min-width: 640px;
    font-size: 0.88rem;
  }

  th,
  td {
    padding: 0.65rem 0.48rem;
  }
}

@media (max-width: 430px) {

  .site-header,
  .page-shell,
  .banner,
  .flash-stack {
    width: calc(100% - 0.85rem);
  }

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

  .card {
    border-radius: 0.95rem;
  }

  .inline-inputs {
    grid-template-columns: 1fr;
  }
}

/* Animations and interactive enhancements for modern exchange aesthetic */
@media (prefers-reduced-motion: no-preference) {
  @keyframes fadeSlideIn {
    from {
      opacity: 0;
      transform: translateY(8px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .animate-entry {
    animation: fadeSlideIn 0.45s ease-out forwards;
  }

  /* Slight lift effect on card hover for desktop interactions */
  .card:hover {
    transform: translateY(-2px);
    transition: transform 0.18s ease-out;
  }
}

/* Consumer wallet/vault shell */
a {
  color: inherit;
}

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 44px;
  min-width: 0;
  color: var(--ink);
  text-decoration: none;
}

.brand-mark,
.coin-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  color: #050505;
  font-weight: 900;
  background: linear-gradient(180deg, #ffd86b, var(--accent));
  box-shadow: 0 10px 26px rgba(240, 185, 11, 0.18);
}

.brand-copy {
  display: grid;
  gap: 0.08rem;
}

.brand-copy strong {
  font-size: 1rem;
  line-height: 1.1;
}

.brand-copy small,
.eyebrow,
.card-kicker,
.mode-banner-label {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.topbar-actions {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin-left: auto;
}

.mode-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  width: max-content;
  min-height: 2.25rem;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--muted-strong);
  background: rgba(18, 25, 35, 0.78);
  font-size: 0.78rem;
  font-weight: 900;
}

.mode-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 0 4px rgba(0, 192, 118, 0.12);
}

.nav a.active,
.bottom-nav a.active {
  border-color: rgba(240, 185, 11, 0.55);
  color: var(--accent);
  background: rgba(240, 185, 11, 0.1);
}

.crypto-rail {
  position: sticky;
  top: 76px;
  z-index: 18;
  width: min(1240px, calc(100vw - 2rem));
  margin: 0 auto 1rem;
  padding: 0.55rem 0;
  backdrop-filter: blur(18px);
}

.crypto-rail::before {
  content: "";
  position: absolute;
  inset: 0 calc((100vw - min(1240px, calc(100vw - 2rem))) / -2);
  z-index: -1;
  background: rgba(11, 15, 20, 0.76);
  border-bottom: 1px solid var(--border);
}

.crypto-rail-track {
  display: flex;
  gap: 0.65rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.crypto-rail-track::-webkit-scrollbar {
  display: none;
}

.crypto-rail-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-width: 178px;
  padding: 0.58rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  text-decoration: none;
  background: linear-gradient(180deg, rgba(24, 34, 49, 0.96), rgba(13, 19, 28, 0.96));
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.2);
}

.crypto-rail-item .coin-icon {
  width: 1.9rem;
  height: 1.9rem;
  font-size: 0.85rem;
}

.coin-main {
  display: grid;
  min-width: 0;
}

.coin-main small {
  color: var(--muted);
  font-size: 0.78rem;
}

.coin-move {
  margin-left: auto;
  font-size: 0.82rem;
  font-weight: 900;
}

.mode-banner {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.mode-banner-main {
  display: grid;
  gap: 0.15rem;
  min-width: 230px;
}

.mode-banner p {
  margin: 0;
  color: var(--muted-strong);
}

.home-hero,
.wallet-summary {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);
  gap: 1rem;
  margin-bottom: 1rem;
}

.home-hero {
  min-height: 330px;
  align-items: stretch;
}

.hero-copy,
.page-heading {
  padding: clamp(1rem, 3vw, 1.6rem);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(14, 203, 129, 0.12), transparent 38%),
    linear-gradient(180deg, rgba(18, 25, 35, 0.96), rgba(11, 15, 20, 0.96));
  box-shadow: var(--shadow);
}

.hero-copy h1,
.page-heading h1,
.vault-card h1 {
  max-width: 860px;
  margin: 0.4rem 0 0.7rem;
  font-size: clamp(2rem, 5vw, 4.2rem);
  line-height: 0.98;
  letter-spacing: 0;
}

.hero-copy p,
.page-heading p {
  max-width: 680px;
  color: var(--muted-strong);
  font-size: 1rem;
}

.hero-actions,
.wallet-actions,
.admin-link-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: center;
}

.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--tap-size);
  padding: 0.72rem 1rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  text-decoration: none;
  color: var(--ink);
  background: linear-gradient(180deg, rgba(29, 41, 56, 0.98), rgba(18, 25, 35, 0.98));
  font-weight: 900;
}

.button-link.primary {
  color: var(--accent-ink);
  border-color: rgba(14, 203, 129, 0.72);
  background: linear-gradient(180deg, #35f0a0, var(--accent));
}

.text-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--accent);
  font-weight: 900;
  text-decoration: none;
}

.wallet-card,
.vault-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(14, 203, 129, 0.08), transparent 44%),
    linear-gradient(180deg, rgba(18, 25, 35, 0.98), rgba(11, 15, 20, 0.98));
  box-shadow: var(--shadow);
}

.metric-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 0.55rem;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(14, 203, 129, 0.08), transparent 44%),
    linear-gradient(180deg, rgba(18, 25, 35, 0.98), rgba(11, 15, 20, 0.98));
  box-shadow: var(--shadow);
}

.metric-card span {
  color: var(--muted);
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.metric-card strong {
  font-size: 1.22rem;
  letter-spacing: 0;
}

.vault-card {
  background:
    linear-gradient(135deg, rgba(14, 203, 129, 0.12), transparent 38%),
    linear-gradient(180deg, rgba(18, 25, 35, 0.98), rgba(11, 15, 20, 0.98));
}

.wallet-card h2,
.vault-card h2 {
  margin: 0;
}

.hero-status,
.total-card {
  align-content: start;
}

.hero-value {
  display: block;
  font-size: clamp(2rem, 6vw, 3.6rem);
  line-height: 1;
  letter-spacing: 0;
}

.section-heading,
.balance-card-head,
.status-heading,
.status-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.toolbar-inline {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.balance-grid {
  margin-bottom: 1rem;
}

.balance-card {
  min-height: 230px;
}

.balance-amount {
  font-size: clamp(1.35rem, 3vw, 2rem);
  line-height: 1.1;
}

.balance-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.balance-pill,
.status-badge,
.countdown-chip {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 2rem;
  padding: 0.35rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--muted-strong);
  background: rgba(18, 25, 35, 0.82);
  font-size: 0.8rem;
  font-weight: 900;
}

.balance-pill.positive,
.status-badge {
  color: var(--success);
  border-color: rgba(14, 203, 129, 0.35);
  background: rgba(14, 203, 129, 0.1);
}

.balance-pill.warning,
.countdown-chip {
  color: var(--accent);
  border-color: rgba(14, 203, 129, 0.35);
  background: rgba(14, 203, 129, 0.1);
}

.vault-layout {
  align-items: start;
}

.asset-selector {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 0.55rem;
}

.compact-selector {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asset-option {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 4.1rem;
  padding: 0.7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: rgba(13, 19, 28, 0.8);
  color: var(--ink);
  cursor: pointer;
}

.asset-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.asset-option small {
  display: block;
  color: var(--muted);
  font-size: 0.78rem;
}

.asset-option.is-selected {
  border-color: rgba(14, 203, 129, 0.58);
  background: rgba(14, 203, 129, 0.11);
  box-shadow: inset 0 0 0 1px rgba(14, 203, 129, 0.2);
}

.custom-duration-field {
  display: none;
}

.duration-selector:has(input[value="custom"]:checked) + .custom-duration-field {
  display: grid;
}

.risk-note {
  display: grid;
  gap: 0.2rem;
  padding: 0.85rem;
  border: 1px solid rgba(240, 185, 11, 0.35);
  border-radius: var(--radius-md);
  background: rgba(240, 185, 11, 0.1);
  color: var(--muted-strong);
}

.risk-note strong {
  color: var(--accent);
}

.warning-note {
  border-color: rgba(240, 185, 11, 0.48);
  background: rgba(240, 185, 11, 0.12);
}

.one-h10-live-panel {
  display: grid;
  gap: 0.75rem;
  padding: 0.9rem;
  border: 1px solid rgba(14, 203, 129, 0.28);
  border-radius: var(--radius-md);
  background: rgba(14, 203, 129, 0.07);
}

.compact-heading {
  margin-bottom: 0;
}

.provider-readiness-list {
  display: grid;
  gap: 0.5rem;
}

.provider-readiness-row {
  display: grid;
  grid-template-columns: minmax(5rem, 1fr) auto auto;
  gap: 0.6rem;
  align-items: center;
  padding: 0.65rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: rgba(18, 25, 35, 0.72);
}

.provider-readiness-row small {
  grid-column: 1 / -1;
  color: var(--muted);
}

.cycle-details {
  display: grid;
  gap: 0.65rem;
  margin: 0;
}

.cycle-details div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid rgba(143, 155, 174, 0.12);
}

.cycle-details dt {
  color: var(--muted);
  font-weight: 800;
}

.cycle-details dd {
  margin: 0;
  text-align: right;
  font-weight: 900;
}

.active-cycle-list {
  display: grid;
  gap: 0.75rem;
}

.active-cycle-item {
  display: grid;
  gap: 0.7rem;
  padding: 0.85rem;
  border: 1px solid rgba(143, 155, 174, 0.18);
  border-radius: var(--radius-md);
  background: rgba(13, 19, 28, 0.72);
}

.compact-details {
  gap: 0.45rem;
}

.compact-details div {
  padding-bottom: 0.38rem;
}

.cycle-item-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.clean-list {
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding-left: 1.1rem;
  color: var(--muted-strong);
}

.empty-state {
  display: grid;
  place-items: center;
  gap: 0.6rem;
  min-height: 180px;
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius-md);
  color: var(--muted-strong);
}

.admin-login-shell {
  display: grid;
  place-items: center;
  min-height: 52vh;
}

.admin-login-card {
  width: min(100%, 460px);
}

.nav-form {
  margin: 0;
}

.nav-form button {
  width: auto;
}

.auth-shell,
.modal-page-shell {
  display: grid;
  place-items: start center;
  min-height: 54vh;
}

.auth-card,
.wallet-flow-card {
  width: min(100%, 560px);
}

.auth-route-context {
  display: inline-flex;
  align-items: center;
  width: max-content;
  max-width: 100%;
  min-height: 2rem;
  margin: 0 0 0.35rem;
  padding: 0.32rem 0.6rem;
  border: 1px solid rgba(143, 155, 174, 0.18);
  border-radius: 999px;
  color: var(--muted-strong);
  background: rgba(12, 17, 24, 0.72);
  font-size: 0.78rem;
  font-weight: 900;
}

.auth-ops-panel {
  display: grid;
  gap: 0.68rem;
  margin: 0.9rem 0 1rem;
  padding-top: 0.9rem;
  border-top: 1px solid rgba(143, 155, 174, 0.16);
}

.auth-ops-head,
.auth-ops-grid {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.auth-ops-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.auth-ops-grid div {
  min-width: 0;
}

.auth-ops-grid dt,
.auth-ops-grid dd,
.auth-ops-panel p {
  margin: 0;
}

.auth-ops-grid dt {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 900;
  text-transform: uppercase;
}

.auth-ops-grid dd {
  color: var(--text);
  font-size: 0.86rem;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.auth-ops-panel p {
  color: var(--muted-strong);
  font-size: 0.82rem;
  line-height: 1.45;
}

.auth-ops-panel-attention .status-badge {
  color: var(--accent);
  border-color: rgba(245, 158, 11, 0.34);
  background: rgba(245, 158, 11, 0.1);
}

@media (max-width: 620px) {
  .auth-ops-head {
    align-items: flex-start;
  }

  .auth-ops-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.twofa-card {
  width: min(100%, 720px);
}

.qr-panel,
.deposit-address-layout {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: rgba(13, 19, 28, 0.78);
}

.qr-panel img,
.qr-code {
  width: 100%;
  max-width: 180px;
  border-radius: var(--radius-sm);
  background: #ffffff;
  padding: 0.6rem;
}

.address-copy-panel {
  display: grid;
  gap: 0.65rem;
  min-width: 0;
}

.copy-button {
  width: max-content;
}

.inline-form {
  display: grid;
  gap: 0.65rem;
}

.wallet-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.table-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
}

.audit-panel {
  display: grid;
  gap: 0.75rem;
  align-content: start;
  border-radius: 0.75rem;
  background:
    linear-gradient(180deg, rgba(12, 17, 24, 0.98), rgba(5, 7, 11, 0.98)),
    #05070b;
}

.audit-section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.audit-section-header h2,
.audit-section-header p {
  margin: 0;
}

.audit-section-header h2 {
  font-size: 1rem;
  letter-spacing: 0;
}

.audit-section-header p {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.audit-retention-chip,
.audit-chip,
.audit-event-meta time {
  display: inline-flex;
  align-items: center;
  min-height: 1.65rem;
  max-width: 100%;
  padding: 0.24rem 0.48rem;
  border: 1px solid rgba(143, 155, 174, 0.16);
  border-radius: 999px;
  color: var(--muted-strong);
  background: rgba(12, 17, 24, 0.86);
  font-size: 0.72rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.audit-feed {
  display: grid;
  gap: 0.55rem;
  min-width: 0;
}

.audit-event-card {
  position: relative;
  display: grid;
  gap: 0.5rem;
  min-width: 0;
  padding: 0.72rem;
  border: 1px solid rgba(143, 155, 174, 0.15);
  border-left-color: rgba(143, 155, 174, 0.34);
  border-left-width: 3px;
  border-radius: 0.5rem;
  background: linear-gradient(180deg, rgba(13, 19, 28, 0.98), rgba(6, 9, 14, 0.98));
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.26);
  contain: content;
}

.audit-event-card * {
  min-width: 0;
}

.audit-event-card-error {
  border-left-color: var(--danger);
}

.audit-event-card-warning {
  border-left-color: var(--warning);
}

.audit-event-card-success {
  border-left-color: var(--success);
}

.audit-event-card-info {
  border-left-color: #4f8cff;
}

.audit-event-card-runtime-backoff {
  border-left-color: #9b7bff;
}

.audit-event-card-no-trade {
  border-left-color: #f0b90b;
}

.audit-event-card-provider-error {
  border-left-color: #ff7a45;
}

.audit-event-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.6rem;
}

.audit-event-title {
  display: grid;
  gap: 0.1rem;
}

.audit-event-title span {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.audit-event-title h3 {
  margin: 0;
  color: var(--ink);
  font-size: 0.91rem;
  line-height: 1.15;
  letter-spacing: 0;
}

.audit-type-pill {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-height: 1.65rem;
  padding: 0.25rem 0.52rem;
  border: 1px solid rgba(143, 155, 174, 0.16);
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.audit-type-error {
  color: #ff8a99;
  border-color: rgba(246, 70, 93, 0.42);
  background: rgba(246, 70, 93, 0.13);
}

.audit-type-warning,
.audit-type-no-trade {
  color: #ffd36a;
  border-color: rgba(240, 185, 11, 0.42);
  background: rgba(240, 185, 11, 0.12);
}

.audit-type-success {
  color: #41e7a1;
  border-color: rgba(14, 203, 129, 0.42);
  background: rgba(14, 203, 129, 0.11);
}

.audit-type-info {
  color: #8fb7ff;
  border-color: rgba(79, 140, 255, 0.38);
  background: rgba(79, 140, 255, 0.11);
}

.audit-type-runtime-backoff {
  color: #c2b5ff;
  border-color: rgba(155, 123, 255, 0.42);
  background: rgba(155, 123, 255, 0.12);
}

.audit-type-provider-error {
  color: #ffb18f;
  border-color: rgba(255, 122, 69, 0.42);
  background: rgba(255, 122, 69, 0.12);
}

.audit-event-message {
  margin: 0;
  color: var(--muted-strong);
  font-size: 0.84rem;
  line-height: 1.36;
  overflow-wrap: anywhere;
}

.audit-event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.34rem;
  align-items: center;
}

.audit-event-details {
  border-top: 1px solid rgba(143, 155, 174, 0.12);
  padding-top: 0.45rem;
  color: var(--muted-strong);
}

.audit-event-details summary {
  width: max-content;
  min-height: 2rem;
  cursor: pointer;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 900;
  touch-action: manipulation;
}

.audit-event-details dl {
  display: grid;
  gap: 0.36rem;
  margin: 0.25rem 0 0;
}

.audit-event-details dl div {
  display: grid;
  gap: 0.12rem;
}

.audit-event-details dt {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.065em;
  text-transform: uppercase;
}

.audit-event-details dd {
  margin: 0;
  color: var(--ink);
  font-size: 0.78rem;
  overflow-wrap: anywhere;
}

.audit-empty-state {
  display: grid;
  gap: 0.25rem;
  padding: 1rem;
  border: 1px dashed rgba(143, 155, 174, 0.22);
  border-radius: 0.5rem;
  background: rgba(6, 9, 14, 0.72);
  color: var(--muted);
}

.audit-empty-state strong {
  color: var(--ink);
}

.audit-pagination {
  display: grid;
  grid-template-columns: minmax(6rem, 0.8fr) minmax(0, 1.4fr) minmax(6rem, 0.8fr);
  gap: 0.5rem;
  align-items: center;
}

.audit-page-button,
.audit-page-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--tap-size);
  border: 1px solid rgba(143, 155, 174, 0.2);
  border-radius: 0.5rem;
  color: var(--ink);
  background: rgba(13, 19, 28, 0.92);
  font-size: 0.82rem;
  font-weight: 900;
  text-decoration: none;
  touch-action: manipulation;
}

.audit-page-button.is-disabled {
  color: rgba(143, 155, 174, 0.52);
  pointer-events: none;
}

.audit-page-compact {
  display: grid;
  gap: 0.35rem;
  justify-items: center;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 900;
}

.audit-page-numbers {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.28rem;
}

.audit-page-number {
  min-width: 2rem;
  min-height: 2rem;
  padding: 0.2rem 0.42rem;
  font-size: 0.76rem;
}

.audit-page-number.is-active {
  color: var(--accent-ink);
  border-color: rgba(14, 203, 129, 0.68);
  background: var(--accent);
}

.connection-card {
  align-content: start;
}

.easy-connect-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.55fr);
  gap: 1rem;
  align-items: start;
  margin-bottom: 1rem;
}

.connection-wizard,
.connection-status-panel,
.wizard-section {
  background: linear-gradient(180deg, rgba(18, 25, 35, 0.96), rgba(13, 19, 28, 0.96));
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}

.connection-wizard {
  display: grid;
  gap: 1rem;
  padding: 1rem;
}

.connection-status-panel,
.wizard-section {
  padding: 1rem;
}

.connection-status-panel {
  position: sticky;
  top: 6rem;
}

.wizard-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
}

.wizard-steps span,
.status-badge,
.connection-status,
.required-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.8rem;
  padding: 0.28rem 0.58rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  color: var(--muted-strong);
  background: rgba(18, 25, 35, 0.72);
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}

.wizard-steps .is-complete,
.positive-badge,
.status-verified {
  color: var(--accent);
  border-color: rgba(14, 203, 129, 0.38);
  background: rgba(14, 203, 129, 0.12);
}

.muted-badge,
.status-not_supported,
.status-draft {
  color: var(--muted-strong);
  border-color: var(--border);
}

.status-action_needed {
  color: var(--danger);
  border-color: rgba(246, 70, 93, 0.42);
  background: rgba(246, 70, 93, 0.12);
}

.status-needs_verification {
  color: var(--warning);
  border-color: rgba(240, 185, 11, 0.38);
  background: rgba(240, 185, 11, 0.12);
}

.provider-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0.75rem;
}

.provider-tile {
  display: grid;
  gap: 0.45rem;
  min-height: 10rem;
  padding: 0.9rem;
  color: var(--ink);
  text-decoration: none;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: rgba(13, 19, 28, 0.78);
}

.provider-tile:hover,
.provider-tile.is-selected {
  border-color: rgba(14, 203, 129, 0.48);
  background: rgba(14, 203, 129, 0.08);
}

.provider-title {
  font-size: 1rem;
  font-weight: 900;
}

.provider-summary {
  color: var(--muted);
  font-size: 0.88rem;
}

.provider-steps {
  display: grid;
  gap: 0.45rem;
  margin: 0 0 1rem;
  padding-left: 1.15rem;
  color: var(--muted-strong);
  font-size: 0.92rem;
}

.capability-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.85rem;
}

.connection-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.danger-note {
  border-color: rgba(246, 70, 93, 0.42);
  background: rgba(246, 70, 93, 0.1);
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
  transform: none;
  box-shadow: none;
}

.address-preview {
  overflow: hidden;
  text-overflow: ellipsis;
}

.advanced-only {
  border-color: rgba(246, 70, 93, 0.28);
}

.bottom-nav {
  display: none;
}

code {
  padding: 0.1rem 0.3rem;
  border: 1px solid var(--border);
  border-radius: 0.35rem;
  background: rgba(0, 0, 0, 0.24);
}

@media (prefers-reduced-motion: no-preference) {
  .ui-rise-in {
    animation: fadeSlideIn 0.38s ease-out both;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 980px) {
  .easy-connect-layout {
    grid-template-columns: 1fr;
  }

  .connection-status-panel {
    position: static;
  }

  .home-hero,
  .wallet-summary {
    grid-template-columns: 1fr;
  }

  .crypto-rail {
    width: min(100% - 1.25rem, 760px);
    top: 70px;
  }

  .mode-banner {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 720px) {
  .wizard-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .connection-wizard,
  .connection-status-panel,
  .wizard-section {
    padding: 0.9rem;
  }

  .site-header {
    position: sticky;
    flex-direction: row;
    align-items: center;
  }

  .brand-copy small {
    display: none;
  }

  .topbar-actions {
    margin-left: auto;
  }

  .nav-toggle {
    display: inline-flex;
    width: auto;
  }

  .app-nav {
    position: fixed;
    left: 0.75rem;
    right: 0.75rem;
    top: calc(4.6rem + env(safe-area-inset-top));
    display: none;
    grid-template-columns: 1fr;
    padding: 0.7rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(11, 15, 20, 0.96);
    box-shadow: var(--shadow);
  }

  .app-nav.is-open {
    display: grid;
  }

  .app-nav a {
    width: 100%;
    border-radius: var(--radius-sm);
  }

  .crypto-rail {
    top: 68px;
    margin-bottom: 0.75rem;
  }

  .crypto-rail-item {
    min-width: 158px;
  }

  .bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 30;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.25rem;
    padding: 0.45rem max(0.55rem, env(safe-area-inset-left)) calc(0.45rem + env(safe-area-inset-bottom)) max(0.55rem, env(safe-area-inset-right));
    border-top: 1px solid var(--border);
    background: rgba(11, 15, 20, 0.96);
    backdrop-filter: blur(18px);
  }

  .bottom-nav a {
    min-height: 2.65rem;
    display: grid;
    place-items: center;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    color: var(--muted-strong);
    text-decoration: none;
    font-size: 0.76rem;
    font-weight: 900;
  }

  .page-shell {
    padding-bottom: calc(5rem + env(safe-area-inset-bottom));
  }

  .hero-copy h1,
  .page-heading h1,
  .vault-card h1 {
    font-size: clamp(2rem, 12vw, 3.1rem);
  }

  .asset-selector,
  .compact-selector {
    grid-template-columns: 1fr;
  }

  .qr-panel,
  .deposit-address-layout {
    grid-template-columns: 1fr;
  }

  .qr-panel img,
  .qr-code {
    max-width: 240px;
    margin: 0 auto;
  }

  .cycle-details div,
  .section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .cycle-details dd {
    text-align: left;
  }

  .wallet-card-actions .button-link,
  .wallet-flow-card button,
  .wallet-flow-card .button-link,
  .auth-card button {
    width: 100%;
  }
}

@media (max-width: 430px) {
  .wallet-card-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .modal-page-shell {
    place-items: stretch;
  }
}

.field-error {
  display: block;
  margin-top: 0.35rem;
  color: var(--danger);
  font-size: 0.82rem;
  font-weight: 800;
}

/* ==========================
   Consumer Trading UI Refresh
   ========================== */

:root {
  --font-stack: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --tap-size: 48px;
  --safe-top: env(safe-area-inset-top);
  --safe-right: env(safe-area-inset-right);
  --safe-bottom: env(safe-area-inset-bottom);
  --safe-left: env(safe-area-inset-left);
  --accent: #f0b90b;
  --accent-ink: #050505;
  --success: #00c076;
  --danger: #ff4d4f;
  --warning: #f0b90b;
  --bg: #050505;
  --bg-soft: #0b0b0b;
  --panel: #111111;
  --panel-strong: #161616;
  --panel-elevated: #1b1b1b;
  --ink: #f5f5f5;
  --muted: #8f8f8f;
  --muted-strong: #c8c8c8;
  --border: rgba(255, 255, 255, 0.1);
  --border-strong: rgba(240, 185, 11, 0.42);
  --shadow: 0 22px 54px rgba(0, 0, 0, 0.46);
  --radius-lg: 1rem;
  --radius-md: 0.75rem;
  --radius-sm: 0.5rem;
  --bottom-nav-height: 72px;
}

.app-icon-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

body {
  font-family: var(--font-stack);
  background:
    radial-gradient(circle at 14% -10%, rgba(240, 185, 11, 0.16), transparent 29rem),
    radial-gradient(circle at 92% 8%, rgba(0, 192, 118, 0.08), transparent 32rem),
    radial-gradient(circle at 52% 114%, rgba(240, 185, 11, 0.06), transparent 28rem),
    linear-gradient(180deg, #050505 0%, #0b0b0b 48%, #050505 100%);
  overflow-x: hidden;
  overscroll-behavior-y: none;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

body::before {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.016) 1px, transparent 1px),
    radial-gradient(circle at 18% 20%, rgba(240, 185, 11, 0.08), transparent 22rem);
  background-size: 34px 34px, 34px 34px, auto;
  opacity: 0.72;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.74), rgba(0, 0, 0, 0.2) 72%, transparent 100%);
}

.app-body {
  min-height: 100vh;
  min-height: 100svh;
}

.app-body.app-starting {
  overflow: hidden;
}

.bottom-nav-switching .app-body.app-starting {
  overflow: auto;
}

.intro-loader {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  min-height: 100vh;
  min-height: 100svh;
  padding:
    calc(1.25rem + var(--safe-top))
    calc(1.25rem + var(--safe-right))
    calc(1.25rem + var(--safe-bottom))
    calc(1.25rem + var(--safe-left));
  color: var(--ink);
  background:
    radial-gradient(circle at 50% 22%, rgba(240, 185, 11, 0.14), transparent 32%),
    linear-gradient(135deg, rgba(240, 185, 11, 0.1), transparent 34%),
    linear-gradient(225deg, rgba(0, 192, 118, 0.08), transparent 36%),
    linear-gradient(180deg, #05070d 0%, #0a1017 54%, #05070d 100%);
  opacity: 1;
  visibility: visible;
  transition: opacity 0.34s ease, visibility 0.34s ease;
}

@supports (min-height: 100dvh) {
  .intro-loader {
    min-height: 100dvh;
  }
}

.app-ready .intro-loader {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.bottom-nav-switching .intro-loader {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: none;
}

.bottom-nav-switching .intro-loader *,
.bottom-nav-switching .animate-entry,
.bottom-nav-switching .ui-rise-in {
  animation: none !important;
  transition: none !important;
  transform: none !important;
}

.bottom-nav-switching .animate-entry {
  opacity: 1;
}

.intro-loader__ambient {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, transparent 0%, rgba(240, 185, 11, 0.08) 50%, transparent 100%);
  background-size: 38px 38px, 38px 38px, 220% 100%;
  opacity: 0.55;
  animation: introGridSweep 3.8s ease-in-out infinite;
}

.intro-loader__panel {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 1rem;
  width: min(100%, 22rem);
  padding: 1.35rem;
  border: 1px solid rgba(240, 185, 11, 0.22);
  border-radius: 8px;
  background: rgba(12, 12, 12, 0.82);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.56);
  backdrop-filter: blur(18px);
  transform: translateY(0) scale(1);
  transition: transform 0.34s ease, opacity 0.34s ease;
}

.app-ready .intro-loader__panel {
  transform: translateY(0.35rem) scale(0.985);
}

.intro-loader__mark-wrap {
  position: relative;
  display: grid;
  place-items: center;
  width: 6rem;
  height: 6rem;
}

.intro-loader__ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0deg, rgba(240, 185, 11, 0.08) 70deg, rgba(240, 185, 11, 0.96) 110deg, transparent 158deg, transparent 360deg);
  mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
  animation: introSpin 1.25s linear infinite;
}

.intro-loader__ring--secondary {
  inset: 0.75rem;
  background: conic-gradient(from 180deg, transparent 0deg, rgba(0, 192, 118, 0.08) 90deg, rgba(0, 192, 118, 0.72) 132deg, transparent 178deg, transparent 360deg);
  animation-duration: 1.9s;
  animation-direction: reverse;
}

.intro-loader__vault {
  position: relative;
  display: grid;
  place-items: center;
  width: 3.65rem;
  height: 3.65rem;
  border: 1px solid rgba(240, 185, 11, 0.5);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(255, 216, 107, 0.96), rgba(240, 185, 11, 0.86));
  box-shadow: 0 14px 32px rgba(240, 185, 11, 0.22), inset 0 0 0 1px rgba(5, 7, 13, 0.28);
}

.intro-loader__vault-door {
  position: absolute;
  inset: 0.62rem;
  border: 1px solid rgba(5, 7, 13, 0.42);
  border-radius: 50%;
  background:
    linear-gradient(rgba(5, 7, 13, 0.3), rgba(5, 7, 13, 0.3)) center / 1px 100% no-repeat,
    linear-gradient(90deg, rgba(5, 7, 13, 0.3), rgba(5, 7, 13, 0.3)) center / 100% 1px no-repeat;
}

.intro-loader__vault-dial {
  position: relative;
  width: 0.72rem;
  height: 0.72rem;
  border: 2px solid #05070d;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.36);
  animation: introDial 1.65s ease-in-out infinite;
}

.intro-loader__copy {
  display: grid;
  justify-items: center;
  gap: 0.2rem;
  text-align: center;
}

.intro-loader__eyebrow {
  color: var(--accent);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.intro-loader__copy strong {
  color: var(--ink);
  font-size: 1.12rem;
  line-height: 1.18;
}

.intro-loader__copy small {
  max-width: 18rem;
  color: var(--muted-strong);
  font-size: 0.86rem;
}

.intro-loader__bar {
  position: relative;
  width: min(14rem, 72vw);
  height: 3px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
}

.intro-loader__bar span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 42%;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent, var(--accent), var(--success));
  animation: introProgress 1.45s ease-in-out infinite;
}

.intro-loader__retry {
  min-height: 42px;
  border-radius: 8px;
  padding: 0.65rem 1rem;
  background: linear-gradient(180deg, #ffd86b, var(--accent));
  color: #050505;
  font-weight: 900;
}

.app-startup-failed .intro-loader__ring,
.app-startup-failed .intro-loader__bar span {
  animation-play-state: paused;
}

@keyframes introSpin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes introProgress {
  0% {
    transform: translateX(-115%);
  }
  50% {
    transform: translateX(80%);
  }
  100% {
    transform: translateX(252%);
  }
}

@keyframes introDial {
  0%,
  100% {
    transform: rotate(-18deg) scale(1);
  }
  50% {
    transform: rotate(72deg) scale(1.08);
  }
}

@keyframes introGridSweep {
  0%,
  100% {
    background-position: 0 0, 0 0, 0 0;
  }
  50% {
    background-position: 0 0, 0 0, 100% 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .intro-loader,
  .intro-loader__panel,
  .intro-loader__ambient,
  .intro-loader__ring,
  .intro-loader__vault-dial,
  .intro-loader__bar span {
    animation: none !important;
    transition: none !important;
  }

  .intro-loader__bar span {
    width: 100%;
    opacity: 0.72;
    transform: none;
  }
}

@supports (min-height: 100dvh) {
  .app-body {
    min-height: 100dvh;
  }
}

.app-body.nav-open {
  overflow: hidden;
  touch-action: none;
}

.site-header {
  z-index: 50;
  align-items: center;
  padding-top: calc(0.72rem + var(--safe-top));
  padding-bottom: 0.72rem;
  padding-right: 0;
  padding-left: 0;
}

.site-header::before {
  background: rgba(5, 5, 5, 0.74);
  border-bottom-color: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(16px);
}

.site-header.is-scrolled::before,
.app-body.nav-open .site-header::before {
  background: rgba(5, 5, 5, 0.9);
  border-bottom-color: rgba(240, 185, 11, 0.16);
}

.brand-mark {
  background: linear-gradient(180deg, #ffd86b, var(--accent));
  box-shadow: 0 12px 28px rgba(240, 185, 11, 0.18);
}

.brand-copy strong {
  font-size: 1.02rem;
  letter-spacing: 0;
}

.brand-copy small {
  color: var(--muted);
}

.site-header h1 {
  letter-spacing: -0.045em;
}

.topnav-icon,
.nav-icon {
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.9;
  line-height: 1;
}

.nav-toggle {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  min-width: 3rem;
  min-height: 3rem;
  padding: 0;
  border-radius: 0.9rem;
  border-color: rgba(255, 255, 255, 0.13);
  background:
    linear-gradient(180deg, rgba(27, 27, 27, 0.96), rgba(10, 10, 10, 0.96)),
    #111111;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.32);
}

.nav-toggle:hover {
  transform: translateY(-1px);
  border-color: rgba(240, 185, 11, 0.34);
  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.38), 0 0 0 1px rgba(240, 185, 11, 0.08) inset;
}

.nav-toggle:active {
  transform: scale(0.97);
}

.nav-toggle-bars {
  position: relative;
  display: block;
  width: 1.15rem;
  height: 0.9rem;
}

.nav-toggle-bars span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  border-radius: 999px;
  background: var(--ink);
  transition: transform 0.2s ease, opacity 0.2s ease, top 0.2s ease;
}

.nav-toggle-bars span:nth-child(1) {
  top: 0;
}

.nav-toggle-bars span:nth-child(2) {
  top: calc(50% - 1px);
}

.nav-toggle-bars span:nth-child(3) {
  top: calc(100% - 2px);
}

.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(1) {
  top: calc(50% - 1px);
  transform: rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0.45);
}

.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(3) {
  top: calc(50% - 1px);
  transform: rotate(-45deg);
}

.nav-toggle-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.nav-backdrop {
  position: fixed;
  inset: 0;
  z-index: 45;
  pointer-events: none;
  opacity: 0;
  background: rgba(0, 0, 0, 0.52);
  backdrop-filter: blur(8px);
  transition: opacity 0.2s ease;
}

.app-body.nav-open .nav-backdrop {
  pointer-events: auto;
  opacity: 1;
}

.app-nav {
  position: fixed;
  left: max(0.75rem, var(--safe-left));
  right: max(0.75rem, var(--safe-right));
  bottom: calc(0.75rem + var(--safe-bottom));
  z-index: 60;
  display: grid;
  max-height: min(78svh, 680px);
  gap: 0.85rem;
  padding: 1rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.35rem 1.35rem 1rem 1rem;
  background:
    linear-gradient(180deg, rgba(27, 27, 27, 0.97), rgba(8, 8, 8, 0.98)),
    #111111;
  box-shadow: 0 26px 76px rgba(0, 0, 0, 0.62), 0 0 0 1px rgba(240, 185, 11, 0.04) inset;
  opacity: 0;
  pointer-events: none;
  transform: translateY(1rem) scale(0.985);
  transition: transform 0.22s ease, opacity 0.18s ease;
  -webkit-overflow-scrolling: touch;
}

.app-nav.is-open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

.nav-panel-head {
  display: grid;
  gap: 0.15rem;
  padding: 0.1rem 0.15rem 0.2rem;
}

.nav-panel-head strong {
  color: var(--ink);
  font-size: 1.1rem;
  line-height: 1.1;
}

.nav-section {
  display: grid;
  gap: 0.45rem;
}

.nav-section + .nav-section {
  padding-top: 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.nav-section-title {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.app-nav .nav-link,
.app-nav .nav-form button {
  display: grid;
  grid-template-columns: 2.15rem minmax(0, 1fr);
  align-items: center;
  column-gap: 0.92rem;
  width: 100%;
  min-height: 3.1rem;
  padding: 0.68rem 0.76rem;
  border: 1px solid transparent;
  border-radius: 0.82rem;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.035);
  text-align: left;
  text-decoration: none;
  box-shadow: none;
}

.app-nav .topnav-icon {
  width: 1.18rem;
  height: 1.18rem;
  justify-self: center;
  color: currentColor;
}

.app-nav .nav-link:hover,
.app-nav .nav-form button:hover {
  transform: translateY(-1px);
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.055);
}

.app-nav .nav-link.active,
.app-nav .nav-form button:active {
  color: var(--accent);
  border-color: rgba(240, 185, 11, 0.34);
  background: rgba(240, 185, 11, 0.1);
  box-shadow: 0 0 22px rgba(240, 185, 11, 0.08);
}

.nav-link-copy {
  display: grid;
  min-width: 0;
  gap: 0.08rem;
  justify-items: start;
}

.nav-link-copy strong {
  color: currentColor;
  font-size: 0.95rem;
  line-height: 1.1;
  letter-spacing: 0;
}

.nav-link-copy small {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.2;
}

.mode-chip {
  min-height: 2.55rem;
  border-color: rgba(255, 255, 255, 0.11);
  background: rgba(22, 22, 22, 0.78);
  color: var(--muted-strong);
}

.crypto-rail {
  top: calc(78px + var(--safe-top));
  padding-top: calc(0.45rem + var(--safe-top));
  padding-bottom: 0.45rem;
}

.crypto-rail-item {
  border-width: 1px;
}

.mode-banner {
  align-items: flex-start;
  gap: 0.65rem;
}

.banner {
  padding-inline: 0.9rem;
  margin-inline: max(var(--safe-left), 0.9rem);
}

.page-shell {
  padding-top: 1rem;
  padding-right: max(0.85rem, var(--safe-right));
  padding-left: max(0.85rem, var(--safe-left));
  padding-bottom: clamp(2rem, 5vw, 4rem);
}

.card,
.wallet-card,
.vault-card,
.metric-card,
.wallet-card-actions .button-link,
.hero-copy,
.page-heading,
.banner {
  border-color: rgba(255, 255, 255, 0.12);
}

.button-link,
button,
input,
select,
textarea {
  min-height: var(--tap-size);
}

.button-link,
button,
.nav a {
  touch-action: manipulation;
}

.button-link,
button {
  border-radius: 0.84rem;
}

.hero-copy p,
.page-heading p,
.muted,
td,
th,
label,
button,
input,
select {
  line-height: 1.4;
}

.bottom-nav {
  display: none;
}

.dashboard-shell {
  display: grid;
  gap: 0.9rem;
}

.dashboard-shell > .grid {
  margin-bottom: 0;
}

.dashboard-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.dashboard-kpi-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 4.4rem;
  padding: 0.88rem;
}

.dashboard-kpi-card strong {
  font-size: clamp(1.15rem, 5vw, 1.65rem);
  line-height: 1;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 760px) {
  .site-header,
  .page-shell,
  .banner,
  .flash-stack,
  .crypto-rail {
    width: min(100% - 1rem, 760px);
  }

  .site-header {
    gap: 0.7rem;
  }

  .brand-copy small,
  .eyebrow {
    display: none;
  }

  .mode-chip {
    min-height: 2.35rem;
    padding-inline: 0.58rem;
    font-size: 0.69rem;
  }

  .page-shell {
    padding-top: 0.78rem;
    padding-bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 1.2rem);
  }

  .crypto-rail {
    top: calc(4.35rem + var(--safe-top));
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
  }

  .bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 40;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.25rem;
    min-height: calc(var(--bottom-nav-height) + var(--safe-bottom));
    padding: 0.48rem max(0.58rem, var(--safe-right)) calc(0.48rem + var(--safe-bottom)) max(0.58rem, var(--safe-left));
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    background: rgba(11, 11, 11, 0.88);
    backdrop-filter: blur(16px);
    box-shadow: 0 -16px 42px rgba(0, 0, 0, 0.48);
  }

  .bottom-nav .bottom-nav-item {
    position: relative;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 0.18rem;
    min-width: 0;
    min-height: 3.35rem;
    padding: 0.34rem 0.2rem;
    border: 1px solid transparent;
    border-radius: 0.78rem;
    color: var(--muted);
    text-decoration: none;
    transition: none;
  }

  .bottom-nav .bottom-nav-item::before {
    content: "";
    position: absolute;
    top: 0.18rem;
    width: 1.35rem;
    height: 2px;
    border-radius: 999px;
    background: transparent;
    transition: none;
  }

  .bottom-nav .bottom-nav-item:active {
    transform: none;
  }

  .bottom-nav .bottom-nav-item.active {
    color: var(--accent);
    border-color: rgba(240, 185, 11, 0.18);
    background: linear-gradient(180deg, rgba(240, 185, 11, 0.12), rgba(240, 185, 11, 0.035));
    box-shadow: 0 0 22px rgba(240, 185, 11, 0.08);
  }

  .bottom-nav .bottom-nav-item.active::before {
    background: var(--accent);
    box-shadow: 0 0 14px rgba(240, 185, 11, 0.42);
  }

  .bottom-nav .nav-icon {
    width: 1.25rem;
    height: 1.25rem;
    stroke-width: 2;
  }

  .nav-item-label {
    max-width: 100%;
    overflow: hidden;
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .dashboard-shell {
    gap: 0.72rem;
  }

  .dashboard-kpi-grid {
    gap: 0.56rem;
  }

  .dashboard-kpi-card {
    display: grid;
    align-content: space-between;
    min-height: 5.25rem;
    padding: 0.72rem;
  }

  .dashboard-kpi-card strong {
    font-size: clamp(1.1rem, 7vw, 1.55rem);
    overflow-wrap: anywhere;
  }
}

@media (min-width: 761px) {
  .app-nav {
    left: auto;
    right: max(1.25rem, calc((100vw - 1240px) / 2));
    bottom: auto;
    top: calc(4.45rem + var(--safe-top));
    width: min(390px, calc(100vw - 2rem));
    max-height: min(76vh, 720px);
    border-radius: 1rem;
    transform: translateX(0.75rem) scale(0.985);
  }

  .app-nav.is-open {
    transform: translateX(0) scale(1);
  }

  .dashboard-shell {
    gap: 1rem;
  }
}

body:has(.balance-home) {
  background:
    radial-gradient(circle at 14% -10%, rgba(240, 185, 11, 0.14), transparent 28rem),
    radial-gradient(circle at 92% 8%, rgba(0, 192, 118, 0.07), transparent 30rem),
    linear-gradient(180deg, #050505 0%, #0b0b0b 50%, #050505 100%);
}

body:has(.balance-home)::before {
  opacity: 0.36;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.014) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.014) 1px, transparent 1px);
}

.page-shell:has(.balance-home) {
  padding-top: 0.65rem;
}

.balance-home {
  min-height: calc(100svh - 12.5rem);
  display: grid;
  align-items: start;
  padding: 0.65rem 0 1.25rem;
}

.portfolio-balance-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 1rem;
  width: min(100%, 760px);
  min-height: 15rem;
  padding: 1.25rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 1rem;
  background:
    linear-gradient(180deg, rgba(19, 24, 32, 0.98), rgba(7, 10, 15, 0.98)),
    #080b10;
  box-shadow: 0 24px 54px rgba(0, 0, 0, 0.42);
}

.portfolio-balance-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.28), transparent);
}

.portfolio-balance-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.portfolio-live-dot {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 0 5px rgba(32, 214, 139, 0.12);
}

.portfolio-balance-value {
  margin: auto 0 0;
  color: var(--ink);
  font-size: 4.5rem;
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: 0;
  overflow-wrap: anywhere;
  font-variant-numeric: tabular-nums;
}

@supports (min-height: 100dvh) {
  .balance-home {
    min-height: calc(100dvh - 12.5rem);
  }
}

/* Responsive table strategy */
table {
  width: 100%;
  border-collapse: collapse;
}

table th,
table td {
  white-space: nowrap;
  border-bottom: 1px solid rgba(143, 155, 174, 0.14);
  overflow-wrap: anywhere;
}

table thead th {
  font-size: 0.75rem;
}

table .is-numeric {
  text-align: right;
}

table .mobile-hide {
  display: table-cell;
}

/* Mobile-first wallet */
.wallet-exchange-shell,
.wallet-assets-section {
  display: grid;
  gap: 0.8rem;
  margin-bottom: 0.9rem;
}

.wallet-total-card,
.wallet-activity-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 0.75rem;
  padding: 0.95rem;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 0.5rem;
  background:
    linear-gradient(180deg, rgba(18, 25, 35, 0.98), rgba(7, 10, 15, 0.98)),
    #070a0f;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.34);
}

.wallet-total-card::before,
.wallet-activity-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.22), transparent);
}

.wallet-total-card .hero-value {
  color: var(--ink);
  font-size: clamp(2.35rem, 10vw, 4.25rem);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.wallet-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 0.75rem;
}

.wallet-section-heading h2 {
  margin: 0;
  color: var(--ink);
  font-size: 1.15rem;
  line-height: 1.1;
  letter-spacing: 0;
}

.wallet-count,
.wallet-pagination-summary {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.wallet-asset-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 0.72rem;
}

.wallet-asset-card {
  min-height: 0;
  gap: 0.7rem;
  padding: 0.85rem;
  border-radius: 0.5rem;
  background:
    linear-gradient(180deg, rgba(16, 24, 35, 0.98), rgba(8, 12, 18, 0.98)),
    #080c12;
  box-shadow: none;
}

.wallet-asset-head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.wallet-coin {
  width: 2.35rem;
  height: 2.35rem;
  flex: 0 0 2.35rem;
}

.wallet-asset-head h2 {
  margin: 0;
  color: var(--ink);
  font-size: 1.02rem;
  letter-spacing: 0;
}

.wallet-asset-head span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.wallet-usd {
  margin-left: auto;
  color: var(--muted-strong);
  font-size: 0.92rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  white-space: nowrap;
}

.wallet-balance-main {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
}

.wallet-balance-main span {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
}

.wallet-balance-main .balance-amount {
  color: var(--ink);
  font-size: clamp(1.65rem, 6vw, 2.15rem);
  font-weight: 900;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.wallet-balance-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(6.5rem, 1fr));
  gap: 0.5rem;
  margin: 0;
}

.wallet-balance-stats div {
  min-width: 0;
  padding: 0.58rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.wallet-balance-stats dt,
.wallet-balance-stats dd {
  margin: 0;
}

.wallet-balance-stats dt {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.wallet-balance-stats dd {
  color: var(--ink);
  font-size: 0.95rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.wallet-onchain-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 1.8rem;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.wallet-onchain-status.matched {
  color: var(--success);
}

.wallet-onchain-status.surplus_onchain {
  color: var(--warning);
}

.wallet-onchain-status.deficit_onchain,
.wallet-onchain-status.unavailable {
  color: var(--danger);
}

.wallet-action-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(6.5rem, 1fr));
  gap: 0.5rem;
}

.wallet-action-row .button-link {
  width: 100%;
  min-height: 2.85rem;
  padding: 0.62rem 0.75rem;
  border-radius: 0.5rem;
  font-size: 0.9rem;
  box-shadow: none;
}

.wallet-address-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  min-width: 0;
  padding-top: 0.05rem;
}

.wallet-address-row span {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 800;
  white-space: nowrap;
}

.wallet-address-row code {
  min-width: 0;
  max-width: 66%;
  padding: 0.32rem 0.45rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.45rem;
  color: var(--muted-strong);
  background: rgba(0, 0, 0, 0.24);
  font-size: 0.78rem;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.convert-page-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(270px, 0.72fr);
  gap: 0.9rem;
  align-items: start;
  width: 100%;
  min-width: 0;
  padding-bottom: calc(0.9rem + var(--safe-bottom));
}

.convert-widget,
.convert-side-panel {
  position: relative;
  display: grid;
  gap: 0.95rem;
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 0.65rem;
  background:
    linear-gradient(180deg, rgba(18, 25, 35, 0.98), rgba(7, 10, 15, 0.98)),
    #070a0f;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.34);
  overflow: hidden;
}

.convert-widget {
  padding: clamp(0.9rem, 3vw, 1.15rem);
}

.convert-side-panel {
  padding: 0.85rem;
}

.convert-widget::before,
.convert-side-panel::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(240, 185, 11, 0.28), transparent);
}

.convert-widget-head,
.convert-side-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 0.8rem;
  min-width: 0;
}

.convert-widget-head h1,
.convert-side-head h2 {
  margin: 0.12rem 0 0;
  color: var(--ink);
  font-size: clamp(1.45rem, 7vw, 2.15rem);
  line-height: 1.02;
  letter-spacing: 0;
}

.convert-side-head h2 {
  font-size: 1.02rem;
}

.convert-security-pill {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.28rem 0.55rem;
  border: 1px solid rgba(0, 192, 118, 0.28);
  border-radius: 999px;
  color: var(--success);
  background: rgba(0, 192, 118, 0.09);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  white-space: nowrap;
}

.convert-form {
  display: grid;
  gap: 0.8rem;
  min-width: 0;
}

.convert-pair-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.6rem;
  align-items: end;
}

.convert-asset-field,
.convert-amount-field {
  display: grid;
  gap: 0.38rem;
  min-width: 0;
  padding: 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.55rem;
  background: rgba(255, 255, 255, 0.035);
  transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.convert-asset-field:focus-within,
.convert-amount-field:focus-within {
  border-color: rgba(240, 185, 11, 0.5);
  background: rgba(240, 185, 11, 0.045);
}

.convert-field-label {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.convert-field-meta {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.convert-asset-field select,
.convert-amount-field input {
  width: 100%;
  min-height: 3.25rem;
  padding: 0.25rem 0;
  border: 0;
  outline: 0;
  color: var(--ink);
  background: transparent;
  color-scheme: dark;
  font-size: 1.08rem;
  font-weight: 900;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}

.convert-asset-field select {
  cursor: pointer;
}

.convert-amount-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.55rem;
  align-items: center;
}

.convert-max-button,
.convert-swap-button {
  display: inline-grid;
  place-items: center;
  min-width: 3.15rem;
  min-height: 3.15rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.5rem;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.055);
  font-weight: 900;
  text-decoration: none;
  transition: transform 140ms ease, border-color 140ms ease, background-color 140ms ease;
}

.convert-swap-button {
  width: 3.15rem;
  align-self: center;
  color: var(--accent);
}

.convert-swap-button svg {
  width: 1.12rem;
  height: 1.12rem;
}

.convert-max-button:disabled,
.convert-submit-button:disabled {
  cursor: not-allowed;
  opacity: 0.52;
}

.convert-asset-field select:focus-visible,
.convert-amount-field input:focus-visible,
.convert-max-button:focus-visible,
.convert-swap-button:focus-visible,
.convert-submit-button:focus-visible,
.convert-offline-banner:focus-visible {
  outline: 2px solid rgba(240, 185, 11, 0.72);
  outline-offset: 3px;
}

.convert-preview-panel,
.convert-offline-banner,
.convert-state-panel {
  display: grid;
  gap: 0.55rem;
  min-width: 0;
  padding: 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.55rem;
  background: rgba(0, 0, 0, 0.18);
}

.convert-offline-banner {
  border-color: rgba(240, 185, 11, 0.38);
  background: rgba(240, 185, 11, 0.12);
}

.convert-offline-banner[hidden] {
  display: none;
}

.convert-offline-banner strong,
.convert-state-panel strong {
  color: var(--ink);
}

.convert-offline-banner span,
.convert-state-panel span {
  color: var(--muted-strong);
  font-size: 0.88rem;
  font-weight: 750;
}

.convert-state-panel.is-error {
  border-color: rgba(255, 77, 79, 0.38);
  background: rgba(255, 77, 79, 0.11);
}

.convert-state-panel.is-empty,
.convert-state-panel.is-default {
  border-style: dashed;
}

.convert-quote-summary span,
.convert-quote-details dt {
  color: var(--muted);
  font-size: 0.73rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.convert-quote-summary strong {
  display: block;
  margin-top: 0.18rem;
  color: var(--ink);
  font-size: clamp(1.6rem, 8vw, 2.45rem);
  line-height: 1.02;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.convert-quote-details,
.convert-asset-row dl {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
  gap: 0.52rem;
  margin: 0;
}

.convert-quote-details div,
.convert-asset-row dl div {
  min-width: 0;
}

.convert-quote-details dd,
.convert-asset-row dd,
.convert-asset-row dt {
  margin: 0;
}

.convert-quote-details dd,
.convert-asset-row dd {
  color: var(--ink);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.convert-submit-button {
  width: 100%;
  min-height: 3.35rem;
  border-radius: 0.55rem;
  font-size: 1rem;
  font-weight: 950;
  transition: transform 140ms ease, box-shadow 140ms ease, filter 140ms ease;
}

.convert-asset-list {
  display: grid;
  gap: 0.58rem;
  max-height: min(58svh, 34rem);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding-right: 0.1rem;
}

.convert-asset-row {
  display: grid;
  gap: 0.62rem;
  min-width: 0;
  padding: 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.55rem;
  background: rgba(255, 255, 255, 0.035);
  transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.convert-asset-name {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.convert-asset-name strong {
  display: block;
  color: var(--ink);
  font-size: 0.98rem;
  letter-spacing: 0;
}

.convert-asset-name span,
.convert-asset-row dt {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.convert-max-button:not(:disabled):active,
.convert-swap-button:active,
.convert-submit-button:not(:disabled):active {
  transform: scale(0.985);
}

@media (hover: hover) and (pointer: fine) {
  .convert-max-button:not(:disabled):hover,
  .convert-swap-button:hover,
  .convert-asset-row:hover {
    border-color: rgba(240, 185, 11, 0.32);
    background: rgba(240, 185, 11, 0.04);
  }
}

@media (max-width: 860px) {
  .convert-page-shell {
    grid-template-columns: 1fr;
  }

  .convert-side-panel {
    order: 2;
  }

  .convert-asset-list {
    max-height: none;
    overflow: visible;
    padding-right: 0;
  }
}

@media (max-width: 520px) {
  .convert-page-shell {
    gap: 0.72rem;
    margin-inline: -0.15rem;
    padding-bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 1.2rem);
  }

  .convert-widget,
  .convert-side-panel {
    border-radius: 0.55rem;
  }

  .convert-widget-head {
    align-items: start;
  }

  .convert-security-pill {
    min-height: 1.8rem;
    font-size: 0.66rem;
  }

  .convert-pair-stack {
    grid-template-columns: 1fr;
  }

  .convert-swap-button {
    justify-self: center;
    transform: rotate(90deg);
  }

  .convert-swap-button:active {
    transform: rotate(90deg) scale(0.985);
  }
}

@media (prefers-reduced-motion: reduce) {
  .convert-asset-field,
  .convert-amount-field,
  .convert-max-button,
  .convert-swap-button,
  .convert-submit-button,
  .convert-asset-row {
    transition: none;
  }
}

.wallet-activity-list {
  display: grid;
  gap: 0.5rem;
}

.wallet-activity-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.wallet-activity-row div,
.wallet-activity-amount {
  min-width: 0;
}

.wallet-activity-row strong {
  display: block;
  color: var(--ink);
  font-size: 0.95rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.wallet-activity-row span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.wallet-activity-amount {
  display: grid;
  justify-items: end;
  gap: 0.3rem;
  text-align: right;
}

.wallet-activity-amount .status-pill {
  min-height: 1.65rem;
  padding: 0.22rem 0.5rem;
  border-radius: 0.45rem;
  color: var(--success);
  border-color: rgba(32, 214, 139, 0.28);
  background: rgba(32, 214, 139, 0.08);
  font-size: 0.72rem;
}

.wallet-empty-state {
  padding: 1rem;
  border: 1px dashed rgba(255, 255, 255, 0.13);
  border-radius: 0.5rem;
  color: var(--muted);
  text-align: center;
}

.wallet-pagination {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.5rem;
  align-items: center;
}

.pagination-button,
.pagination-current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 0.5rem;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.84rem;
  font-weight: 900;
  text-decoration: none;
}

.pagination-button.is-disabled {
  color: var(--muted);
  opacity: 0.52;
}

.pagination-current {
  color: var(--muted-strong);
  background: transparent;
}

/* Mobile-first vault */
.vault-mobile-shell,
.vault-activity-card {
  display: grid;
  gap: 0.8rem;
  margin-bottom: 0.9rem;
}

.vault-mobile-shell {
  grid-template-columns: minmax(0, 1fr);
}

.vault-execution-shell,
.vault-activity-card {
  width: min(100%, 980px);
  margin-right: auto;
  margin-left: auto;
}

.vault-start-card,
.vault-active-card,
.vault-activity-card {
  position: relative;
  overflow: hidden;
  padding: 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.5rem;
  background:
    linear-gradient(180deg, rgba(27, 27, 27, 0.98), rgba(8, 8, 8, 0.99)),
    #0b0b0b;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 31, 31, 0.04) inset;
}

.vault-command-card::before,
.vault-active-card::before,
.vault-activity-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 31, 31, 0.48), transparent);
}

.vault-title-row,
.vault-section-heading,
.vault-cycle-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-width: 0;
}

.vault-command-head {
  margin-bottom: 0.82rem;
}

.vault-title-row h1,
.vault-section-heading h2 {
  margin: 0;
  color: var(--ink);
  font-size: 1.28rem;
  line-height: 1.1;
  letter-spacing: 0;
}

.vault-cycle-live-badge {
  border-color: rgba(255, 31, 31, 0.5);
  color: var(--accent);
  background: rgba(255, 31, 31, 0.12);
}

.vault-start-card .vault-form {
  gap: 0.68rem;
}

.vault-form-section {
  display: grid;
  gap: 0.58rem;
  min-width: 0;
  padding: 0.68rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0.5rem;
  background: linear-gradient(180deg, rgba(21, 21, 21, 0.96), rgba(12, 12, 12, 0.96));
}

.vault-section-label {
  display: flex;
  align-items: center;
  gap: 0.48rem;
  min-width: 0;
  color: var(--muted-strong);
  font-size: 0.78rem;
  font-weight: 950;
}

.vault-section-label span {
  display: inline-grid;
  place-items: center;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  color: var(--accent);
  border: 1px solid rgba(255, 31, 31, 0.28);
  background: rgba(255, 31, 31, 0.1);
  font-size: 0.68rem;
  font-variant-numeric: tabular-nums;
}

.vault-section-label strong {
  overflow-wrap: anywhere;
}

.vault-start-card label,
.vault-field {
  color: var(--muted-strong);
  font-size: 0.82rem;
  font-weight: 900;
}

.vault-start-card input,
.vault-start-card select {
  min-height: 3rem;
  border-radius: 0.5rem;
  font-size: 16px;
  background: rgba(255, 255, 255, 0.045);
}

.vault-start-card input[type="number"]::-webkit-outer-spin-button,
.vault-start-card input[type="number"]::-webkit-inner-spin-button {
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
}

.vault-start-card input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

.vault-select-field {
  display: grid;
  gap: 0.38rem;
}

.vault-amount-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.45rem;
  align-items: center;
  margin-top: 0.38rem;
}

.vault-amount-control input {
  min-width: 0;
}

.vault-max-button {
  min-width: 4rem;
  min-height: 3rem;
  padding: 0.55rem 0.72rem;
  border-radius: 0.5rem;
  color: var(--accent);
  border-color: rgba(255, 31, 31, 0.42);
  background: rgba(255, 31, 31, 0.1);
  font-size: 0.8rem;
  font-weight: 950;
  box-shadow: none;
}

.vault-max-button:hover {
  transform: none;
  border-color: rgba(255, 31, 31, 0.64);
  background: rgba(255, 31, 31, 0.16);
  box-shadow: none;
}

.vault-asset-selector,
.vault-cycle-selector {
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 0.5rem;
}

.vault-asset-option {
  min-height: 3.65rem;
  padding: 0.62rem;
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.vault-asset-option.is-selected {
  border-color: rgba(255, 31, 31, 0.52);
  background: rgba(255, 31, 31, 0.1);
}

.vault-asset-option small {
  font-variant-numeric: tabular-nums;
}

.vault-cycle-selector {
  grid-template-columns: 1fr;
}

.vault-cycle-selector .vault-asset-option {
  min-height: 3.1rem;
}

.vault-cycle-option span:last-child {
  display: grid;
  gap: 0.16rem;
}

.vault-exchange-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.vault-exchange-card {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.5rem;
  align-items: center;
  min-height: 5.75rem;
  padding: 0.68rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.5rem;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.035);
  touch-action: manipulation;
  transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}

.vault-exchange-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.vault-exchange-card.is-enabled {
  border-color: rgba(255, 31, 31, 0.32);
  background: linear-gradient(180deg, rgba(255, 31, 31, 0.1), rgba(255, 255, 255, 0.035));
}

.vault-exchange-card.is-ready {
  border-color: rgba(0, 192, 118, 0.42);
}

.vault-exchange-card.is-auto-funded {
  border-color: rgba(255, 31, 31, 0.46);
  background: linear-gradient(180deg, rgba(255, 31, 31, 0.12), rgba(255, 255, 255, 0.035));
}

.vault-exchange-card.is-auto-convert {
  border-color: rgba(255, 31, 31, 0.58);
  background:
    linear-gradient(180deg, rgba(255, 31, 31, 0.14), rgba(255, 255, 255, 0.035)),
    rgba(8, 8, 8, 0.98);
}

.vault-exchange-card.is-restricted {
  border-color: rgba(255, 178, 79, 0.4);
  background: linear-gradient(180deg, rgba(255, 178, 79, 0.09), rgba(255, 255, 255, 0.035));
}

.vault-exchange-card.is-blocked {
  border-color: rgba(255, 77, 79, 0.34);
}

.vault-exchange-card.is-disabled {
  opacity: 0.58;
}

.vault-provider-mark {
  display: grid;
  place-items: center;
  width: 2.45rem;
  height: 2.45rem;
  border-radius: 50%;
  color: var(--accent-ink);
  background: linear-gradient(180deg, #ff4b4b, #d60000);
  font-size: 0.78rem;
  font-weight: 950;
  letter-spacing: 0;
}

.vault-provider-copy {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.vault-provider-copy strong {
  color: var(--ink);
  font-size: 0.9rem;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.vault-provider-copy small,
.vault-provider-metrics span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  overflow-wrap: anywhere;
}

.vault-provider-toggle-ui {
  grid-column: 3;
  grid-row: 1;
  width: 2.18rem;
  height: 1.28rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.08);
}

.vault-provider-toggle-ui::before {
  content: "";
  display: block;
  width: 0.86rem;
  height: 0.86rem;
  margin: 0.15rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.72);
  transition: transform 0.16s ease, background 0.16s ease;
}

.vault-exchange-card.is-enabled .vault-provider-toggle-ui {
  border-color: rgba(255, 31, 31, 0.55);
  background: rgba(255, 31, 31, 0.24);
}

.vault-exchange-card.is-enabled .vault-provider-toggle-ui::before {
  transform: translateX(0.9rem);
  background: var(--accent);
}

.vault-provider-metrics {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-width: 0;
}

.vault-provider-metrics strong {
  color: var(--accent);
  font-size: 0.92rem;
  font-variant-numeric: tabular-nums;
}

.vault-provider-blocker {
  grid-column: 1 / -1;
  min-height: 2.75rem;
  padding: 0.5rem 0.58rem;
  border: 1px solid rgba(255, 77, 79, 0.24);
  border-radius: 0.5rem;
  color: #ff8f8f;
  background: rgba(255, 77, 79, 0.08);
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.vault-provider-blocker.is-conversion-note {
  border-color: rgba(255, 31, 31, 0.28);
  color: #ffd2d2;
  background: rgba(255, 31, 31, 0.1);
}

.vault-provider-blocker[hidden] {
  display: none;
}

.vault-routing-summary,
.vault-readiness-state,
.vault-routing-foot,
.vault-risk-summary,
.vault-routing-row,
.vault-allocation-mini-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.vault-routing-summary,
.vault-readiness-state,
.vault-risk-summary {
  min-height: 2.7rem;
  padding: 0.62rem 0.68rem;
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.vault-routing-summary span,
.vault-readiness-state span,
.vault-risk-summary span,
.vault-routing-foot {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 900;
}

.vault-routing-summary strong,
.vault-readiness-state strong,
.vault-risk-summary strong {
  color: var(--ink);
  font-size: 0.95rem;
  font-variant-numeric: tabular-nums;
  text-align: right;
  overflow-wrap: anywhere;
}

.vault-readiness-state span {
  color: #00c076;
}

.vault-readiness-state strong {
  color: var(--muted-strong);
  font-size: 0.78rem;
  line-height: 1.25;
}

.vault-routing-bars {
  overflow: hidden;
  display: flex;
  width: 100%;
  min-height: 0.58rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
}

.vault-routing-bars span {
  min-width: 0.35rem;
  background: linear-gradient(90deg, var(--accent), #00c076);
}

.vault-routing-bars span[data-provider="kucoin"] {
  background: linear-gradient(90deg, #00c076, #28d9a2);
}

.vault-conversion-panel {
  display: grid;
  gap: 0.18rem;
  min-height: 2.9rem;
  padding: 0.62rem 0.68rem;
  border: 1px solid rgba(255, 31, 31, 0.28);
  border-radius: 0.5rem;
  background:
    linear-gradient(180deg, rgba(255, 31, 31, 0.11), rgba(255, 255, 255, 0.028)),
    rgba(8, 8, 8, 0.86);
}

.vault-conversion-panel[hidden] {
  display: none;
}

.vault-conversion-panel strong {
  color: var(--ink);
  font-size: 0.82rem;
  line-height: 1.2;
}

.vault-conversion-panel span {
  color: var(--muted-strong);
  font-size: 0.74rem;
  font-weight: 850;
  line-height: 1.32;
}

.vault-routing-list {
  display: grid;
  gap: 0.36rem;
}

.vault-routing-row {
  min-height: 2.2rem;
  padding: 0.48rem 0.58rem;
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.028);
}

.vault-routing-row span,
.vault-routing-empty {
  color: var(--muted-strong);
  font-size: 0.8rem;
  font-weight: 850;
}

.vault-routing-row strong {
  color: var(--accent);
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
}

.vault-routing-empty {
  padding: 0.65rem;
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 0.5rem;
  text-align: center;
}

.vault-routing-foot {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 850;
}

.vault-top-blockers,
.vault-diagnostics-list {
  display: grid;
  gap: 0.42rem;
}

.vault-top-blockers:empty,
.vault-diagnostics-list:empty {
  display: none;
}

.vault-blocker-chip,
.vault-diagnostic-item {
  border-radius: 0.5rem;
  border: 1px solid rgba(255, 77, 79, 0.22);
  color: #ffb2b2;
  background: rgba(255, 77, 79, 0.08);
}

.vault-blocker-chip {
  min-height: 2.25rem;
  padding: 0.52rem 0.62rem;
  font-size: 0.78rem;
  font-weight: 900;
}

.vault-diagnostics-panel {
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.026);
}

.vault-diagnostics-panel summary {
  min-height: 2.8rem;
  padding: 0.7rem;
  color: var(--muted-strong);
  font-size: 0.8rem;
  font-weight: 900;
  cursor: pointer;
  touch-action: manipulation;
}

.vault-diagnostics-list {
  padding: 0 0.7rem 0.7rem;
}

.vault-diagnostic-item {
  display: grid;
  gap: 0.18rem;
  padding: 0.6rem;
}

.vault-diagnostic-item strong {
  color: var(--ink);
  font-size: 0.82rem;
}

.vault-diagnostic-item span {
  color: var(--muted-strong);
  font-size: 0.76rem;
  line-height: 1.35;
}

.vault-execution-actions {
  display: grid;
  gap: 0.55rem;
  margin-top: 0.1rem;
}

.vault-risk-module .checkbox-row,
.vault-sticky-actions .checkbox-row {
  min-height: 3rem;
  padding: 0.62rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
  color: var(--muted-strong);
  font-size: 0.9rem;
  font-weight: 900;
}

.vault-sticky-actions .checkbox-row {
  min-height: 3.2rem;
  border-color: rgba(0, 192, 118, 0.24);
}

.vault-start-disabled-reason {
  min-height: 1.1rem;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 850;
  text-align: center;
  overflow-wrap: anywhere;
}

.vault-start-button {
  width: 100%;
  min-height: 3.25rem;
  border-radius: 0.5rem;
  font-size: 0.96rem;
  font-weight: 950;
  box-shadow: 0 14px 34px rgba(255, 31, 31, 0.28);
}

.vault-start-button:disabled,
.vault-start-button.is-disabled {
  cursor: not-allowed;
  opacity: 0.56;
  box-shadow: none;
  filter: grayscale(0.4);
}

.vault-start-button.is-loading {
  opacity: 0.82;
}

.vault-form.is-routing-loading .vault-routing-summary {
  border-color: rgba(255, 31, 31, 0.28);
}

.vault-result-sheet {
  position: fixed;
  right: max(0.75rem, var(--safe-right));
  bottom: calc(var(--bottom-nav-height, 72px) + var(--safe-bottom) + 0.85rem);
  left: max(0.75rem, var(--safe-left));
  z-index: 70;
  display: grid;
  gap: 0.35rem;
  max-width: 560px;
  padding: 0.76rem 0.85rem 0.85rem;
  margin: 0 auto;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.5rem;
  color: var(--ink);
  background: rgba(8, 8, 8, 0.96);
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.52);
  transform: translateY(0.8rem);
  opacity: 0;
  transition: transform 0.18s ease, opacity 0.18s ease;
}

.vault-result-sheet[hidden] {
  display: none;
}

.vault-result-sheet.is-visible {
  transform: translateY(0);
  opacity: 1;
}

.vault-result-sheet.is-success {
  border-color: rgba(0, 192, 118, 0.34);
}

.vault-result-sheet.is-error {
  border-color: rgba(255, 77, 79, 0.34);
}

.vault-result-sheet-handle {
  justify-self: center;
  width: 2.6rem;
  height: 0.22rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.24);
}

.vault-result-sheet strong {
  font-size: 0.9rem;
}

.vault-result-sheet p {
  margin: 0;
  color: var(--muted-strong);
  font-size: 0.8rem;
  line-height: 1.35;
}

.vault-cycle-card-list {
  display: grid;
  gap: 0.55rem;
}

.vault-cycle-card {
  display: grid;
  gap: 0.62rem;
  padding: 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
  box-shadow: none;
}

.vault-cycle-card-head strong {
  min-width: 0;
  color: var(--ink);
  font-size: 0.98rem;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.vault-compact-details {
  gap: 0.38rem;
}

.vault-compact-details div {
  align-items: center;
  padding-bottom: 0.32rem;
}

.vault-compact-details dt {
  font-size: 0.76rem;
  text-transform: uppercase;
}

.vault-compact-details dd {
  color: var(--ink);
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.vault-result-details {
  margin-top: 0.35rem;
  padding: 0.55rem 0.62rem;
  border: 1px solid rgba(143, 155, 174, 0.14);
  border-radius: 8px;
  background: rgba(8, 13, 22, 0.34);
}

.vault-result-details div:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.vault-cycle-card .cycle-item-footer {
  justify-content: flex-end;
  padding-top: 0.05rem;
}

.vault-empty-state {
  padding: 1rem;
  border: 1px dashed rgba(255, 255, 255, 0.13);
  border-radius: 0.5rem;
  color: var(--muted);
  text-align: center;
}

.vault-pagination {
  margin-top: 0.15rem;
}

.vault-allocation-mini-list {
  display: grid;
  gap: 0.34rem;
}

.vault-allocation-mini-row {
  color: var(--muted-strong);
  font-size: 0.78rem;
  font-weight: 900;
}

.vault-allocation-mini-row strong {
  color: var(--accent);
}

.vault-allocation-list,
.vault-transfer-list {
  display: grid;
  gap: 0.58rem;
}

.vault-allocation-row,
.vault-transfer-row {
  display: grid;
  gap: 0.58rem;
  min-width: 0;
  padding: 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.vault-allocation-row > div:first-child,
.vault-transfer-row > div:first-child {
  min-width: 0;
}

.vault-allocation-row strong,
.vault-transfer-row strong {
  display: block;
  color: var(--ink);
  font-size: 0.98rem;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.vault-allocation-row span,
.vault-transfer-row span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.vault-allocation-bar {
  overflow: hidden;
  width: 100%;
  height: 0.48rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
}

.vault-allocation-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), #00c076);
}

@media (min-width: 720px) {
  .vault-start-card,
  .vault-active-card,
  .vault-activity-card {
    padding: 1rem;
  }

  .vault-execution-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }

  .vault-cycle-module,
  .vault-routing-module,
  .vault-preview-module,
  .vault-risk-module,
  .vault-sticky-actions {
    grid-column: 1 / -1;
  }

  .vault-exchange-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .page-shell:has(.vault-execution-shell) {
    padding-bottom: calc(var(--bottom-nav-height, 72px) + 5.4rem + var(--safe-bottom));
  }

  .vault-funding-module .vault-asset-selector {
    display: flex;
    grid-template-columns: none;
    gap: 0.5rem;
    overflow-x: auto;
    padding-bottom: 0.2rem;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }

  .vault-funding-module .vault-asset-option {
    flex: 0 0 9rem;
    scroll-snap-align: start;
  }

  .vault-sticky-actions {
    position: sticky;
    bottom: calc(var(--bottom-nav-height, 72px) + var(--safe-bottom) + 0.62rem);
    z-index: 30;
    padding: 0.58rem max(0.58rem, var(--safe-right)) calc(0.58rem + var(--safe-bottom)) max(0.58rem, var(--safe-left));
    margin-inline: -0.35rem;
    border: 1px solid rgba(255, 31, 31, 0.22);
    border-radius: 0.5rem;
    background: rgba(5, 5, 5, 0.88);
    backdrop-filter: blur(16px);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.5);
  }
}

@media (max-width: 430px) {
  .vault-start-card,
  .vault-active-card,
  .vault-activity-card {
    padding: 0.68rem;
    border-radius: 0.5rem;
  }

  .vault-form-section {
    padding: 0.58rem;
  }

  .vault-exchange-grid {
    gap: 0.42rem;
  }

  .vault-exchange-card {
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 6.15rem;
    padding: 0.58rem;
  }

  .vault-provider-toggle-ui {
    grid-column: 1 / -1;
    grid-row: auto;
    justify-self: end;
    margin-top: -0.1rem;
  }

  .vault-provider-mark {
    width: 2.18rem;
    height: 2.18rem;
  }
}

/* Mobile-first activity */
.activity-page-shell {
  width: min(100%, 980px);
  margin: 0 auto;
  display: grid;
  gap: 0.7rem;
}

.activity-compact-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.1rem 0.05rem 0.2rem;
}

.activity-compact-heading h1 {
  margin: 0.12rem 0 0;
  color: var(--ink);
  font-size: 1.28rem;
  line-height: 1.05;
  letter-spacing: 0;
}

.activity-feed-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.72rem;
  align-items: start;
}

.activity-panel {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 0.68rem;
  padding: 0.82rem;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 0.5rem;
  background:
    linear-gradient(180deg, rgba(15, 22, 31, 0.99), rgba(5, 8, 13, 0.99)),
    #05080d;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.34);
}

.activity-panel::before,
.activity-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.18), transparent);
}

.activity-section-heading,
.activity-title-row,
.activity-cycle-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  min-width: 0;
}

.activity-section-heading h2 {
  margin: 0.1rem 0 0;
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1.08;
  letter-spacing: 0;
}

.activity-count {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.activity-list {
  display: grid;
  gap: 0.5rem;
}

.activity-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 0.58rem;
  min-width: 0;
  padding: 0.68rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
  box-shadow: none;
}

.wallet-activity-item {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.activity-card-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.6rem;
  align-items: center;
  min-width: 0;
}

.activity-icon {
  display: inline-grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 50%;
  color: #03130d;
  background: linear-gradient(180deg, #35f0a0, var(--success));
  font-size: 0.86rem;
  font-weight: 950;
  box-shadow: 0 8px 18px rgba(14, 203, 129, 0.16);
}

.activity-card.is-outflow .activity-icon {
  color: #ffffff;
  background: linear-gradient(180deg, #ff6d7d, var(--danger));
  box-shadow: 0 8px 18px rgba(246, 70, 93, 0.16);
}

.activity-copy,
.activity-amount-block,
.activity-cycle-value {
  display: grid;
  min-width: 0;
}

.activity-copy {
  gap: 0.22rem;
}

.activity-title-row strong,
.activity-amount-block strong,
.activity-cycle-head strong,
.activity-cycle-value strong {
  min-width: 0;
  color: var(--ink);
  font-size: 0.92rem;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.activity-copy time,
.activity-amount-block span,
.activity-cycle-value span,
.activity-meta-row,
.activity-metric-grid dt {
  color: var(--muted);
  font-size: 0.73rem;
  font-weight: 850;
  line-height: 1.2;
}

.activity-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 1.65rem;
  padding: 0.22rem 0.5rem;
  border: 1px solid rgba(14, 203, 129, 0.28);
  border-radius: 0.45rem;
  color: var(--success);
  background: rgba(14, 203, 129, 0.08);
  font-size: 0.7rem;
  font-weight: 950;
  line-height: 1;
  white-space: nowrap;
}

.activity-card.is-outflow .activity-status {
  border-color: rgba(246, 70, 93, 0.28);
  color: var(--danger);
  background: rgba(246, 70, 93, 0.08);
}

.activity-amount-block {
  justify-items: end;
  gap: 0.22rem;
  text-align: right;
}

.activity-card.is-inflow .activity-amount-block strong {
  color: var(--success);
}

.activity-card.is-outflow .activity-amount-block strong {
  color: var(--danger);
}

.activity-meta-row {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  min-width: 0;
}

.activity-meta-row span {
  min-width: 0;
  max-width: 100%;
  padding: 0.25rem 0.42rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0.42rem;
  background: rgba(0, 0, 0, 0.2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.activity-cycle-head {
  align-items: flex-start;
}

.activity-cycle-head > div:first-child {
  display: grid;
  gap: 0.38rem;
  min-width: 0;
}

.activity-cycle-value {
  justify-items: end;
  gap: 0.18rem;
  text-align: right;
}

.activity-metric-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.44rem;
  margin: 0;
}

.activity-metric-grid div {
  min-width: 0;
  padding: 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0.46rem;
  background: rgba(0, 0, 0, 0.16);
}

.activity-metric-grid dt,
.activity-metric-grid dd {
  margin: 0;
}

.activity-metric-grid dt {
  margin-bottom: 0.18rem;
  text-transform: uppercase;
}

.activity-metric-grid dd {
  color: var(--ink);
  font-size: 0.84rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.activity-card-actions {
  display: flex;
  justify-content: flex-end;
}

.activity-detail-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--tap-size);
  min-width: 6rem;
  padding: 0.55rem 0.78rem;
  border: 1px solid rgba(14, 203, 129, 0.3);
  border-radius: 0.5rem;
  color: var(--accent);
  background: rgba(14, 203, 129, 0.08);
  font-size: 0.84rem;
  font-weight: 950;
  text-decoration: none;
  touch-action: manipulation;
}

.activity-detail-button:hover {
  border-color: rgba(14, 203, 129, 0.52);
  background: rgba(14, 203, 129, 0.14);
}

.activity-empty-state {
  padding: 0.85rem;
  border: 1px dashed rgba(255, 255, 255, 0.13);
  border-radius: 0.5rem;
  color: var(--muted);
  text-align: center;
  font-size: 0.86rem;
  font-weight: 800;
}

.activity-pagination {
  margin-top: 0.08rem;
}

.activity-pagination .pagination-button,
.activity-pagination .pagination-current {
  min-height: 2.65rem;
  border-radius: 0.5rem;
  font-size: 0.8rem;
}

@media (min-width: 980px) {
  .activity-feed-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .activity-page-shell {
    gap: 0.58rem;
  }

  .activity-compact-heading {
    padding-inline: 0;
  }

  .activity-panel {
    gap: 0.58rem;
    padding: 0.72rem;
  }

  .activity-card {
    padding: 0.62rem;
  }

  .activity-section-heading {
    align-items: flex-start;
  }

  .activity-count {
    padding-top: 0.18rem;
  }

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

  .activity-amount-block {
    grid-template-columns: minmax(0, 1fr) auto;
    justify-items: start;
    text-align: left;
  }

  .activity-cycle-head {
    gap: 0.5rem;
  }

  .activity-metric-grid {
    gap: 0.38rem;
  }

  .activity-card-actions {
    justify-content: stretch;
  }

  .activity-detail-button {
    width: 100%;
  }
}

/* Mobile-first cycle detail */
.cycle-detail-shell {
  width: min(100%, 920px);
  margin: 0 auto;
  display: grid;
  gap: 0.72rem;
}

.cycle-detail-header,
.cycle-summary-card,
.trade-activity-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 0.5rem;
  background:
    linear-gradient(180deg, rgba(15, 22, 31, 0.99), rgba(5, 8, 13, 0.99)),
    #06090e;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.34);
}

.cycle-detail-header::before,
.cycle-summary-card::before,
.trade-activity-card::before,
.trade-order-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
}

.cycle-detail-header {
  display: grid;
  gap: 0.72rem;
  padding: 0.82rem;
}

.cycle-detail-header h1 {
  margin: 0.18rem 0 0;
  color: var(--ink);
  font-size: 1.35rem;
  line-height: 1.05;
  letter-spacing: 0;
}

.cycle-header-pills,
.trade-order-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}

.metric-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  min-height: 1.85rem;
  padding: 0.28rem 0.55rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.045);
  font-size: 0.74rem;
  font-weight: 900;
  line-height: 1.15;
  white-space: nowrap;
}

.metric-pill-status {
  color: var(--success);
  border-color: rgba(32, 214, 139, 0.32);
  background: rgba(32, 214, 139, 0.09);
}

.metric-pill-muted {
  color: var(--muted);
  border-color: rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.035);
}

.cycle-summary-card,
.trade-activity-card {
  display: grid;
  gap: 0.78rem;
  padding: 0.82rem;
}

.cycle-primary-grid,
.cycle-metric-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.52rem;
}

.cycle-hero-metric,
.cycle-metric,
.trade-order-card,
.trade-empty-state {
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.cycle-hero-metric {
  display: grid;
  gap: 0.28rem;
  padding: 0.72rem;
}

.cycle-hero-metric span,
.cycle-metric dt,
.trade-order-head span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.2;
  text-transform: uppercase;
}

.cycle-hero-metric strong {
  color: var(--ink);
  font-size: 1.22rem;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.cycle-metric-groups,
.trade-activity-list {
  display: grid;
  gap: 0.62rem;
}

.cycle-metric-group {
  display: grid;
  gap: 0.48rem;
}

.cycle-metric-group h2,
.cycle-section-heading h2 {
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.1;
  letter-spacing: 0;
}

.cycle-metric {
  display: grid;
  gap: 0.22rem;
  padding: 0.62rem;
}

.cycle-metric dt,
.cycle-metric dd {
  margin: 0;
}

.cycle-metric dd {
  color: var(--ink);
  font-size: 0.94rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.cycle-section-heading,
.trade-order-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.7rem;
  min-width: 0;
}

.trade-order-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 0.62rem;
  padding: 0.72rem;
  background:
    linear-gradient(180deg, rgba(16, 24, 35, 0.98), rgba(8, 12, 18, 0.98)),
    #080c12;
}

.trade-order-head > div {
  min-width: 0;
}

.trade-order-head strong {
  display: block;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.1;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.trade-order-head span {
  display: block;
  margin-top: 0.16rem;
  overflow-wrap: anywhere;
  text-transform: none;
}

.trade-order-metrics {
  gap: 0.45rem;
}

.trade-empty-state {
  display: grid;
  justify-items: start;
  gap: 0.38rem;
  padding: 0.85rem;
  color: var(--muted-strong);
}

.trade-empty-state strong {
  color: var(--ink);
  font-size: 1rem;
  letter-spacing: 0;
}

.risk-mobile-shell {
  --risk-surface: rgba(16, 18, 22, 0.82);
  --risk-surface-strong: rgba(24, 26, 31, 0.92);
  --risk-line: rgba(255, 255, 255, 0.1);
  --risk-glow: rgba(240, 185, 11, 0.2);
  display: grid;
  gap: 0.85rem;
  padding-bottom: max(7rem, calc(var(--bottom-nav-height) + var(--safe-bottom) + 2rem));
  color: var(--ink);
  scroll-padding-bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 7rem);
  -webkit-overflow-scrolling: touch;
}

.risk-mobile-shell * {
  min-width: 0;
}

.risk-sticky-hero {
  position: sticky;
  top: calc(4.6rem + var(--safe-top));
  z-index: 8;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  padding: 0.85rem;
  border: 1px solid rgba(240, 185, 11, 0.18);
  border-radius: 0.75rem;
  background: linear-gradient(180deg, rgba(10, 11, 14, 0.94), rgba(7, 8, 10, 0.88));
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.38);
  backdrop-filter: blur(18px);
}

.risk-sticky-hero h1,
.risk-sticky-hero p,
.risk-section-head h2,
.risk-section-head p {
  margin: 0;
  letter-spacing: 0;
}

.risk-sticky-hero h1 {
  font-size: 1.35rem;
  line-height: 1.05;
}

.risk-sticky-hero p {
  margin-top: 0.25rem;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.25;
}

.risk-health-ring {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 4.4rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(circle, #090a0d 56%, transparent 57%),
    conic-gradient(var(--success) calc(var(--risk-score) * 1%), rgba(255, 255, 255, 0.12) 0);
  box-shadow: 0 0 24px rgba(0, 192, 118, 0.12);
  contain: layout paint;
}

.risk-health-ring strong {
  font-size: 1.12rem;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.risk-health-ring span {
  margin-top: -0.9rem;
  color: var(--muted);
  font-size: 0.58rem;
  font-weight: 900;
  text-transform: uppercase;
}

.risk-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.risk-mini-panel,
.risk-panel {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--risk-line);
  border-radius: 0.75rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.052), transparent 1px),
    linear-gradient(180deg, var(--risk-surface-strong), rgba(8, 10, 13, 0.92));
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.32);
  backdrop-filter: blur(16px);
}

.risk-mini-panel {
  display: grid;
  gap: 0.22rem;
  padding: 0.72rem;
  min-height: 4.5rem;
}

.risk-mini-panel span,
.risk-slippage-grid span,
.risk-latency-list span,
.risk-slider-value span,
.risk-input-row span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.2;
  text-transform: uppercase;
}

.risk-mini-panel strong {
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.08;
  font-variant-numeric: tabular-nums;
}

.risk-tone-success {
  border-color: rgba(0, 192, 118, 0.34);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.32), 0 0 22px rgba(0, 192, 118, 0.08);
}

.risk-tone-warning {
  border-color: rgba(240, 185, 11, 0.4);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.32), 0 0 22px rgba(240, 185, 11, 0.09);
}

.risk-tone-error {
  border-color: rgba(255, 77, 79, 0.42);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.32), 0 0 22px rgba(255, 77, 79, 0.1);
}

.risk-panel {
  display: grid;
  gap: 0.85rem;
  padding: 0.9rem;
}

.risk-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.risk-section-head h2 {
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1.08;
}

.risk-soft-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0.28rem 0.58rem;
  border: 1px solid rgba(240, 185, 11, 0.22);
  border-radius: 999px;
  color: #ffd875;
  background: rgba(240, 185, 11, 0.1);
  font-size: 0.72rem;
  font-weight: 900;
  white-space: nowrap;
}

.risk-control-stack {
  display: grid;
  gap: 0.85rem;
}

.risk-segmented,
.risk-chip-rail {
  display: flex;
  gap: 0.45rem;
  overflow-x: auto;
  padding-bottom: 0.1rem;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.risk-segmented::-webkit-scrollbar,
.risk-chip-rail::-webkit-scrollbar {
  display: none;
}

.risk-segment,
.risk-chip-rail button,
.risk-secondary-action,
.risk-step-button,
.risk-icon-button,
.risk-load-more {
  min-height: var(--tap-size);
  border-radius: 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.05);
  color: var(--muted-strong);
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0;
  touch-action: manipulation;
}

.risk-segment {
  flex: 0 0 auto;
  min-width: max-content;
  scroll-snap-align: start;
}

.risk-segment.is-active,
.risk-chip-rail button.is-active {
  color: var(--accent-ink);
  border-color: rgba(240, 185, 11, 0.7);
  background: linear-gradient(180deg, #ffd86b, var(--accent));
}

.risk-switch {
  display: inline-flex;
  grid-template-columns: none;
  align-items: center;
  gap: 0.42rem;
  color: var(--muted-strong);
  font-size: 0.76rem;
  font-weight: 900;
  white-space: nowrap;
}

.risk-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.risk-switch span {
  position: relative;
  width: 2.9rem;
  height: 1.65rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.08);
}

.risk-switch span::after {
  content: "";
  position: absolute;
  top: 0.18rem;
  left: 0.18rem;
  width: 1.18rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--muted-strong);
  transition: transform 0.18s ease, background 0.18s ease;
}

.risk-switch input:checked + span {
  border-color: rgba(255, 77, 79, 0.5);
  background: rgba(255, 77, 79, 0.18);
}

.risk-switch input:checked + span::after {
  transform: translateX(1.22rem);
  background: #ff9aa4;
}

.risk-slider-value {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem;
}

.risk-slider-value strong,
.risk-leverage-display strong {
  color: var(--ink);
  font-size: 2rem;
  line-height: 0.95;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}

.risk-control-card input[type="range"] {
  accent-color: var(--accent);
  min-height: 2.4rem;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.risk-control-card input[type="range"]:disabled {
  opacity: 0.42;
}

.risk-input-row {
  grid-template-columns: minmax(0, 1fr) 6.5rem;
  align-items: center;
  gap: 0.7rem;
}

.risk-input-row input {
  text-align: right;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.risk-meter {
  height: 0.62rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 77, 79, 0.22);
}

.risk-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--success), var(--accent));
  transform: translateZ(0);
}

.risk-control-card.is-unlimited {
  border-color: rgba(255, 77, 79, 0.48);
  box-shadow: 0 0 26px rgba(255, 77, 79, 0.13), 0 14px 36px rgba(0, 0, 0, 0.32);
}

.risk-warning-copy {
  margin: 0;
  color: #ffb0b8;
  font-size: 0.82rem;
  line-height: 1.35;
}

.risk-leverage-display {
  display: grid;
  grid-template-columns: var(--tap-size) minmax(0, 1fr) var(--tap-size);
  align-items: center;
  gap: 0.55rem;
  text-align: center;
}

.risk-step-button,
.risk-icon-button {
  display: inline-grid;
  place-items: center;
  padding: 0;
  font-size: 1rem;
}

.risk-chip-rail button {
  flex: 0 0 auto;
  min-width: 4.2rem;
  scroll-snap-align: start;
}

.risk-chip-rail button:disabled {
  opacity: 0.42;
}

.risk-exchange-list {
  display: flex;
  gap: 0.42rem;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.risk-exchange-list::-webkit-scrollbar {
  display: none;
}

.risk-exchange-list span,
.risk-audit-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 1.85rem;
  padding: 0.24rem 0.5rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.045);
  font-size: 0.7rem;
  font-weight: 900;
  white-space: nowrap;
}

.risk-slippage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.risk-slippage-grid div,
.risk-latency-list div {
  display: grid;
  gap: 0.2rem;
  padding: 0.68rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.6rem;
  background: rgba(255, 255, 255, 0.04);
}

.risk-slippage-grid strong,
.risk-latency-list strong {
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}

.risk-pulse {
  width: 0.9rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 0 0 rgba(0, 192, 118, 0.35);
  animation: riskPulse 1.8s ease-out infinite;
}

.risk-micro-chart {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  align-items: end;
  gap: 0.34rem;
  height: 4.8rem;
  padding: 0.6rem;
  border-radius: 0.65rem;
  background: linear-gradient(180deg, rgba(240, 185, 11, 0.08), rgba(255, 255, 255, 0.035));
}

.risk-micro-chart span {
  min-height: 0.45rem;
  border-radius: 999px 999px 0.25rem 0.25rem;
  background: linear-gradient(180deg, #ffd86b, var(--accent));
  transform: translateZ(0);
}

.risk-latency-list {
  display: grid;
  gap: 0.52rem;
}

.risk-latency-list div {
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
}

.risk-latency-list em {
  color: var(--muted);
  font-style: normal;
  font-size: 0.72rem;
  font-weight: 900;
}

.risk-audit-panel {
  gap: 0.75rem;
}

.risk-audit-feed {
  display: grid;
  gap: 0.65rem;
}

.risk-audit-date {
  position: relative;
  z-index: 1;
  width: max-content;
  max-width: 100%;
  min-height: 1.8rem;
  margin: 0.15rem 0 0.12rem;
  padding: 0.22rem 0.52rem;
  border-radius: 999px;
  color: var(--accent);
  background: rgba(5, 5, 5, 0.82);
  border: 1px solid rgba(240, 185, 11, 0.18);
  font-size: 0.7rem;
  font-weight: 900;
  backdrop-filter: blur(12px);
}

.risk-audit-card {
  display: grid;
  gap: 0.65rem;
  padding: 0.72rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.11);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.045), transparent 1px),
    rgba(12, 14, 18, 0.88);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
  contain: content;
}

.risk-audit-error {
  border-color: rgba(255, 77, 79, 0.4);
  box-shadow: 0 0 20px rgba(255, 77, 79, 0.09), 0 12px 28px rgba(0, 0, 0, 0.28);
}

.risk-audit-warning {
  border-color: rgba(240, 185, 11, 0.42);
  box-shadow: 0 0 20px rgba(240, 185, 11, 0.08), 0 12px 28px rgba(0, 0, 0, 0.28);
}

.risk-audit-success {
  border-color: rgba(0, 192, 118, 0.38);
  box-shadow: 0 0 20px rgba(0, 192, 118, 0.08), 0 12px 28px rgba(0, 0, 0, 0.28);
}

.risk-audit-info {
  border-color: rgba(79, 140, 255, 0.34);
}

.risk-audit-main {
  display: grid;
  grid-template-columns: 2.3rem minmax(0, 1fr);
  gap: 0.65rem;
}

.risk-audit-icon {
  display: grid;
  place-items: center;
  width: 2.3rem;
  aspect-ratio: 1;
  border-radius: 0.65rem;
  background: rgba(255, 255, 255, 0.055);
}

.risk-audit-icon span {
  width: 0.72rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #8fb7ff;
}

.risk-audit-error .risk-audit-icon span {
  background: var(--danger);
}

.risk-audit-warning .risk-audit-icon span {
  background: var(--warning);
}

.risk-audit-success .risk-audit-icon span {
  background: var(--success);
}

.risk-audit-copy {
  display: grid;
  gap: 0.38rem;
}

.risk-audit-topline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 0.42rem;
}

.risk-audit-topline h3 {
  margin: 0;
  color: var(--ink);
  font-size: 0.95rem;
  line-height: 1.12;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.risk-audit-topline time {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.risk-severity-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0.18rem 0.42rem;
  border-radius: 999px;
  font-size: 0.64rem;
  font-weight: 900;
  text-transform: uppercase;
}

.risk-severity-success {
  color: #7dffc5;
  background: rgba(0, 192, 118, 0.13);
  border: 1px solid rgba(0, 192, 118, 0.32);
}

.risk-severity-warning {
  color: #ffd875;
  background: rgba(240, 185, 11, 0.13);
  border: 1px solid rgba(240, 185, 11, 0.32);
}

.risk-severity-error {
  color: #ffadb5;
  background: rgba(255, 77, 79, 0.13);
  border: 1px solid rgba(255, 77, 79, 0.32);
}

.risk-severity-info {
  color: #9fc0ff;
  background: rgba(79, 140, 255, 0.12);
  border: 1px solid rgba(79, 140, 255, 0.28);
}

.risk-audit-copy p {
  margin: 0;
  color: var(--muted-strong);
  font-size: 0.82rem;
  line-height: 1.32;
  overflow-wrap: anywhere;
}

.risk-audit-meta,
.risk-audit-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.36rem;
}

.risk-audit-actions {
  justify-content: flex-end;
}

.risk-icon-button {
  width: var(--tap-size);
  min-width: var(--tap-size);
}

.risk-icon-button.is-copied {
  color: var(--accent-ink);
  background: var(--success);
}

.risk-diagnostics-drawer {
  overflow: hidden;
  border-radius: 0.6rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.34);
  animation: riskDrawer 0.18s ease;
}

.risk-diagnostics-drawer pre {
  margin: 0;
  max-height: 14rem;
  overflow: auto;
  padding: 0.72rem;
  color: #d8e0ee;
  font-size: 0.72rem;
  line-height: 1.35;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.risk-audit-empty {
  display: grid;
  gap: 0.25rem;
  padding: 0.85rem;
  border-radius: 0.65rem;
  border: 1px dashed rgba(255, 255, 255, 0.16);
  color: var(--muted);
}

.risk-audit-empty strong {
  color: var(--ink);
}

.risk-audit-loader {
  display: grid;
  gap: 0.5rem;
}

.risk-audit-loader span {
  display: block;
  height: 4.5rem;
  border-radius: 0.75rem;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04));
  background-size: 220% 100%;
  animation: riskSkeleton 1.2s linear infinite;
}

.risk-load-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.risk-save-bar {
  position: fixed;
  right: max(0.75rem, var(--safe-right));
  bottom: max(0.75rem, calc(var(--bottom-nav-height) + var(--safe-bottom) + 0.6rem));
  left: max(0.75rem, var(--safe-left));
  z-index: 90;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.55rem;
  align-items: center;
  padding: 0.68rem;
  border-radius: 0.85rem;
  border: 1px solid rgba(240, 185, 11, 0.32);
  background: rgba(10, 11, 14, 0.92);
  box-shadow: 0 18px 52px rgba(0, 0, 0, 0.55), 0 0 28px rgba(240, 185, 11, 0.1);
  backdrop-filter: blur(20px);
}

.risk-save-bar strong,
.risk-save-bar span {
  display: block;
}

.risk-save-bar strong {
  color: var(--ink);
  font-size: 0.86rem;
  line-height: 1.1;
}

.risk-save-bar span {
  margin-top: 0.1rem;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.risk-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: end center;
  padding: 1rem max(1rem, var(--safe-right)) max(1rem, calc(var(--safe-bottom) + 1rem)) max(1rem, var(--safe-left));
  background: rgba(0, 0, 0, 0.62);
  backdrop-filter: blur(12px);
}

.risk-mobile-shell [hidden],
.risk-save-bar[hidden],
.risk-modal-backdrop[hidden] {
  display: none !important;
}

.risk-confirm-modal {
  display: grid;
  gap: 0.78rem;
  width: min(100%, 28rem);
  padding: 1rem;
  border-radius: 0.85rem;
  border: 1px solid rgba(255, 77, 79, 0.4);
  background: linear-gradient(180deg, rgba(24, 16, 18, 0.98), rgba(9, 9, 12, 0.98));
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.6);
}

.risk-confirm-modal h2,
.risk-confirm-modal p {
  margin: 0;
  letter-spacing: 0;
}

.risk-confirm-modal p {
  color: var(--muted-strong);
  font-size: 0.9rem;
  line-height: 1.4;
}

.risk-modal-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.55rem;
}

@keyframes riskPulse {
  0% { box-shadow: 0 0 0 0 rgba(0, 192, 118, 0.34); }
  70% { box-shadow: 0 0 0 0.75rem rgba(0, 192, 118, 0); }
  100% { box-shadow: 0 0 0 0 rgba(0, 192, 118, 0); }
}

@keyframes riskDrawer {
  from { opacity: 0; transform: translateY(-0.35rem); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes riskSkeleton {
  from { background-position: 220% 0; }
  to { background-position: -220% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .risk-pulse,
  .risk-audit-loader span,
  .risk-diagnostics-drawer {
    animation: none;
  }

  .risk-switch span::after {
    transition: none;
  }
}

@media (max-width: 760px) {
  .risk-mobile-shell {
    gap: 0.72rem;
  }

  .risk-sticky-hero {
    top: calc(3.95rem + var(--safe-top));
    align-items: flex-start;
  }

  .risk-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .risk-section-head {
    gap: 0.55rem;
  }

  .risk-save-bar {
    grid-template-columns: minmax(0, 1fr) auto auto;
  }
}

@media (max-width: 420px) {
  .risk-sticky-hero {
    padding: 0.72rem;
  }

  .risk-health-ring {
    width: 3.8rem;
  }

  .risk-status-grid,
  .risk-slippage-grid {
    gap: 0.5rem;
  }

  .risk-panel {
    padding: 0.78rem;
  }

  .risk-audit-topline {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .risk-audit-topline time {
    grid-column: 2;
  }

  .risk-save-bar {
    grid-template-columns: 1fr 1fr;
  }

  .risk-save-bar > div {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .page-shell:has(.balance-home) {
    padding-top: 0.35rem;
  }

  .balance-home {
    min-height: calc(100svh - 10.5rem);
    padding: 0.35rem 0 0.9rem;
  }

  .portfolio-balance-card {
    min-height: 12.25rem;
    padding: 0.95rem;
    border-radius: 0.9rem;
  }

  .portfolio-balance-value {
    font-size: 3.25rem;
  }

  @supports (min-height: 100dvh) {
    .balance-home {
      min-height: calc(100dvh - 10.5rem);
    }
  }

  .home-hero,
  .wallet-summary,
  .vault-layout {
    margin-bottom: 0.85rem;
  }

  .crypto-rail {
    top: calc(74px + var(--safe-top));
  }

  table.is-stacked {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    display: grid;
    gap: 0.7rem;
  }

  .card:has(.is-stacked),
  .card:has(table.is-stacked) {
    overflow: visible;
  }

  .table-actions {
    display: grid;
    gap: 0.45rem;
  }

  table.is-stacked thead {
    display: none;
  }

  table.is-stacked tbody,
  table.is-stacked tr,
  table.is-stacked td {
    display: grid;
    width: 100%;
  }

  table.is-stacked tr {
    grid-template-columns: 1fr;
    gap: 0.52rem;
    padding: 0.85rem;
    border-radius: var(--radius-md);
    border: 1px solid rgba(255, 255, 255, 0.13);
    background: linear-gradient(180deg, rgba(18, 25, 35, 0.98), rgba(11, 15, 20, 0.96));
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24);
  }

  table.is-stacked td {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 0.2rem;
    border: 0;
    padding: 0;
  }

  table.is-stacked td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 0.73rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    text-transform: uppercase;
  }

  table.is-stacked td.is-numeric {
    text-align: left;
    align-items: end;
  }

  table.is-stacked td.mobile-hide,
  table.is-stacked .mobile-hide {
    display: none;
  }

  .bottom-nav {
    padding-right: max(0.55rem, var(--safe-right));
    padding-left: max(0.55rem, var(--safe-left));
  }

  .bottom-nav a {
    gap: 0.15rem;
    min-height: 3rem;
    font-size: 0.72rem;
  }

  .audit-panel {
    padding: 0.75rem;
  }

  .audit-section-header {
    align-items: stretch;
    flex-direction: column;
    gap: 0.45rem;
  }

  .audit-retention-chip {
    width: max-content;
  }

  .audit-event-card {
    padding: 0.68rem;
  }

  .audit-event-head {
    gap: 0.45rem;
  }

  .audit-type-pill {
    padding-inline: 0.45rem;
  }

  .audit-pagination {
    grid-template-columns: 1fr 1fr;
  }

  .audit-page-compact {
    grid-column: 1 / -1;
    order: -1;
  }

  .nav-icon {
    font-size: 1rem;
  }

  .wallet-card-actions {
    flex-direction: column;
  }

  .wallet-card-actions .button-link,
  .wallet-flow-card button,
  .wallet-flow-card .button-link {
    width: 100%;
  }

  .asset-selector,
  .compact-selector {
    grid-template-columns: 1fr;
  }

  .home-hero,
  .wallet-summary {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 520px) {
  .cycle-detail-header,
  .cycle-section-heading,
  .trade-order-head {
    align-items: center;
  }

  .cycle-detail-header {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .cycle-header-pills,
  .trade-order-tags {
    justify-content: flex-end;
  }

  .cycle-primary-grid,
  .cycle-metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 840px) {
  .cycle-detail-shell {
    gap: 0.9rem;
  }

  .cycle-detail-header,
  .cycle-summary-card,
  .trade-activity-card {
    padding: 1rem;
  }

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

  .cycle-metric-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 430px) {
  .balance-home {
    min-height: calc(100svh - 9.75rem);
  }

  .portfolio-balance-card {
    min-height: 11rem;
    padding: 0.85rem;
  }

  .portfolio-balance-value {
    font-size: 2.75rem;
  }

  @supports (min-height: 100dvh) {
    .balance-home {
      min-height: calc(100dvh - 9.75rem);
    }
  }

  .site-header,
  .page-shell,
  .banner,
  .flash-stack {
    width: calc(100% - max(0.72rem, var(--safe-right) + var(--safe-left)));
  }

  .site-header {
    padding-top: calc(0.72rem + var(--safe-top));
    gap: 0.8rem;
  }

  .topbar-actions {
    gap: 0.45rem;
  }

  .brand-copy strong {
    font-size: 0.95rem;
  }
}

@media (max-width: 520px) {
  .wallet-total-card,
  .wallet-activity-card,
  .wallet-asset-card {
    padding: 0.8rem;
  }

  .wallet-total-card .hero-value {
    font-size: clamp(2.15rem, 14vw, 3.1rem);
  }

  .wallet-section-heading {
    align-items: center;
  }

  .wallet-asset-grid {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }

  .wallet-balance-stats {
    gap: 0.42rem;
  }

  .wallet-address-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.35rem;
  }

  .wallet-address-row code {
    width: 100%;
    max-width: 100%;
  }

  .wallet-activity-row {
    grid-template-columns: 1fr;
  }

  .wallet-activity-amount {
    grid-template-columns: minmax(0, 1fr) auto;
    justify-items: start;
    text-align: left;
  }

  .wallet-pagination {
    grid-template-columns: 1fr 1fr;
  }

  .pagination-current {
    grid-column: 1 / -1;
    grid-row: 1;
  }
}

/* Settings and provider management */
.settings-shell {
  display: grid;
  gap: 0.75rem;
  padding-bottom: 0.5rem;
}

.settings-compact-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.2rem 0 0.1rem;
}

.settings-compact-header h1 {
  margin: 0.18rem 0 0;
  color: var(--ink);
  font-size: 1.55rem;
  line-height: 1;
  letter-spacing: 0;
}

.settings-overview-grid,
.connection-summary-bar,
.connection-editor-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.65rem;
}

.settings-panel,
.provider-status-card,
.provider-management-card,
.connection-editor-card,
.connection-summary-bar {
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.5rem;
  background: linear-gradient(180deg, rgba(16, 22, 31, 0.98), rgba(7, 10, 15, 0.98));
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
}

.settings-panel,
.provider-status-card,
.provider-management-card,
.connection-editor-card {
  padding: 0.75rem;
}

.settings-appearance-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
}

.settings-theme-copy {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
}

.settings-theme-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.35;
}

.settings-theme-toggle.theme-toggle {
  width: auto;
  min-width: 8.75rem;
  height: 2.85rem;
  min-height: 2.85rem;
  padding: 0 0.78rem;
  gap: 0.45rem;
  border-radius: 0.5rem;
  white-space: nowrap;
}

.settings-theme-toggle [data-theme-toggle-label] {
  font-size: 0.82rem;
  font-weight: 900;
}

.settings-panel-head,
.provider-status-main,
.provider-card-head,
.provider-title-link,
.connection-summary-bar {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.settings-panel-head,
.provider-card-head {
  justify-content: space-between;
}

.settings-panel-head > div,
.provider-title-link > span:last-child,
.provider-status-main > div {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

.settings-label {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.settings-panel strong,
.connection-summary-bar strong {
  color: var(--ink);
  font-size: 1.08rem;
  line-height: 1.1;
  letter-spacing: 0;
}

.exchange-status-dot {
  width: 0.72rem;
  height: 0.72rem;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 0 5px rgba(14, 203, 129, 0.12);
}

.exchange-status-dot.status-offline {
  background: var(--danger);
  box-shadow: 0 0 0 5px rgba(246, 70, 93, 0.12);
}

.settings-stat-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.6rem;
  padding-top: 0.58rem;
  border-top: 1px solid rgba(143, 155, 174, 0.12);
  color: var(--muted-strong);
  font-size: 0.86rem;
  font-weight: 800;
}

.settings-mode-pill,
.provider-health,
.provider-toggle-readout {
  display: inline-flex;
  align-items: center;
  min-height: 1.75rem;
  width: max-content;
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--muted-strong);
  background: rgba(18, 25, 35, 0.72);
  font-size: 0.75rem;
  font-weight: 900;
  white-space: nowrap;
}

.settings-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0.35rem 0.62rem;
  border: 1px solid rgba(14, 203, 129, 0.36);
  border-radius: 0.5rem;
  color: var(--accent);
  background: rgba(14, 203, 129, 0.08);
  font-size: 0.82rem;
  font-weight: 900;
  text-decoration: none;
}

.settings-provider-grid,
.provider-management-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.58rem;
}

.provider-status-card,
.provider-management-card {
  display: grid;
  gap: 0.6rem;
}

.provider-status-card.is-enabled,
.provider-management-card.is-enabled {
  border-color: rgba(14, 203, 129, 0.34);
}

.provider-management-card.is-selected {
  box-shadow: inset 0 0 0 1px rgba(14, 203, 129, 0.28), 0 14px 30px rgba(0, 0, 0, 0.3);
}

.provider-mark {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 50%;
  color: var(--accent-ink);
  background: var(--accent);
  font-size: 0.88rem;
  font-weight: 900;
}

.provider-status-main h2,
.provider-title-link strong,
.connection-editor-card h2 {
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.1;
  letter-spacing: 0;
}

.provider-status-main span,
.provider-title-link small,
.compact-muted,
.provider-health-panel span,
.credential-note span {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.35;
}

.provider-title-link {
  min-width: 0;
  color: var(--ink);
  text-decoration: none;
}

.provider-status-meta,
.provider-card-badges,
.provider-card-actions,
.connection-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
}

.provider-health.positive,
.provider-toggle-readout.positive {
  color: var(--success);
  border-color: rgba(14, 203, 129, 0.34);
  background: rgba(14, 203, 129, 0.1);
}

.provider-health.danger {
  color: var(--danger);
  border-color: rgba(246, 70, 93, 0.4);
  background: rgba(246, 70, 93, 0.1);
}

.provider-health.muted,
.provider-toggle-readout.muted,
.status-not_connected {
  color: var(--muted);
}

.provider-card-actions {
  display: grid;
  grid-template-columns: 1fr auto;
}

.provider-card-actions form,
.connection-actions form {
  margin: 0;
}

.provider-card-actions .button-link,
.provider-card-actions button {
  min-height: 2.5rem;
  padding: 0.5rem 0.72rem;
  border-radius: 0.5rem;
}

.provider-switch {
  min-width: 5.25rem;
  color: var(--accent);
  border-color: rgba(14, 203, 129, 0.4);
  background: rgba(14, 203, 129, 0.1);
}

.provider-switch.is-on {
  color: #ffffff;
  border-color: rgba(246, 70, 93, 0.42);
  background: rgba(246, 70, 93, 0.16);
}

.connection-summary-bar {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  justify-content: stretch;
  padding: 0.72rem;
}

.connection-summary-bar > div {
  display: grid;
  gap: 0.12rem;
}

.connection-editor-card {
  display: grid;
  gap: 0.75rem;
  align-content: start;
}

.compact-form {
  gap: 0.62rem;
}

.compact-form label {
  gap: 0.32rem;
  font-size: 0.82rem;
}

.compact-form input,
.compact-form select,
.compact-form textarea {
  border-radius: 0.5rem;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  gap: 0.7rem;
  margin: 0;
}

.metric-grid > div {
  padding: 0.72rem;
  border: 1px solid rgba(143, 155, 174, 0.16);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.metric-grid dt,
.metric-grid dd {
  margin: 0;
}

.metric-grid dt {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0;
}

.metric-grid dd {
  margin-top: 0.18rem;
  font-weight: 700;
}

.toggle-row {
  grid-auto-flow: column;
  justify-content: start;
  align-items: center;
}

.credential-note,
.provider-health-panel,
.provider-empty-state {
  display: grid;
  gap: 0.24rem;
  padding: 0.68rem;
  border: 1px solid rgba(143, 155, 174, 0.16);
  border-radius: 0.5rem;
  background: rgba(11, 15, 20, 0.58);
}

.credential-note strong,
.provider-health-panel strong,
.provider-empty-state strong {
  color: var(--ink);
  font-size: 0.9rem;
  line-height: 1.2;
}

.provider-health-panel.is-ready {
  border-color: rgba(14, 203, 129, 0.28);
  background: rgba(14, 203, 129, 0.08);
}

.provider-health-panel.is-ready strong {
  color: var(--success);
}

.provider-health-panel.is-blocked {
  border-color: rgba(246, 70, 93, 0.34);
  background: rgba(246, 70, 93, 0.1);
}

.provider-health-panel.is-blocked strong {
  color: var(--danger);
}

.provider-empty-state {
  justify-items: start;
}

@media (min-width: 640px) {
  .settings-overview-grid,
  .connection-editor-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .settings-provider-grid,
  .provider-management-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 980px) {
  .provider-management-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 430px) {
  .settings-shell {
    gap: 0.58rem;
  }

  .settings-panel,
  .provider-status-card,
  .provider-management-card,
  .connection-editor-card,
  .connection-summary-bar {
    padding: 0.65rem;
  }

  .settings-appearance-card {
    align-items: stretch;
    flex-direction: column;
  }

  .settings-theme-toggle.theme-toggle {
    width: 100%;
  }

  .provider-card-actions {
    grid-template-columns: 1fr;
  }

  .provider-card-actions .button-link,
  .provider-card-actions button,
  .connection-actions button {
    width: 100%;
  }

  .connection-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
}

/* ==========================
   Mobile Panic Controls
   ========================== */

.panic-shell {
  display: grid;
  gap: 0.72rem;
  width: min(100%, 820px);
  margin: 0 auto;
  padding-bottom: calc(0.85rem + var(--safe-bottom, env(safe-area-inset-bottom)));
}

.panic-console,
.panic-audit-panel {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 0.82rem;
  padding: 0.9rem;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 0.5rem;
  background:
    linear-gradient(180deg, rgba(16, 20, 27, 0.98), rgba(5, 7, 11, 0.98)),
    #05070d;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.38);
}

.panic-console {
  border-color: rgba(255, 79, 103, 0.32);
  background:
    linear-gradient(145deg, rgba(255, 79, 103, 0.12), transparent 34%),
    linear-gradient(180deg, rgba(16, 20, 27, 0.98), rgba(5, 7, 11, 0.98)),
    #05070d;
  box-shadow:
    0 0 0 1px rgba(255, 79, 103, 0.06),
    0 18px 42px rgba(0, 0, 0, 0.42),
    0 18px 38px rgba(255, 79, 103, 0.08);
}

.panic-console::before,
.panic-audit-panel::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.22), transparent);
}

.panic-header,
.panic-section-header {
  display: grid;
  gap: 0.58rem;
}

.panic-title-block,
.panic-section-header {
  min-width: 0;
}

.panic-kicker {
  color: var(--danger);
  font-size: 0.72rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.panic-title-block h1,
.panic-section-header h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.55rem, 7vw, 2.35rem);
  line-height: 0.98;
  letter-spacing: 0;
}

.panic-section-header h2 {
  font-size: 1.02rem;
  line-height: 1.1;
}

.panic-state-rail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.panic-state-pill {
  min-width: 0;
  display: grid;
  gap: 0.12rem;
  padding: 0.62rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.panic-state-pill span {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
}

.panic-state-pill strong {
  color: var(--ink);
  font-size: 0.98rem;
  font-variant-numeric: tabular-nums;
  font-weight: 950;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.panic-state-pill.is-danger {
  border-color: rgba(255, 79, 103, 0.38);
  background: rgba(255, 79, 103, 0.1);
}

.panic-state-pill.is-danger strong {
  color: var(--danger);
}

.panic-state-pill.is-clear {
  border-color: rgba(32, 214, 139, 0.26);
  background: rgba(32, 214, 139, 0.08);
}

.panic-state-pill.is-clear strong {
  color: var(--success);
}

.panic-action-form {
  display: grid;
  gap: 0.55rem;
  margin: 0;
}

.panic-action-button {
  width: 100%;
  min-height: 5.15rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.78rem;
  padding: 0.82rem;
  border: 1px solid rgba(255, 118, 136, 0.82);
  border-radius: 0.5rem;
  color: #ffffff;
  background:
    linear-gradient(180deg, rgba(255, 92, 113, 0.98), rgba(214, 34, 58, 0.98)),
    #e02c45;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 16px 34px rgba(255, 79, 103, 0.22);
  text-align: left;
}

.panic-action-button:hover {
  transform: translateY(-1px);
  border-color: rgba(255, 150, 164, 0.96);
  background:
    linear-gradient(180deg, rgba(255, 103, 123, 1), rgba(226, 39, 65, 1)),
    #e02c45;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    0 18px 38px rgba(255, 79, 103, 0.26);
}

.panic-action-button:active {
  transform: scale(0.99);
}

.panic-action-button:disabled,
.panic-action-button.is-loading {
  opacity: 0.76;
  transform: none;
}

.panic-button-mark {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.55rem;
  height: 2.55rem;
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.18);
  font-size: 1.35rem;
  font-weight: 950;
  line-height: 1;
}

.panic-button-copy {
  min-width: 0;
  display: grid;
  gap: 0.1rem;
}

.panic-button-copy strong {
  font-size: 1.08rem;
  font-weight: 950;
  line-height: 1.05;
  letter-spacing: 0;
}

.panic-button-copy small {
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.78rem;
  font-weight: 850;
  line-height: 1.25;
}

.panic-submit-status {
  margin: 0;
  padding: 0.58rem 0.65rem;
  border: 1px solid rgba(255, 79, 103, 0.3);
  border-radius: 0.5rem;
  color: var(--muted-strong);
  background: rgba(255, 79, 103, 0.08);
  font-size: 0.82rem;
  font-weight: 850;
}

.panic-timeline {
  display: grid;
  gap: 0.5rem;
}

.panic-event {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.58rem;
  align-items: start;
  padding: 0.68rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.panic-event-marker {
  width: 0.58rem;
  height: 0.58rem;
  margin-top: 0.48rem;
  border-radius: 50%;
  background: var(--danger);
  box-shadow: 0 0 0 4px rgba(255, 79, 103, 0.12);
}

.panic-event-body {
  min-width: 0;
  display: grid;
  gap: 0.32rem;
}

.panic-event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  justify-content: space-between;
}

.panic-event-meta time {
  color: var(--muted);
  font-size: 0.76rem;
  font-variant-numeric: tabular-nums;
  font-weight: 850;
}

.panic-event-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0.18rem 0.48rem;
  border: 1px solid rgba(255, 79, 103, 0.34);
  border-radius: 999px;
  color: var(--danger);
  background: rgba(255, 79, 103, 0.09);
  font-size: 0.68rem;
  font-weight: 950;
  letter-spacing: 0.04em;
  line-height: 1;
}

.panic-event p {
  margin: 0;
  color: var(--muted-strong);
  font-size: 0.88rem;
  line-height: 1.36;
}

.panic-empty-state {
  display: grid;
  justify-items: center;
  gap: 0.34rem;
  min-height: 8.25rem;
  padding: 1rem;
  border: 1px dashed rgba(255, 255, 255, 0.14);
  border-radius: 0.5rem;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.026);
  text-align: center;
}

.panic-empty-mark {
  display: grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  color: var(--muted-strong);
  background: rgba(0, 0, 0, 0.22);
  font-size: 1.2rem;
  font-weight: 950;
  line-height: 1;
}

.panic-empty-state strong {
  color: var(--ink);
  font-size: 0.96rem;
  line-height: 1.2;
}

.panic-empty-state span:last-child {
  font-size: 0.82rem;
  font-weight: 800;
}

@media (min-width: 720px) {
  .panic-header {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.72fr);
    align-items: end;
  }
}

@media (max-width: 430px) {
  .panic-shell {
    gap: 0.62rem;
    padding-bottom: calc(0.8rem + var(--safe-bottom, env(safe-area-inset-bottom)));
  }

  .panic-console,
  .panic-audit-panel {
    gap: 0.68rem;
    padding: 0.72rem;
  }

  .panic-state-rail {
    gap: 0.42rem;
  }

  .panic-state-pill {
    padding: 0.54rem;
  }

  .panic-action-button {
    min-height: 5rem;
    gap: 0.65rem;
  }

  .panic-button-mark {
    width: 2.35rem;
    height: 2.35rem;
  }

  .panic-button-copy strong {
    font-size: 1rem;
  }

  .panic-event {
    padding: 0.62rem;
  }
}

/* Mobile-first backtests */
.backtest-shell {
  width: min(100%, 1120px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 0.85rem;
  padding-bottom: calc(0.9rem + var(--safe-bottom, env(safe-area-inset-bottom)));
}

.backtest-console,
.backtest-dashboard,
.backtest-empty-state {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 0.5rem;
  background:
    linear-gradient(180deg, rgba(13, 18, 26, 0.99), rgba(4, 7, 11, 0.99)),
    #05080d;
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.38);
}

.backtest-console::before,
.backtest-dashboard::before,
.backtest-chart-panel::before,
.backtest-empty-state::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
}

.backtest-console,
.backtest-dashboard {
  display: grid;
  gap: 0.82rem;
  padding: 0.88rem;
}

.backtest-head,
.backtest-result-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 0.75rem;
  min-width: 0;
}

.backtest-head h1,
.backtest-result-head h2 {
  margin: 0.1rem 0 0;
  color: var(--ink);
  font-size: 1.28rem;
  line-height: 1.06;
  letter-spacing: 0;
}

.backtest-paper-chip,
.backtest-result-chip {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  max-width: 56%;
  padding: 0.35rem 0.58rem;
  border: 1px solid rgba(14, 203, 129, 0.28);
  border-radius: 0.5rem;
  color: var(--accent);
  background: rgba(14, 203, 129, 0.08);
  font-size: 0.78rem;
  font-weight: 950;
  line-height: 1.1;
  text-align: center;
  overflow-wrap: anywhere;
}

.backtest-form {
  display: grid;
  gap: 0.68rem;
}

.backtest-form label,
.backtest-advanced label {
  color: var(--muted-strong);
  font-size: 0.8rem;
  font-weight: 900;
}

.backtest-form input,
.backtest-form select {
  min-height: 2.9rem;
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.045);
  font-size: 16px;
}

.backtest-form input[type="number"]::-webkit-outer-spin-button,
.backtest-form input[type="number"]::-webkit-inner-spin-button {
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
}

.backtest-form input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

.backtest-pair-row,
.backtest-advanced-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.backtest-amount-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.45rem;
  align-items: center;
}

.backtest-max-button {
  min-width: 4rem;
  min-height: 2.9rem;
  padding: 0.55rem 0.72rem;
  border-radius: 0.5rem;
  color: var(--accent);
  border-color: rgba(14, 203, 129, 0.3);
  background: rgba(14, 203, 129, 0.08);
  box-shadow: none;
  font-size: 0.8rem;
  font-weight: 950;
}

.backtest-duration-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem;
}

.backtest-duration-option {
  min-height: 2.8rem;
  display: grid;
  place-items: center;
  padding: 0.54rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.5rem;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.035);
  text-align: center;
  cursor: pointer;
}

.backtest-duration-option input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
}

.backtest-duration-option span {
  font-size: 0.88rem;
  font-weight: 950;
  letter-spacing: 0;
}

.backtest-duration-option.is-selected,
.backtest-duration-option:has(input:checked) {
  color: var(--accent);
  border-color: rgba(14, 203, 129, 0.48);
  background: rgba(14, 203, 129, 0.1);
}

.backtest-advanced {
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.025);
}

.backtest-advanced summary {
  min-height: 2.75rem;
  display: flex;
  align-items: center;
  padding: 0.7rem 0.78rem;
  color: var(--muted-strong);
  font-size: 0.85rem;
  font-weight: 950;
  cursor: pointer;
}

.backtest-advanced-grid {
  padding: 0 0.72rem 0.72rem;
}

.backtest-run-button {
  width: 100%;
  min-height: 3.05rem;
  border-radius: 0.5rem;
  font-size: 0.96rem;
  font-weight: 950;
}

.backtest-form-status {
  min-height: 1.15rem;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 800;
}

.backtest-form-status[data-state="success"] {
  color: var(--success);
}

.backtest-form-status[data-state="error"] {
  color: var(--danger);
}

.backtest-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
}

.backtest-metric-card {
  min-width: 0;
  display: grid;
  gap: 0.22rem;
  min-height: 4.2rem;
  padding: 0.62rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.backtest-metric-card span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.backtest-metric-card strong {
  min-width: 0;
  color: var(--ink);
  font-size: clamp(1rem, 2vw, 1.36rem);
  font-weight: 950;
  line-height: 1;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.backtest-chart-panel {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 0.7rem;
  min-width: 0;
  padding: 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.03);
}

.backtest-chart-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.35rem;
}

.backtest-chart-tabs button {
  min-height: 2.35rem;
  padding: 0.45rem 0.35rem;
  border-radius: 0.5rem;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.04);
  box-shadow: none;
  font-size: 0.78rem;
  font-weight: 950;
}

.backtest-chart-tabs button.is-active {
  color: var(--accent);
  border-color: rgba(14, 203, 129, 0.4);
  background: rgba(14, 203, 129, 0.1);
}

.backtest-chart-wrap {
  position: relative;
  height: clamp(17rem, 34vw, 24rem);
  min-height: 17rem;
}

.backtest-mini-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.backtest-mini-chart-wrap {
  position: relative;
  height: 13rem;
  min-height: 13rem;
}

.backtest-empty-state {
  grid-column: 2;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 0.5rem;
  min-height: 16rem;
  padding: 1rem;
  color: var(--muted);
  text-align: center;
}

.backtest-empty-state strong {
  color: var(--ink);
}

.backtest-dashboard.is-loading .backtest-metric-card,
.backtest-dashboard.is-loading .backtest-chart-panel {
  opacity: 0.58;
}

@media (max-width: 980px) {
  .backtest-shell {
    grid-template-columns: 1fr;
  }

  .backtest-empty-state {
    grid-column: auto;
  }
}

@media (max-width: 720px) {
  .backtest-shell {
    gap: 0.68rem;
  }

  .backtest-console,
  .backtest-dashboard {
    padding: 0.72rem;
  }

  .backtest-metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .backtest-mini-chart-grid {
    grid-template-columns: 1fr;
  }

  .backtest-chart-wrap {
    height: 18rem;
  }
}

@media (max-width: 430px) {
  .backtest-shell {
    gap: 0.6rem;
  }

  .backtest-pair-row,
  .backtest-advanced-grid {
    grid-template-columns: 1fr;
  }

  .backtest-chart-tabs {
    gap: 0.28rem;
  }

  .backtest-chart-tabs button {
    min-height: 2.2rem;
    font-size: 0.72rem;
  }

  .backtest-metric-card {
    padding: 0.58rem;
  }
}

/* App shell hardening: keep the drawer independent from legacy page media queries. */
.nav-backdrop {
  position: fixed;
  inset: 0;
  z-index: 70;
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  background: rgba(0, 0, 0, 0.56);
  transition: opacity 0.18s ease, visibility 0.18s ease;
}

.app-body.nav-open .nav-backdrop {
  visibility: visible;
  pointer-events: auto;
  opacity: 1;
}

.app-nav {
  position: fixed;
  z-index: 1200;
  display: grid;
  gap: 0.85rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background:
    linear-gradient(180deg, rgba(27, 27, 27, 0.98), rgba(8, 8, 8, 0.99)),
    #111111;
  box-shadow: 0 26px 76px rgba(0, 0, 0, 0.62), 0 0 0 1px rgba(240, 185, 11, 0.04) inset;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  -webkit-overflow-scrolling: touch;
  transition: transform 0.22s ease, opacity 0.18s ease, visibility 0.18s ease;
}

.app-nav.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

@media (max-width: 760px) {
  .site-header {
    flex-direction: row;
    align-items: center;
    width: min(100% - 1rem, 760px);
  }

  .app-nav {
    left: max(0.75rem, var(--safe-left));
    right: max(0.75rem, var(--safe-right));
    top: auto;
    bottom: calc(0.75rem + var(--safe-bottom));
    width: auto;
    max-height: min(74svh, 620px);
    padding: 1rem;
    border-radius: 1.35rem 1.35rem 1rem 1rem;
    transform: translate3d(0, 1rem, 0) scale(0.985);
  }

  .app-nav.is-open {
    transform: translate3d(0, 0, 0) scale(1);
  }

  .bottom-nav {
    z-index: 80;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .bottom-nav a,
  .bottom-nav .bottom-nav-item {
    width: auto;
    min-width: 0;
    justify-content: center;
  }
}

@media (min-width: 761px) {
  .app-nav {
    top: calc(4.5rem + var(--safe-top));
    right: max(1.25rem, calc((100vw - 1240px) / 2));
    bottom: auto;
    left: auto;
    width: min(390px, calc(100vw - 2rem));
    max-height: min(76vh, 720px);
    padding: 1rem;
    border-radius: 1rem;
    transform: translate3d(0.75rem, 0, 0) scale(0.985);
  }

  .app-nav.is-open {
    transform: translate3d(0, 0, 0) scale(1);
  }
}

.app-body > .app-nav {
  display: grid !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.app-body.nav-open > .app-nav.is-open {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  z-index: 2147483000 !important;
}

@media (max-width: 760px) {
  .app-body.nav-open > .app-nav.is-open {
    top: calc(4.85rem + var(--safe-top, 0px)) !important;
    right: max(0.75rem, var(--safe-right, 0px)) !important;
    bottom: calc(var(--bottom-nav-height, 72px) + var(--safe-bottom, 0px) + 0.75rem) !important;
    left: max(0.75rem, var(--safe-left, 0px)) !important;
    width: auto !important;
    max-height: none !important;
    padding: 0.95rem !important;
    border-radius: 1rem !important;
    transform: none !important;
  }
}

@media (min-width: 761px) {
  .bottom-nav {
    display: none !important;
  }

  .app-body.nav-open > .app-nav.is-open {
    top: calc(4.65rem + var(--safe-top, 0px)) !important;
    right: max(1.25rem, calc((100vw - 1240px) / 2)) !important;
    bottom: auto !important;
    left: auto !important;
    width: min(410px, calc(100vw - 2rem)) !important;
    max-height: min(78vh, 720px) !important;
    transform: none !important;
  }
}

/* iPhone-first live trading dashboard */
body:has(.trading-dashboard-shell) {
  background: #050505;
  color: #f5f5f5;
  overscroll-behavior-y: none;
  touch-action: manipulation;
}

body:has(.trading-dashboard-shell)::before {
  opacity: 0;
}

body:has(.trading-dashboard-shell) .crypto-rail {
  display: none;
}

body:has(.trading-dashboard-shell) .page-shell {
  width: 100%;
  max-width: none;
  padding: 0;
}

.trading-dashboard-shell {
  --dash-bg: #050505;
  --dash-panel: rgba(18, 18, 18, 0.94);
  --dash-panel-strong: rgba(25, 25, 25, 0.96);
  --dash-border: rgba(255, 255, 255, 0.1);
  --dash-muted: #8f8f8f;
  --dash-ink: #f5f5f5;
  --dash-gold: #f0b90b;
  --dash-green: #00c076;
  --dash-red: #ff4d4f;
  width: 100%;
  min-height: 100svh;
  padding: calc(0.8rem + var(--safe-top)) max(0.75rem, var(--safe-right)) calc(var(--bottom-nav-height) + var(--safe-bottom) + 7rem) max(0.75rem, var(--safe-left));
  background: var(--dash-bg);
  color: var(--dash-ink);
  contain: layout paint;
  -webkit-overflow-scrolling: touch;
}

@supports (min-height: 100dvh) {
  .trading-dashboard-shell {
    min-height: 100dvh;
  }
}

.trade-command-bar,
.trade-panel,
.trade-account-strip,
.trade-alert-strip {
  border: 1px solid var(--dash-border);
  background: var(--dash-panel);
}

@supports ((backdrop-filter: blur(18px)) or (-webkit-backdrop-filter: blur(18px))) {
  .trade-command-bar,
  .trade-panel,
  .dashboard-bottom-sheet {
    background: rgba(16, 16, 16, 0.82);
    -webkit-backdrop-filter: blur(18px) saturate(1.15);
    backdrop-filter: blur(18px) saturate(1.15);
  }
}

.trade-command-bar {
  position: sticky;
  top: calc(0.45rem + var(--safe-top));
  z-index: 35;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 64px;
  padding: 0.74rem 0.78rem;
  border-radius: 8px;
  transform: translateZ(0);
}

.trade-command-copy {
  min-width: 0;
}

.trade-kicker {
  display: block;
  color: var(--dash-gold);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
}

.trade-command-copy h1,
.trade-panel h2,
.dashboard-bottom-sheet h2 {
  margin: 0.18rem 0 0;
  font-size: clamp(1.02rem, 4vw, 1.35rem);
  line-height: 1.05;
  letter-spacing: 0;
}

.trade-command-copy p {
  margin: 0.15rem 0 0;
  color: var(--dash-muted);
  font-size: 0.76rem;
}

.trade-health-pill {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 34px;
  padding: 0 0.68rem;
  border: 1px solid var(--dash-border);
  border-radius: 999px;
  color: var(--dash-muted);
  font-size: 0.74rem;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.035);
}

.trade-health-dot {
  width: 0.48rem;
  height: 0.48rem;
  border-radius: 999px;
  background: var(--dash-muted);
}

.trade-health-pill.is-live .trade-health-dot {
  background: var(--dash-green);
  box-shadow: 0 0 14px rgba(0, 192, 118, 0.72);
}

.trade-health-pill.is-stale .trade-health-dot {
  background: var(--dash-gold);
}

.trade-account-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 0.75rem;
  overflow: hidden;
  border-radius: 8px;
  background: var(--dash-border);
}

.trade-metric {
  min-width: 0;
  padding: 0.72rem 0.62rem;
  background: #0b0b0b;
}

.trade-metric span,
.forecast-summary-grid span,
.intelligence-list dt {
  display: block;
  color: var(--dash-muted);
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1.15;
}

.trade-metric strong,
.forecast-summary-grid strong,
.intelligence-list dd {
  display: block;
  min-width: 0;
  margin: 0.18rem 0 0;
  overflow: hidden;
  color: var(--dash-ink);
  font-size: clamp(0.86rem, 3.6vw, 1.1rem);
  font-weight: 800;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.positive {
  color: var(--dash-green) !important;
}

.negative {
  color: var(--dash-red) !important;
}


.vault-pulse-card {
  margin-top: 0.75rem;
  background: linear-gradient(180deg, rgba(18, 18, 18, 0.96), rgba(10, 10, 10, 0.96));
}

.vault-pulse-head {
  padding-bottom: 0.68rem;
}

.vault-pulse-body {
  display: grid;
  gap: 0.78rem;
  padding: 0.78rem;
}

.vault-pulse-wallet,
.vault-pulse-performance {
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.075);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.032);
}

.vault-pulse-wallet {
  padding: clamp(0.86rem, 4vw, 1.08rem);
}

.vault-pulse-performance {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(92px, 0.3fr);
  align-items: center;
  gap: 0.72rem;
  padding: 0.78rem;
}

.vault-pulse-label,
.vault-pulse-status,
.vault-pulse-helper,
.vault-pulse-empty,
.vault-pulse-error {
  margin: 0;
}

.vault-pulse-label {
  color: var(--dash-muted);
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1.15;
  text-transform: none;
}

.vault-pulse-balance,
.vault-pulse-change {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--dash-ink);
  line-height: 1.03;
}

.vault-pulse-balance {
  margin-top: 0.38rem;
  font-size: clamp(2rem, 12vw, 3.55rem);
  font-weight: 900;
  letter-spacing: -0.065em;
}

.vault-pulse-status,
.vault-pulse-helper,
.vault-pulse-empty {
  color: var(--dash-muted);
  font-size: 0.75rem;
  line-height: 1.4;
}

.vault-pulse-status {
  margin-top: 0.42rem;
}

.vault-pulse-change {
  margin-top: 0.26rem;
  font-size: clamp(1rem, 4.5vw, 1.32rem);
  font-weight: 850;
  letter-spacing: -0.025em;
}

.vault-pulse-helper {
  margin-top: 0.34rem;
}

.vault-pulse-sparkline {
  width: 100%;
  min-width: 86px;
  height: 44px;
  overflow: visible;
}

.vault-pulse-sparkline path {
  fill: none;
  stroke: rgba(240, 185, 11, 0.82);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.4;
  vector-effect: non-scaling-stroke;
}

.vault-pulse-empty {
  grid-column: 1 / -1;
}

.vault-pulse-error {
  padding: 0.68rem 0.72rem;
  border: 1px solid rgba(255, 77, 79, 0.24);
  border-radius: 8px;
  color: #ffb3b4;
  background: rgba(255, 77, 79, 0.08);
  font-size: 0.76rem;
  line-height: 1.35;
}

@media (min-width: 720px) {
  .vault-pulse-body {
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    align-items: stretch;
  }

  .vault-pulse-error {
    grid-column: 1 / -1;
  }
}

@media (max-width: 430px) {
  .vault-pulse-performance {
    grid-template-columns: minmax(0, 1fr);
  }

  .vault-pulse-sparkline {
    height: 38px;
  }
}

.trade-alert-strip {
  display: grid;
  gap: 0.42rem;
  margin-top: 0.75rem;
  padding: 0.7rem;
  border-radius: 8px;
}

.trade-alert-strip p {
  margin: 0;
  color: #f4d67b;
  font-size: 0.76rem;
}

.trade-layout,
.trade-intelligence-grid,
.ops-accordion {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

.trade-panel {
  min-width: 0;
  border-radius: 8px;
  overflow: clip;
  transform: translateZ(0);
}

.trade-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.78rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.trade-panel-head > div {
  min-width: 0;
}

.trade-panel-head h2 {
  font-size: 0.98rem;
}

.trade-icon-button,
.timeframe-tabs button,
.opportunity-card,
.quick-trade-button,
.dashboard-bottom-sheet .sheet-action {
  min-height: 44px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.trade-icon-button {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--dash-border);
  border-radius: 8px;
  color: var(--dash-ink);
  font-size: 1.15rem;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.045);
  cursor: pointer;
  transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}

.trade-icon-button:active,
.opportunity-card:active,
.timeframe-tabs button:active,
.quick-trade-button:active {
  transform: scale(0.98) translateZ(0);
}

.opportunity-list {
  display: grid;
  max-height: min(52svh, 460px);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.opportunity-card {
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 0.62rem;
  width: 100%;
  padding: 0.74rem 0.78rem;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.065);
  color: var(--dash-ink);
  text-align: left;
  background: transparent;
  cursor: pointer;
}

.opportunity-card.is-active {
  background: rgba(240, 185, 11, 0.08);
  box-shadow: inset 3px 0 0 var(--dash-gold);
}

.opportunity-rank,
.opportunity-score {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.05rem;
  height: 1.6rem;
  border-radius: 999px;
  color: var(--dash-muted);
  font-size: 0.68rem;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.055);
}

.opportunity-main {
  min-width: 0;
}

.opportunity-main strong,
.opportunity-main small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.opportunity-main strong {
  font-size: 0.94rem;
  line-height: 1.1;
}

.opportunity-main small {
  margin-top: 0.18rem;
  color: var(--dash-muted);
  font-size: 0.68rem;
  font-weight: 700;
}

.opportunity-roi {
  font-size: 0.82rem;
  font-weight: 900;
  white-space: nowrap;
}

.opportunity-empty {
  padding: 1rem;
  color: var(--dash-muted);
  font-size: 0.82rem;
}

.dashboard-skeleton {
  position: relative;
  overflow: hidden;
}

.dashboard-skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.055), transparent);
  transform: translateX(-100%);
  animation: dashboardSkeleton 1.4s linear infinite;
}

.chart-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.timeframe-tabs {
  display: flex;
  gap: 0.34rem;
  max-width: 100%;
  padding-bottom: 0.1rem;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.timeframe-tabs::-webkit-scrollbar {
  display: none;
}

.timeframe-tabs button {
  flex: 0 0 auto;
  min-width: 48px;
  padding: 0 0.65rem;
  border: 1px solid var(--dash-border);
  border-radius: 8px;
  color: var(--dash-muted);
  font-size: 0.68rem;
  font-weight: 900;
  background: rgba(255, 255, 255, 0.04);
}

.timeframe-tabs button.is-active {
  border-color: rgba(240, 185, 11, 0.55);
  color: var(--dash-gold);
  background: rgba(240, 185, 11, 0.09);
}

.chart-stage {
  position: relative;
  width: 100%;
  height: clamp(320px, 58svh, 640px);
  background: #050505;
  contain: layout paint size;
}

.chart-canvas-host,
.forecast-overlay,
.chart-loading {
  position: absolute;
  inset: 0;
}

.forecast-overlay {
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.chart-loading {
  display: grid;
  place-items: center;
  color: var(--dash-muted);
  font-size: 0.78rem;
  font-weight: 800;
  background: rgba(5, 5, 5, 0.78);
}

.chart-loading[hidden] {
  display: none;
}

.forecast-summary-grid,
.intelligence-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: rgba(255, 255, 255, 0.07);
}

.forecast-summary-grid div,
.intelligence-list div {
  min-width: 0;
  padding: 0.72rem 0.78rem;
  background: rgba(8, 8, 8, 0.96);
}

.intelligence-list {
  margin: 0;
}

.intelligence-list dd {
  font-size: 0.92rem;
}

.intelligence-list.compact {
  grid-template-columns: minmax(0, 1fr);
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.intelligence-list.compact div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.market-tape {
  display: grid;
  max-height: 310px;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.market-tape-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(3.8rem, 5.4rem) auto;
  gap: 0.75rem;
  align-items: center;
  min-height: 46px;
  padding: 0.68rem 0.78rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.065);
}

.market-tape-row strong,
.market-tape-row span,
.market-tape-row em {
  overflow: hidden;
  font-size: 0.82rem;
  font-style: normal;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-tape-row span {
  color: var(--dash-muted);
  font-variant-numeric: tabular-nums;
}

.market-tape-row .market-tape-spark {
  position: relative;
  display: block;
  width: min(5.4rem, 18vw);
  height: 0.52rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.075);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.045);
}

.market-tape-row .market-tape-spark i {
  display: block;
  width: 14%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(13, 203, 129, 0.26), rgba(13, 203, 129, 0.78));
}

.market-tape-row .market-tape-spark i.is-down {
  margin-left: auto;
  background: linear-gradient(90deg, rgba(246, 70, 93, 0.78), rgba(246, 70, 93, 0.26));
}

.activity-panel {
  grid-column: 1 / -1;
}

.activity-feed {
  display: block;
  height: min(42svh, 360px);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  contain: layout paint;
}

.activity-row {
  display: grid;
  grid-template-columns: 0.65rem minmax(0, 1fr);
  gap: 0.65rem;
  align-items: center;
  min-height: 58px;
  padding: 0.58rem 0.78rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.065);
}

.activity-marker {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  background: var(--dash-gold);
}

.activity-warning .activity-marker {
  background: var(--dash-red);
}

.activity-trade .activity-marker,
.activity-info .activity-marker {
  background: var(--dash-green);
}

.activity-copy {
  min-width: 0;
}

.activity-copy strong,
.activity-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.activity-copy strong {
  font-size: 0.82rem;
  line-height: 1.1;
}

.activity-copy small,
.activity-empty {
  color: var(--dash-muted);
  font-size: 0.72rem;
}

.activity-empty {
  min-height: 58px;
  padding: 1rem;
}

.quick-action-bar {
  position: fixed;
  right: max(0.65rem, var(--safe-right));
  left: max(0.65rem, var(--safe-left));
  bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 0.8rem);
  z-index: 74;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.32rem;
  padding: 0.42rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(14, 14, 14, 0.92);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.45);
  transform: translateZ(0);
}

.quick-action-bar button {
  min-width: 0;
  min-height: 44px;
  padding: 0.38rem 0.18rem;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--dash-muted);
  background: rgba(255, 255, 255, 0.045);
  font-size: 0.66rem;
  font-weight: 900;
  text-transform: uppercase;
  touch-action: manipulation;
}

.quick-action-bar button:active {
  transform: scale(0.98);
}

.quick-action-bar button[data-quick-action="refresh"],
.quick-action-bar button[data-quick-action="fullscreen"] {
  color: var(--dash-gold);
  border-color: rgba(240, 185, 11, 0.18);
}

.quick-action-bar button[data-quick-action="panic"] {
  color: var(--dash-red);
}

.dashboard-bottom-sheet {
  position: fixed;
  right: max(0.65rem, var(--safe-right));
  bottom: 0;
  left: max(0.65rem, var(--safe-left));
  z-index: 90;
  max-height: min(76svh, 640px);
  overflow: hidden auto;
  padding: 0.55rem 0.75rem calc(1rem + var(--safe-bottom));
  border: 1px solid var(--dash-border);
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  background: rgba(16, 16, 16, 0.96);
  transform: translate3d(0, 110%, 0);
  transition: transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: transform;
}

.dashboard-bottom-sheet.is-open {
  transform: translate3d(0, 0, 0);
}

.sheet-handle {
  width: 46px;
  height: 4px;
  margin: 0.2rem auto 0.75rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.25);
}

.sheet-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.75rem;
}

.sheet-action {
  width: 100%;
  margin-top: 0.75rem;
  text-align: center;
}

.sheet-backdrop {
  position: fixed;
  inset: 0;
  z-index: 89;
  background: rgba(0, 0, 0, 0.52);
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease;
}

.sheet-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.ops-accordion details.trade-panel {
  background: var(--dash-panel);
}

.ops-accordion summary {
  min-height: 52px;
  padding: 0.9rem 0.8rem;
  color: var(--dash-ink);
  font-size: 0.9rem;
  font-weight: 900;
  cursor: pointer;
  list-style: none;
}

.ops-accordion summary::-webkit-details-marker {
  display: none;
}

.ops-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.ops-table-wrap table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.ops-table-wrap th,
.ops-table-wrap td {
  padding: 0.72rem 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.065);
  text-align: left;
  white-space: nowrap;
}

.ops-table-wrap th {
  color: var(--dash-muted);
  font-size: 0.68rem;
  text-transform: uppercase;
}

.compact-list {
  display: grid;
  gap: 0.38rem;
  margin: 0;
  padding: 0.85rem 1rem 1rem;
  color: var(--dash-muted);
  font-size: 0.8rem;
}

@media (min-width: 860px) {
  .trading-dashboard-shell {
    width: min(1180px, calc(100vw - 2rem));
    margin: 0 auto;
    padding-inline: 0;
  }

  .trade-layout {
    grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.35fr);
    align-items: start;
  }

  .trade-intelligence-grid {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.75fr);
  }

  .chart-head {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
  }

  .timeframe-tabs {
    justify-content: flex-end;
  }

  .dashboard-bottom-sheet {
    right: max(1rem, calc((100vw - 1180px) / 2));
    left: auto;
    width: min(420px, calc(100vw - 2rem));
    border-radius: 8px 8px 0 0;
  }

  .quick-action-bar {
    right: max(1rem, calc((100vw - 1180px) / 2));
    left: auto;
    width: min(520px, calc(100vw - 2rem));
  }
}

@media (max-width: 430px) {
  .trade-account-strip,
  .forecast-summary-grid,
  .intelligence-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .opportunity-card {
    grid-template-columns: 1.85rem minmax(0, 1fr) auto;
  }

  .opportunity-score {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dashboard-bottom-sheet,
  .sheet-backdrop,
  .trade-icon-button,
  .opportunity-card,
  .timeframe-tabs button,
  .quick-trade-button {
    transition: none;
  }

  .dashboard-skeleton::after {
    animation: none;
  }
}

.trading-dashboard-shell.chart-fullscreen .chart-panel {
  position: fixed;
  inset: calc(var(--safe-top) + 0.5rem) max(0.5rem, var(--safe-right)) calc(var(--safe-bottom) + 0.5rem) max(0.5rem, var(--safe-left));
  z-index: 120;
}

.trading-dashboard-shell.chart-fullscreen .chart-stage {
  height: calc(100svh - var(--safe-top) - var(--safe-bottom) - 9.2rem);
}

body.dashboard-chart-fullscreen {
  overflow: hidden;
}

/* Production PWA hardening: iOS Safari safe areas, keyboard zoom, and overflow control. */
@supports (-webkit-touch-callout: none) {
  input,
  select,
  textarea {
    font-size: max(16px, 1rem);
  }

  .app-body {
    min-height: -webkit-fill-available;
  }

  .bottom-nav,
  .quick-action-bar,
  .dashboard-bottom-sheet {
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
  }
}

.app-body,
.page-shell,
.trading-dashboard-shell {
  max-width: 100vw;
}

.crypto-rail {
  overflow: hidden;
  max-width: 100vw;
}

.crypto-rail-track {
  max-width: 100%;
  min-width: 0;
  contain: layout paint;
}

.crypto-rail-item {
  flex: 0 0 auto;
}

img,
svg,
canvas,
video {
  max-width: 100%;
}

@media (max-width: 430px) {
  .card,
  .wallet-card,
  .vault-card,
  .trade-panel,
  .dashboard-bottom-sheet {
    overflow-wrap: anywhere;
  }
}

.treasury-shell {
  display: grid;
  gap: 1rem;
  width: min(1120px, calc(100vw - 1.2rem));
  margin: 0 auto;
  padding: 0 0 calc(var(--bottom-nav-height, 72px) + var(--safe-bottom, 0px) + 1.2rem);
}

.treasury-hero,
.treasury-panel,
.treasury-actions,
.treasury-metric-strip {
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  background: linear-gradient(145deg, rgba(24, 26, 32, 0.94), rgba(8, 9, 12, 0.96));
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.34);
  backdrop-filter: blur(18px);
}

.treasury-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
}

.treasury-hero h1 {
  margin: 0.18rem 0 0.3rem;
  color: #f7f7f7;
  font-size: clamp(1.7rem, 5vw, 3rem);
  letter-spacing: 0;
}

.treasury-status-pill {
  display: grid;
  gap: 0.1rem;
  min-width: 8.6rem;
  padding: 0.72rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
}

.treasury-status-pill span {
  color: var(--muted, #a5adba);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.treasury-status-pill strong {
  color: #ffffff;
  font-size: 1rem;
}

.treasury-status-healthy {
  border-color: rgba(16, 185, 129, 0.36);
}

.treasury-status-watch {
  border-color: rgba(240, 185, 11, 0.46);
}

.treasury-status-warning,
.treasury-status-low {
  border-color: rgba(240, 185, 11, 0.52);
}

.treasury-status-critical,
.treasury-status-emergency,
.treasury-status-blocked {
  border-color: rgba(239, 68, 68, 0.48);
}

.treasury-funding-card {
  display: grid;
  gap: 0.9rem;
  padding: 1rem;
  border: 1px solid rgba(239, 68, 68, 0.26);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(239, 68, 68, 0.15), rgba(24, 26, 32, 0.94) 38%, rgba(8, 9, 12, 0.98)),
    rgba(8, 9, 12, 0.96);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.34);
}

.treasury-funding-card h2 {
  margin: 0.18rem 0 0.25rem;
  color: #ffffff;
  font-size: 1.25rem;
  letter-spacing: 0;
}

.treasury-funding-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
}

.treasury-funding-grid > div {
  min-width: 0;
  padding: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.2);
}

.treasury-funding-grid span,
.treasury-op-flow strong {
  display: block;
  color: var(--muted, #a5adba);
  font-size: 0.68rem;
  font-weight: 850;
  text-transform: uppercase;
}

.treasury-funding-grid strong {
  display: block;
  margin-top: 0.25rem;
  color: #f7f7f7;
  font-size: 0.98rem;
}

.treasury-address-bar,
.treasury-wallet-address-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.5rem;
  align-items: center;
}

.treasury-address-bar code,
.treasury-wallet-address-row .treasury-address {
  margin: 0;
}

.treasury-copy-button {
  min-width: 4.8rem;
}

.treasury-op-flow {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.treasury-op-flow li {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
  padding: 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.045);
}

.treasury-op-flow span {
  display: inline-grid;
  place-items: center;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 999px;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.12);
  font-size: 0.76rem;
  font-weight: 900;
}

.treasury-op-flow .is-active {
  border-color: rgba(239, 68, 68, 0.42);
  background: rgba(239, 68, 68, 0.09);
}

.treasury-op-flow .is-complete {
  border-color: rgba(16, 185, 129, 0.36);
  background: rgba(16, 185, 129, 0.08);
}

.treasury-op-flow .is-complete span {
  background: rgba(16, 185, 129, 0.72);
}

.treasury-metric-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.1rem;
  padding: 0.4rem;
}

.treasury-metric-strip > div,
.treasury-wallet-grid > div {
  min-width: 0;
  padding: 0.78rem;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.045);
}

.treasury-metric-strip span,
.treasury-wallet-grid dt {
  display: block;
  margin-bottom: 0.28rem;
  color: var(--muted, #a5adba);
  font-size: 0.68rem;
  font-weight: 850;
  text-transform: uppercase;
}

.treasury-metric-strip strong,
.treasury-wallet-grid dd {
  margin: 0;
  color: #f7f7f7;
  font-size: 0.98rem;
  font-weight: 900;
}

.treasury-panel {
  overflow: hidden;
}

.treasury-live-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.8fr);
  gap: 1rem;
}

.treasury-chart-card canvas {
  display: block;
  width: 100%;
  min-height: 220px;
  padding: 0.8rem;
}

.treasury-live-dot {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 0.62rem;
  border: 1px solid rgba(0, 192, 118, 0.34);
  border-radius: 999px;
  color: #9ff2c9;
  background: rgba(0, 192, 118, 0.08);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.treasury-alert-list {
  display: grid;
  gap: 0.55rem;
  max-height: 20rem;
  overflow: auto;
  padding: 0.9rem;
  -webkit-overflow-scrolling: touch;
}

.treasury-alert-item {
  display: grid;
  gap: 0.22rem;
  padding: 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.045);
}

.treasury-alert-item strong {
  color: #f7f7f7;
  font-size: 0.82rem;
}

.treasury-alert-item span {
  color: var(--muted-strong, #c8c8c8);
  font-size: 0.76rem;
}

.treasury-alert-critical,
.treasury-alert-emergency {
  border-color: rgba(239, 68, 68, 0.42);
}

.treasury-alert-warning {
  border-color: rgba(240, 185, 11, 0.42);
}

.treasury-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.95rem 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.075);
}

.treasury-panel-head h2 {
  margin: 0.15rem 0 0;
  color: #f7f7f7;
  font-size: 1.02rem;
}

.treasury-panel-head > strong {
  color: #f0b90b;
  font-size: 1.05rem;
}

.treasury-wallet-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0;
  padding: 1rem;
}

.treasury-address {
  display: block;
  margin: 0 1rem 1rem;
  padding: 0.72rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  color: #d8dee9;
  text-overflow: ellipsis;
  white-space: nowrap;
  background: rgba(0, 0, 0, 0.26);
}

.treasury-wallet-address-row {
  margin: 0 1rem 1rem;
}

.treasury-danger-zone {
  margin: 0 1rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.035);
}

.treasury-danger-zone summary {
  cursor: pointer;
  padding: 0.75rem;
  color: var(--muted-strong, #c8c8c8);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.treasury-danger-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  padding: 0 0.75rem 0.75rem;
}

.treasury-actions {
  position: sticky;
  bottom: calc(var(--bottom-nav-height, 72px) + var(--safe-bottom, 0px) + 0.65rem);
  z-index: 20;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, auto));
  gap: 0.55rem;
  padding: 0.58rem;
}

.treasury-actions form {
  margin: 0;
}

.treasury-actions button,
.treasury-confirm-form input {
  min-height: 42px;
}

.treasury-confirm-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.45rem;
}

.treasury-confirm-form input {
  width: 100%;
  min-width: 0;
  border-radius: 8px;
  font-size: 0.78rem;
}

.treasury-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.treasury-table-wrap table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.treasury-table-wrap th,
.treasury-table-wrap td {
  padding: 0.72rem 0.78rem;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  text-align: left;
  white-space: nowrap;
}

.treasury-table-wrap th {
  color: var(--muted, #a5adba);
  font-size: 0.68rem;
  text-transform: uppercase;
}

.treasury-table-wrap code {
  display: inline-block;
  max-width: 18rem;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: bottom;
}

.treasury-row-funding {
  background: rgba(239, 68, 68, 0.045);
}

.treasury-row-chip,
.treasury-status-chip {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  margin-left: 0.4rem;
  padding: 0 0.45rem;
  border: 1px solid rgba(239, 68, 68, 0.32);
  border-radius: 999px;
  color: #fecaca;
  background: rgba(239, 68, 68, 0.08);
  font-size: 0.64rem;
  font-weight: 850;
  text-transform: uppercase;
}

.treasury-status-chip {
  margin-left: 0;
  border-color: rgba(255, 255, 255, 0.14);
  color: var(--muted-strong, #c8c8c8);
  background: rgba(255, 255, 255, 0.045);
}

.treasury-row-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.treasury-bottom-sheet {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  align-items: end;
  padding: 1rem;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
}

.treasury-bottom-sheet.is-open {
  opacity: 1;
  pointer-events: auto;
}

.treasury-sheet-panel {
  max-height: min(72vh, 42rem);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px 8px 0 0;
  background: linear-gradient(145deg, rgba(24, 26, 32, 0.98), rgba(8, 9, 12, 0.99));
  box-shadow: 0 -20px 60px rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(22px);
  transform: translateY(1rem);
  transition: transform 0.18s ease;
}

.treasury-bottom-sheet.is-open .treasury-sheet-panel {
  transform: translateY(0);
}

@media (max-width: 760px) {
  .treasury-shell {
    width: min(100%, calc(100vw - 0.8rem));
  }

  .treasury-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .treasury-status-pill {
    min-width: 0;
  }

  .treasury-metric-strip,
  .treasury-wallet-grid,
  .treasury-funding-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .treasury-live-grid {
    grid-template-columns: 1fr;
  }

  .treasury-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .treasury-confirm-form,
  .treasury-danger-grid,
  .treasury-address-bar,
  .treasury-wallet-address-row {
    grid-column: 1 / -1;
    grid-template-columns: 1fr;
  }

  .treasury-op-flow {
    grid-template-columns: repeat(5, minmax(2.4rem, 1fr));
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

.sw-update-banner {
  position: fixed;
  right: max(0.75rem, var(--safe-right));
  bottom: calc(var(--bottom-nav-height, 72px) + var(--safe-bottom, 0px) + 0.75rem);
  z-index: 2147482500;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 44px;
  padding: 0.48rem 0.5rem 0.48rem 0.78rem;
  border: 1px solid rgba(240, 185, 11, 0.34);
  border-radius: 8px;
  color: #f5f5f5;
  background: rgba(15, 15, 15, 0.94);
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.5);
}

.sw-update-banner span {
  font-size: 0.78rem;
  font-weight: 800;
}

.sw-update-banner button {
  min-height: 34px;
  border: 0;
  border-radius: 8px;
  padding: 0 0.75rem;
  color: #050505;
  background: var(--accent, #f0b90b);
  font-weight: 900;
}

@keyframes dashboardSkeleton {
  to {
    transform: translateX(100%);
  }
}

/* Backtests PWA vault console */
.backtest-pwa-shell {
  width: min(100%, 1180px);
  margin: 0 auto;
  padding: 0 0 calc(1rem + var(--safe-bottom, env(safe-area-inset-bottom)));
  color: var(--ink);
}

.backtest-pwa-top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.8rem;
  margin-bottom: 0.8rem;
  padding: 0.2rem max(0rem, var(--safe-right, env(safe-area-inset-right))) 0 max(0rem, var(--safe-left, env(safe-area-inset-left)));
}

.backtest-pwa-top h1,
.backtest-panel-head h2,
.backtest-result-head h2 {
  margin: 0.08rem 0 0;
  color: #f4f7fb;
  font-size: 1.32rem;
  line-height: 1.08;
  letter-spacing: 0;
}

.backtest-pwa-top p {
  max-width: 44rem;
  margin: 0.28rem 0 0;
  color: #8f9bae;
  font-size: 0.84rem;
  font-weight: 720;
  line-height: 1.35;
}

.backtest-balance-pill,
.backtest-live-dot,
.backtest-result-chip {
  display: inline-grid;
  gap: 0.05rem;
  flex: 0 0 auto;
  min-height: 2.32rem;
  padding: 0.42rem 0.62rem;
  border: 1px solid rgba(14, 203, 129, 0.28);
  border-radius: 8px;
  color: #0ecb81;
  background: rgba(14, 203, 129, 0.08);
  text-align: center;
}

.backtest-balance-pill span,
.backtest-balance-pill strong {
  display: block;
  font-size: 0.68rem;
  font-weight: 850;
  line-height: 1;
}

.backtest-balance-pill strong {
  color: #e9fff5;
  font-size: 0.92rem;
  font-weight: 950;
}

.backtest-pwa-grid {
  display: grid;
  grid-template-columns: minmax(19rem, 0.74fr) minmax(0, 1.26fr);
  gap: 0.75rem;
  align-items: start;
}

.backtest-control-panel,
.backtest-result-panel,
.backtest-empty-state {
  position: relative;
  overflow: hidden;
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(17, 23, 32, 0.98), rgba(5, 7, 11, 0.99)),
    #05070b;
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.34);
}

.backtest-control-panel,
.backtest-result-panel {
  display: grid;
  gap: 0.78rem;
  padding: 0.82rem;
}

.backtest-panel-head,
.backtest-result-head,
.backtest-panel-mini-head,
.backtest-chart-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-width: 0;
}

.backtest-panel-head {
  align-items: flex-end;
}

.backtest-live-dot {
  min-height: 1.8rem;
  padding: 0.36rem 0.54rem;
  font-size: 0.72rem;
  font-weight: 950;
}

.backtest-symbol-module,
.backtest-timeframe-module,
.backtest-allocation-module,
.backtest-cycle-module,
.backtest-auto-metrics,
.backtest-chart-panel,
.backtest-intel-panel,
.backtest-strategy-panel {
  display: grid;
  gap: 0.55rem;
  min-width: 0;
}

.backtest-symbol-module label,
.backtest-allocation-module,
.backtest-module-label {
  color: #a9b5c8;
  font-size: 0.78rem;
  font-weight: 900;
  line-height: 1.2;
}

.backtest-search-box input,
.backtest-allocation-input-row input {
  width: 100%;
  min-height: 2.85rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  color: #f4f7fb;
  background: rgba(255, 255, 255, 0.045);
  font-size: 16px;
  font-weight: 820;
  box-shadow: none;
}

.backtest-selected-asset,
.backtest-symbol-row {
  display: grid;
  grid-template-columns: 2.24rem minmax(0, 1fr) auto;
  gap: 0.55rem;
  align-items: center;
  min-height: 3.15rem;
  padding: 0.48rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.035);
}

.backtest-token-icon {
  display: grid;
  place-items: center;
  width: 2.18rem;
  height: 2.18rem;
  border-radius: 50%;
  color: #05070b;
  background: linear-gradient(135deg, #f0b90b, #7ca7ff);
  font-size: 0.86rem;
  font-weight: 950;
}

.backtest-selected-asset strong,
.backtest-symbol-copy strong {
  display: block;
  color: #f4f7fb;
  font-size: 0.94rem;
  font-weight: 950;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.backtest-selected-asset small,
.backtest-symbol-copy small,
.backtest-selected-asset em {
  color: #8f9bae;
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 780;
  line-height: 1.15;
}

.backtest-selected-asset em {
  justify-self: end;
  color: #0ecb81;
  white-space: nowrap;
}

.backtest-symbol-list {
  display: grid;
  gap: 0.4rem;
  max-height: 18rem;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.backtest-symbol-row {
  width: 100%;
  cursor: pointer;
  text-align: left;
  box-shadow: none;
  transition: transform 0.14s ease, border-color 0.14s ease, background 0.14s ease;
}

.backtest-symbol-row:active {
  transform: scale(0.99);
}

.backtest-symbol-row.is-active {
  border-color: rgba(14, 203, 129, 0.45);
  background: rgba(14, 203, 129, 0.08);
}

.backtest-symbol-badges {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: end;
  gap: 0.22rem;
}

.backtest-symbol-badges em {
  max-width: 5.6rem;
  padding: 0.18rem 0.34rem;
  border-radius: 6px;
  color: #c5cfdd;
  background: rgba(124, 167, 255, 0.12);
  font-size: 0.64rem;
  font-style: normal;
  font-weight: 850;
  line-height: 1.1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.backtest-load-more,
.backtest-symbol-empty {
  min-height: 2.4rem;
  border-radius: 8px;
  color: #a9b5c8;
  background: rgba(255, 255, 255, 0.045);
  font-size: 0.78rem;
  font-weight: 850;
  text-align: center;
}

.backtest-skeleton-row {
  height: 3.1rem;
  border-radius: 8px;
  background: linear-gradient(90deg, rgba(255,255,255,0.04), rgba(255,255,255,0.09), rgba(255,255,255,0.04));
  background-size: 220% 100%;
  animation: backtestSkeleton 1.1s linear infinite;
}

.backtest-timeframe-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.38rem;
}

.backtest-timeframe-grid button,
.backtest-chart-tabs button,
.backtest-allocation-input-row button {
  min-height: 2.62rem;
  border-radius: 8px;
  color: #a9b5c8;
  background: rgba(255, 255, 255, 0.045);
  box-shadow: none;
  font-size: 0.76rem;
  font-weight: 950;
  letter-spacing: 0;
  transition: transform 0.14s ease, border-color 0.14s ease, background 0.14s ease, color 0.14s ease;
}

.backtest-timeframe-grid button.is-active,
.backtest-chart-tabs button.is-active,
.backtest-allocation-input-row button {
  color: #0ecb81;
  border-color: rgba(14, 203, 129, 0.45);
  background: rgba(14, 203, 129, 0.1);
}

.backtest-timeframe-grid button:active,
.backtest-chart-tabs button:active,
.backtest-allocation-input-row button:active,
.backtest-run-button:active {
  transform: scale(0.99);
}

.backtest-allocation-card {
  display: grid;
  gap: 0.55rem;
  margin-top: 0.42rem;
  padding: 0.58rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
}

.backtest-allocation-input-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 4.25rem;
  gap: 0.42rem;
}

.backtest-allocation-input-row input[type="number"]::-webkit-outer-spin-button,
.backtest-allocation-input-row input[type="number"]::-webkit-inner-spin-button {
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
}

.backtest-allocation-input-row input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

.backtest-conversion-preview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  min-height: 2rem;
  color: #8f9bae;
  font-size: 0.74rem;
  font-weight: 800;
}

.backtest-conversion-preview strong {
  color: #f4f7fb;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
  text-align: right;
}

.backtest-allocation-card input[type="range"] {
  width: 100%;
  accent-color: #0ecb81;
}

.backtest-cycle-card {
  display: grid;
  gap: 0.18rem;
  min-height: 6.7rem;
  padding: 0.7rem;
  border: 1px solid rgba(240, 185, 11, 0.25);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(240, 185, 11, 0.12), rgba(14, 203, 129, 0.055)),
    rgba(255, 255, 255, 0.035);
}

.backtest-cycle-card span {
  color: #f0b90b;
  font-size: 1.18rem;
  font-weight: 950;
  line-height: 1;
}

.backtest-cycle-card strong {
  color: #f4f7fb;
  font-size: 0.86rem;
  font-weight: 950;
  line-height: 1.1;
}

.backtest-cycle-card small,
.backtest-cycle-card em {
  color: #a9b5c8;
  font-size: 0.76rem;
  font-style: normal;
  font-weight: 780;
  line-height: 1.3;
}

.backtest-auto-metric-grid,
.backtest-metric-strip,
.backtest-intel-grid {
  display: grid;
  gap: 0.45rem;
}

.backtest-auto-metric-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.backtest-auto-metric-grid div,
.backtest-metric-strip div,
.backtest-intel-list div {
  min-width: 0;
  min-height: 3.1rem;
  display: grid;
  gap: 0.16rem;
  align-content: center;
  padding: 0.52rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.035);
}

.backtest-auto-metric-grid span,
.backtest-metric-strip span,
.backtest-intel-list span {
  color: #7f8ca1;
  font-size: 0.66rem;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.backtest-auto-metric-grid strong,
.backtest-metric-strip strong,
.backtest-intel-list strong {
  min-width: 0;
  color: #f4f7fb;
  font-size: 0.9rem;
  font-weight: 950;
  line-height: 1.08;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.backtest-metric-strip {
  grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
}

.backtest-metric-strip strong {
  font-size: 1.02rem;
}

.backtest-metric-strip strong.positive {
  color: #0ecb81;
}

.backtest-metric-strip strong.negative {
  color: #f6465d;
}

.backtest-chart-panel,
.backtest-intel-panel,
.backtest-strategy-panel {
  padding: 0.68rem;
  border: 1px solid rgba(255, 255, 255, 0.085);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.026);
}

.backtest-chart-toolbar {
  align-items: end;
}

.backtest-chart-toolbar strong,
.backtest-panel-mini-head strong {
  color: #f4f7fb;
  font-size: 0.88rem;
  font-weight: 950;
  line-height: 1.1;
}

.backtest-chart-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(3.2rem, 1fr));
  gap: 0.32rem;
  min-width: min(100%, 17rem);
}

.backtest-chart-tabs button {
  min-height: 2.2rem;
  padding: 0.35rem 0.42rem;
}

.backtest-chart-stage {
  position: relative;
  height: 22rem;
  min-height: 22rem;
  overflow: hidden;
  border-radius: 8px;
  background: #05070b;
  contain: layout paint;
}

.backtest-lightweight-host,
.backtest-chart-stage canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.backtest-chart-stage canvas {
  pointer-events: none;
}

.backtest-intel-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.backtest-panel-mini-head span {
  color: #a9b5c8;
  font-size: 0.78rem;
  font-weight: 950;
}

.backtest-intel-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}

.backtest-strategy-list {
  display: grid;
  gap: 0.4rem;
}

.backtest-strategy-row {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.65rem;
  align-items: center;
  min-height: 3.1rem;
  padding: 0.52rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.035);
}

.backtest-strategy-row strong,
.backtest-strategy-row span {
  position: relative;
  z-index: 1;
  color: #f4f7fb;
  font-size: 0.84rem;
  font-weight: 950;
}

.backtest-strategy-row small {
  position: relative;
  z-index: 1;
  display: block;
  margin-top: 0.16rem;
  color: #8f9bae;
  font-size: 0.7rem;
  font-weight: 780;
}

.backtest-strategy-row i {
  position: absolute;
  inset: auto auto 0 0;
  width: calc(var(--weight, 0) * 100%);
  height: 2px;
  background: #0ecb81;
}

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

.backtest-strategy-row.is-disabled i {
  background: #7f8ca1;
}

.backtest-run-button {
  width: 100%;
  min-height: 3.12rem;
  border-radius: 8px;
  font-size: 0.94rem;
  font-weight: 950;
}

.backtest-form-status {
  min-height: 1.15rem;
  color: #8f9bae;
  font-size: 0.78rem;
  font-weight: 800;
}

.backtest-form-status[data-state="success"] {
  color: #0ecb81;
}

.backtest-form-status[data-state="error"] {
  color: #f6465d;
}

.backtest-empty-state {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 0.45rem;
  min-height: 24rem;
  padding: 1rem;
  color: #8f9bae;
  text-align: center;
}

.backtest-empty-state strong {
  color: #f4f7fb;
}

.backtest-empty-state small {
  max-width: 18rem;
  color: #8f9bae;
  font-size: 0.78rem;
  font-weight: 750;
}

.backtest-result-panel.is-loading .backtest-metric-strip div,
.backtest-result-panel.is-loading .backtest-chart-panel,
.backtest-result-panel.is-loading .backtest-intel-panel,
.backtest-result-panel.is-loading .backtest-strategy-panel {
  opacity: 0.58;
}

@media (max-width: 1080px) {
  .backtest-pwa-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .backtest-pwa-shell {
    width: min(100%, calc(100vw - 0.7rem));
  }

  .backtest-pwa-top {
    align-items: stretch;
    flex-direction: column;
  }

  .backtest-control-panel,
  .backtest-result-panel {
    padding: 0.68rem;
  }

  .backtest-metric-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .backtest-intel-grid {
    grid-template-columns: 1fr;
  }

  .backtest-chart-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .backtest-chart-tabs {
    min-width: 0;
  }

  .backtest-chart-stage {
    height: 19rem;
    min-height: 19rem;
  }
}

@media (max-width: 430px) {
  .backtest-timeframe-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .backtest-selected-asset,
  .backtest-symbol-row {
    grid-template-columns: 2.1rem minmax(0, 1fr);
  }

  .backtest-selected-asset em,
  .backtest-symbol-badges {
    grid-column: 2;
    justify-self: start;
  }

  .backtest-intel-list,
  .backtest-auto-metric-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .backtest-symbol-row,
  .backtest-timeframe-grid button,
  .backtest-chart-tabs button,
  .backtest-allocation-input-row button,
  .backtest-run-button,
  .backtest-skeleton-row {
    animation: none !important;
    transition: none !important;
  }
}

@keyframes backtestSkeleton {
  to {
    background-position: -220% 0;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.vault-cycle-signal-mini {
  display: grid;
  gap: 0.56rem;
  padding: 0.68rem;
  border: 1px solid rgba(120, 180, 255, 0.16);
  border-radius: 0.5rem;
  background: rgba(9, 15, 24, 0.72);
}

.vault-cycle-signal-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.45rem;
  align-items: center;
}

.vault-cycle-signal-row:first-child {
  grid-template-columns: minmax(0, 1fr) auto;
}

.vault-cycle-signal-row > div {
  min-width: 0;
}

.vault-cycle-signal-row span:not(.metric-pill),
.vault-cycle-status-item span,
.vault-forecast-score span,
.vault-horizon-metrics dt,
.vault-horizon-source {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.vault-cycle-signal-row strong,
.vault-cycle-status-item strong,
.vault-forecast-score strong {
  display: block;
  margin-top: 0.14rem;
  color: var(--ink);
  font-size: 0.94rem;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.vault-cycle-signal-mini p,
.vault-forecast-summary-copy {
  margin: 0;
  color: var(--muted-strong);
  font-size: 0.82rem;
  line-height: 1.45;
}

.vault-cycle-risk-mini,
.vault-risk-note-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.38rem;
}

.vault-cycle-risk-mini span,
.vault-risk-note {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.3rem 0.52rem;
  border: 1px solid rgba(245, 190, 90, 0.22);
  border-radius: 0.45rem;
  color: #f7d68b;
  background: rgba(245, 190, 90, 0.08);
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.2;
}

.vault-cycle-status-grid,
.vault-forecast-summary-grid,
.vault-horizon-matrix {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.55rem;
}

.vault-cycle-status-item,
.vault-forecast-score,
.vault-horizon-card {
  min-width: 0;
  min-height: 44px;
  padding: 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.095);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.vault-cycle-alert {
  display: grid;
  gap: 0.22rem;
  min-height: 44px;
  padding: 0.7rem;
  border: 1px solid rgba(255, 102, 102, 0.28);
  border-radius: 0.5rem;
  color: #ffb3b3;
  background: rgba(255, 74, 74, 0.08);
}

.vault-cycle-alert strong {
  color: #ffd3d3;
}

.vault-forecast-card {
  scroll-margin-top: calc(5rem + var(--safe-top));
}

.vault-forecast-summary-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.readiness-ready {
  color: var(--success);
  border-color: rgba(32, 214, 139, 0.32);
  background: rgba(32, 214, 139, 0.09);
}

.readiness-caution {
  color: #f7d68b;
  border-color: rgba(245, 190, 90, 0.28);
  background: rgba(245, 190, 90, 0.08);
}

.readiness-notReady {
  color: #ffb3b3;
  border-color: rgba(255, 102, 102, 0.28);
  background: rgba(255, 74, 74, 0.08);
}

.vault-horizon-card {
  display: grid;
  gap: 0.52rem;
}

.vault-horizon-card[data-direction="bullish"] {
  border-color: rgba(32, 214, 139, 0.25);
}

.vault-horizon-card[data-direction="bearish"] {
  border-color: rgba(255, 102, 102, 0.24);
}

.vault-horizon-card[data-quality="stale"],
.vault-horizon-card[data-quality="insufficient"] {
  border-style: dashed;
}

.vault-horizon-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
}

.vault-horizon-card-head strong {
  color: var(--ink);
  font-size: 1rem;
}

.vault-horizon-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  margin: 0;
}

.vault-horizon-metrics div {
  min-width: 0;
}

.vault-horizon-metrics dd {
  margin: 0.12rem 0 0;
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 850;
  overflow-wrap: anywhere;
}

.vault-horizon-source {
  text-transform: none;
}

.vault-explainability-list {
  display: grid;
  gap: 0.48rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.vault-explainability-list li {
  min-height: 44px;
  padding: 0.68rem 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.095);
  border-radius: 0.5rem;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.035);
  line-height: 1.35;
}

@media (min-width: 520px) {
  .vault-cycle-status-grid,
  .vault-horizon-matrix {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vault-cycle-signal-row:not(:first-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 860px) {
  .vault-cycle-status-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .vault-horizon-matrix {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 430px) {
  .vault-cycle-signal-row:first-child,
  .vault-forecast-summary-grid {
    grid-template-columns: 1fr;
  }

  .vault-cycle-signal-mini,
  .vault-cycle-status-item,
  .vault-forecast-score,
  .vault-horizon-card {
    padding: 0.62rem;
  }

  .vault-cycle-risk-mini span,
  .vault-risk-note {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .vault-cycle-signal-mini,
  .vault-horizon-card,
  .vault-explainability-list li {
    animation: none !important;
    transition: none !important;
  }
}

/* AlgVault 2026 light iPhone PWA polish. Keep this section last so it normalizes
   older dark console styles without changing route or data behavior. */
:root {
  --font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, "Helvetica Neue", Arial, sans-serif;
  --safe-top: env(safe-area-inset-top);
  --safe-right: env(safe-area-inset-right);
  --safe-bottom: env(safe-area-inset-bottom);
  --safe-left: env(safe-area-inset-left);
  --bg: #f8fcff;
  --bg-soft: #edf8ff;
  --panel: #ffffff;
  --panel-strong: #fafdff;
  --panel-elevated: #ffffff;
  --ink: #0f172a;
  --muted: #64748b;
  --muted-strong: #334155;
  --accent: #0ea5e9;
  --accent-strong: #0284c7;
  --accent-soft: #e0f2fe;
  --accent-ink: #ffffff;
  --success: #22c55e;
  --success-strong: #15803d;
  --success-soft: #dcfce7;
  --danger: #dc2626;
  --warning: #d97706;
  --border: rgba(15, 23, 42, 0.1);
  --border-strong: rgba(14, 165, 233, 0.32);
  --shadow: 0 18px 48px rgba(14, 165, 233, 0.12), 0 1px 2px rgba(15, 23, 42, 0.04);
  --shadow-soft: 0 10px 28px rgba(14, 165, 233, 0.1);
  --radius-lg: 0.9rem;
  --radius-md: 0.72rem;
  --radius-sm: 0.55rem;
  --tap-size: 48px;
  --bottom-nav-height: 76px;
  --motion-fast: 140ms;
  --motion-base: 200ms;
  --motion-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
}

html {
  background: var(--bg);
  color-scheme: light;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body,
.app-body {
  background:
    radial-gradient(circle at 12% -10%, rgba(56, 189, 248, 0.2), transparent 28rem),
    radial-gradient(circle at 92% 4%, rgba(134, 239, 172, 0.16), transparent 26rem),
    linear-gradient(180deg, #f8fcff 0%, #f9fbff 46%, #eef8ff 100%);
  color: var(--ink);
  font-family: var(--font-stack);
  line-height: 1.5;
  overscroll-behavior-y: auto;
}

body::before {
  opacity: 0.32;
  background-image:
    linear-gradient(rgba(14, 165, 233, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(14, 165, 233, 0.045) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.72), transparent 72%);
}

body * {
  letter-spacing: 0;
}

::selection {
  color: #082f49;
  background: #bae6fd;
}

a {
  color: var(--accent-strong);
}

.site-header,
.page-shell,
.banner,
.flash-stack,
.crypto-rail {
  width: min(1180px, calc(100vw - 2rem));
}

.site-header {
  padding-top: calc(0.72rem + var(--safe-top));
}

.site-header::before {
  background: rgba(248, 252, 255, 0.86);
  border-bottom-color: rgba(14, 165, 233, 0.14);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  backdrop-filter: blur(18px) saturate(1.08);
}

.site-header.is-scrolled::before,
.app-body.nav-open .site-header::before {
  background: rgba(255, 255, 255, 0.94);
  border-bottom-color: rgba(14, 165, 233, 0.24);
}

.brand-lockup {
  color: var(--ink);
  text-decoration: none;
}

.brand-mark,
.vault-provider-mark,
.coin-icon {
  color: #ffffff;
  background: linear-gradient(145deg, var(--accent) 0%, #38bdf8 58%, var(--success) 100%);
  box-shadow: 0 12px 28px rgba(14, 165, 233, 0.22);
}

.brand-copy strong,
.nav-panel-head strong,
.page-heading h1,
.hero-copy h1,
.card h2,
.card h3,
.wallet-section-heading h2,
.vault-title-row h1,
.vault-section-heading h2,
.trade-panel h2,
.risk-sticky-hero h1,
.risk-section-head h2,
.treasury-hero h1,
.treasury-panel-head h2,
.backtest-pwa-top h1,
.backtest-panel-head h2,
.backtest-result-head h2 {
  color: var(--ink);
}

.brand-copy small,
.eyebrow,
.card-kicker,
.nav-section-title,
.muted,
.page-heading p,
.hero-copy p,
.mode-chip,
.wallet-count,
.wallet-pagination-summary,
.risk-sticky-hero p,
.risk-section-head p,
.treasury-status-pill span,
.treasury-metric-strip span,
.treasury-wallet-grid dt {
  color: var(--muted);
}

.topnav-icon,
.nav-icon {
  stroke-width: 2;
}

button,
.button-link,
.nav a,
.pagination-button,
.pagination-current,
.risk-segment,
.risk-chip-rail button,
.risk-secondary-action,
.risk-step-button,
.risk-icon-button,
.risk-load-more,
.vault-max-button {
  min-height: var(--tap-size);
  border-color: var(--border);
  border-radius: var(--radius-md);
  color: var(--ink);
  background: #ffffff;
  box-shadow: none;
  transition:
    transform var(--motion-fast) var(--motion-ease),
    border-color var(--motion-fast) ease,
    background var(--motion-fast) ease,
    color var(--motion-fast) ease,
    opacity var(--motion-fast) ease;
  touch-action: manipulation;
}

button.primary,
.button-link.primary,
.nav a.primary,
.vault-start-button,
.risk-segment.is-active,
.risk-chip-rail button.is-active,
.sw-update-banner button {
  color: #ffffff;
  border-color: rgba(2, 132, 199, 0.34);
  background: linear-gradient(180deg, #38bdf8 0%, #0ea5e9 100%);
  box-shadow: 0 12px 26px rgba(14, 165, 233, 0.2);
}

.secondary,
.nav-toggle,
.app-nav .nav-link,
.app-nav .nav-form button {
  color: var(--muted-strong);
  border-color: rgba(14, 165, 233, 0.16);
  background: rgba(255, 255, 255, 0.78);
}

button:focus-visible,
.button-link:focus-visible,
.nav a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid rgba(14, 165, 233, 0.42);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px rgba(34, 197, 94, 0.12);
}

button:disabled,
.button-link.is-disabled,
.pagination-button.is-disabled {
  cursor: not-allowed;
  opacity: 0.55;
  transform: none;
}

input,
select,
textarea {
  color: var(--ink);
  border-color: rgba(14, 165, 233, 0.2);
  background: #ffffff;
  box-shadow: inset 0 1px 0 rgba(14, 165, 233, 0.03);
}

input::placeholder,
textarea::placeholder {
  color: #94a3b8;
}

label {
  color: var(--muted-strong);
}

.banner,
.flash,
.card,
.wallet-card,
.vault-card,
.metric-card,
.wallet-total-card,
.wallet-activity-card,
.wallet-asset-card,
.vault-start-card,
.vault-active-card,
.vault-activity-card,
.vault-form-section,
.vault-exchange-card,
.vault-cycle-card,
.vault-cycle-signal-mini,
.vault-cycle-status-item,
.vault-forecast-score,
.vault-horizon-card,
.trade-panel,
.risk-sticky-hero,
.risk-mini-panel,
.risk-panel,
.risk-control-card,
.risk-audit-card,
.risk-diagnostics-drawer,
.risk-confirm-modal,
.treasury-hero,
.treasury-panel,
.treasury-actions,
.treasury-metric-strip,
.treasury-status-pill,
.treasury-alert-item,
.treasury-wallet-grid > div,
.backtest-panel,
.backtest-result-card,
.backtest-chart-panel,
.portfolio-balance-card,
.dashboard-kpi-card {
  color: var(--ink);
  border-color: rgba(14, 165, 233, 0.16);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(250, 253, 255, 0.95));
  box-shadow: var(--shadow);
}

.card::before,
.wallet-total-card::before,
.wallet-activity-card::before,
.vault-command-card::before,
.vault-active-card::before,
.vault-activity-card::before {
  background: linear-gradient(90deg, transparent, rgba(56, 189, 248, 0.34), transparent);
}

.wallet-balance-stats div,
.wallet-activity-row,
.vault-routing-summary,
.vault-readiness-state,
.vault-risk-summary,
.vault-routing-row,
.vault-diagnostics-panel,
.vault-risk-module .checkbox-row,
.vault-sticky-actions .checkbox-row,
.risk-slippage-grid div,
.risk-latency-list div,
.risk-exchange-list span,
.risk-audit-meta span,
.treasury-address {
  border-color: rgba(14, 165, 233, 0.13);
  color: var(--muted-strong);
  background: rgba(224, 242, 254, 0.32);
}

.status-pill,
.mode-chip,
.risk-soft-chip,
.treasury-live-dot {
  border-color: rgba(14, 165, 233, 0.18);
  color: var(--accent-strong);
  background: rgba(224, 242, 254, 0.72);
}

.positive,
.status-live,
.risk-tone-success,
.risk-severity-success,
.vault-exchange-card.is-ready,
.vault-result-sheet.is-success {
  border-color: rgba(34, 197, 94, 0.28);
  color: var(--success-strong);
}

.negative,
.danger-link,
.danger-button,
.risk-tone-error,
.risk-severity-error,
.vault-result-sheet.is-error {
  border-color: rgba(220, 38, 38, 0.3);
}

.danger-link,
.danger-button {
  color: #ffffff;
  background: linear-gradient(180deg, #ef4444, #dc2626);
}

.app-nav {
  border-color: rgba(14, 165, 233, 0.2);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 24px 72px rgba(14, 165, 233, 0.18), 0 10px 30px rgba(15, 23, 42, 0.08);
  -webkit-backdrop-filter: blur(20px) saturate(1.06);
  backdrop-filter: blur(20px) saturate(1.06);
}

.nav-backdrop {
  background: rgba(15, 23, 42, 0.26);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.app-nav .nav-link:hover,
.app-nav .nav-form button:hover,
.app-nav .nav-link.active,
.app-nav .nav-form button:active {
  border-color: rgba(14, 165, 233, 0.26);
  color: var(--accent-strong);
  background: rgba(224, 242, 254, 0.72);
  box-shadow: none;
}

.mode-dot {
  background: var(--success);
  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.14);
}

.crypto-rail {
  background: rgba(248, 252, 255, 0.82);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}

.crypto-rail::before {
  background: rgba(248, 252, 255, 0.86);
  border-bottom-color: rgba(14, 165, 233, 0.12);
}

.crypto-rail-item {
  color: var(--ink);
  border-color: rgba(14, 165, 233, 0.14);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 8px 22px rgba(14, 165, 233, 0.08);
}

.page-shell {
  padding-right: max(1rem, var(--safe-right));
  padding-left: max(1rem, var(--safe-left));
  padding-bottom: max(2rem, calc(var(--safe-bottom) + 2rem));
}

.intro-loader {
  color: var(--ink);
  background:
    radial-gradient(circle at 50% 24%, rgba(56, 189, 248, 0.22), transparent 34%),
    radial-gradient(circle at 70% 64%, rgba(134, 239, 172, 0.16), transparent 30%),
    linear-gradient(180deg, #f8fcff 0%, #ffffff 54%, #eef8ff 100%);
  transition: opacity 260ms ease, visibility 260ms ease;
}

.app-ready .intro-loader {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.intro-loader__ambient {
  opacity: 0.5;
  background-image:
    linear-gradient(rgba(14, 165, 233, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(14, 165, 233, 0.045) 1px, transparent 1px);
  background-size: 42px 42px;
  animation: introAmbientFade 900ms var(--motion-ease) both;
}

.intro-loader__panel {
  width: min(100%, 21rem);
  gap: 0.92rem;
  padding: 1.25rem;
  border: 1px solid rgba(14, 165, 233, 0.18);
  border-radius: 1.1rem;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 24px 70px rgba(14, 165, 233, 0.18), 0 1px 2px rgba(15, 23, 42, 0.04);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  backdrop-filter: blur(18px) saturate(1.08);
  animation: introPanelIn 760ms var(--motion-ease) both;
}

.app-ready .intro-loader__panel {
  opacity: 0;
  transform: translateY(0.25rem) scale(0.985);
}

.intro-loader__ring {
  background: conic-gradient(from 0deg, transparent 0deg, rgba(14, 165, 233, 0.1) 58deg, rgba(14, 165, 233, 0.95) 104deg, transparent 148deg, transparent 360deg);
  animation: introSpin 920ms linear both;
}

.intro-loader__ring--secondary {
  background: conic-gradient(from 180deg, transparent 0deg, rgba(34, 197, 94, 0.1) 76deg, rgba(34, 197, 94, 0.76) 126deg, transparent 170deg, transparent 360deg);
  animation-duration: 1060ms;
  animation-direction: reverse;
}

.intro-loader__vault {
  overflow: hidden;
  border-color: rgba(14, 165, 233, 0.28);
  border-radius: 1rem;
  background: linear-gradient(145deg, #ffffff 0%, #e0f2fe 54%, #dcfce7 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.72), 0 14px 30px rgba(14, 165, 233, 0.18);
}

.intro-loader__vault::after {
  content: "";
  position: absolute;
  inset: -25% auto -25% -65%;
  width: 45%;
  transform: skewX(-18deg) translateX(0);
  background: rgba(255, 255, 255, 0.55);
  animation: introVaultShimmer 880ms var(--motion-ease) both;
}

.intro-loader__vault-door {
  border-color: rgba(15, 23, 42, 0.3);
  background:
    linear-gradient(rgba(15, 23, 42, 0.28), rgba(15, 23, 42, 0.28)) center / 1px 100% no-repeat,
    linear-gradient(90deg, rgba(15, 23, 42, 0.28), rgba(15, 23, 42, 0.28)) center / 100% 1px no-repeat;
}

.intro-loader__vault-dial {
  border-color: #0f172a;
  background: #38bdf8;
  animation: introDial 860ms var(--motion-ease) both;
}

.intro-loader__eyebrow {
  color: var(--accent-strong);
}

.intro-loader__copy strong {
  color: var(--ink);
}

.intro-loader__copy small {
  color: var(--muted);
}

.intro-loader__bar {
  height: 4px;
  background: rgba(14, 165, 233, 0.12);
}

.intro-loader__bar span {
  background: linear-gradient(90deg, transparent, var(--accent), var(--success));
  animation: introProgress 880ms var(--motion-ease) both;
}

.intro-loader__retry {
  color: #ffffff;
  background: linear-gradient(180deg, #38bdf8, #0ea5e9);
}

@keyframes introPanelIn {
  from {
    opacity: 0;
    transform: translateY(0.45rem) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes introAmbientFade {
  from {
    opacity: 0;
    transform: scale(1.02);
  }
  to {
    opacity: 0.5;
    transform: scale(1);
  }
}

@keyframes introVaultShimmer {
  from {
    opacity: 0;
    transform: skewX(-18deg) translateX(0);
  }
  34% {
    opacity: 0.7;
  }
  to {
    opacity: 0;
    transform: skewX(-18deg) translateX(420%);
  }
}

@keyframes introSpin {
  to {
    transform: rotate(270deg);
  }
}

@keyframes introProgress {
  from {
    transform: translateX(-110%);
  }
  to {
    transform: translateX(160%);
  }
}

@keyframes introDial {
  from {
    transform: rotate(-24deg) scale(0.96);
  }
  to {
    transform: rotate(64deg) scale(1);
  }
}

table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--ink);
  font-size: 0.9rem;
  line-height: 1.45;
}

.card:has(table),
.ops-table-wrap,
.treasury-table-wrap,
.table-scroll-wrap {
  max-width: 100%;
  overflow-x: auto;
  border-radius: var(--radius-md);
  -webkit-overflow-scrolling: touch;
}

table th,
table td {
  min-height: 44px;
  padding: 0.82rem 0.9rem;
  border-bottom: 1px solid rgba(14, 165, 233, 0.12);
  color: var(--ink);
  line-height: 1.42;
  vertical-align: middle;
  white-space: normal;
  overflow-wrap: anywhere;
}

table thead th,
.ops-table-wrap th,
.treasury-table-wrap th {
  color: #475569;
  font-size: 0.76rem;
  font-weight: 850;
  text-align: left;
  text-transform: uppercase;
  background: rgba(224, 242, 254, 0.56);
}

table tbody tr {
  background: rgba(255, 255, 255, 0.72);
}

table tbody tr:nth-child(even) {
  background: rgba(248, 252, 255, 0.86);
}

table .is-numeric,
table td[data-label*="Price"],
table td[data-label*="Amount"],
table td[data-label*="Balance"],
table td[data-label*="Score"],
table td[data-label*="PnL"],
table td[data-label*="Qty"],
table td[data-label*="Size"] {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

table code {
  color: #0f172a;
  background: rgba(224, 242, 254, 0.64);
}

table button,
table .button-link,
.table-actions button,
.table-actions .button-link {
  min-height: 44px;
  padding: 0.58rem 0.78rem;
}

table.is-wide-table,
.ops-table-wrap table,
.treasury-table-wrap table {
  min-width: min(760px, calc(100vw + 16rem));
  font-size: 0.88rem;
}

table.is-stacked tr {
  border-color: rgba(14, 165, 233, 0.16);
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(14, 165, 233, 0.1);
}

table.is-stacked td {
  gap: 0.24rem;
  min-height: 0;
  padding: 0;
}

table.is-stacked td::before {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0;
}

table.is-stacked td.is-numeric {
  text-align: left;
  align-items: start;
}

.empty-state,
.wallet-empty-state,
.trade-empty-state,
.risk-audit-empty,
.vault-routing-empty {
  border-color: rgba(14, 165, 233, 0.22);
  color: var(--muted);
  background: rgba(224, 242, 254, 0.36);
}

.risk-pulse {
  box-shadow: none;
  animation: none;
}

.risk-audit-loader span,
.chart-loading,
.backtest-skeleton {
  animation: none;
  background: linear-gradient(90deg, rgba(224, 242, 254, 0.46), rgba(186, 230, 253, 0.72), rgba(224, 242, 254, 0.46));
}

.sw-update-banner {
  color: var(--ink);
  border-color: rgba(14, 165, 233, 0.22);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 16px 42px rgba(14, 165, 233, 0.16);
}

@media (hover: hover) and (pointer: fine) {
  button:hover,
  .button-link:hover,
  .nav a:hover {
    transform: translateY(-1px);
    border-color: var(--border-strong);
    box-shadow: var(--shadow-soft);
  }

  .card:hover,
  .wallet-card:hover,
  .vault-card:hover,
  .trade-panel:hover,
  .risk-panel:hover,
  .treasury-panel:hover {
    transform: translateY(-1px);
  }

  table tbody tr:hover {
    background: rgba(224, 242, 254, 0.72);
  }
}

@media (hover: none) {
  button:hover,
  .button-link:hover,
  .nav a:hover,
  .card:hover,
  .wallet-card:hover,
  .vault-card:hover,
  .trade-panel:hover,
  .risk-panel:hover,
  .treasury-panel:hover {
    transform: none;
    box-shadow: inherit;
  }
}

@media (max-width: 760px) {
  .site-header,
  .page-shell,
  .banner,
  .flash-stack,
  .crypto-rail {
    width: min(100% - 1rem, 760px);
  }

  .page-shell {
    padding-right: max(0.85rem, var(--safe-right));
    padding-left: max(0.85rem, var(--safe-left));
    padding-bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 1.25rem);
  }

  .bottom-nav {
    min-height: calc(var(--bottom-nav-height) + var(--safe-bottom));
    padding: 0.5rem max(0.58rem, var(--safe-right)) calc(0.5rem + var(--safe-bottom)) max(0.58rem, var(--safe-left));
    border-top-color: rgba(14, 165, 233, 0.16);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 -14px 38px rgba(14, 165, 233, 0.12);
    -webkit-backdrop-filter: blur(18px) saturate(1.08);
    backdrop-filter: blur(18px) saturate(1.08);
  }

  .bottom-nav .bottom-nav-item {
    min-height: 3.35rem;
    color: var(--muted);
  }

  .bottom-nav .bottom-nav-item.active {
    color: var(--accent-strong);
    border-color: rgba(14, 165, 233, 0.22);
    background: rgba(224, 242, 254, 0.72);
    box-shadow: none;
  }

  .bottom-nav .bottom-nav-item.active::before {
    background: linear-gradient(90deg, var(--accent), var(--success));
    box-shadow: none;
  }

  .app-nav {
    bottom: calc(0.75rem + var(--safe-bottom));
    max-height: min(78svh, 680px);
  }

  table.is-wide-table {
    min-width: 680px;
  }

  table th,
  table td {
    padding: 0.78rem 0.82rem;
    font-size: 0.88rem;
  }
}

@media (max-width: 430px) {
  .page-shell {
    padding-right: max(0.72rem, var(--safe-right));
    padding-left: max(0.72rem, var(--safe-left));
  }

  .card,
  .wallet-card,
  .vault-card,
  .trade-panel,
  .risk-panel,
  .treasury-panel {
    border-radius: var(--radius-md);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .intro-loader__bar span {
    width: 100%;
    opacity: 0.72;
    transform: none;
  }
}

body:has(.balance-home),
body:has(.trading-dashboard-shell) {
  background:
    radial-gradient(circle at 12% -10%, rgba(56, 189, 248, 0.2), transparent 28rem),
    radial-gradient(circle at 92% 4%, rgba(134, 239, 172, 0.16), transparent 26rem),
    linear-gradient(180deg, #f8fcff 0%, #f9fbff 46%, #eef8ff 100%);
  color: var(--ink);
  overscroll-behavior-y: auto;
}

body:has(.balance-home)::before,
body:has(.trading-dashboard-shell)::before {
  opacity: 0.24;
  background-image:
    linear-gradient(rgba(14, 165, 233, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(14, 165, 233, 0.045) 1px, transparent 1px);
}

.trading-dashboard-shell {
  --dash-bg: transparent;
  --dash-panel: rgba(255, 255, 255, 0.92);
  --dash-panel-strong: rgba(250, 253, 255, 0.96);
  --dash-border: rgba(14, 165, 233, 0.16);
  --dash-muted: #64748b;
  --dash-ink: #0f172a;
  --dash-gold: #0ea5e9;
  --dash-green: #22c55e;
  --dash-red: #dc2626;
  background: transparent;
  color: var(--ink);
}

.trade-command-bar,
.trade-panel,
.trade-account-strip,
.trade-alert-strip,
.dashboard-bottom-sheet,
.chart-stage,
.trade-list-row,
.trade-metric {
  color: var(--ink);
  border-color: rgba(14, 165, 233, 0.16);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 14px 36px rgba(14, 165, 233, 0.1);
}

@supports ((backdrop-filter: blur(18px)) or (-webkit-backdrop-filter: blur(18px))) {
  .trade-command-bar,
  .trade-panel,
  .dashboard-bottom-sheet {
    background: rgba(255, 255, 255, 0.86);
    -webkit-backdrop-filter: blur(18px) saturate(1.08);
    backdrop-filter: blur(18px) saturate(1.08);
  }
}

.trade-kicker,
.chart-empty-mark,
.timeframe-tabs button.is-active {
  color: var(--accent-strong);
}

.trade-health-pill,
.chart-loading,
.timeframe-tabs button {
  border-color: rgba(14, 165, 233, 0.16);
  color: var(--muted-strong);
  background: rgba(224, 242, 254, 0.46);
}

.risk-mobile-shell {
  --risk-surface: rgba(255, 255, 255, 0.88);
  --risk-surface-strong: rgba(250, 253, 255, 0.96);
  --risk-line: rgba(14, 165, 233, 0.16);
  --risk-glow: rgba(14, 165, 233, 0.18);
}

.panic-console,
.panic-audit-panel {
  color: var(--ink);
  border-color: rgba(220, 38, 38, 0.22);
  background:
    linear-gradient(145deg, rgba(254, 226, 226, 0.74), transparent 36%),
    rgba(255, 255, 255, 0.94);
  box-shadow: 0 16px 42px rgba(220, 38, 38, 0.1);
}

/* AlgVault 2026 dark iPhone PWA polish. This block intentionally wins over the
   earlier light PWA override while keeping the existing template architecture. */
:root {
  --font-stack: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", Inter, system-ui, sans-serif;
  --safe-top: env(safe-area-inset-top);
  --safe-right: env(safe-area-inset-right);
  --safe-bottom: env(safe-area-inset-bottom);
  --safe-left: env(safe-area-inset-left);
  --bg: #070b12;
  --bg-soft: #0b111c;
  --panel: #101826;
  --panel-strong: #141f31;
  --panel-elevated: #1a2638;
  --ink: #f8fafc;
  --muted: #aeb9ca;
  --muted-strong: #d7deea;
  --accent: #7dd3fc;
  --accent-strong: #38bdf8;
  --accent-soft: rgba(125, 211, 252, 0.14);
  --accent-ink: #06111d;
  --success: #34d399;
  --success-strong: #86efac;
  --success-soft: rgba(52, 211, 153, 0.14);
  --danger: #fb7185;
  --warning: #fbbf24;
  --border: rgba(148, 163, 184, 0.18);
  --border-strong: rgba(125, 211, 252, 0.42);
  --shadow: 0 22px 56px rgba(0, 0, 0, 0.44), 0 1px 0 rgba(255, 255, 255, 0.035) inset;
  --shadow-soft: 0 14px 34px rgba(0, 0, 0, 0.3);
  --radius-lg: 0.6rem;
  --radius-md: 0.5rem;
  --radius-sm: 0.42rem;
  --tap-size: 48px;
  --bottom-nav-height: 78px;
}

html {
  background: var(--bg);
  color-scheme: dark light;
}

body,
.app-body,
body:has(.balance-home),
body:has(.trading-dashboard-shell) {
  background:
    radial-gradient(circle at 18% -12%, rgba(56, 189, 248, 0.16), transparent 24rem),
    radial-gradient(circle at 90% 4%, rgba(52, 211, 153, 0.12), transparent 26rem),
    linear-gradient(180deg, #070b12 0%, #0b111c 48%, #070b12 100%);
  color: var(--ink);
  font-family: var(--font-stack);
  line-height: 1.52;
  overscroll-behavior-y: none;
}

body::before,
body:has(.balance-home)::before,
body:has(.trading-dashboard-shell)::before {
  opacity: 0.42;
  background-image:
    linear-gradient(rgba(148, 163, 184, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, 0.028) 1px, transparent 1px);
  background-size: 38px 38px;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.58), rgba(0, 0, 0, 0.22) 70%, transparent);
}

::selection {
  color: #04111d;
  background: #7dd3fc;
}

a {
  color: var(--accent);
}

.site-header,
.page-shell,
.banner,
.flash-stack,
.crypto-rail {
  width: min(100% - 1.35rem, 1180px);
}

.site-header {
  padding-top: calc(0.72rem + var(--safe-top));
}

.site-header::before,
.site-header.is-scrolled::before,
.app-body.nav-open .site-header::before,
.crypto-rail,
.crypto-rail::before {
  background: rgba(7, 11, 18, 0.86);
  border-color: var(--border);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  backdrop-filter: blur(18px) saturate(1.08);
}

.brand-mark {
  width: 2.42rem;
  height: 2.42rem;
  border: 1px solid rgba(125, 211, 252, 0.34);
  border-radius: 0.72rem;
  color: var(--ink);
  background:
    linear-gradient(145deg, rgba(125, 211, 252, 0.28), rgba(52, 211, 153, 0.13)),
    var(--panel-strong);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.32);
}

.brand-copy strong,
.nav-panel-head strong,
.page-heading h1,
.hero-copy h1,
.card h2,
.card h3,
.wallet-section-heading h2,
.vault-title-row h1,
.vault-section-heading h2,
.trade-panel h2,
.risk-sticky-hero h1,
.risk-section-head h2,
.treasury-hero h1,
.treasury-panel-head h2,
.backtest-pwa-top h1,
.backtest-panel-head h2,
.backtest-result-head h2,
.activity-compact-heading h1,
.activity-section-heading h2 {
  color: var(--ink);
}

.brand-copy small,
.eyebrow,
.card-kicker,
.nav-section-title,
.muted,
.page-heading p,
.hero-copy p,
.wallet-count,
.wallet-pagination-summary,
.risk-sticky-hero p,
.risk-section-head p,
.treasury-status-pill span,
.treasury-metric-strip span,
.treasury-wallet-grid dt,
.coin-main small,
.wallet-asset-head span,
.wallet-balance-main span,
.wallet-balance-stats dt,
.wallet-address-row span,
.wallet-activity-row span,
.activity-copy time,
.activity-amount-block span,
.activity-cycle-value span,
.activity-meta-row,
.activity-metric-grid dt {
  color: var(--muted);
}

button,
.button-link,
.nav a,
.pagination-button,
.pagination-current,
.risk-segment,
.risk-chip-rail button,
.risk-secondary-action,
.risk-step-button,
.risk-icon-button,
.risk-load-more,
.vault-max-button,
.activity-detail-button {
  min-height: var(--tap-size);
  border-color: var(--border);
  border-radius: var(--radius-md);
  color: var(--ink);
  background: rgba(16, 24, 38, 0.88);
  box-shadow: none;
  touch-action: manipulation;
}

button.primary,
.button-link.primary,
.nav a.primary,
.vault-start-button,
.risk-segment.is-active,
.risk-chip-rail button.is-active,
.sw-update-banner button {
  color: var(--accent-ink);
  border-color: rgba(125, 211, 252, 0.72);
  background: linear-gradient(180deg, #a5f3fc 0%, #7dd3fc 54%, #38bdf8 100%);
  box-shadow: 0 14px 30px rgba(56, 189, 248, 0.22);
}

.secondary,
.nav-toggle,
.app-nav .nav-link,
.app-nav .nav-form button,
.button-link.secondary {
  color: var(--muted-strong);
  border-color: var(--border);
  background: rgba(16, 24, 38, 0.72);
}

button:focus-visible,
.button-link:focus-visible,
.nav a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid rgba(125, 211, 252, 0.5);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px rgba(56, 189, 248, 0.14);
}

button:disabled,
.button-link.is-disabled,
.pagination-button.is-disabled,
.vault-start-button:disabled,
.vault-start-button.is-disabled {
  color: rgba(215, 222, 234, 0.62);
  cursor: not-allowed;
  opacity: 0.68;
  background: rgba(16, 24, 38, 0.48);
  box-shadow: none;
  filter: grayscale(0.16);
}

input,
select,
textarea,
.vault-start-card input,
.vault-start-card select {
  min-height: var(--tap-size);
  color: var(--ink);
  border-color: var(--border);
  background: rgba(7, 11, 18, 0.72);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

input::placeholder,
textarea::placeholder {
  color: rgba(174, 185, 202, 0.72);
}

label,
.vault-start-card label,
.vault-field {
  color: var(--muted-strong);
}

.banner,
.flash,
.card,
.wallet-card,
.vault-card,
.metric-card,
.wallet-total-card,
.wallet-activity-card,
.wallet-asset-card,
.vault-start-card,
.vault-active-card,
.vault-activity-card,
.vault-form-section,
.vault-exchange-card,
.vault-cycle-card,
.vault-cycle-signal-mini,
.vault-cycle-status-item,
.vault-forecast-score,
.vault-horizon-card,
.activity-panel,
.activity-card,
.trade-panel,
.risk-sticky-hero,
.risk-mini-panel,
.risk-panel,
.risk-control-card,
.risk-audit-card,
.risk-diagnostics-drawer,
.risk-confirm-modal,
.treasury-hero,
.treasury-panel,
.treasury-actions,
.treasury-metric-strip,
.treasury-status-pill,
.treasury-alert-item,
.treasury-wallet-grid > div,
.backtest-panel,
.backtest-result-card,
.backtest-chart-panel,
.backtest-control-panel,
.backtest-quote-card,
.portfolio-balance-card,
.dashboard-kpi-card,
.trade-command-bar,
.trade-account-strip,
.trade-alert-strip,
.dashboard-bottom-sheet,
.chart-stage,
.trade-list-row,
.trade-metric,
.panic-console,
.panic-audit-panel {
  color: var(--ink);
  border-color: var(--border);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(180deg, rgba(20, 31, 49, 0.96), rgba(12, 18, 29, 0.96)),
    var(--panel);
  box-shadow: var(--shadow);
}

.card::before,
.wallet-total-card::before,
.wallet-activity-card::before,
.vault-command-card::before,
.vault-active-card::before,
.vault-activity-card::before,
.activity-panel::before,
.activity-card::before {
  background: linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.28), transparent);
}

.wallet-balance-stats div,
.wallet-activity-row,
.vault-routing-summary,
.vault-readiness-state,
.vault-risk-summary,
.vault-routing-row,
.vault-diagnostics-panel,
.vault-risk-module .checkbox-row,
.vault-sticky-actions .checkbox-row,
.activity-metric-grid div,
.risk-slippage-grid div,
.risk-latency-list div,
.risk-exchange-list span,
.risk-audit-meta span,
.treasury-address {
  border-color: var(--border);
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.045);
}

.status-pill,
.mode-chip,
.risk-soft-chip,
.treasury-live-dot,
.activity-status,
.live-badge,
.paper-badge,
.backtest-badge {
  border-color: rgba(125, 211, 252, 0.24);
  color: var(--accent);
  background: var(--accent-soft);
}

.positive,
.status-live,
.risk-tone-success,
.risk-severity-success,
.vault-exchange-card.is-ready,
.vault-result-sheet.is-success,
.activity-card.is-inflow .activity-amount-block strong {
  border-color: rgba(52, 211, 153, 0.3);
  color: var(--success-strong);
}

.negative,
.danger-link,
.danger-button,
.risk-tone-error,
.risk-severity-error,
.vault-result-sheet.is-error,
.activity-card.is-outflow .activity-amount-block strong {
  border-color: rgba(251, 113, 133, 0.34);
  color: var(--danger);
}

.danger-link,
.danger-button {
  color: #fff7f8;
  background: linear-gradient(180deg, #fb7185, #e11d48);
}

.app-nav {
  border-color: var(--border);
  background: rgba(12, 18, 29, 0.96);
  box-shadow: 0 24px 72px rgba(0, 0, 0, 0.5);
}

.nav-backdrop {
  background: rgba(0, 0, 0, 0.44);
}

.app-nav .nav-link:hover,
.app-nav .nav-form button:hover,
.app-nav .nav-link.active,
.app-nav .nav-form button:active,
.nav a.active,
.bottom-nav a.active {
  border-color: rgba(125, 211, 252, 0.38);
  color: var(--accent);
  background: rgba(125, 211, 252, 0.12);
  box-shadow: none;
}

.mode-dot,
.portfolio-live-dot {
  background: var(--success);
  box-shadow: 0 0 0 5px rgba(52, 211, 153, 0.14);
}

.crypto-rail-item {
  min-height: 3.4rem;
  color: var(--ink);
  border-color: var(--border);
  background: rgba(16, 24, 38, 0.82);
  box-shadow: var(--shadow-soft);
}

.coin-icon {
  --coin-bg: rgba(125, 211, 252, 0.12);
  --coin-ring: rgba(125, 211, 252, 0.28);
  --coin-stroke: #dff7ff;
  display: inline-grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  border: 1px solid var(--coin-ring);
  border-radius: 50%;
  color: var(--coin-stroke);
  background:
    radial-gradient(circle at 32% 24%, rgba(255, 255, 255, 0.13), transparent 36%),
    var(--coin-bg);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.24);
}

.coin-icon svg {
  width: 68%;
  height: 68%;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.75;
}

.coin-icon text {
  fill: currentColor;
  stroke: none;
  font-size: 0.46rem;
  font-weight: 900;
  letter-spacing: 0;
}

.coin-icon-btc {
  --coin-bg: rgba(251, 191, 36, 0.13);
  --coin-ring: rgba(251, 191, 36, 0.34);
  --coin-stroke: #fcd34d;
}

.coin-icon-eth {
  --coin-bg: rgba(147, 197, 253, 0.13);
  --coin-ring: rgba(147, 197, 253, 0.34);
  --coin-stroke: #bfdbfe;
}

.coin-icon-algo {
  --coin-bg: rgba(125, 211, 252, 0.14);
  --coin-ring: rgba(125, 211, 252, 0.36);
  --coin-stroke: #e0f2fe;
}

.coin-icon-usdt,
.coin-icon-usdc {
  --coin-bg: rgba(45, 212, 191, 0.13);
  --coin-ring: rgba(45, 212, 191, 0.34);
  --coin-stroke: #99f6e4;
}

.coin-icon-sol {
  --coin-bg: rgba(134, 239, 172, 0.13);
  --coin-ring: rgba(134, 239, 172, 0.32);
  --coin-stroke: #bbf7d0;
}

.coin-icon-xrp {
  --coin-bg: rgba(203, 213, 225, 0.12);
  --coin-ring: rgba(203, 213, 225, 0.3);
  --coin-stroke: #e2e8f0;
}

.crypto-rail-item .coin-icon,
.activity-icon.coin-icon,
.backtest-token-icon.coin-icon {
  width: 2.1rem;
  height: 2.1rem;
  font-size: 0;
}

.wallet-coin {
  width: 2.5rem;
  height: 2.5rem;
  flex-basis: 2.5rem;
}

.activity-card.is-outflow .activity-icon.coin-icon {
  color: var(--coin-stroke);
  background:
    radial-gradient(circle at 32% 24%, rgba(255, 255, 255, 0.13), transparent 36%),
    var(--coin-bg);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.24);
}

.page-shell {
  padding-right: max(1rem, var(--safe-right));
  padding-left: max(1rem, var(--safe-left));
  padding-bottom: max(2rem, calc(var(--safe-bottom) + 2rem));
}

.page-shell:has(.balance-home) {
  padding-top: 0.8rem;
}

.balance-home {
  min-height: calc(100svh - 12rem);
  padding: 0.8rem 0 1.35rem;
}

.portfolio-balance-card,
.wallet-total-card,
.wallet-activity-card,
.wallet-asset-card,
.activity-panel,
.vault-start-card,
.vault-active-card,
.vault-activity-card {
  padding: 1rem;
}

.portfolio-balance-card {
  min-height: 15rem;
}

.portfolio-balance-value,
.wallet-total-card .hero-value {
  color: var(--ink);
  font-weight: 900;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}

.wallet-asset-grid {
  gap: 0.85rem;
}

.wallet-action-row .button-link,
.wallet-card-actions .button-link,
.wallet-flow-card button,
.wallet-flow-card .button-link {
  min-height: 3rem;
}

.vault-section-label span {
  color: var(--accent);
  border-color: rgba(125, 211, 252, 0.28);
  background: var(--accent-soft);
}

.vault-asset-option,
.vault-exchange-card,
.vault-cycle-card {
  min-height: 3.8rem;
  background: rgba(255, 255, 255, 0.045);
}

.vault-asset-option.is-selected,
.vault-exchange-card.is-enabled,
.vault-cycle-live-badge {
  border-color: rgba(125, 211, 252, 0.4);
  color: var(--accent);
  background: rgba(125, 211, 252, 0.11);
}

.vault-provider-mark {
  color: var(--accent-ink);
  background: linear-gradient(180deg, #a5f3fc, #38bdf8);
}

.vault-provider-toggle-ui {
  border-color: rgba(148, 163, 184, 0.26);
  background: rgba(255, 255, 255, 0.08);
}

.vault-exchange-card.is-enabled .vault-provider-toggle-ui {
  border-color: rgba(125, 211, 252, 0.48);
  background: rgba(125, 211, 252, 0.22);
}

.vault-exchange-card.is-enabled .vault-provider-toggle-ui::before {
  background: var(--accent);
}

.vault-routing-bars {
  background: rgba(255, 255, 255, 0.08);
}

.vault-routing-bars span,
.vault-allocation-bar span,
.bottom-nav .bottom-nav-item.active::before {
  background: linear-gradient(90deg, var(--accent), var(--success));
}

.vault-sticky-actions {
  background: rgba(7, 11, 18, 0.9);
}

.intro-loader {
  color: var(--ink);
  background:
    radial-gradient(circle at 50% 24%, rgba(125, 211, 252, 0.2), transparent 34%),
    radial-gradient(circle at 70% 64%, rgba(52, 211, 153, 0.14), transparent 30%),
    linear-gradient(180deg, #070b12 0%, #0b111c 56%, #070b12 100%);
}

.intro-loader__ambient {
  opacity: 0.46;
  background-image:
    linear-gradient(rgba(148, 163, 184, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, 0.028) 1px, transparent 1px);
}

.intro-loader__panel {
  border-color: var(--border);
  background: rgba(16, 24, 38, 0.92);
  box-shadow: var(--shadow);
}

.intro-loader__vault {
  border-color: rgba(125, 211, 252, 0.34);
  background:
    linear-gradient(145deg, rgba(125, 211, 252, 0.28), rgba(52, 211, 153, 0.16)),
    var(--panel-strong);
}

.intro-loader__vault-door {
  border-color: rgba(248, 250, 252, 0.42);
  background:
    linear-gradient(rgba(248, 250, 252, 0.32), rgba(248, 250, 252, 0.32)) center / 1px 100% no-repeat,
    linear-gradient(90deg, rgba(248, 250, 252, 0.32), rgba(248, 250, 252, 0.32)) center / 100% 1px no-repeat;
}

.intro-loader__vault-dial,
.intro-loader__retry {
  color: var(--accent-ink);
  background: var(--accent);
}

.intro-loader__eyebrow {
  color: var(--accent);
}

.intro-loader__copy small {
  color: var(--muted);
}

.intro-loader__bar {
  background: rgba(125, 211, 252, 0.14);
}

table {
  color: var(--ink);
}

table th,
table td {
  border-bottom-color: rgba(148, 163, 184, 0.14);
  color: var(--ink);
}

table thead th,
.ops-table-wrap th,
.treasury-table-wrap th {
  color: var(--muted-strong);
  background: rgba(16, 24, 38, 0.94);
}

table tbody tr,
table tbody tr:nth-child(even),
table.is-stacked tr {
  background: rgba(16, 24, 38, 0.74);
}

table code,
code {
  color: var(--muted-strong);
  background: rgba(0, 0, 0, 0.22);
}

.empty-state,
.wallet-empty-state,
.trade-empty-state,
.risk-audit-empty,
.vault-routing-empty,
.activity-empty-state {
  border-color: rgba(148, 163, 184, 0.22);
  color: var(--muted);
  background: rgba(255, 255, 255, 0.04);
}

.sw-update-banner {
  color: var(--ink);
  border-color: var(--border);
  background: rgba(16, 24, 38, 0.96);
  box-shadow: var(--shadow);
}

.trading-dashboard-shell {
  --dash-bg: transparent;
  --dash-panel: rgba(16, 24, 38, 0.9);
  --dash-panel-strong: rgba(20, 31, 49, 0.96);
  --dash-border: rgba(148, 163, 184, 0.18);
  --dash-muted: var(--muted);
  --dash-ink: var(--ink);
  --dash-gold: var(--accent);
  --dash-green: var(--success);
  --dash-red: var(--danger);
}

.risk-mobile-shell {
  --risk-surface: rgba(16, 24, 38, 0.88);
  --risk-surface-strong: rgba(20, 31, 49, 0.96);
  --risk-line: rgba(148, 163, 184, 0.18);
  --risk-glow: rgba(125, 211, 252, 0.18);
}

@media (hover: hover) and (pointer: fine) {
  button:hover,
  .button-link:hover,
  .nav a:hover,
  .activity-detail-button:hover {
    border-color: var(--border-strong);
    background: rgba(26, 38, 56, 0.96);
    box-shadow: var(--shadow-soft);
  }

  table tbody tr:hover {
    background: rgba(26, 38, 56, 0.88);
  }
}

@media (max-width: 760px) {
  .site-header,
  .page-shell,
  .banner,
  .flash-stack,
  .crypto-rail {
    width: min(100% - 1rem, 760px);
  }

  .page-shell {
    padding-right: max(0.85rem, var(--safe-right));
    padding-left: max(0.85rem, var(--safe-left));
    padding-bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 1.35rem);
  }

  .bottom-nav {
    min-height: calc(var(--bottom-nav-height) + var(--safe-bottom));
    padding: 0.5rem max(0.58rem, var(--safe-right)) calc(0.5rem + var(--safe-bottom)) max(0.58rem, var(--safe-left));
    border-top-color: var(--border);
    background: rgba(7, 11, 18, 0.94);
    box-shadow: 0 -16px 38px rgba(0, 0, 0, 0.38);
    -webkit-backdrop-filter: blur(18px) saturate(1.08);
    backdrop-filter: blur(18px) saturate(1.08);
  }

  .bottom-nav .bottom-nav-item {
    min-height: 3.45rem;
    color: var(--muted);
  }

  .bottom-nav .bottom-nav-item.active {
    color: var(--accent);
    border-color: rgba(125, 211, 252, 0.26);
    background: rgba(125, 211, 252, 0.12);
  }

  .app-nav {
    bottom: calc(0.75rem + var(--safe-bottom));
    max-height: min(78svh, 680px);
  }
}

@media (max-width: 430px) {
  .page-shell {
    padding-right: max(0.72rem, var(--safe-right));
    padding-left: max(0.72rem, var(--safe-left));
  }

  .portfolio-balance-card,
  .wallet-total-card,
  .wallet-activity-card,
  .wallet-asset-card,
  .activity-panel,
  .vault-start-card,
  .vault-active-card,
  .vault-activity-card {
    padding: 0.85rem;
  }
}

/* Branded PWA launch animation. Keep this late in the file so it wins older shell variants. */
.intro-loader {
  color: #fff4f5;
  background:
    radial-gradient(circle at 50% 42%, rgba(255, 31, 54, 0.18), transparent 18rem),
    radial-gradient(circle at 72% 18%, rgba(255, 31, 54, 0.08), transparent 18rem),
    linear-gradient(180deg, #070000 0%, #000000 54%, #090102 100%);
  transition: opacity 320ms ease, visibility 320ms ease;
}

.intro-loader__glow {
  position: absolute;
  width: min(74vw, 28rem);
  aspect-ratio: 1;
  border-radius: 50%;
  pointer-events: none;
  background:
    radial-gradient(circle, rgba(255, 31, 54, 0.18), rgba(255, 31, 54, 0.05) 42%, transparent 68%);
  filter: blur(10px);
  opacity: 0.82;
  animation: introRedGlow 2200ms ease-in-out infinite;
}

.intro-loader__ambient {
  opacity: 0.38;
  background-image:
    linear-gradient(rgba(255, 31, 54, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 31, 54, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, transparent 0%, rgba(255, 31, 54, 0.08) 50%, transparent 100%);
  background-size: 44px 44px, 44px 44px, 220% 100%;
  animation: introGridSweep 4200ms ease-in-out infinite;
}

.intro-loader__panel {
  width: min(100%, 21.5rem);
  gap: 0.95rem;
  padding: 1.3rem 1.25rem 1.2rem;
  border: 1px solid rgba(255, 31, 54, 0.24);
  border-radius: 8px;
  background: rgba(5, 0, 1, 0.78);
  box-shadow: 0 26px 74px rgba(0, 0, 0, 0.72), 0 0 42px rgba(255, 31, 54, 0.1);
  backdrop-filter: blur(18px) saturate(1.05);
  animation: introPanelIn 620ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.intro-loader__mark-wrap {
  width: 6.25rem;
  height: 6.25rem;
}

.intro-loader__ring {
  background: conic-gradient(from 0deg, transparent 0deg, rgba(255, 31, 54, 0.06) 74deg, rgba(255, 31, 54, 0.85) 116deg, transparent 164deg, transparent 360deg);
  animation: introSpin 1850ms linear infinite;
}

.intro-loader__ring--secondary {
  inset: 0.72rem;
  background: conic-gradient(from 190deg, transparent 0deg, rgba(255, 255, 255, 0.04) 68deg, rgba(255, 31, 54, 0.5) 116deg, transparent 156deg, transparent 360deg);
  animation-duration: 2600ms;
  animation-direction: reverse;
}

.intro-loader__vault {
  overflow: hidden;
  width: 3.9rem;
  height: 3.9rem;
  border: 1px solid rgba(255, 31, 54, 0.42);
  border-radius: 8px;
  background:
    linear-gradient(145deg, rgba(255, 31, 54, 0.16), rgba(255, 31, 54, 0.04)),
    #050000;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.035), 0 16px 34px rgba(255, 31, 54, 0.16);
}

.intro-loader__vault::after {
  content: "";
  position: absolute;
  inset: -35% auto -35% -72%;
  width: 44%;
  transform: skewX(-18deg) translateX(0);
  background: rgba(255, 31, 54, 0.22);
  animation: introVaultShimmer 1800ms cubic-bezier(0.2, 0.8, 0.2, 1) infinite;
}

.intro-loader__vault-door {
  inset: 0.46rem;
  border-color: rgba(255, 31, 54, 0.46);
  background:
    linear-gradient(rgba(255, 31, 54, 0.24), rgba(255, 31, 54, 0.24)) center / 1px 100% no-repeat,
    linear-gradient(90deg, rgba(255, 31, 54, 0.24), rgba(255, 31, 54, 0.24)) center / 100% 1px no-repeat;
}

.intro-loader__vault-dial {
  position: absolute;
  right: 0.62rem;
  bottom: 0.62rem;
  width: 0.46rem;
  height: 0.46rem;
  border: 0;
  background: #ff1f36;
  box-shadow: 0 0 16px rgba(255, 31, 54, 0.72);
  animation: introDial 1700ms ease-in-out infinite;
}

.intro-loader__monogram {
  position: relative;
  z-index: 1;
  color: #ff1f36;
  font-size: 1.08rem;
  font-weight: 950;
  line-height: 1;
}

.intro-loader__copy {
  gap: 0.22rem;
}

.intro-loader__eyebrow {
  color: #ff1f36;
  font-size: 0.7rem;
  letter-spacing: 0;
}

.intro-loader__copy strong {
  color: #fff4f5;
}

.intro-loader__copy small {
  color: rgba(255, 244, 245, 0.68);
}

.intro-loader__bar {
  width: min(13.75rem, 70vw);
  height: 3px;
  background: rgba(255, 31, 54, 0.13);
}

.intro-loader__bar span {
  background: linear-gradient(90deg, transparent, #ff1f36, #ff7582, transparent);
  animation: introProgress 1500ms cubic-bezier(0.2, 0.8, 0.2, 1) infinite;
}

.intro-loader__ticks {
  display: flex;
  gap: 0.38rem;
  align-items: center;
  justify-content: center;
  min-height: 0.4rem;
}

.intro-loader__ticks span {
  width: 0.28rem;
  height: 0.28rem;
  border-radius: 50%;
  background: #ff1f36;
  opacity: 0.34;
  animation: introTick 1550ms ease-in-out infinite;
}

.intro-loader__ticks span:nth-child(2) {
  animation-delay: 160ms;
}

.intro-loader__ticks span:nth-child(3) {
  animation-delay: 320ms;
}

.intro-loader__retry {
  color: #ffffff;
  border-color: rgba(255, 31, 54, 0.52);
  background: linear-gradient(180deg, #ff3448, #c90f20);
}

@keyframes introRedGlow {
  0%,
  100% {
    transform: scale(0.98);
    opacity: 0.62;
  }

  50% {
    transform: scale(1.04);
    opacity: 0.9;
  }
}

@keyframes introSpin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes introProgress {
  0% {
    transform: translateX(-110%);
  }

  48% {
    transform: translateX(70%);
  }

  100% {
    transform: translateX(230%);
  }
}

@keyframes introDial {
  0%,
  100% {
    transform: scale(0.88);
    opacity: 0.54;
  }

  50% {
    transform: scale(1.18);
    opacity: 1;
  }
}

@keyframes introTick {
  0%,
  100% {
    opacity: 0.24;
    transform: translateY(0);
  }

  45% {
    opacity: 0.92;
    transform: translateY(-0.1rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .intro-loader__glow,
  .intro-loader__ticks span {
    animation: none !important;
  }

  .intro-loader__glow {
    opacity: 0.58;
  }

  .intro-loader__ticks span {
    opacity: 0.54;
    transform: none;
  }
}

@media (max-width: 560px) {
  .intro-loader {
    padding-right: max(0.75rem, var(--safe-right));
    padding-left: max(0.75rem, var(--safe-left));
  }

  .intro-loader__panel {
    width: min(calc(100vw - 1.5rem), 17.5rem);
    padding: 1.15rem 1rem;
  }

  .intro-loader__mark-wrap {
    width: 5.55rem;
    height: 5.55rem;
  }

  .intro-loader__vault {
    width: 3.45rem;
    height: 3.45rem;
  }
}

/* Final iOS theme pass: dark mode toggle, light companion theme, and iPhone-safe layout. */
html[data-theme="dark"] {
  --bg: #070b12;
  --bg-soft: #0b111c;
  --panel: #101826;
  --panel-strong: #162235;
  --panel-elevated: #1c2a3f;
  --ink: #f8fafc;
  --muted: #aeb9ca;
  --muted-strong: #dbe6f4;
  --accent: #7dd3fc;
  --accent-strong: #38bdf8;
  --accent-soft: rgba(125, 211, 252, 0.14);
  --accent-ink: #06111d;
  --success: #34d399;
  --success-strong: #86efac;
  --success-soft: rgba(52, 211, 153, 0.14);
  --danger: #fb7185;
  --warning: #fbbf24;
  --border: rgba(148, 163, 184, 0.18);
  --border-strong: rgba(125, 211, 252, 0.42);
  --shadow: 0 22px 56px rgba(0, 0, 0, 0.44), inset 0 1px 0 rgba(255, 255, 255, 0.035);
  --shadow-soft: 0 14px 34px rgba(0, 0, 0, 0.3);
  --theme-grid: rgba(148, 163, 184, 0.034);
  --theme-grid-strong: rgba(148, 163, 184, 0.044);
  --theme-body:
    radial-gradient(circle at 14% -12%, rgba(56, 189, 248, 0.17), transparent 24rem),
    radial-gradient(circle at 92% 4%, rgba(52, 211, 153, 0.13), transparent 27rem),
    linear-gradient(180deg, #070b12 0%, #0b111c 46%, #070b12 100%);
  --theme-chrome: rgba(8, 13, 22, 0.84);
  --theme-surface: rgba(16, 24, 38, 0.92);
  --theme-surface-strong: rgba(20, 31, 49, 0.96);
  color-scheme: dark;
}

html[data-theme="light"] {
  --bg: #f8fbff;
  --bg-soft: #eef6fb;
  --panel: #ffffff;
  --panel-strong: #f7fbff;
  --panel-elevated: #eef7ff;
  --ink: #0d1726;
  --muted: #5f6f84;
  --muted-strong: #314155;
  --accent: #0369a1;
  --accent-strong: #0284c7;
  --accent-soft: rgba(14, 165, 233, 0.12);
  --accent-ink: #f8fbff;
  --success: #047857;
  --success-strong: #065f46;
  --success-soft: rgba(16, 185, 129, 0.14);
  --danger: #be123c;
  --warning: #b45309;
  --border: rgba(49, 65, 85, 0.14);
  --border-strong: rgba(2, 132, 199, 0.34);
  --shadow: 0 18px 46px rgba(15, 23, 42, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.82);
  --shadow-soft: 0 12px 28px rgba(15, 23, 42, 0.08);
  --theme-grid: rgba(14, 165, 233, 0.05);
  --theme-grid-strong: rgba(15, 23, 42, 0.044);
  --theme-body:
    radial-gradient(circle at 12% -10%, rgba(14, 165, 233, 0.16), transparent 24rem),
    radial-gradient(circle at 94% 0%, rgba(16, 185, 129, 0.1), transparent 26rem),
    linear-gradient(180deg, #f8fbff 0%, #edf7fb 52%, #f8fbff 100%);
  --theme-chrome: rgba(248, 251, 255, 0.86);
  --theme-surface: rgba(255, 255, 255, 0.92);
  --theme-surface-strong: rgba(255, 255, 255, 0.98);
  color-scheme: light;
}

html[data-theme] {
  min-width: 320px;
  background: var(--bg);
  color-scheme: dark light;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

html[data-theme] body,
html[data-theme] .app-body,
html[data-theme] body:has(.balance-home),
html[data-theme] body:has(.trading-dashboard-shell) {
  min-width: 320px;
  background: var(--theme-body);
  color: var(--ink);
}

html[data-theme] .app-body * {
  min-width: 0;
  letter-spacing: 0;
}

html[data-theme] body::before,
html[data-theme] body:has(.balance-home)::before,
html[data-theme] body:has(.trading-dashboard-shell)::before {
  opacity: 0.5;
  background-image:
    linear-gradient(var(--theme-grid-strong) 1px, transparent 1px),
    linear-gradient(90deg, var(--theme-grid) 1px, transparent 1px);
  background-size: 42px 42px;
  pointer-events: none;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

html[data-theme] .site-header,
html[data-theme] .page-shell,
html[data-theme] .banner,
html[data-theme] .flash-stack,
html[data-theme] .crypto-rail {
  width: min(100% - 1.4rem, 1180px);
}

html[data-theme] .site-header.app-topbar {
  gap: 0.75rem;
  align-items: center;
  min-height: calc(4.25rem + var(--safe-top));
  padding-top: calc(0.72rem + var(--safe-top));
  padding-bottom: 0.55rem;
  isolation: isolate;
}

html[data-theme] .site-header.app-topbar::before,
html[data-theme] .site-header.app-topbar.is-scrolled::before,
html[data-theme] .app-body.nav-open .site-header.app-topbar::before,
html[data-theme] .crypto-rail,
html[data-theme] .crypto-rail::before {
  border-color: var(--border);
  background: var(--theme-chrome);
  box-shadow: var(--shadow-soft);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
  backdrop-filter: blur(20px) saturate(1.2);
}

html[data-theme] .brand-lockup {
  min-width: 0;
  gap: 0.62rem;
}

html[data-theme] .brand-mark {
  position: relative;
  flex: 0 0 auto;
  width: 2.56rem;
  height: 2.56rem;
  border: 1px solid rgba(125, 211, 252, 0.38);
  border-radius: 0.78rem;
  color: var(--ink);
  background:
    radial-gradient(circle at 32% 20%, rgba(255, 255, 255, 0.22), transparent 30%),
    linear-gradient(145deg, rgba(125, 211, 252, 0.34), rgba(52, 211, 153, 0.18)),
    var(--panel-strong);
  box-shadow: 0 14px 30px rgba(2, 132, 199, 0.18), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  overflow: hidden;
}

html[data-theme] .brand-mark::after {
  content: "";
  position: absolute;
  right: 0.38rem;
  bottom: 0.36rem;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 0 0.28rem var(--success-soft);
}

html[data-theme] .brand-copy {
  min-width: 0;
}

html[data-theme] .brand-copy strong,
html[data-theme] .brand-copy small,
html[data-theme] .mode-chip span:last-child,
html[data-theme] .nav-toggle-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html[data-theme] .topbar-actions {
  flex: 0 0 auto;
  gap: 0.44rem;
  min-width: 0;
}

html[data-theme] .theme-toggle,
html[data-theme] .nav-toggle {
  width: 3rem;
  min-width: 3rem;
  height: 3rem;
  min-height: 3rem;
  padding: 0;
  align-items: center;
  justify-content: center;
  border-radius: 0.78rem;
  -webkit-tap-highlight-color: transparent;
}

html[data-theme] .theme-toggle {
  color: var(--accent);
  border-color: var(--border);
  background: var(--theme-surface);
}

html[data-theme] .theme-toggle[aria-pressed="true"] {
  color: #f8fafc;
  border-color: rgba(125, 211, 252, 0.4);
  background:
    radial-gradient(circle at 46% 38%, rgba(125, 211, 252, 0.22), transparent 48%),
    rgba(16, 24, 38, 0.9);
}

html[data-theme="light"] .theme-toggle[aria-pressed="false"] {
  color: #92400e;
  background:
    radial-gradient(circle at 46% 38%, rgba(251, 191, 36, 0.24), transparent 48%),
    rgba(255, 255, 255, 0.94);
}

html[data-theme] .topnav-icon,
html[data-theme] .nav-icon {
  flex: 0 0 auto;
}

html[data-theme] .mode-chip {
  max-width: min(34vw, 8.5rem);
  min-height: 2.5rem;
  padding: 0 0.68rem;
  border-color: rgba(125, 211, 252, 0.24);
  color: var(--accent);
  background: var(--accent-soft);
}

html[data-theme] .page-shell.app-main {
  padding-top: 0.9rem;
  padding-right: max(1rem, var(--safe-right));
  padding-left: max(1rem, var(--safe-left));
  padding-bottom: max(2.25rem, calc(var(--safe-bottom) + 2.25rem));
}

html[data-theme] .card,
html[data-theme] .wallet-card,
html[data-theme] .vault-card,
html[data-theme] .metric-card,
html[data-theme] .wallet-total-card,
html[data-theme] .wallet-activity-card,
html[data-theme] .wallet-asset-card,
html[data-theme] .vault-start-card,
html[data-theme] .vault-active-card,
html[data-theme] .vault-activity-card,
html[data-theme] .activity-panel,
html[data-theme] .activity-card,
html[data-theme] .portfolio-balance-card,
html[data-theme] .trade-panel,
html[data-theme] .risk-panel,
html[data-theme] .treasury-panel,
html[data-theme] .backtest-panel,
html[data-theme] .dashboard-kpi-card,
html[data-theme] .chart-stage,
html[data-theme] .panic-console,
html[data-theme] .panic-audit-panel {
  color: var(--ink);
  border-color: var(--border);
  border-radius: 0.72rem;
  background:
    linear-gradient(180deg, var(--theme-surface-strong), var(--theme-surface)),
    var(--panel);
  box-shadow: var(--shadow);
}

html[data-theme] .card::before,
html[data-theme] .wallet-total-card::before,
html[data-theme] .wallet-activity-card::before,
html[data-theme] .vault-command-card::before,
html[data-theme] .vault-active-card::before,
html[data-theme] .vault-activity-card::before,
html[data-theme] .activity-panel::before,
html[data-theme] .activity-card::before {
  background: linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.28), rgba(52, 211, 153, 0.18), transparent);
}

html[data-theme] button,
html[data-theme] .button-link,
html[data-theme] .nav a,
html[data-theme] .pagination-button,
html[data-theme] .pagination-current,
html[data-theme] .activity-detail-button {
  min-height: var(--tap-size);
  border-color: var(--border);
  border-radius: 0.62rem;
  color: var(--ink);
  background: var(--theme-surface);
  touch-action: manipulation;
}

html[data-theme] button.primary,
html[data-theme] .button-link.primary,
html[data-theme] .vault-start-button,
html[data-theme] .sw-update-banner button {
  color: var(--accent-ink);
  border-color: rgba(125, 211, 252, 0.72);
  background: linear-gradient(180deg, #a5f3fc 0%, #7dd3fc 54%, #38bdf8 100%);
  box-shadow: 0 14px 30px rgba(56, 189, 248, 0.22);
}

html[data-theme="light"] button.primary,
html[data-theme="light"] .button-link.primary,
html[data-theme="light"] .vault-start-button,
html[data-theme="light"] .sw-update-banner button {
  color: #f8fbff;
  background: linear-gradient(180deg, #0ea5e9 0%, #0284c7 54%, #0369a1 100%);
}

html[data-theme] input,
html[data-theme] select,
html[data-theme] textarea {
  min-height: var(--tap-size);
  color: var(--ink);
  border-color: var(--border);
  background: var(--theme-surface);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

html[data-theme] input::placeholder,
html[data-theme] textarea::placeholder {
  color: var(--muted);
  opacity: 0.72;
}

html[data-theme] .app-nav {
  border-color: var(--border);
  background: var(--theme-surface-strong);
  box-shadow: 0 24px 72px rgba(0, 0, 0, 0.38);
}

html[data-theme] .app-nav .nav-link,
html[data-theme] .app-nav .nav-form button {
  color: var(--muted-strong);
  border-color: transparent;
  background: transparent;
}

html[data-theme] .app-nav .nav-link:hover,
html[data-theme] .app-nav .nav-form button:hover,
html[data-theme] .app-nav .nav-link.active,
html[data-theme] .app-nav .nav-form button:active {
  color: var(--accent);
  border-color: rgba(125, 211, 252, 0.3);
  background: var(--accent-soft);
}

html[data-theme] .nav-backdrop {
  background: rgba(2, 6, 12, 0.5);
}

html[data-theme] .bottom-nav {
  --nav-gutter: max(0.72rem, var(--safe-right));
  right: 0;
  left: 0;
  min-height: calc(var(--bottom-nav-height) + var(--safe-bottom));
  padding: 0.52rem var(--nav-gutter) calc(0.52rem + var(--safe-bottom)) max(0.72rem, var(--safe-left));
  border-top: 1px solid var(--border);
  background: var(--theme-chrome);
  box-shadow: 0 -16px 38px rgba(0, 0, 0, 0.28);
  -webkit-backdrop-filter: blur(20px) saturate(1.18);
  backdrop-filter: blur(20px) saturate(1.18);
}

html[data-theme] .bottom-nav .bottom-nav-item {
  min-height: 3.5rem;
  padding: 0.42rem 0.18rem;
  border: 1px solid transparent;
  border-radius: 0.7rem;
  color: var(--muted);
}

html[data-theme] .bottom-nav .bottom-nav-item.active {
  color: var(--accent);
  border-color: rgba(125, 211, 252, 0.28);
  background: var(--accent-soft);
}

html[data-theme] .bottom-nav .bottom-nav-item.active::before,
html[data-theme] .vault-routing-bars span,
html[data-theme] .vault-allocation-bar span {
  background: linear-gradient(90deg, var(--accent), var(--success));
}

html[data-theme] .intro-loader {
  color: var(--ink);
  background:
    radial-gradient(circle at 50% 24%, rgba(125, 211, 252, 0.2), transparent 34%),
    radial-gradient(circle at 70% 64%, rgba(52, 211, 153, 0.14), transparent 30%),
    var(--theme-body);
}

html[data-theme] .intro-loader__ambient {
  opacity: 0.48;
  background-image:
    linear-gradient(var(--theme-grid-strong) 1px, transparent 1px),
    linear-gradient(90deg, var(--theme-grid) 1px, transparent 1px),
    linear-gradient(90deg, transparent 0%, rgba(125, 211, 252, 0.08) 50%, transparent 100%);
}

html[data-theme] .intro-loader__panel {
  border-color: var(--border);
  background: var(--theme-surface-strong);
  box-shadow: var(--shadow);
}

html[data-theme] .intro-loader__glow {
  background:
    radial-gradient(circle, rgba(125, 211, 252, 0.18), rgba(52, 211, 153, 0.06) 42%, transparent 68%);
}

html[data-theme] .intro-loader__vault {
  border-color: rgba(125, 211, 252, 0.34);
  background:
    linear-gradient(145deg, rgba(125, 211, 252, 0.28), rgba(52, 211, 153, 0.16)),
    var(--panel-strong);
}

html[data-theme] .intro-loader__vault-door {
  border-color: rgba(248, 250, 252, 0.42);
  background:
    linear-gradient(rgba(248, 250, 252, 0.32), rgba(248, 250, 252, 0.32)) center / 1px 100% no-repeat,
    linear-gradient(90deg, rgba(248, 250, 252, 0.32), rgba(248, 250, 252, 0.32)) center / 100% 1px no-repeat;
}

html[data-theme] .intro-loader__vault-dial,
html[data-theme] .intro-loader__retry {
  color: var(--accent-ink);
  background: var(--accent);
  box-shadow: 0 0 16px rgba(125, 211, 252, 0.46);
}

html[data-theme] .intro-loader__monogram,
html[data-theme] .intro-loader__eyebrow {
  color: var(--accent);
}

html[data-theme] .intro-loader__bar {
  background: rgba(125, 211, 252, 0.14);
}

html[data-theme] .intro-loader__bar span {
  background: linear-gradient(90deg, transparent, var(--accent), var(--success), transparent);
}

html[data-theme] .intro-loader__ticks span {
  background: var(--accent);
}

html[data-theme] table,
html[data-theme] table th,
html[data-theme] table td {
  color: var(--ink);
  border-bottom-color: var(--border);
}

html[data-theme] table thead th,
html[data-theme] .ops-table-wrap th,
html[data-theme] .treasury-table-wrap th {
  color: var(--muted-strong);
  background: var(--theme-surface-strong);
}

html[data-theme] table tbody tr,
html[data-theme] table tbody tr:nth-child(even),
html[data-theme] table.is-stacked tr {
  background: var(--theme-surface);
}

html[data-theme] .sw-update-banner {
  color: var(--ink);
  border-color: var(--border);
  background: var(--theme-surface-strong);
}

html[data-theme] .portfolio-balance-value,
html[data-theme] .wallet-total-card .hero-value,
html[data-theme] .hero-value {
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

@supports (-webkit-touch-callout: none) {
  html[data-theme] input,
  html[data-theme] select,
  html[data-theme] textarea {
    font-size: 16px;
  }

  html[data-theme] button,
  html[data-theme] .button-link,
  html[data-theme] .bottom-nav a,
  html[data-theme] .nav a {
    -webkit-tap-highlight-color: transparent;
  }
}

@media (max-width: 760px) {
  html[data-theme] {
    --bottom-nav-height: 82px;
  }

  html[data-theme] body {
    min-height: 100dvh;
  }

  html[data-theme] .site-header,
  html[data-theme] .page-shell,
  html[data-theme] .banner,
  html[data-theme] .flash-stack,
  html[data-theme] .crypto-rail {
    width: min(100% - 0.9rem, 760px);
  }

  html[data-theme] .site-header.app-topbar {
    min-height: calc(3.82rem + var(--safe-top));
    padding-right: max(0.5rem, var(--safe-right));
    padding-left: max(0.5rem, var(--safe-left));
  }

  html[data-theme] .brand-lockup {
    flex: 1 1 auto;
  }

  html[data-theme] .brand-mark {
    width: 2.38rem;
    height: 2.38rem;
    border-radius: 0.72rem;
    font-size: 0.82rem;
  }

  html[data-theme] .brand-copy .eyebrow,
  html[data-theme] .brand-copy small {
    display: none;
  }

  html[data-theme] .brand-copy strong {
    max-width: 34vw;
    font-size: 0.94rem;
  }

  html[data-theme] .topbar-actions {
    gap: 0.34rem;
  }

  html[data-theme] .theme-toggle,
  html[data-theme] .nav-toggle {
    width: 2.84rem;
    min-width: 2.84rem;
    height: 2.84rem;
    min-height: 2.84rem;
  }

  html[data-theme] .mode-chip {
    max-width: 6.8rem;
    min-height: 2.34rem;
    padding: 0 0.58rem;
    font-size: 0.68rem;
  }

  html[data-theme] .page-shell.app-main {
    padding-top: 0.68rem;
    padding-right: max(0.75rem, var(--safe-right));
    padding-left: max(0.75rem, var(--safe-left));
    padding-bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 1.35rem);
    scroll-padding-bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 1.5rem);
  }

  html[data-theme] .crypto-rail {
    margin-top: 0.35rem;
    padding: 0.42rem;
  }

  html[data-theme] .crypto-rail-track {
    gap: 0.45rem;
  }

  html[data-theme] .crypto-rail-item {
    min-width: 9rem;
    min-height: 3.18rem;
    padding: 0.52rem 0.58rem;
  }

  html[data-theme] .card,
  html[data-theme] .wallet-card,
  html[data-theme] .vault-card,
  html[data-theme] .wallet-total-card,
  html[data-theme] .wallet-activity-card,
  html[data-theme] .wallet-asset-card,
  html[data-theme] .vault-start-card,
  html[data-theme] .vault-active-card,
  html[data-theme] .vault-activity-card,
  html[data-theme] .activity-panel,
  html[data-theme] .activity-card,
  html[data-theme] .portfolio-balance-card {
    padding: 0.92rem;
  }

  html[data-theme] .portfolio-balance-card {
    min-height: 12.5rem;
  }

  html[data-theme] .portfolio-balance-value,
  html[data-theme] .wallet-total-card .hero-value,
  html[data-theme] .hero-value {
    font-size: clamp(2rem, 13vw, 3.35rem);
    line-height: 0.98;
  }

  html[data-theme] .wallet-action-row,
  html[data-theme] .wallet-card-actions {
    gap: 0.55rem;
  }

  html[data-theme] .wallet-card-actions .button-link,
  html[data-theme] .wallet-action-row .button-link,
  html[data-theme] .vault-start-button {
    min-height: 3.14rem;
    padding-right: 0.75rem;
    padding-left: 0.75rem;
  }

  html[data-theme] .app-nav {
    right: max(0.72rem, var(--safe-right));
    left: max(0.72rem, var(--safe-left));
    bottom: calc(0.75rem + var(--safe-bottom));
    width: auto;
    max-height: min(76dvh, 680px);
    border-radius: 0.92rem;
  }

  html[data-theme] .bottom-nav {
    min-height: calc(var(--bottom-nav-height) + var(--safe-bottom));
    padding-top: 0.5rem;
    padding-bottom: calc(0.54rem + var(--safe-bottom));
  }

  html[data-theme] .bottom-nav .bottom-nav-item {
    min-height: 3.56rem;
    gap: 0.2rem;
  }

  html[data-theme] .bottom-nav .nav-icon {
    width: 1.28rem;
    height: 1.28rem;
  }

  html[data-theme] .bottom-nav .nav-item-label {
    max-width: 100%;
    font-size: 0.66rem;
    line-height: 1.05;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  html[data-theme] table,
  html[data-theme] .table-responsive,
  html[data-theme] .ops-table-wrap,
  html[data-theme] .treasury-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 430px) {
  html[data-theme] .site-header,
  html[data-theme] .page-shell,
  html[data-theme] .banner,
  html[data-theme] .flash-stack,
  html[data-theme] .crypto-rail {
    width: min(100% - 0.7rem, 430px);
  }

  html[data-theme] .mode-chip {
    max-width: 5.8rem;
  }

  html[data-theme] .brand-copy strong {
    max-width: 30vw;
  }

  html[data-theme] .wallet-card,
  html[data-theme] .vault-card,
  html[data-theme] .portfolio-balance-card,
  html[data-theme] .activity-card,
  html[data-theme] .activity-panel {
    border-radius: 0.68rem;
    padding: 0.82rem;
  }

  html[data-theme] .wallet-card-actions,
  html[data-theme] .wallet-action-row {
    grid-template-columns: 1fr;
  }

  html[data-theme] .bottom-nav .bottom-nav-item {
    padding-right: 0.08rem;
    padding-left: 0.08rem;
  }

  html[data-theme] .bottom-nav .nav-item-label {
    font-size: 0.61rem;
  }
}

/* AlgVault command-center redesign. Final layer wins over legacy theme passes. */
:root,
html[data-theme],
html[data-theme="dark"],
html[data-theme="light"] {
  --font-stack: -apple-system, BlinkMacSystemFont, Inter, "SF Pro Display", "SF Pro Text", "Segoe UI", sans-serif;
  --safe-top: env(safe-area-inset-top);
  --safe-right: env(safe-area-inset-right);
  --safe-bottom: env(safe-area-inset-bottom);
  --safe-left: env(safe-area-inset-left);
  --bg: #050607;
  --bg-soft: #080a0c;
  --bg-strong: #0b0f14;
  --panel: rgba(12, 16, 22, 0.96);
  --panel-strong: rgba(15, 21, 30, 0.98);
  --panel-elevated: rgba(19, 27, 38, 0.98);
  --ink: #f4f7fb;
  --muted: #8f9baa;
  --muted-strong: #c4ceda;
  --accent: #6ee7ff;
  --accent-strong: #38bdf8;
  --accent-soft: rgba(110, 231, 255, 0.12);
  --accent-ink: #041016;
  --success: #35d39d;
  --success-strong: #83f7c7;
  --success-soft: rgba(53, 211, 157, 0.13);
  --danger: #ff6b86;
  --danger-soft: rgba(255, 107, 134, 0.13);
  --warning: #f6c453;
  --warning-soft: rgba(246, 196, 83, 0.13);
  --ai: #9ca3ff;
  --border: rgba(255, 255, 255, 0.075);
  --border-strong: rgba(110, 231, 255, 0.34);
  --chart-grid: rgba(255, 255, 255, 0.055);
  --chart-up: #35d39d;
  --chart-down: #ff6b86;
  --shadow: 0 24px 64px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.04);
  --shadow-soft: 0 14px 36px rgba(0, 0, 0, 0.36);
  --radius-lg: 0.5rem;
  --radius-md: 0.5rem;
  --radius-sm: 0.42rem;
  --tap-size: 48px;
  --bottom-nav-height: 82px;
  --motion-fast: 130ms;
  --motion-base: 210ms;
  --motion-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  color-scheme: dark;
}

html[data-theme],
html[data-theme="light"] {
  background: var(--bg);
  color-scheme: dark;
}

html[data-theme] body,
html[data-theme] .app-body,
html[data-theme] body:has(.balance-home),
html[data-theme] body:has(.trading-dashboard-shell) {
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  color: var(--ink);
  font-family: var(--font-stack);
  font-variant-numeric: tabular-nums;
  background:
    radial-gradient(circle at 16% -10%, rgba(56, 189, 248, 0.12), transparent 22rem),
    radial-gradient(circle at 100% 0%, rgba(53, 211, 157, 0.07), transparent 24rem),
    linear-gradient(180deg, #050607 0%, #080a0c 45%, #050607 100%);
}

html[data-theme] body::before,
html[data-theme] body:has(.balance-home)::before,
html[data-theme] body:has(.trading-dashboard-shell)::before {
  opacity: 0.44;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.022) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.64), rgba(0, 0, 0, 0.16) 72%, transparent);
}

html[data-theme] .app-body * {
  letter-spacing: 0;
}

html[data-theme] .site-header,
html[data-theme] .page-shell,
html[data-theme] .banner,
html[data-theme] .flash-stack,
html[data-theme] .crypto-rail {
  width: min(100% - 1.25rem, 1180px);
}

html[data-theme] .site-header.app-topbar {
  min-height: calc(4.1rem + var(--safe-top));
  padding: calc(0.64rem + var(--safe-top)) max(0.75rem, var(--safe-right)) 0.56rem max(0.75rem, var(--safe-left));
}

html[data-theme] .site-header.app-topbar::before,
html[data-theme] .site-header.app-topbar.is-scrolled::before,
html[data-theme] .app-body.nav-open .site-header.app-topbar::before,
html[data-theme] .crypto-rail,
html[data-theme] .crypto-rail::before,
html[data-theme] .bottom-nav,
html[data-theme] .app-nav {
  border-color: var(--border);
  background: rgba(5, 6, 7, 0.84);
  -webkit-backdrop-filter: blur(20px) saturate(1.18);
  backdrop-filter: blur(20px) saturate(1.18);
}

html[data-theme] .brand-copy .eyebrow {
  color: var(--accent);
}

html[data-theme] .brand-copy strong {
  color: var(--ink);
}

html[data-theme] .brand-copy small,
html[data-theme] .card-kicker,
html[data-theme] .muted,
html[data-theme] dt {
  color: var(--muted);
}

html[data-theme] .brand-mark {
  width: 2.48rem;
  height: 2.48rem;
  border-radius: 0.5rem;
  border-color: rgba(110, 231, 255, 0.32);
  color: var(--ink);
  background:
    linear-gradient(145deg, rgba(110, 231, 255, 0.24), rgba(156, 163, 255, 0.12)),
    #0b0f14;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.04), 0 14px 36px rgba(0, 0, 0, 0.42);
}

html[data-theme] .mode-chip,
.av-status-badge,
.av-pnl-badge,
html[data-theme] .status-pill,
html[data-theme] .activity-status {
  min-height: 1.72rem;
  display: inline-flex;
  align-items: center;
  gap: 0.36rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 0.26rem 0.56rem;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.045);
  font-size: 0.73rem;
  font-weight: 800;
  line-height: 1;
  text-transform: none;
}

html[data-theme] button,
html[data-theme] .button-link,
html[data-theme] .nav a,
html[data-theme] .pagination-button,
html[data-theme] .activity-detail-button {
  min-height: 44px;
  border-radius: var(--radius-md);
  border-color: var(--border);
  color: var(--ink);
  background: rgba(255, 255, 255, 0.055);
  box-shadow: none;
}

html[data-theme] button:hover,
html[data-theme] .button-link:hover,
html[data-theme] .nav a:hover {
  border-color: var(--border-strong);
  background: rgba(110, 231, 255, 0.09);
  transform: translateY(-1px);
}

html[data-theme] button.primary,
html[data-theme] .button-link.primary,
html[data-theme] .vault-start-button,
html[data-theme] .sw-update-banner button {
  color: var(--accent-ink);
  border-color: rgba(110, 231, 255, 0.64);
  background: linear-gradient(180deg, #a5f3fc 0%, #6ee7ff 52%, #38bdf8 100%);
  box-shadow: 0 14px 32px rgba(56, 189, 248, 0.22);
}

html[data-theme] .secondary,
html[data-theme] .button-link.secondary {
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.045);
}

html[data-theme] input,
html[data-theme] select,
html[data-theme] textarea {
  min-height: 48px;
  border-radius: var(--radius-md);
  border-color: var(--border);
  color: var(--ink);
  background: rgba(5, 6, 7, 0.76);
  font-size: 16px;
}

html[data-theme] button:focus-visible,
html[data-theme] .button-link:focus-visible,
html[data-theme] .nav a:focus-visible,
html[data-theme] input:focus-visible,
html[data-theme] select:focus-visible,
html[data-theme] textarea:focus-visible,
html[data-theme] summary:focus-visible {
  outline: 2px solid rgba(110, 231, 255, 0.72);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px rgba(110, 231, 255, 0.12);
}

html[data-theme] .card,
html[data-theme] .wallet-card,
html[data-theme] .vault-card,
html[data-theme] .metric-card,
html[data-theme] .wallet-total-card,
html[data-theme] .wallet-activity-card,
html[data-theme] .wallet-asset-card,
html[data-theme] .vault-start-card,
html[data-theme] .vault-active-card,
html[data-theme] .vault-activity-card,
html[data-theme] .vault-form-section,
html[data-theme] .vault-exchange-card,
html[data-theme] .vault-cycle-card,
html[data-theme] .activity-panel,
html[data-theme] .activity-card,
html[data-theme] .settings-panel,
html[data-theme] .provider-status-card,
html[data-theme] .portfolio-balance-card,
html[data-theme] .trade-panel,
html[data-theme] .trade-command-bar,
html[data-theme] .trade-account-strip,
html[data-theme] .trade-alert-strip,
html[data-theme] .dashboard-bottom-sheet,
html[data-theme] .chart-stage,
.av-panel,
.av-hero-panel,
.av-metric-card,
.av-pnl-card,
.av-market-card,
.av-strategy-card,
.av-strategy-sheet {
  color: var(--ink);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(180deg, rgba(15, 21, 30, 0.96), rgba(8, 10, 12, 0.95)),
    var(--panel);
  box-shadow: var(--shadow);
}

html[data-theme] .page-shell.app-main {
  padding-top: 0.72rem;
  padding-right: max(0.82rem, var(--safe-right));
  padding-left: max(0.82rem, var(--safe-left));
  padding-bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 1.4rem);
  scroll-padding-top: calc(4.25rem + var(--safe-top));
  scroll-padding-bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 1.5rem);
}

html[data-theme] .bottom-nav {
  right: 0;
  left: 0;
  min-height: calc(var(--bottom-nav-height) + var(--safe-bottom));
  padding: 0.48rem max(0.7rem, var(--safe-right)) calc(0.52rem + var(--safe-bottom)) max(0.7rem, var(--safe-left));
  border-top: 1px solid var(--border);
  box-shadow: 0 -18px 42px rgba(0, 0, 0, 0.48);
}

html[data-theme] .bottom-nav .bottom-nav-item {
  min-height: 3.58rem;
  padding: 0.42rem 0.1rem;
  border: 1px solid transparent;
  border-radius: 0.5rem;
  color: var(--muted);
  background: transparent;
  box-shadow: none;
}

html[data-theme] .bottom-nav .bottom-nav-item.active {
  color: var(--accent);
  border-color: rgba(110, 231, 255, 0.28);
  background: rgba(110, 231, 255, 0.1);
}

html[data-theme] .bottom-nav .bottom-nav-item.active::before {
  background: linear-gradient(90deg, var(--accent), var(--success));
}

html[data-theme] .bottom-nav .nav-icon {
  width: 1.3rem;
  height: 1.3rem;
}

html[data-theme] .bottom-nav .nav-item-label {
  max-width: 100%;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.05;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.av-command-center {
  display: grid;
  gap: 0.9rem;
  padding-bottom: 1rem;
}

.av-section-anchor {
  scroll-margin-top: calc(4.75rem + var(--safe-top));
}

.av-hero-panel {
  display: grid;
  gap: 1rem;
  padding: 1rem;
  overflow: hidden;
  position: relative;
}

.av-hero-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 12% 0%, rgba(110, 231, 255, 0.14), transparent 18rem),
    linear-gradient(90deg, rgba(110, 231, 255, 0.1), transparent 38%);
}

.av-hero-copy,
.av-hero-balance,
.av-pulse-grid {
  position: relative;
}

.av-hero-copy h1 {
  margin: 0.14rem 0 0;
  font-size: clamp(2.1rem, 14vw, 4.7rem);
  line-height: 0.95;
}

.av-hero-copy p,
.av-section-header p {
  margin: 0.22rem 0 0;
  color: var(--muted);
}

.av-hero-balance {
  display: grid;
  gap: 0.18rem;
}

.av-hero-balance span,
.av-metric-card span,
.av-pnl-card span,
.av-market-card small,
.av-asset-row small,
.av-strategy-card small,
.av-signal-stack span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.av-hero-balance strong {
  color: var(--ink);
  font-size: clamp(2rem, 13vw, 4rem);
  line-height: 0.96;
  overflow-wrap: anywhere;
}

.av-hero-balance small {
  color: var(--muted-strong);
}

.av-pulse-grid,
.av-pnl-strip,
.av-bot-summary,
.av-dashboard-grid,
.av-insights-grid,
.av-market-grid {
  display: grid;
  gap: 0.72rem;
}

.av-pulse-grid,
.av-pnl-strip,
.av-bot-summary {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.av-dashboard-grid,
.av-insights-grid {
  grid-template-columns: 1fr;
}

.av-metric-card,
.av-pnl-card {
  display: grid;
  gap: 0.18rem;
  min-height: 5.4rem;
  padding: 0.78rem;
}

.av-metric-card strong,
.av-pnl-card strong,
.av-market-price,
.av-signal-stack strong {
  color: var(--ink);
  font-size: 1.25rem;
  line-height: 1.05;
}

.av-metric-card small {
  color: var(--muted);
  font-size: 0.72rem;
}

.av-tone-success,
.av-status-success {
  color: var(--success-strong);
  border-color: rgba(53, 211, 157, 0.24);
}

.av-tone-danger,
.av-status-danger {
  color: var(--danger);
  border-color: rgba(255, 107, 134, 0.24);
}

.av-tone-warning,
.av-status-warning {
  color: var(--warning);
  border-color: rgba(246, 196, 83, 0.24);
}

.av-panel {
  padding: 0.9rem;
}

.av-panel-head,
.av-section-header,
.av-market-card > div,
.av-timeline-head,
.sheet-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.av-panel-head h2,
.av-section-header h2,
.av-strategy-sheet h2 {
  margin: 0.12rem 0 0;
  font-size: 1.05rem;
  line-height: 1.08;
}

.av-chart-stage {
  position: relative;
  min-height: 15rem;
  margin-top: 0.82rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(var(--chart-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--chart-grid) 1px, transparent 1px),
    #050607;
  background-size: 38px 38px, 38px 38px, auto;
  overflow: hidden;
}

.av-chart-stage canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.av-chart-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.av-chart-empty[hidden] {
  display: none;
}

.av-empty-state {
  display: grid;
  gap: 0.28rem;
  padding: 0.9rem;
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-lg);
  color: var(--muted);
  background: rgba(255, 255, 255, 0.035);
  text-align: left;
}

.av-empty-state strong {
  color: var(--muted-strong);
}

.av-risk-meter {
  height: 0.58rem;
  margin: 0.86rem 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
  overflow: hidden;
}

.av-risk-meter span,
.av-allocation-meter span {
  display: block;
  height: 100%;
  width: var(--meter-value, 0%);
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), var(--success));
}

.av-insight-list,
.av-sheet-metrics,
.av-strategy-card dl,
.av-signal-stack {
  display: grid;
  gap: 0.58rem;
  margin: 0;
}

.av-insight-list div,
.av-sheet-metrics div,
.av-strategy-card dl div,
.av-signal-stack div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 2.55rem;
  padding: 0.58rem 0.64rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.04);
}

.av-insight-list dt,
.av-sheet-metrics dt,
.av-strategy-card dt {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
}

.av-insight-list dd,
.av-sheet-metrics dd,
.av-strategy-card dd {
  margin: 0;
  color: var(--ink);
  font-weight: 850;
  text-align: right;
}

.av-allocation-list,
.av-strategy-list,
.av-timeline {
  display: grid;
  gap: 0.64rem;
  margin-top: 0.82rem;
}

.av-asset-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.58rem;
  padding: 0.72rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.04);
}

.av-asset-main {
  display: flex;
  align-items: center;
  gap: 0.62rem;
}

.av-asset-main div {
  display: grid;
  gap: 0.1rem;
}

.av-asset-main span,
.av-asset-meta {
  color: var(--muted);
}

.av-allocation-meter {
  height: 0.42rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
  overflow: hidden;
}

.av-asset-meta {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.78rem;
}

.av-strategy-card {
  display: grid;
  gap: 0.5rem;
  width: 100%;
  padding: 0.78rem;
  text-align: left;
}

.av-strategy-card strong {
  font-size: 1rem;
}

.av-strategy-card > span:not(.av-strategy-status) {
  color: var(--muted);
  font-size: 0.78rem;
}

.av-strategy-status {
  display: flex;
}

.av-strategy-card dl {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.av-strategy-card dl div {
  display: grid;
  gap: 0.18rem;
  min-height: 3.2rem;
}

.av-strategy-card dd {
  text-align: left;
  font-size: 0.86rem;
}

.av-market-grid {
  margin-top: 0.82rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.av-market-card {
  display: grid;
  gap: 0.56rem;
  min-height: 7.6rem;
  padding: 0.78rem;
}

.av-market-card strong {
  font-size: 1rem;
}

.av-market-price {
  font-size: 1.2rem;
}

.av-timeline-item {
  display: grid;
  grid-template-columns: 0.8rem minmax(0, 1fr);
  gap: 0.7rem;
}

.av-timeline-dot {
  width: 0.72rem;
  height: 0.72rem;
  margin-top: 0.38rem;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 0.34rem rgba(110, 231, 255, 0.08);
}

.av-timeline-item p {
  margin: 0.35rem 0 0;
  color: var(--muted-strong);
}

.av-timeline-item time {
  display: block;
  margin-top: 0.24rem;
  color: var(--muted);
  font-size: 0.76rem;
}

.av-signal-stack {
  margin: 0.82rem 0;
}

.av-full-width-action,
.av-action-dock .button-link {
  width: 100%;
  justify-content: center;
}

.av-action-dock {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.7rem;
}

.av-strategy-sheet {
  position: fixed;
  right: max(0.72rem, var(--safe-right));
  bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 0.72rem);
  left: max(0.72rem, var(--safe-left));
  z-index: 70;
  display: grid;
  gap: 0.8rem;
  max-height: min(72dvh, 620px);
  padding: 0.92rem;
  overflow: auto;
  transform: translateY(calc(100% + 8rem));
  transition: transform var(--motion-base) var(--motion-ease);
}

.av-strategy-sheet[aria-hidden="false"] {
  transform: translateY(0);
}

.av-strategy-backdrop[aria-hidden="false"] {
  opacity: 1;
  pointer-events: auto;
}

html[data-theme] .coin-icon,
html[data-theme] .wallet-coin {
  width: 2.34rem;
  height: 2.34rem;
  color: var(--ink);
  border-color: rgba(110, 231, 255, 0.25);
  background: rgba(110, 231, 255, 0.08);
}

html[data-theme] .positive,
html[data-theme] .pnl-positive,
html[data-theme] .profit,
html[data-theme] .buy {
  color: var(--success-strong);
}

html[data-theme] .negative,
html[data-theme] .pnl-negative,
html[data-theme] .loss,
html[data-theme] .sell {
  color: var(--danger);
}

html[data-theme] table {
  color: var(--ink);
  background: transparent;
}

html[data-theme] th {
  color: var(--muted-strong);
  background: #0b0f14;
}

html[data-theme] td {
  border-bottom-color: var(--border);
}

html[data-theme] table.is-stacked,
html[data-theme] table.is-stacked tbody,
html[data-theme] table.is-stacked tr,
html[data-theme] table.is-stacked td {
  display: block;
}

html[data-theme] table.is-stacked thead {
  display: none;
}

html[data-theme] table.is-stacked tr {
  margin-bottom: 0.7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.04);
  overflow: hidden;
}

html[data-theme] table.is-stacked td {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  white-space: normal;
}

html[data-theme] table.is-stacked td::before {
  content: attr(data-label);
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
}

html[data-theme] .wallet-exchange-shell,
html[data-theme] .wallet-assets-section,
html[data-theme] .activity-page-shell,
html[data-theme] .settings-shell,
html[data-theme] .vault-mobile-shell {
  display: grid;
  gap: 0.9rem;
}

html[data-theme] .wallet-total-card .hero-value,
html[data-theme] .portfolio-balance-value {
  color: var(--ink);
  font-size: clamp(2rem, 13vw, 3.6rem);
}

html[data-theme] .vault-sticky-actions {
  bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 0.72rem);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: rgba(5, 6, 7, 0.88);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

html[data-theme] .quick-action-bar {
  bottom: calc(var(--bottom-nav-height) + var(--safe-bottom) + 0.72rem);
}

@media (min-width: 760px) {
  .av-command-center {
    gap: 1rem;
  }

  .av-hero-panel {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.72fr);
    align-items: end;
  }

  .av-pulse-grid {
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .av-pnl-strip,
  .av-bot-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .av-dashboard-grid,
  .av-insights-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr);
  }

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

  .av-strategy-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .av-asset-row {
    grid-template-columns: minmax(12rem, 0.8fr) minmax(10rem, 1fr) minmax(8rem, 0.45fr);
    align-items: center;
  }
}

@media (max-width: 760px) {
  html[data-theme] .site-header,
  html[data-theme] .page-shell,
  html[data-theme] .banner,
  html[data-theme] .flash-stack,
  html[data-theme] .crypto-rail {
    width: min(100% - 0.75rem, 760px);
  }

  html[data-theme] .brand-copy .eyebrow,
  html[data-theme] .brand-copy small,
  html[data-theme] .nav-toggle-label {
    display: none;
  }

  html[data-theme] .brand-copy strong {
    max-width: 34vw;
    font-size: 0.94rem;
  }

  html[data-theme] .mode-chip {
    max-width: 5.85rem;
    padding-inline: 0.52rem;
    font-size: 0.68rem;
  }

  html[data-theme] .topbar-actions {
    gap: 0.3rem;
  }

  html[data-theme] .theme-toggle,
  html[data-theme] .nav-toggle {
    width: 2.78rem;
    min-width: 2.78rem;
    height: 2.78rem;
    min-height: 2.78rem;
  }

  .av-hero-panel,
  .av-panel {
    padding: 0.84rem;
  }

  .av-chart-stage {
    min-height: 13.75rem;
  }

  .av-strategy-card dl {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 390px) {
  html[data-theme] .page-shell.app-main {
    padding-right: max(0.64rem, var(--safe-right));
    padding-left: max(0.64rem, var(--safe-left));
  }

  html[data-theme] .brand-copy strong {
    max-width: 29vw;
  }

  html[data-theme] .bottom-nav {
    padding-right: max(0.42rem, var(--safe-right));
    padding-left: max(0.42rem, var(--safe-left));
  }

  html[data-theme] .bottom-nav .nav-item-label {
    font-size: 0.59rem;
  }

  .av-pulse-grid,
  .av-pnl-strip,
  .av-bot-summary,
  .av-market-grid,
  .av-action-dock {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme] *,
  html[data-theme] *::before,
  html[data-theme] *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }
}

/* Shared polish for applied Jinja partials. */
html[data-theme] .av-page-header {
}

/* AlgVault iOS-first polish layer */
* { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: clip; }
button, .button-link, .nav-link, .bottom-nav-item, input, select, textarea { min-height: 44px; }
:focus-visible { outline: 2px solid rgba(105, 211, 255, .95); outline-offset: 3px; }
.app-main { contain: inline-size; }
.av-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: clamp(1rem, 3vw, 1.35rem);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background:
    radial-gradient(circle at top left, rgba(56, 189, 248, 0.16), transparent 38%),
    linear-gradient(145deg, rgba(15, 21, 30, 0.96), rgba(8, 10, 12, 0.94));
  box-shadow: var(--shadow);
}

html[data-theme] .av-page-header h1 {
  margin: 0.2rem 0 0.35rem;
  color: var(--ink);
  font-size: clamp(1.7rem, 7vw, 2.7rem);
  line-height: 1;
}

html[data-theme] .av-page-header p {
  margin: 0;
  max-width: 44rem;
  color: var(--muted-strong);
  line-height: 1.55;
}

html[data-theme] .av-status-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2rem;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--muted-strong);
  background: rgba(15, 23, 42, 0.72);
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}

html[data-theme] .av-status-chip span {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  background: currentColor;
  box-shadow: 0 0 16px currentColor;
}

html[data-theme] .av-security-section {
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: rgba(8, 13, 24, 0.72);
}

html[data-theme] .av-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.85rem;
}

html[data-theme] .av-section-head h2 {
  margin: 0.2rem 0 0;
}

html[data-theme] .av-security-grid {
  display: grid;
  gap: 0.7rem;
}

html[data-theme] .av-security-card {
  padding: 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.045);
}

html[data-theme] .av-security-card p {
  margin: 0.4rem 0 0;
  color: var(--muted-strong);
  line-height: 1.5;
}

html[data-theme] .panic-confirmation-panel {
  margin: 0.4rem 0 1rem;
  padding: 1rem;
  border: 1px solid rgba(255, 107, 134, 0.28);
  border-radius: var(--radius-lg);
  background: rgba(127, 29, 29, 0.16);
}

html[data-theme] .panic-confirmation-panel p {
  margin: 0.35rem 0 0.8rem;
  color: rgba(254, 226, 226, 0.78);
}

html[data-theme] .panic-confirm-check {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 44px;
  color: var(--ink);
}

html[data-theme] .panic-confirm-check input {
  width: 1.15rem;
  height: 1.15rem;
  accent-color: #ef4444;
}

html[data-theme] .connections-header-action {
  display: flex;
  justify-content: flex-end;
  margin: -0.5rem 0 0.75rem;
}

@media (max-width: 760px) {
  html[data-theme] .av-page-header {
    flex-direction: column;
  }
  padding: clamp(1rem, 3vw, 1.35rem);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 28px;
  background:
    radial-gradient(circle at top left, rgba(59,130,246,.18), transparent 38%),
    linear-gradient(145deg, rgba(18,24,38,.92), rgba(7,10,18,.9));
  box-shadow: 0 18px 45px rgba(0,0,0,.24);
  margin-bottom: 1rem;
}
.av-page-header h1 {
  margin: .2rem 0 .35rem;
  font-size: clamp(1.7rem, 7vw, 2.7rem);
  letter-spacing: -.045em;
  line-height: 1;
}
.av-page-header p { margin: 0; max-width: 44rem; color: rgba(226,232,240,.72); line-height: 1.55; }
.av-status-chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 32px;
  padding: .35rem .7rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(241,245,249,.9);
  background: rgba(15,23,42,.72);
  font-size: .78rem;
  font-weight: 800;
  white-space: nowrap;
}
.av-status-chip span { width: .5rem; height: .5rem; border-radius: 999px; background: currentColor; box-shadow: 0 0 16px currentColor; }
.av-status-success { color: #7dd3fc; background: rgba(14,116,144,.16); border-color: rgba(125,211,252,.28); }
.av-status-warning { color: #fbbf24; background: rgba(146,64,14,.16); border-color: rgba(251,191,36,.28); }
.av-status-danger { color: #fca5a5; background: rgba(127,29,29,.2); border-color: rgba(252,165,165,.28); }
.av-command-center, .settings-shell, .connections-shell, .activity-page-shell, .wallet-exchange-shell, .wallet-assets-section { width: min(100%, 1180px); margin-inline: auto; }
.av-command-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: 1rem; align-items: stretch; }
.av-hero-balance p { margin: .55rem 0 0; color: rgba(226,232,240,.68); }
.av-metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .75rem; }
.av-metric-card {
  padding: 1rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 22px;
  background: rgba(15,23,42,.68);
  min-width: 0;
}
.av-metric-card span, .av-metric-card small { display: block; color: rgba(203,213,225,.68); }
.av-metric-card strong { display: block; margin: .35rem 0; font-size: clamp(1.1rem, 5vw, 1.55rem); letter-spacing: -.03em; }
.av-metric-success { border-color: rgba(45,212,191,.22); }
.av-metric-warning { border-color: rgba(251,191,36,.28); }
.av-quick-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .8rem; margin: 1rem 0; }
.av-quick-card {
  display: grid;
  gap: .35rem;
  min-height: 128px;
  padding: 1rem;
  text-decoration: none;
  color: inherit;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(15,23,42,.82), rgba(2,6,23,.78));
  box-shadow: 0 14px 36px rgba(0,0,0,.2);
}
.av-quick-card:active { transform: scale(.985); }
.av-quick-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 16px; background: rgba(59,130,246,.14); color: #93c5fd; }
.av-quick-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.av-quick-card small { color: rgba(203,213,225,.7); }
.av-quick-danger .av-quick-icon { background: rgba(239,68,68,.14); color: #fca5a5; }
.av-status-panel, .av-security-section {
  padding: 1rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 26px;
  background: rgba(8,13,24,.72);
}
.av-section-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom: .85rem; }
.av-section-head h2 { margin: .2rem 0 0; letter-spacing: -.03em; }
.av-provider-list, .av-security-grid { display:grid; gap:.7rem; }
.av-provider-row, .av-security-card {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.85rem;
  border-radius: 18px;
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(255,255,255,.08);
}
.av-provider-row > div { min-width:0; flex:1; }
.av-provider-row small, .av-security-card p { color:rgba(203,213,225,.7); }
.av-security-card { display:block; }
.av-security-card p { margin:.4rem 0 0; line-height:1.5; }
.av-empty-state {
  display:grid;
  place-items:center;
  gap:.55rem;
  padding:1.25rem;
  min-height: 150px;
  text-align:center;
  border:1px dashed rgba(148,163,184,.3);
  border-radius:22px;
  background:rgba(15,23,42,.45);
  color:rgba(226,232,240,.86);
}
.av-empty-state p { margin:0; max-width:32rem; color:rgba(203,213,225,.68); }
.av-empty-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:16px; background:rgba(59,130,246,.12); color:#93c5fd; }
.panic-confirmation-panel { margin: .4rem 0 1rem; padding: 1rem; border-radius: 20px; border: 1px solid rgba(252,165,165,.28); background: rgba(127,29,29,.16); }
.panic-confirmation-panel p { margin: .35rem 0 .8rem; color: rgba(254,226,226,.78); }
.panic-confirm-check { display:flex; align-items:center; gap:.65rem; min-height:44px; color:rgba(255,255,255,.9); }
.panic-confirm-check input { width:1.15rem; height:1.15rem; accent-color:#ef4444; }
.connections-header-action { display:flex; justify-content:flex-end; margin: -0.5rem 0 .75rem; }

@media (max-width: 760px) {
  .app-topbar { padding-top: max(.7rem, env(safe-area-inset-top)); }
  .av-page-header { border-radius: 24px; flex-direction: column; }
  .av-command-hero, .av-metric-grid, .av-quick-grid { grid-template-columns: 1fr; }
  .av-quick-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .av-provider-row { align-items:flex-start; }
  .av-provider-row .av-status-chip { align-self:center; }
  .crypto-rail { overflow-x: auto; scrollbar-width: none; }
}
@media (max-width: 430px) {
  .av-quick-grid { gap: .65rem; }
  .av-quick-card { min-height: 116px; padding: .85rem; border-radius: 20px; }
  .av-page-header, .av-status-panel, .av-security-section { margin-inline: 0; }
  .bottom-nav { padding-left: max(.35rem, env(safe-area-inset-left)); padding-right: max(.35rem, env(safe-area-inset-right)); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; }
}

.backtest-auto-universe,
.backtest-eligible-pairs,
.backtest-asset-breakdown {
  display: grid;
  gap: 0.55rem;
  min-width: 0;
}

.backtest-universe-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.7rem;
  align-items: center;
  min-height: 4.1rem;
  padding: 0.68rem;
  border: 1px solid rgba(14, 203, 129, 0.22);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(14, 203, 129, 0.1), rgba(124, 167, 255, 0.055));
}

.backtest-universe-card strong,
.backtest-asset-row strong {
  display: block;
  color: #f4f7fb;
  font-size: 0.92rem;
  font-weight: 950;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.backtest-universe-card small,
.backtest-help-copy,
.backtest-result-note,
.backtest-asset-row small {
  color: #8f9bae;
  font-size: 0.73rem;
  font-weight: 780;
  line-height: 1.3;
}

.backtest-universe-card > span {
  min-height: 2rem;
  display: inline-grid;
  place-items: center;
  padding: 0.28rem 0.55rem;
  border-radius: 8px;
  color: #0ecb81;
  background: rgba(14, 203, 129, 0.11);
  font-size: 0.72rem;
  font-weight: 950;
  white-space: nowrap;
}

.backtest-universe-card > span[data-state="blocked"] {
  color: #f0b90b;
  background: rgba(240, 185, 11, 0.11);
}

.backtest-universe-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}

.backtest-universe-facts div {
  min-width: 0;
  padding: 0.52rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.035);
}

.backtest-universe-facts span,
.backtest-asset-row span {
  display: block;
  color: #7f8ca1;
  font-size: 0.64rem;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.backtest-universe-facts strong,
.backtest-asset-row div > strong:not(:first-child),
.backtest-asset-row div strong.positive,
.backtest-asset-row div strong.negative {
  display: block;
  margin-top: 0.18rem;
  color: #f4f7fb;
  font-size: 0.88rem;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.backtest-eligible-pairs summary {
  min-height: 2.75rem;
  display: flex;
  align-items: center;
  cursor: pointer;
  color: #a9b5c8;
  font-size: 0.78rem;
  font-weight: 900;
}

.backtest-eligible-pairs .backtest-symbol-list {
  max-height: 14rem;
}

.backtest-symbol-row {
  cursor: default;
}

.backtest-asset-row {
  display: grid;
  grid-template-columns: minmax(8rem, 1.2fr) repeat(8, minmax(4.2rem, 0.68fr));
  gap: 0.45rem;
  align-items: stretch;
  min-width: 0;
  padding: 0.52rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.035);
}

.backtest-asset-row.is-skipped,
.backtest-asset-row.is-insufficient_history {
  border-color: rgba(240, 185, 11, 0.22);
  background: rgba(240, 185, 11, 0.045);
}

.backtest-asset-row.is-failed {
  border-color: rgba(246, 70, 93, 0.22);
  background: rgba(246, 70, 93, 0.045);
}

.backtest-asset-row > div {
  min-width: 0;
}

.backtest-status-chip {
  display: inline-grid;
  min-height: 1.35rem;
  align-items: center;
  padding: 0.16rem 0.4rem;
  border-radius: 0.45rem;
  color: #0ecb81;
  background: rgba(14, 203, 129, 0.12);
  font-size: 0.68rem;
  font-style: normal;
  font-weight: 950;
  line-height: 1.1;
}

.backtest-status-chip.is-skipped,
.backtest-status-chip.is-insufficient_history {
  color: #f0b90b;
  background: rgba(240, 185, 11, 0.13);
}

.backtest-status-chip.is-failed {
  color: #f6465d;
  background: rgba(246, 70, 93, 0.13);
}

.backtest-history-note {
  margin-top: 0.22rem;
  color: rgba(169, 181, 200, 0.72);
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.25;
  text-transform: none;
}

.backtest-asset-row strong.positive {
  color: #0ecb81;
}

.backtest-asset-row strong.negative {
  color: #f6465d;
}

@media (max-width: 760px) {
  .backtest-asset-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .backtest-asset-row > div:first-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 430px) {
  .backtest-universe-card,
  .backtest-universe-facts,
  .backtest-asset-row {
    grid-template-columns: 1fr;
  }

  .backtest-universe-card > span {
    justify-self: start;
  }
}

/* Vault-aligned Backtesting allocation surface. */
.backtest-vault-shell {
  display: grid;
  gap: 0.85rem;
  width: min(100%, 1180px);
  margin-inline: auto;
  padding-bottom: calc(1rem + var(--safe-bottom, env(safe-area-inset-bottom)));
}

.backtest-vault-card .vault-command-head p {
  max-width: 44rem;
  margin: 0.28rem 0 0;
  color: var(--muted-strong);
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1.35;
}

.backtest-vault-form {
  align-items: start;
}

.backtest-allocation-asset-module,
.backtest-auto-universe,
.backtest-run-actions {
  grid-column: 1 / -1;
}

.backtest-asset-toolbar,
.backtest-selected-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-width: 0;
}

.backtest-asset-toolbar > div,
.backtest-selected-chips span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 2.2rem;
  padding: 0.42rem 0.56rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0.5rem;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.035);
  font-size: 0.76rem;
  font-weight: 850;
}

.backtest-asset-toolbar strong,
.backtest-selected-chips strong {
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}

.backtest-use-vault {
  min-height: 2.38rem;
  border-radius: 0.5rem;
  font-size: 0.76rem;
  font-weight: 950;
}

.backtest-allocation-selector {
  grid-template-columns: repeat(auto-fit, minmax(136px, 1fr));
}

.backtest-allocation-option {
  min-width: 0;
  touch-action: manipulation;
}

.backtest-allocation-option .coin-icon,
.backtest-allocation-option .backtest-token-icon {
  flex: 0 0 auto;
}

.backtest-allocation-option span:last-child {
  min-width: 0;
}

.backtest-allocation-option strong,
.backtest-allocation-option small {
  overflow-wrap: anywhere;
}

.backtest-amount-module input[type="range"] {
  width: 100%;
  accent-color: var(--accent);
}

.backtest-universe-summary strong {
  color: var(--accent);
}

.backtest-result-panel {
  gap: 0.78rem;
}

.backtest-result-panel[hidden],
.backtest-empty-state[hidden] {
  display: none;
}

.backtest-asset-row small {
  overflow-wrap: anywhere;
}

.backtest-symbol-list.is-loading {
  opacity: 0.72;
}

@media (min-width: 720px) {
  .backtest-amount-module,
  .backtest-cycle-module {
    grid-column: span 1;
  }
}

@media (max-width: 760px) {
  .page-shell:has(.backtest-vault-shell) {
    padding-bottom: calc(var(--bottom-nav-height, 72px) + 5.4rem + var(--safe-bottom));
  }

  .backtest-allocation-selector {
    display: flex;
    grid-template-columns: none;
    gap: 0.5rem;
    overflow-x: auto;
    padding-bottom: 0.2rem;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }

  .backtest-allocation-option {
    flex: 0 0 9.4rem;
    scroll-snap-align: start;
  }
}

@media (max-width: 430px) {
  .backtest-asset-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .backtest-use-vault,
  .backtest-asset-toolbar > div {
    width: 100%;
  }
}

/* Backtests command console cleanup. */
.backtest-vault-shell {
  --backtest-panel: rgba(255, 255, 255, 0.032);
  --backtest-panel-strong: rgba(255, 255, 255, 0.052);
  --backtest-border: rgba(255, 255, 255, 0.09);
  --backtest-border-strong: rgba(255, 255, 255, 0.14);
  --backtest-muted: #9aa6b8;
  --backtest-soft: #c7d0df;
  gap: 0.72rem;
}

.backtest-page-header {
  align-items: stretch;
  gap: 0.95rem;
  padding-bottom: 0.76rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.backtest-page-copy {
  min-width: 0;
}

.backtest-page-copy h1 {
  margin-top: 0.08rem;
  font-size: clamp(1.34rem, 2.5vw, 2rem);
  letter-spacing: 0;
}

.backtest-header-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.36rem;
  margin-top: 0.58rem;
}

.backtest-header-meta span,
.backtest-result-chip,
.backtest-status-chip {
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--backtest-soft);
  background: rgba(255, 255, 255, 0.045);
}

.backtest-header-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.34rem;
  min-height: 2rem;
  padding: 0.24rem 0.52rem;
  border-radius: 0.48rem;
  font-size: 0.72rem;
  font-weight: 850;
}

.backtest-header-meta span::before {
  content: "";
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.78;
}

.backtest-header-actions {
  display: grid;
  grid-template-columns: minmax(4.8rem, auto) 9.25rem;
  gap: 0.55rem;
  align-content: start;
  justify-content: end;
  min-width: min(100%, 20rem);
}

.backtest-header-run {
  width: 9.25rem;
  min-width: 9.25rem;
  min-height: 2.8rem;
  white-space: nowrap;
}

.backtest-vault-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.68rem;
  margin-top: 0.78rem;
}

.backtest-vault-form .vault-form-section {
  display: grid;
  gap: 0.52rem;
  padding: 0.72rem;
  border-radius: 8px;
  box-shadow: none;
}

.backtest-vault-shell .vault-section-label {
  align-items: center;
  gap: 0.5rem;
}

.backtest-vault-shell .vault-section-label span {
  width: 1.72rem;
  height: 1.72rem;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 0.45rem;
  color: var(--accent);
  background: rgba(14, 203, 129, 0.08);
  font-size: 0.72rem;
}

.backtest-vault-shell .vault-section-label strong {
  color: var(--ink);
  font-size: 0.82rem;
  letter-spacing: 0;
}

.backtest-help-copy {
  margin: -0.12rem 0 0.05rem;
  color: var(--backtest-muted);
  font-size: 0.78rem;
  font-weight: 740;
  line-height: 1.38;
}

.backtest-run-actions {
  gap: 0.45rem;
  padding-top: 0.2rem;
}

.backtest-run-actions .backtest-run-button {
  display: none;
}

.backtest-form-status {
  min-height: 1.55rem;
  line-height: 1.35;
}

.backtest-panel-state {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.62rem;
  min-width: 0;
  min-height: 2.75rem;
  padding: 0.56rem 0.64rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 8px;
  color: var(--backtest-muted);
  background: rgba(255, 255, 255, 0.032);
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1.35;
}

.backtest-panel-state[hidden] {
  display: none;
}

.backtest-panel-state button {
  flex: 0 0 auto;
  min-height: 2.35rem;
  padding: 0 0.76rem;
  border: 1px solid rgba(240, 185, 11, 0.32);
  border-radius: 0.48rem;
  color: #f0b90b;
  background: rgba(240, 185, 11, 0.08);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 900;
}

.backtest-panel-state[data-state="error"],
.backtest-panel-state[data-state="offline"] {
  border-color: rgba(246, 70, 93, 0.24);
  color: #ffb7bd;
  background: rgba(246, 70, 93, 0.055);
}

.backtest-panel-state[data-state="loading"] {
  border-color: rgba(110, 231, 255, 0.22);
  color: #b9f4ff;
}

.backtest-asset-toolbar > div,
.backtest-selected-chips span,
.backtest-universe-summary,
.backtest-conversion-preview {
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  box-shadow: none;
}

.backtest-allocation-selector {
  gap: 0.5rem;
}

.backtest-allocation-option {
  min-height: 4.4rem;
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.032);
}

.backtest-allocation-option.is-selected,
.backtest-allocation-option:has(input:checked) {
  border-color: rgba(14, 203, 129, 0.35);
  background: rgba(14, 203, 129, 0.07);
}

.backtest-cycle-card {
  min-height: 7rem;
  border-color: rgba(240, 185, 11, 0.2);
  background:
    linear-gradient(135deg, rgba(240, 185, 11, 0.1), rgba(14, 203, 129, 0.035)),
    rgba(255, 255, 255, 0.028);
}

.backtest-result-panel {
  gap: 0.72rem;
  padding: 0.82rem;
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.32);
}

.backtest-result-panel.is-stale {
  border-color: rgba(240, 185, 11, 0.24);
}

.backtest-result-head {
  align-items: flex-start;
  padding-bottom: 0.62rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.backtest-updated-note {
  display: block;
  margin-top: 0.24rem;
  color: var(--backtest-muted);
  font-size: 0.72rem;
  font-weight: 760;
  line-height: 1.3;
}

.backtest-metric-strip {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.48rem;
}

.backtest-metric-card {
  min-height: 3.24rem;
  border-color: rgba(255, 255, 255, 0.075);
  background: rgba(255, 255, 255, 0.028);
  box-shadow: none;
}

.backtest-metric-card.is-primary {
  min-height: 4.15rem;
  border-color: rgba(255, 255, 255, 0.105);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.026)),
    rgba(255, 255, 255, 0.025);
}

.backtest-metric-card.is-primary strong {
  font-size: clamp(1.08rem, 2vw, 1.3rem);
}

.backtest-metric-card.is-secondary strong {
  color: var(--backtest-soft);
  font-size: 0.88rem;
}

.backtest-chart-panel,
.backtest-intel-panel,
.backtest-strategy-panel {
  border-color: rgba(255, 255, 255, 0.082);
  background: rgba(255, 255, 255, 0.026);
  box-shadow: none;
}

.backtest-chart-toolbar {
  padding-bottom: 0.15rem;
}

.backtest-chart-tabs {
  padding: 0.18rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.18);
}

.backtest-chart-tabs button {
  min-height: 2.32rem;
  border: 0;
}

.backtest-chart-tabs button:focus-visible,
.backtest-panel-state button:focus-visible,
.backtest-header-run:focus-visible,
.backtest-run-actions .backtest-run-button:focus-visible {
  outline: 2px solid rgba(110, 231, 255, 0.86);
  outline-offset: 3px;
}

.backtest-chart-skeleton,
.backtest-chart-state {
  position: absolute;
  inset: 0;
  z-index: 3;
}

.backtest-chart-skeleton {
  display: grid;
  align-content: end;
  gap: 14%;
  padding: 1rem;
  background:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    rgba(5, 7, 11, 0.74);
  background-size: 44px 44px, 44px 44px, auto;
}

.backtest-chart-skeleton[hidden],
.backtest-chart-state[hidden] {
  display: none;
}

.backtest-chart-skeleton span,
.backtest-kv-skeleton,
.backtest-asset-skeleton,
.backtest-strategy-skeleton,
.backtest-result-panel.is-loading .backtest-metric-card strong {
  display: block;
  overflow: hidden;
  border-radius: 999px;
  color: transparent !important;
  background: linear-gradient(90deg, rgba(255,255,255,0.045), rgba(255,255,255,0.1), rgba(255,255,255,0.045));
  background-size: 220% 100%;
  animation: backtestSkeleton 1.1s linear infinite;
}

.backtest-chart-skeleton span:nth-child(1) {
  width: 42%;
  height: 0.7rem;
}

.backtest-chart-skeleton span:nth-child(2) {
  width: 74%;
  height: 0.7rem;
}

.backtest-chart-skeleton span:nth-child(3) {
  width: 58%;
  height: 0.7rem;
}

.backtest-chart-state {
  display: grid;
  place-items: end stretch;
  padding: 0.82rem;
  pointer-events: none;
}

.backtest-chart-state span {
  display: block;
  padding: 0.68rem 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  color: var(--backtest-muted);
  background: rgba(5, 7, 11, 0.84);
  font-size: 0.8rem;
  font-weight: 800;
}

.backtest-chart-state[data-state="error"] span {
  border-color: rgba(246, 70, 93, 0.24);
  color: #ffb7bd;
}

.backtest-kv-skeleton {
  min-height: 3.1rem;
  border-radius: 8px;
}

.backtest-asset-skeleton,
.backtest-strategy-skeleton {
  min-height: 3.45rem;
  border-radius: 8px;
}

.backtest-intel-list div,
.backtest-strategy-row,
.backtest-asset-row {
  border-color: rgba(255, 255, 255, 0.075);
  background: rgba(255, 255, 255, 0.028);
}

.backtest-asset-row {
  grid-template-columns: minmax(10rem, 1.35fr) repeat(9, minmax(4.4rem, 0.66fr));
  align-items: center;
  padding: 0.48rem;
}

.backtest-status-chip {
  white-space: normal;
}

.backtest-symbol-empty,
.backtest-empty-state small {
  line-height: 1.4;
}

@media (max-width: 980px) {
  .backtest-asset-row {
    grid-template-columns: minmax(11rem, 1.4fr) repeat(3, minmax(5rem, 1fr));
  }
}

@media (max-width: 760px) {
  .backtest-vault-shell {
    width: 100%;
    padding-bottom: calc(0.75rem + var(--safe-bottom, env(safe-area-inset-bottom)));
  }

  .backtest-page-header {
    display: grid;
  }

  .backtest-header-actions {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }

  .backtest-header-run {
    display: none;
  }

  .backtest-run-actions .backtest-run-button {
    display: block;
  }

  .backtest-vault-form {
    grid-template-columns: 1fr;
  }

  .backtest-vault-form .vault-form-section {
    padding: 0.68rem;
  }

  .backtest-help-copy,
  .backtest-panel-state,
  .backtest-form-status,
  .backtest-symbol-empty,
  .backtest-empty-state small,
  .backtest-chart-state span,
  .backtest-cycle-card small,
  .backtest-cycle-card em,
  .backtest-asset-row small,
  .backtest-strategy-row small {
    font-size: 1rem;
  }

  .backtest-vault-shell .vault-section-label strong,
  .backtest-panel-mini-head span,
  .backtest-metric-strip span,
  .backtest-intel-list span,
  .backtest-asset-row span {
    font-size: 0.84rem;
  }

  .backtest-allocation-selector {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
    padding-bottom: 0;
    scroll-snap-type: none;
  }

  .backtest-allocation-option {
    flex: initial;
  }

  .backtest-metric-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .backtest-panel-state,
  .backtest-result-head,
  .backtest-chart-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .backtest-panel-state button {
    width: 100%;
    min-height: 2.75rem;
  }

  .backtest-chart-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .backtest-asset-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-height: auto;
  }

  .backtest-asset-row > div:first-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 430px) {
  .backtest-header-meta,
  .backtest-selected-chips {
    display: grid;
    grid-template-columns: 1fr;
  }

  .backtest-allocation-selector,
  .backtest-metric-strip,
  .backtest-intel-list,
  .backtest-asset-row {
    grid-template-columns: 1fr;
  }

  .backtest-balance-pill,
  .backtest-header-meta span {
    width: 100%;
  }
}

html[data-theme="light"] .backtest-header-meta span,
html[data-theme="light"] .backtest-panel-state,
html[data-theme="light"] .backtest-asset-toolbar > div,
html[data-theme="light"] .backtest-selected-chips span,
html[data-theme="light"] .backtest-universe-summary,
html[data-theme="light"] .backtest-conversion-preview,
html[data-theme="light"] .backtest-metric-card,
html[data-theme="light"] .backtest-chart-panel,
html[data-theme="light"] .backtest-intel-panel,
html[data-theme="light"] .backtest-strategy-panel,
html[data-theme="light"] .backtest-intel-list div,
html[data-theme="light"] .backtest-strategy-row,
html[data-theme="light"] .backtest-asset-row {
  border-color: rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.78);
}

html[data-theme="light"] .backtest-chart-state span {
  color: #475569;
  background: rgba(255, 255, 255, 0.9);
}

/* Shared live-ops bridge */
.ops-bridge {
  display: grid;
  grid-template-columns: minmax(8rem, 0.72fr) minmax(0, 2fr) auto;
  gap: 0.58rem;
  align-items: stretch;
  min-width: 0;
  padding: 0.58rem;
  border: 1px solid rgba(255, 255, 255, 0.095);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.044), rgba(255, 255, 255, 0.024)),
    rgba(7, 8, 11, 0.9);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);
}

.ops-bridge-head,
.ops-bridge-metrics > div,
.ops-bridge-actions a {
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.075);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.032);
}

.ops-bridge-head {
  display: grid;
  align-content: center;
  gap: 0.12rem;
  padding: 0.58rem 0.62rem;
}

.ops-bridge-head strong {
  color: var(--ink, #f5f5f5);
  font-size: 0.9rem;
  line-height: 1.12;
}

.ops-bridge-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.42rem;
  min-width: 0;
}

.ops-bridge-metrics > div {
  display: grid;
  align-content: center;
  gap: 0.16rem;
  min-height: 3.1rem;
  padding: 0.5rem 0.56rem;
}

.ops-bridge-metrics span {
  color: var(--muted, #8f8f8f);
  font-size: 0.62rem;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.ops-bridge-metrics strong {
  min-width: 0;
  color: var(--ink, #f5f5f5);
  font-size: 0.86rem;
  font-weight: 950;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.ops-bridge-metrics [data-state="ready"] {
  border-color: rgba(0, 192, 118, 0.24);
}

.ops-bridge-metrics [data-state="ready"] strong {
  color: #8ff0bf;
}

.ops-bridge-metrics [data-state="watch"] {
  border-color: rgba(240, 185, 11, 0.26);
}

.ops-bridge-metrics [data-state="watch"] strong {
  color: #f4d174;
}

.ops-bridge-metrics [data-state="blocked"] {
  border-color: rgba(255, 77, 79, 0.28);
}

.ops-bridge-metrics [data-state="blocked"] strong {
  color: #ffb3b4;
}

.ops-bridge-actions {
  display: flex;
  align-items: stretch;
  gap: 0.36rem;
  min-width: 0;
}

.ops-bridge-actions a,
.quick-action-bar a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 44px;
  color: var(--muted-strong, #c8c8c8);
  font-size: 0.68rem;
  font-weight: 900;
  line-height: 1.05;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.ops-bridge-actions a {
  padding: 0.42rem 0.56rem;
}

.ops-bridge-actions a:hover,
.quick-action-bar a:hover {
  color: var(--ink, #f5f5f5);
  border-color: rgba(255, 255, 255, 0.16);
}

.ops-bridge-actions a:focus-visible,
.quick-action-bar a:focus-visible,
.vault-cycle-detail-panel summary:focus-visible,
.backtest-more-detail summary:focus-visible,
.treasury-detail-panel summary:focus-visible {
  outline: 2px solid rgba(110, 231, 255, 0.86);
  outline-offset: 3px;
}

.vault-cycle-detail-panel,
.backtest-more-detail,
.treasury-detail-panel {
  min-width: 0;
}

.vault-cycle-detail-panel summary,
.backtest-more-detail summary,
.treasury-detail-panel > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-height: 2.7rem;
  padding: 0.62rem 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.085);
  border-radius: 8px;
  color: var(--muted-strong, #c8c8c8);
  background: rgba(255, 255, 255, 0.032);
  font-size: 0.74rem;
  font-weight: 900;
  cursor: pointer;
  list-style: none;
}

.vault-cycle-detail-panel summary::-webkit-details-marker,
.backtest-more-detail summary::-webkit-details-marker,
.treasury-detail-panel > summary::-webkit-details-marker {
  display: none;
}

.vault-cycle-detail-panel summary::after,
.backtest-more-detail summary::after,
.treasury-detail-panel > summary::after {
  content: "+";
  flex: 0 0 auto;
  color: var(--accent, #ff1f1f);
  font-size: 1rem;
  font-weight: 950;
}

.vault-cycle-detail-panel[open] summary::after,
.backtest-more-detail[open] summary::after,
.treasury-detail-panel[open] > summary::after {
  content: "-";
}

.vault-cycle-detail-panel[open] .vault-result-details,
.vault-cycle-detail-panel[open] .vault-allocation-mini-list,
.backtest-more-detail[open] .backtest-secondary-metric-strip,
.backtest-more-detail[open] .backtest-intel-grid,
.backtest-more-detail[open] .backtest-strategy-panel,
.treasury-detail-panel[open] .treasury-metric-strip-secondary,
.treasury-detail-panel[open] .treasury-table-wrap {
  margin-top: 0.55rem;
}

.backtest-secondary-metric-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.45rem;
}

.quick-action-bar {
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.65fr);
}

.quick-action-group {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.quick-action-group:has(button:nth-of-type(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.quick-action-group a,
.quick-action-group button {
  min-height: 44px;
}

.quick-action-group a {
  padding: 0.38rem 0.28rem;
  border: 1px solid transparent;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.045);
}

@media (max-width: 900px) {
  .ops-bridge {
    grid-template-columns: 1fr;
  }

  .ops-bridge-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .ops-bridge {
    gap: 0.45rem;
    padding: 0.48rem;
  }

  .ops-bridge-metrics,
  .backtest-secondary-metric-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ops-bridge-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .quick-action-bar {
    grid-template-columns: none;
  }
}

@media (max-width: 430px) {
  .ops-bridge-metrics,
  .backtest-secondary-metric-strip {
    grid-template-columns: 1fr;
  }
}

html[data-theme="light"] .ops-bridge,
html[data-theme="light"] .ops-bridge-head,
html[data-theme="light"] .ops-bridge-metrics > div,
html[data-theme="light"] .ops-bridge-actions a,
html[data-theme="light"] .quick-action-group a,
html[data-theme="light"] .vault-cycle-detail-panel summary,
html[data-theme="light"] .backtest-more-detail summary,
html[data-theme="light"] .treasury-detail-panel > summary {
  border-color: rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.78);
}

html[data-theme="light"] .backtest-chart-skeleton span,
html[data-theme="light"] .backtest-kv-skeleton,
html[data-theme="light"] .backtest-asset-skeleton,
html[data-theme="light"] .backtest-strategy-skeleton,
html[data-theme="light"] .backtest-result-panel.is-loading .backtest-metric-card strong {
  background: linear-gradient(90deg, rgba(15,23,42,0.07), rgba(15,23,42,0.14), rgba(15,23,42,0.07));
  background-size: 220% 100%;
}

@media (prefers-reduced-motion: reduce) {
  .backtest-chart-skeleton span,
  .backtest-kv-skeleton,
  .backtest-asset-skeleton,
  .backtest-strategy-skeleton,
  .backtest-result-panel.is-loading .backtest-metric-card strong {
    animation: none !important;
  }
}

/* AlgVault lightweight diagnostics and on-demand chart surfaces. */
.mini-chart-card,
.allocation-panel,
.strategy-run-monitor,
.strategy-health-card {
  position: relative;
  overflow: hidden;
  min-width: 0;
  padding: clamp(0.95rem, 2vw, 1.15rem);
  border: 1px solid rgba(148, 163, 184, 0.16);
  border-radius: 20px;
  background:
    linear-gradient(145deg, rgba(125, 211, 252, 0.08), rgba(134, 239, 172, 0.035)),
    rgba(8, 13, 24, 0.82);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.24);
}

.mini-chart-head,
.strategy-diagnostics-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.8rem;
}

.mini-chart-head h2,
.mini-chart-head h3 {
  margin: 0.15rem 0 0;
  color: #f8fafc;
  font-size: clamp(1rem, 2.3vw, 1.2rem);
  letter-spacing: 0;
}

.chart-summary,
.wallet-card-subtitle,
.portfolio-card-note {
  margin: 0;
  color: rgba(203, 213, 225, 0.72);
  font-size: 0.82rem;
  line-height: 1.45;
}

.mini-chart-canvas {
  display: block;
  width: 100%;
  height: 150px;
  margin-bottom: 0.75rem;
  border-radius: 14px;
  background:
    linear-gradient(180deg, rgba(125, 211, 252, 0.09), rgba(125, 211, 252, 0)),
    rgba(255, 255, 255, 0.025);
}

.mini-chart-canvas--short {
  height: 104px;
}

.mini-chart-card.is-empty .mini-chart-canvas {
  display: none;
}

.compact-state {
  display: flex;
  align-items: center;
  min-height: 6.5rem;
  padding: 0.9rem;
  border: 1px dashed rgba(148, 163, 184, 0.24);
  border-radius: 14px;
  color: rgba(226, 232, 240, 0.76);
  background: rgba(255, 255, 255, 0.035);
}

.compact-state--warning {
  min-height: 0;
  margin-top: 0.75rem;
  border-color: rgba(251, 191, 36, 0.32);
  color: #fde68a;
}

.wallet-chart-card {
  min-height: 100%;
}

.cycle-analytics-grid,
.strategy-diagnostics-shell {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  gap: clamp(0.85rem, 2vw, 1.15rem);
  align-items: stretch;
  margin: clamp(0.9rem, 2vw, 1.2rem) 0;
}

.allocation-panel {
  margin: clamp(0.9rem, 2vw, 1.2rem) 0;
}

.allocation-bars {
  display: grid;
  gap: 0.75rem;
}

.allocation-bar-row {
  display: grid;
  grid-template-columns: minmax(5.5rem, 0.75fr) minmax(8rem, 1.5fr) minmax(5rem, auto);
  align-items: center;
  gap: 0.75rem;
}

.allocation-row-label {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

.allocation-row-label strong,
.allocation-pct {
  color: rgba(248, 250, 252, 0.96);
  font-size: 0.86rem;
}

.allocation-row-label span {
  color: rgba(203, 213, 225, 0.62);
  font-size: 0.76rem;
}

.allocation-track {
  height: 0.55rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
}

.allocation-track span {
  display: block;
  height: 100%;
  min-width: 0.35rem;
  border-radius: inherit;
  background: linear-gradient(90deg, #7dd3fc, #86efac);
}

.strategy-diagnostics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: 0.9rem;
  margin-top: 1rem;
}

.strategy-diagnostics-heading {
  grid-column: 1 / -1;
  margin-bottom: 0;
}

.strategy-status-strip,
.strategy-factor-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.strategy-status-strip span,
.strategy-factor-list span {
  display: grid;
  gap: 0.08rem;
  min-width: 5.4rem;
  padding: 0.62rem 0.7rem;
  border: 1px solid rgba(148, 163, 184, 0.12);
  border-radius: 14px;
  color: rgba(203, 213, 225, 0.68);
  background: rgba(255, 255, 255, 0.035);
  font-size: 0.72rem;
}

.strategy-status-strip strong,
.strategy-factor-list strong {
  color: rgba(248, 250, 252, 0.96);
  font-size: 0.92rem;
}

.strategy-run-list {
  display: grid;
  gap: 0.72rem;
}

.strategy-run-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.35rem 0.75rem;
  padding: 0.8rem;
  border: 1px solid rgba(148, 163, 184, 0.12);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
}

.strategy-run-row p {
  grid-column: 1 / -1;
  margin: 0;
  color: rgba(203, 213, 225, 0.7);
  font-size: 0.8rem;
}

@media (max-width: 760px) {
  .mini-chart-card,
  .allocation-panel,
  .strategy-run-monitor,
  .strategy-health-card {
    border-radius: 18px;
    padding: 0.82rem;
  }

  .allocation-bar-row {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }

  .allocation-pct {
    justify-self: start;
  }

  .strategy-run-row {
    grid-template-columns: 1fr;
  }
}

/* Minimal authenticated home dashboard: wallet balance + account P&L. */
.av-home-minimal {
  width: min(100%, 1040px);
  margin-inline: auto;
  gap: clamp(0.85rem, 2vw, 1.15rem);
}

.av-home-minimal .av-panel {
  border-radius: var(--radius-sm);
}

.av-balance-focus,
.av-pnl-focus {
  min-width: 0;
  border-color: rgba(110, 231, 255, 0.18);
}

.av-balance-focus {
  display: grid;
  align-content: space-between;
  gap: clamp(1.2rem, 4vw, 2rem);
  min-height: clamp(17rem, 42svh, 28rem);
  padding: clamp(1rem, 3vw, 1.35rem);
  background:
    linear-gradient(145deg, rgba(13, 18, 26, 0.98), rgba(6, 8, 10, 0.98)),
    var(--panel);
}

.av-balance-topline,
.av-pnl-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.av-balance-topline h1 {
  margin: 0.16rem 0 0;
  color: var(--ink);
  font-size: clamp(1.1rem, 5vw, 1.55rem);
  line-height: 1.05;
  letter-spacing: 0;
}

.av-balance-value strong {
  display: block;
  color: var(--ink);
  font-size: clamp(2.7rem, 17vw, 5.6rem);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 0.95;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.av-data-state {
  margin: 0;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.45;
}

.av-data-state-error {
  color: var(--danger);
}

.av-data-state-warning {
  color: var(--warning);
}

.av-pnl-focus {
  display: grid;
  gap: 0.82rem;
  padding: clamp(0.9rem, 2.4vw, 1.15rem);
}

.av-pnl-chart-shell {
  position: relative;
  min-height: clamp(18rem, 48svh, 31rem);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background:
    linear-gradient(var(--chart-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--chart-grid) 1px, transparent 1px),
    #050607;
  background-size: 42px 42px, 42px 42px, auto;
  overflow: hidden;
  contain: layout paint size;
}

.av-pnl-chart-shell canvas,
.av-pnl-loading,
.av-pnl-chart-shell .av-chart-empty {
  position: absolute;
  inset: 0;
}

.av-pnl-chart-shell canvas {
  width: 100%;
  height: 100%;
}

.av-pnl-loading {
  display: grid;
  place-items: center;
  gap: 0.7rem;
  padding: 1rem;
  color: var(--muted);
  background: rgba(5, 6, 7, 0.78);
  font-size: 0.78rem;
  font-weight: 800;
  text-align: center;
}

.av-pnl-loading[hidden] {
  display: none;
}

.av-pnl-loading .dashboard-skeleton {
  width: min(74%, 22rem);
  height: 0.72rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
}

.av-pnl-chart-shell .av-chart-empty {
  display: grid;
  place-items: center;
  padding: 1rem;
}

.av-pnl-chart-shell .av-chart-empty[hidden] {
  display: none;
}

html[data-theme="light"] .av-balance-focus,
html[data-theme="light"] .av-pnl-focus {
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(238, 245, 249, 0.96)),
    var(--panel);
}

html[data-theme="light"] .av-pnl-chart-shell {
  background:
    linear-gradient(rgba(15, 23, 42, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15, 23, 42, 0.08) 1px, transparent 1px),
    #f8fafc;
}

html[data-theme="light"] .av-pnl-loading {
  background: rgba(248, 250, 252, 0.84);
}

@media (min-width: 860px) {
  .av-home-minimal {
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    align-items: stretch;
  }

  .av-balance-focus,
  .av-pnl-focus {
    min-height: min(68svh, 34rem);
  }

  .av-pnl-focus {
    grid-template-rows: auto minmax(22rem, 1fr) auto;
  }

  .av-pnl-chart-shell {
    min-height: 22rem;
  }
}

@media (max-width: 430px) {
  .av-balance-topline,
  .av-pnl-head {
    gap: 0.58rem;
  }

  .av-balance-topline .av-status-badge,
  .av-pnl-head .av-status-badge,
  .av-pnl-head .av-pnl-badge {
    max-width: 7.8rem;
    justify-content: center;
    white-space: normal;
  }

  .av-pnl-chart-shell {
    min-height: 17rem;
  }
}

/* Admin dashboard iOS/PWA polish. Scoped last so it wins over legacy passes. */
body:has(.trading-dashboard-shell) .page-shell.app-main {
  width: 100%;
  max-width: none;
  padding: 0;
  contain: none;
}

.trading-dashboard-shell {
  min-height: 100svh;
  contain: none;
  padding-top: calc(0.72rem + var(--safe-top));
  padding-right: max(0.72rem, var(--safe-right));
  padding-bottom: calc(var(--bottom-nav-height, 78px) + var(--safe-bottom) + 8.4rem);
  padding-left: max(0.72rem, var(--safe-left));
  scroll-padding-top: calc(4.5rem + var(--safe-top));
  scroll-padding-bottom: calc(var(--bottom-nav-height, 78px) + var(--safe-bottom) + 8rem);
  overflow: clip visible;
}

@supports (min-height: 100dvh) {
  .trading-dashboard-shell {
    min-height: 100dvh;
  }
}

.dashboard-connection-banner,
.dashboard-cache-state {
  width: 100%;
  margin-top: 0.62rem;
  border-radius: 0.5rem;
}

.dashboard-connection-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 3.1rem;
  padding: 0.62rem 0.68rem;
  border: 1px solid rgba(246, 196, 83, 0.3);
  color: var(--ink);
  background: rgba(246, 196, 83, 0.1);
}

.dashboard-connection-banner[hidden] {
  display: none;
}

.dashboard-connection-banner p,
.dashboard-cache-state {
  margin: 0;
  color: var(--muted-strong);
  font-size: 0.78rem;
  line-height: 1.35;
}

.dashboard-connection-banner button {
  flex: 0 0 auto;
  min-height: 2.5rem;
  padding: 0 0.78rem;
}

.dashboard-cache-state {
  padding: 0.48rem 0.62rem;
  border: 1px solid rgba(125, 211, 252, 0.18);
  background: rgba(125, 211, 252, 0.07);
}

.dashboard-cache-state[hidden] {
  display: none;
}

.trade-command-statuses {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}

.trade-live-badge {
  display: inline-flex;
  align-items: center;
  min-height: 2.1rem;
  padding: 0 0.58rem;
  border: 1px solid rgba(52, 211, 153, 0.26);
  border-radius: 999px;
  color: var(--success-strong);
  background: rgba(52, 211, 153, 0.08);
  font-size: 0.7rem;
  font-weight: 900;
}

.trade-metric small,
.panel-helper,
.setup-hold-helper {
  color: var(--muted);
  font-size: 0.74rem;
  line-height: 1.35;
}

.exchange-cache-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.75rem;
  padding: 0.68rem;
  border: 1px solid var(--dash-border, var(--border));
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.04);
}

.exchange-cache-note p {
  margin: 0;
  color: var(--muted-strong);
  font-size: 0.78rem;
  line-height: 1.4;
}

.chart-canvas-host,
.forecast-overlay {
  min-width: 0;
  min-height: 0;
}

.forecast-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.58rem;
}

.forecast-quality-chip {
  display: inline-flex;
  align-items: center;
  min-height: 1.85rem;
  padding: 0 0.54rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.46rem;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.045);
  font-size: 0.68rem;
  font-weight: 850;
  line-height: 1.1;
  text-transform: uppercase;
}

.forecast-quality-chip.is-stale {
  border-color: rgba(255, 77, 79, 0.26);
  color: #ff9a9c;
  background: rgba(255, 77, 79, 0.08);
}

.forecast-confidence-meter {
  position: relative;
  width: 100%;
  height: 0.42rem;
  margin-top: 0.58rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
}

.forecast-confidence-meter span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(255, 77, 79, 0.92), rgba(246, 196, 83, 0.94), rgba(52, 211, 153, 0.95));
  transition: width 180ms ease;
}

.signal-rationale {
  margin-top: 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.035);
}

.signal-rationale summary {
  min-height: 2.45rem;
  padding: 0.66rem 0.72rem;
  color: var(--ink);
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 850;
}

.signal-rationale summary:focus-visible {
  outline: 2px solid rgba(246, 196, 83, 0.78);
  outline-offset: 2px;
}

.signal-rationale-body {
  display: grid;
  gap: 0.62rem;
  padding: 0 0.72rem 0.72rem;
  color: var(--muted-strong);
  font-size: 0.76rem;
  line-height: 1.4;
}

.signal-rationale-body p,
.signal-rationale-body ul {
  margin: 0;
}

.signal-rationale-body h3 {
  margin: 0 0 0.28rem;
  color: var(--ink);
  font-size: 0.7rem;
  letter-spacing: 0;
  text-transform: uppercase;
}

.signal-rationale-body ul {
  padding-left: 1rem;
}

.signal-rationale-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
  margin: 0;
}

.signal-rationale-meta div {
  min-width: 0;
  padding: 0.48rem;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 0.42rem;
  background: rgba(0, 0, 0, 0.18);
}

.signal-rationale-meta dt {
  color: var(--muted);
  font-size: 0.64rem;
  text-transform: uppercase;
}

.signal-rationale-meta dd {
  margin: 0.12rem 0 0;
  color: var(--ink);
  font-weight: 780;
}

.opportunity-quality-line {
  color: var(--muted);
}

.chart-panel:not(.chart-fullscreen) .chart-canvas-host {
  touch-action: pan-y pinch-zoom;
}

.quick-action-bar {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.quick-action-group {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.32rem;
  min-width: 0;
}

.quick-action-group > span {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 0.62rem;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.quick-action-group button span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ops-table-wrap table.is-stacked {
  min-width: 0;
}

.ops-table-wrap table.is-stacked td {
  white-space: normal;
}

@media (max-width: 760px) {
  body:has(.trading-dashboard-shell) .site-header.app-topbar {
    min-height: calc(3.72rem + var(--safe-top));
  }

  .trading-dashboard-shell {
    padding-top: calc(0.58rem + var(--safe-top));
    padding-right: max(0.52rem, var(--safe-right));
    padding-bottom: calc(var(--bottom-nav-height, 78px) + var(--safe-bottom) + 9.5rem);
    padding-left: max(0.52rem, var(--safe-left));
  }

  .trade-command-bar {
    top: calc(0.35rem + var(--safe-top));
    min-height: 3.65rem;
    padding: 0.62rem;
  }

  .trade-command-copy p,
  .trade-live-badge {
    display: none;
  }

  .trade-health-pill {
    min-height: 2.38rem;
    padding: 0 0.55rem;
  }

  .dashboard-connection-banner {
    align-items: stretch;
    flex-direction: column;
  }

  .dashboard-connection-banner button {
    width: 100%;
  }

  .trade-account-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trade-metric {
    min-height: 5.15rem;
  }

  .exchange-cache-note {
    align-items: stretch;
    flex-direction: column;
  }

  .exchange-cache-note .button-link {
    width: 100%;
    justify-content: center;
  }

  .trade-layout {
    display: flex;
    flex-direction: column;
  }

  .chart-panel {
    order: 1;
  }

  .opportunity-panel {
    order: 2;
  }

  .chart-stage {
    height: min(52svh, 23rem);
    min-height: 18rem;
    max-height: calc(100dvh - var(--safe-top) - var(--safe-bottom) - 13rem);
  }

  .opportunity-list {
    max-height: min(42svh, 23rem);
  }

  .activity-feed {
    height: min(36svh, 20rem);
  }

  .trade-intelligence-grid {
    grid-template-columns: 1fr;
  }

  .quick-action-bar {
    right: max(0.5rem, var(--safe-right));
    left: max(0.5rem, var(--safe-left));
    bottom: calc(var(--bottom-nav-height, 78px) + var(--safe-bottom) + 0.58rem);
    display: flex;
    gap: 0.45rem;
    max-width: calc(100vw - 1rem);
    padding: 0.45rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    background: rgba(8, 8, 8, 0.98);
    box-shadow: 0 -16px 34px rgba(0, 0, 0, 0.52);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .quick-action-bar::-webkit-scrollbar {
    display: none;
  }

  .quick-action-group {
    grid-template-columns: repeat(3, minmax(4.75rem, 1fr));
    flex: 0 0 min(24rem, calc(100vw - 1.5rem));
  }

  .quick-action-group > span {
    display: none;
  }

  .quick-action-group button {
    min-height: 2.75rem;
    padding: 0.32rem 0.44rem;
  }

  .dashboard-bottom-sheet {
    right: max(0.5rem, var(--safe-right));
    left: max(0.5rem, var(--safe-left));
    max-height: calc(100dvh - var(--safe-top) - 3.5rem);
    padding-bottom: calc(1rem + var(--safe-bottom));
  }

  .ops-table-wrap {
    overflow: visible;
  }

  .ops-table-wrap table.is-stacked {
    min-width: 0;
  }

  .ops-table-wrap table.is-stacked tr {
    margin-bottom: 0.62rem;
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.04);
  }

  .ops-table-wrap table.is-stacked td {
    min-height: 2.55rem;
    padding: 0.58rem 0.65rem;
    align-items: center;
  }

  .bottom-nav .bottom-nav-item {
    min-width: 0;
    min-height: 3.5rem;
  }
}

@media (max-width: 430px) {
  .trading-dashboard-shell {
    padding-right: max(0.42rem, var(--safe-right));
    padding-left: max(0.42rem, var(--safe-left));
  }

  .trade-account-strip,
  .forecast-summary-grid,
  .signal-rationale-meta,
  .intelligence-list {
    grid-template-columns: 1fr;
  }

  .chart-stage {
    min-height: 17rem;
  }

  .quick-action-group {
    flex-basis: min(22rem, calc(100vw - 1.2rem));
  }
}

@supports (-webkit-touch-callout: none) {
  .trading-dashboard-shell,
  .chart-stage,
  .opportunity-list,
  .activity-feed,
  .dashboard-bottom-sheet,
  .quick-action-bar {
    -webkit-overflow-scrolling: touch;
  }

  .trade-command-bar,
  .quick-action-bar,
  .dashboard-bottom-sheet,
  .bottom-nav {
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
  }
}

@media (prefers-reduced-motion: reduce) {
  .forecast-confidence-meter span {
    transition: none;
  }
}

.trading-dashboard-shell[data-dashboard-state="loading"] .trade-panel,
.trading-dashboard-shell[data-dashboard-state="loading"] .trade-account-strip {
  content-visibility: auto;
}

.trading-dashboard-shell .trade-panel[data-panel-state="loading"],
.trading-dashboard-shell .trade-account-strip[data-panel-state="loading"] {
  position: relative;
}

.trading-dashboard-shell .trade-panel[data-panel-state="error"],
.trading-dashboard-shell .trade-panel[data-panel-state="offline"],
.trading-dashboard-shell .trade-panel[data-panel-state="stale"] {
  border-color: rgba(246, 196, 83, 0.22);
}

.trading-dashboard-shell .trade-panel[data-panel-state="error"] {
  border-color: rgba(255, 77, 79, 0.28);
}

.trading-dashboard-shell .dashboard-panel-state,
.trading-dashboard-shell .chart-state-message {
  margin: 0;
  color: var(--dash-muted, var(--muted));
  font-size: 0.82rem;
  line-height: 1.45;
}

.trading-dashboard-shell .dashboard-panel-state {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.68rem 0.78rem;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(255, 255, 255, 0.025);
}

.trading-dashboard-shell .dashboard-panel-state[hidden],
.trading-dashboard-shell .chart-state-message[hidden] {
  display: none;
}

.trading-dashboard-shell .dashboard-panel-state button,
.trading-dashboard-shell .chart-state-message button,
.trading-dashboard-shell .vault-pulse-error button {
  flex: 0 0 auto;
  min-height: 2.35rem;
  padding: 0 0.72rem;
  border: 1px solid rgba(240, 185, 11, 0.34);
  border-radius: 0.45rem;
  color: var(--dash-gold, #f0b90b);
  background: rgba(240, 185, 11, 0.08);
  font: inherit;
  font-weight: 850;
}

.trading-dashboard-shell .chart-state-message {
  position: absolute;
  right: 0.78rem;
  bottom: 0.78rem;
  left: 0.78rem;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.72rem;
  padding: 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.5rem;
  background: rgba(5, 5, 5, 0.84);
}

.trading-dashboard-shell .chart-state-message[data-chart-message-tone="error"] {
  border-color: rgba(255, 77, 79, 0.28);
  color: #ffb3b4;
}

.trading-dashboard-shell .chart-loading {
  gap: 0.78rem;
  overflow: hidden;
}

.trading-dashboard-shell .chart-loading span {
  position: relative;
  z-index: 1;
  min-width: min(16rem, 72%);
  min-height: 2.6rem;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0.5rem;
  color: var(--dash-muted);
  background: rgba(255, 255, 255, 0.045);
}

.trading-dashboard-shell .chart-loading::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 44px 44px;
  opacity: 0.72;
}

.trading-dashboard-shell .is-skeleton-card strong,
.trading-dashboard-shell .is-skeleton-card small,
.trading-dashboard-shell .dashboard-skeleton-line,
.trading-dashboard-shell .dashboard-table-skeleton-row .dashboard-skeleton-line {
  display: block;
  min-height: 0.82rem;
  overflow: hidden;
  border-radius: 999px;
  color: transparent !important;
  background: rgba(255, 255, 255, 0.075);
}

.trading-dashboard-shell .is-skeleton-card strong {
  width: 62%;
  min-height: 1.15rem;
  margin-top: 0.36rem;
}

.trading-dashboard-shell .is-skeleton-card small {
  width: 78%;
  margin-top: 0.42rem;
}

.trading-dashboard-shell .dashboard-skeleton-line {
  width: min(11rem, 82%);
}

.trading-dashboard-shell .dashboard-skeleton-line.short {
  width: min(8rem, 58%);
}

.trading-dashboard-shell .dashboard-skeleton-line.mini {
  width: min(5.5rem, 44%);
}

.trading-dashboard-shell .opportunity-card-skeleton,
.trading-dashboard-shell .activity-row-skeleton,
.trading-dashboard-shell .market-tape-skeleton,
.trading-dashboard-shell .dashboard-skeleton-row,
.trading-dashboard-shell .dashboard-table-skeleton-row {
  pointer-events: none;
  user-select: none;
}

.trading-dashboard-shell .opportunity-card-skeleton .opportunity-rank,
.trading-dashboard-shell .opportunity-card-skeleton .opportunity-score,
.trading-dashboard-shell .activity-row-skeleton .activity-marker,
.trading-dashboard-shell .market-tape-skeleton strong,
.trading-dashboard-shell .market-tape-skeleton span,
.trading-dashboard-shell .market-tape-skeleton em {
  color: transparent !important;
  background: rgba(255, 255, 255, 0.075);
}

.trading-dashboard-shell .opportunity-card-skeleton .opportunity-main {
  display: grid;
  gap: 0.32rem;
}

.trading-dashboard-shell .activity-row-skeleton .activity-copy {
  display: grid;
  gap: 0.3rem;
}

.trading-dashboard-shell .dashboard-skeleton-row {
  display: grid;
  gap: 0.38rem;
  min-height: 3.6rem;
  padding: 0.72rem 0.78rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.065);
}

.trading-dashboard-shell .dashboard-table-skeleton-row td {
  height: 3rem;
}

.trading-dashboard-shell .dashboard-table-skeleton-row .dashboard-skeleton-line {
  width: 100%;
  min-height: 0.88rem;
}

.trading-dashboard-shell .dashboard-state-empty,
.trading-dashboard-shell .trade-empty-state {
  color: var(--dash-muted, var(--muted));
  font-size: 0.84rem;
  line-height: 1.45;
}

.trading-dashboard-shell .provider-health-table {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: rgba(255, 255, 255, 0.07);
}

.trading-dashboard-shell .provider-health-table div {
  min-width: 0;
  padding: 0.72rem 0.78rem;
  background: rgba(8, 8, 8, 0.96);
}

.trading-dashboard-shell .provider-health-table span {
  display: block;
  color: var(--dash-muted);
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.15;
  text-transform: uppercase;
}

.trading-dashboard-shell .provider-health-table strong {
  display: block;
  min-width: 0;
  margin-top: 0.22rem;
  overflow-wrap: anywhere;
  color: var(--dash-ink);
  font-size: 0.82rem;
  line-height: 1.24;
}

@media (max-width: 760px) {
  .trading-dashboard-shell {
    min-height: calc((var(--app-vh, 1vh) * 100) - var(--safe-top, 0px));
  }

  .trading-dashboard-shell .trade-command-copy h1,
  .trading-dashboard-shell .trade-panel h2,
  .trading-dashboard-shell .dashboard-bottom-sheet h2 {
    font-size: clamp(1.02rem, 6vw, 1.24rem);
  }

  .trading-dashboard-shell .trade-account-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trading-dashboard-shell .panel-helper,
  .trading-dashboard-shell .setup-hold-helper,
  .trading-dashboard-shell .dashboard-panel-state,
  .trading-dashboard-shell .chart-state-message,
  .trading-dashboard-shell .trade-empty-state,
  .trading-dashboard-shell .dashboard-state-empty,
  .trading-dashboard-shell .exchange-cache-note p,
  .trading-dashboard-shell .vault-pulse-status,
  .trading-dashboard-shell .vault-pulse-helper,
  .trading-dashboard-shell .vault-pulse-empty,
  .trading-dashboard-shell .vault-pulse-error,
  .trading-dashboard-shell .activity-copy small,
  .trading-dashboard-shell .ops-table-wrap td,
  .trading-dashboard-shell .compact-list {
    font-size: 1rem;
  }

  .trading-dashboard-shell .trade-metric small,
  .trading-dashboard-shell .forecast-quality-chip,
  .trading-dashboard-shell .opportunity-main small,
  .trading-dashboard-shell .market-tape-row span,
  .trading-dashboard-shell .market-tape-row em {
    font-size: 0.9rem;
  }

  .trading-dashboard-shell .market-tape-row {
    grid-template-columns: minmax(4.6rem, 1fr) minmax(4.8rem, auto) minmax(3.2rem, 4.6rem) auto;
    gap: 0.5rem;
    min-height: 3.25rem;
  }

  .trading-dashboard-shell .market-tape-row .market-tape-spark {
    width: min(4.6rem, 16vw);
  }

  .trading-dashboard-shell .trade-metric strong,
  .trading-dashboard-shell .forecast-summary-grid strong,
  .trading-dashboard-shell .intelligence-list dd {
    font-size: clamp(1rem, 4.2vw, 1.16rem);
  }

  .trading-dashboard-shell .opportunity-card {
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    min-height: 4.25rem;
  }

  .trading-dashboard-shell .opportunity-roi {
    font-size: 0.95rem;
  }

  .trading-dashboard-shell .provider-health-table {
    grid-template-columns: minmax(0, 1fr);
  }

  .trading-dashboard-shell .dashboard-panel-state,
  .trading-dashboard-shell .chart-state-message {
    align-items: stretch;
    flex-direction: column;
  }

  .trading-dashboard-shell .dashboard-panel-state button,
  .trading-dashboard-shell .chart-state-message button,
  .trading-dashboard-shell .vault-pulse-error button {
    width: 100%;
    min-height: 2.75rem;
  }

  .trading-dashboard-shell .ops-table-wrap th {
    font-size: 0.82rem;
  }
}

@media (max-width: 430px) {
  .trading-dashboard-shell .trade-account-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trading-dashboard-shell .forecast-summary-grid,
  .trading-dashboard-shell .signal-rationale-meta,
  .trading-dashboard-shell .intelligence-list {
    grid-template-columns: 1fr;
  }

  .trading-dashboard-shell .trade-metric {
    min-height: 5rem;
    padding: 0.68rem 0.58rem;
  }
}

html[data-theme="light"] .trading-dashboard-shell .provider-health-table,
html[data-theme="light"] .trading-dashboard-shell .forecast-summary-grid,
html[data-theme="light"] .trading-dashboard-shell .intelligence-list {
  background: rgba(15, 23, 42, 0.1);
}

html[data-theme="light"] .trading-dashboard-shell .provider-health-table div,
html[data-theme="light"] .trading-dashboard-shell .forecast-summary-grid div,
html[data-theme="light"] .trading-dashboard-shell .intelligence-list div,
html[data-theme="light"] .trading-dashboard-shell .chart-state-message,
html[data-theme="light"] .trading-dashboard-shell .dashboard-panel-state {
  background: rgba(255, 255, 255, 0.9);
}

html[data-theme="light"] .trading-dashboard-shell .dashboard-skeleton-line,
html[data-theme="light"] .trading-dashboard-shell .is-skeleton-card strong,
html[data-theme="light"] .trading-dashboard-shell .is-skeleton-card small,
html[data-theme="light"] .trading-dashboard-shell .opportunity-card-skeleton .opportunity-rank,
html[data-theme="light"] .trading-dashboard-shell .opportunity-card-skeleton .opportunity-score,
html[data-theme="light"] .trading-dashboard-shell .activity-row-skeleton .activity-marker,
html[data-theme="light"] .trading-dashboard-shell .market-tape-skeleton strong,
html[data-theme="light"] .trading-dashboard-shell .market-tape-skeleton span,
html[data-theme="light"] .trading-dashboard-shell .market-tape-skeleton em {
  background: rgba(15, 23, 42, 0.11);
}

@media (prefers-reduced-motion: reduce) {
  .trading-dashboard-shell .chart-loading,
  .trading-dashboard-shell .dashboard-skeleton-row,
  .trading-dashboard-shell .dashboard-table-skeleton-row,
  .trading-dashboard-shell .opportunity-card-skeleton,
  .trading-dashboard-shell .activity-row-skeleton,
  .trading-dashboard-shell .market-tape-skeleton {
    transition: none;
  }
}

/* Wallet on-chain verification and allocation graph polish. */
.wallet-allocation-body {
  display: grid;
  grid-template-columns: minmax(10rem, 0.42fr) minmax(0, 1fr);
  gap: clamp(0.9rem, 2vw, 1.25rem);
  align-items: center;
}

.wallet-allocation-donut {
  position: relative;
  display: grid;
  place-items: center;
  justify-self: center;
  width: min(100%, 13rem);
  aspect-ratio: 1;
  border-radius: 999px;
  background:
    radial-gradient(circle at center, rgba(8, 13, 24, 0.98) 0 56%, transparent 57%),
    conic-gradient(var(--allocation-gradient));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.wallet-allocation-donut::after {
  content: "";
  position: absolute;
  inset: 12%;
  border-radius: inherit;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.wallet-allocation-donut span,
.wallet-allocation-donut small {
  position: relative;
  z-index: 1;
  letter-spacing: 0;
}

.wallet-allocation-donut span {
  color: var(--ink);
  font-size: clamp(1.25rem, 5vw, 1.65rem);
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}

.wallet-allocation-donut small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.wallet-allocation-list {
  min-width: 0;
}

.wallet-allocation-row {
  grid-template-columns: minmax(7.5rem, 0.82fr) minmax(8rem, 1.4fr) minmax(6rem, auto);
}

.wallet-allocation-row .allocation-row-label strong {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
}

.wallet-allocation-row .allocation-row-label i {
  width: 0.58rem;
  height: 0.58rem;
  flex: 0 0 0.58rem;
  border-radius: 999px;
  background: var(--asset-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--asset-color) 18%, transparent);
}

.wallet-allocation-row .allocation-track span {
  background: var(--asset-color);
}

.wallet-onchain-status.verified {
  color: var(--success);
}

@media (max-width: 760px) {
  .wallet-allocation-body {
    grid-template-columns: 1fr;
  }

  .wallet-allocation-donut {
    width: min(68vw, 12rem);
  }

  .wallet-allocation-row {
    grid-template-columns: 1fr;
  }
}

/* Convert iOS/PWA polish. Final scoped layer; keep conversion behavior server-owned. */
html[data-theme] {
  --convert-panel: rgba(10, 14, 20, 0.94);
  --convert-panel-strong: rgba(15, 21, 30, 0.98);
  --convert-border: rgba(255, 255, 255, 0.09);
  --convert-border-strong: rgba(110, 231, 255, 0.28);
}

html[data-theme] .convert-page-shell {
  width: min(100%, 1120px);
  margin-inline: auto;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.42fr);
  gap: clamp(0.75rem, 2vw, 1rem);
  padding-bottom: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 1.25rem);
  overflow: clip visible;
}

html[data-theme] .convert-widget,
html[data-theme] .convert-side-panel {
  border-color: var(--convert-border);
  border-radius: var(--radius-lg, 0.5rem);
  background:
    linear-gradient(180deg, rgba(16, 23, 33, 0.98), rgba(7, 9, 12, 0.97)),
    var(--convert-panel);
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

html[data-theme] .convert-widget {
  gap: clamp(0.82rem, 2vw, 1rem);
  padding: clamp(0.88rem, 2.8vw, 1.15rem);
}

html[data-theme] .convert-side-panel {
  position: sticky;
  top: calc(4.8rem + var(--safe-top, env(safe-area-inset-top)));
  gap: 0.75rem;
  padding: clamp(0.78rem, 2.4vw, 0.95rem);
}

html[data-theme] .convert-widget::before,
html[data-theme] .convert-side-panel::before {
  background: linear-gradient(90deg, transparent, rgba(110, 231, 255, 0.36), rgba(53, 211, 157, 0.2), transparent);
}

html[data-theme] .convert-widget-head,
html[data-theme] .convert-side-head {
  align-items: flex-start;
  gap: 0.75rem;
}

html[data-theme] .convert-widget-head > div,
html[data-theme] .convert-side-head > div {
  min-width: 0;
}

html[data-theme] .convert-widget-head h1,
html[data-theme] .convert-side-head h2 {
  color: var(--ink);
  font-weight: 950;
  text-wrap: balance;
}

html[data-theme] .convert-widget-head h1 {
  font-size: clamp(1.55rem, 7vw, 2.35rem);
}

html[data-theme] .convert-widget-subtitle {
  max-width: 35rem;
  margin: 0.35rem 0 0;
  color: var(--muted-strong);
  font-size: 0.92rem;
  line-height: 1.48;
}

html[data-theme] .convert-security-pill {
  flex: 0 0 auto;
  gap: 0.42rem;
  min-height: 2rem;
  border-color: rgba(53, 211, 157, 0.34);
  color: var(--success-strong, #83f7c7);
  background: rgba(53, 211, 157, 0.1);
  text-transform: none;
}

html[data-theme] .convert-security-pill span,
html[data-theme] .convert-state-icon {
  width: 0.48rem;
  height: 0.48rem;
  flex: 0 0 0.48rem;
  border-radius: 999px;
  background: currentColor;
  box-shadow: 0 0 16px currentColor;
}

html[data-theme] .convert-status-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.48rem;
  padding: 0.48rem;
  border: 1px solid var(--convert-border);
  border-radius: var(--radius-lg, 0.5rem);
  background: rgba(255, 255, 255, 0.035);
}

html[data-theme] .convert-status-strip span {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
  min-height: 3rem;
  padding: 0.55rem;
  border-radius: var(--radius-md, 0.5rem);
  color: var(--muted);
  background: rgba(0, 0, 0, 0.16);
  font-size: 0.72rem;
  font-weight: 850;
}

html[data-theme] .convert-status-strip strong {
  color: var(--ink);
  font-size: 0.95rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html[data-theme] .convert-form {
  gap: 0.78rem;
}

html[data-theme] .convert-asset-field,
html[data-theme] .convert-amount-field,
html[data-theme] .convert-preview-panel,
html[data-theme] .convert-offline-banner,
html[data-theme] .convert-state-panel,
html[data-theme] .convert-asset-row {
  border-color: var(--convert-border);
  border-radius: var(--radius-lg, 0.5rem);
  background: rgba(255, 255, 255, 0.04);
}

html[data-theme] .convert-asset-field,
html[data-theme] .convert-amount-field {
  min-height: 7.15rem;
  padding: 0.78rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
}

html[data-theme] .convert-asset-field:focus-within,
html[data-theme] .convert-amount-field:focus-within {
  border-color: var(--convert-border-strong);
  background: rgba(110, 231, 255, 0.055);
  box-shadow: 0 0 0 4px rgba(110, 231, 255, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

html[data-theme] .convert-field-label,
html[data-theme] .convert-quote-summary span,
html[data-theme] .convert-quote-details dt,
html[data-theme] .convert-asset-row dt {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0;
  text-transform: none;
}

html[data-theme] .convert-field-meta,
html[data-theme] .convert-form-note {
  color: var(--muted-strong);
  font-size: 0.78rem;
  line-height: 1.38;
}

html[data-theme] .convert-field-feedback {
  display: block;
  min-height: 1.05rem;
  font-size: 0.76rem;
  line-height: 1.25;
}

html[data-theme] .convert-asset-field select,
html[data-theme] .convert-amount-field input {
  min-height: 3.05rem;
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 900;
}

html[data-theme] .convert-amount-control {
  grid-template-columns: minmax(0, 1fr) minmax(3.05rem, auto);
  gap: 0.5rem;
}

html[data-theme] .convert-max-button,
html[data-theme] .convert-swap-button,
html[data-theme] .convert-submit-button {
  min-height: 48px;
  border-radius: var(--radius-md, 0.5rem);
  transition:
    transform var(--motion-fast, 130ms) var(--motion-ease, ease),
    border-color var(--motion-fast, 130ms) ease,
    background-color var(--motion-fast, 130ms) ease,
    box-shadow var(--motion-fast, 130ms) ease,
    opacity var(--motion-fast, 130ms) ease;
}

html[data-theme] .convert-max-button,
html[data-theme] .convert-swap-button {
  color: var(--accent);
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.055);
}

html[data-theme] .convert-swap-button {
  width: 48px;
  min-width: 48px;
  min-height: 48px;
  margin-bottom: 1.6rem;
}

html[data-theme] .convert-submit-button {
  min-height: 3.35rem;
  margin-top: 0.05rem;
  color: var(--accent-ink);
  box-shadow: 0 16px 32px rgba(56, 189, 248, 0.24);
}

html[data-theme] .convert-max-button:not(:disabled):active,
html[data-theme] .convert-swap-button:active,
html[data-theme] .convert-submit-button:not(:disabled):active,
html[data-theme] .bottom-nav .bottom-nav-item:active {
  transform: scale(0.98);
}

html[data-theme] .convert-max-button:disabled,
html[data-theme] .convert-submit-button:disabled {
  opacity: 0.5;
  box-shadow: none;
}

html[data-theme] .convert-preview-panel {
  gap: 0.72rem;
  min-height: 8.5rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.026)),
    rgba(0, 0, 0, 0.16);
}

html[data-theme] .convert-offline-banner,
html[data-theme] .convert-state-panel {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: flex-start;
}

html[data-theme] .convert-offline-banner {
  color: var(--warning);
  border-color: rgba(246, 196, 83, 0.38);
  background: rgba(246, 196, 83, 0.12);
}

html[data-theme] .convert-state-panel.is-error {
  color: var(--danger);
  border-color: rgba(255, 107, 134, 0.4);
  background: rgba(255, 107, 134, 0.12);
}

html[data-theme] .convert-state-panel.is-empty {
  color: var(--warning);
  border-color: rgba(246, 196, 83, 0.3);
  background: rgba(246, 196, 83, 0.08);
}

html[data-theme] .convert-state-panel.is-default {
  color: var(--accent);
  border-color: rgba(110, 231, 255, 0.24);
  background: rgba(110, 231, 255, 0.07);
}

html[data-theme] .convert-offline-banner strong,
html[data-theme] .convert-state-panel strong {
  display: block;
  color: var(--ink);
  font-size: 0.95rem;
}

html[data-theme] .convert-offline-banner small,
html[data-theme] .convert-state-panel small {
  display: block;
  margin-top: 0.14rem;
  color: var(--muted-strong);
  font-size: 0.86rem;
  line-height: 1.38;
}

html[data-theme] .convert-widget.is-offline .convert-submit-button {
  filter: saturate(0.7);
}

html[data-theme] .convert-quote-summary strong {
  font-size: clamp(1.75rem, 8vw, 2.7rem);
  line-height: 1;
}

html[data-theme] .convert-quote-details,
html[data-theme] .convert-asset-row dl {
  gap: 0.48rem;
}

html[data-theme] .convert-quote-details div,
html[data-theme] .convert-asset-row dl div {
  padding: 0.55rem;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--radius-md, 0.5rem);
  background: rgba(0, 0, 0, 0.16);
}

html[data-theme] .convert-quote-details dd,
html[data-theme] .convert-asset-row dd {
  color: var(--ink);
  font-size: 0.9rem;
}

html[data-theme] .convert-asset-list {
  gap: 0.55rem;
  max-height: min(60svh, 35rem);
  scrollbar-width: thin;
  scrollbar-color: rgba(110, 231, 255, 0.32) transparent;
}

html[data-theme] .convert-asset-row {
  padding: 0.68rem;
}

html[data-theme] .convert-asset-row.is-funded {
  border-color: rgba(53, 211, 157, 0.18);
}

html[data-theme] .convert-asset-row.is-empty {
  opacity: 0.78;
}

html[data-theme] .convert-asset-name {
  gap: 0.6rem;
}

html[data-theme] .convert-asset-name strong,
html[data-theme] .convert-side-head h2 {
  overflow-wrap: anywhere;
}

html[data-theme] .convert-asset-name span {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 780;
  letter-spacing: 0;
  text-transform: none;
}

html[data-theme] .wallet-count {
  display: inline-grid;
  place-items: center;
  min-width: 2rem;
  min-height: 2rem;
  border: 1px solid var(--convert-border);
  border-radius: 999px;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.045);
  font-size: 0.78rem;
  font-weight: 900;
}

html[data-theme] .bottom-nav {
  background:
    linear-gradient(180deg, rgba(12, 16, 22, 0.72), rgba(5, 6, 7, 0.92)),
    rgba(5, 6, 7, 0.9);
  -webkit-backdrop-filter: blur(22px) saturate(1.18);
  backdrop-filter: blur(22px) saturate(1.18);
}

html[data-theme] .bottom-nav .bottom-nav-item {
  min-width: 0;
  min-height: 3.6rem;
  touch-action: manipulation;
}

html[data-theme] .bottom-nav .bottom-nav-item:focus-visible {
  outline: 2px solid rgba(110, 231, 255, 0.82);
  outline-offset: -2px;
}

html[data-theme] table.is-stacked tr {
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
}

html[data-theme] table.is-stacked td {
  min-height: 2.7rem;
  align-items: center;
  padding: 0.62rem 0.7rem;
}

@media (hover: hover) and (pointer: fine) {
  html[data-theme] .convert-max-button:not(:disabled):hover,
  html[data-theme] .convert-swap-button:hover,
  html[data-theme] .convert-submit-button:not(:disabled):hover,
  html[data-theme] .convert-asset-row:hover {
    border-color: var(--convert-border-strong);
    background-color: rgba(110, 231, 255, 0.075);
    transform: translateY(-1px);
  }
}

@media (max-width: 860px) {
  html[data-theme] .convert-page-shell {
    grid-template-columns: 1fr;
  }

  html[data-theme] .convert-side-panel {
    position: relative;
    top: auto;
  }
}

@media (max-width: 760px) {
  html[data-theme] .convert-page-shell {
    width: min(100% - 0.15rem, 760px);
  }

  html[data-theme] .convert-status-strip {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  html[data-theme] .convert-page-shell {
    gap: 0.68rem;
    margin-inline: 0;
    padding-bottom: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 1.55rem);
  }

  html[data-theme] .convert-widget,
  html[data-theme] .convert-side-panel {
    border-radius: var(--radius-lg, 0.5rem);
  }

  html[data-theme] .convert-widget-head {
    display: grid;
  }

  html[data-theme] .convert-security-pill {
    justify-self: start;
  }

  html[data-theme] .convert-pair-stack {
    grid-template-columns: 1fr;
  }

  html[data-theme] .convert-swap-button {
    justify-self: center;
    margin: -0.15rem 0;
    transform: rotate(90deg);
  }

  html[data-theme] .convert-swap-button:active {
    transform: rotate(90deg) scale(0.98);
  }

  html[data-theme] .convert-asset-field,
  html[data-theme] .convert-amount-field {
    min-height: 6.9rem;
  }

  html[data-theme] .convert-preview-panel {
    min-height: 8rem;
  }

  html[data-theme] .convert-asset-list {
    max-height: none;
    overflow: visible;
  }
}

@supports (-webkit-touch-callout: none) {
  html[data-theme] .convert-page-shell,
  html[data-theme] .convert-asset-list,
  html[data-theme] .bottom-nav {
    -webkit-overflow-scrolling: touch;
  }

  html[data-theme] .convert-submit-button,
  html[data-theme] .convert-max-button,
  html[data-theme] .bottom-nav {
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme] .convert-asset-field,
  html[data-theme] .convert-amount-field,
  html[data-theme] .convert-max-button,
  html[data-theme] .convert-swap-button,
  html[data-theme] .convert-submit-button,
  html[data-theme] .convert-asset-row,
  html[data-theme] .bottom-nav .bottom-nav-item {
    transition: none;
  }
}

/* Simplified Convert flow. Final scoped layer; keep execution server-authoritative. */
html[data-theme] .convert-page-shell-simple {
  display: block;
  width: min(100%, 48rem);
  margin-inline: auto;
  padding-bottom: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 1.2rem);
  overflow-x: clip;
}

html[data-theme] .convert-card-simple {
  display: grid;
  gap: clamp(0.9rem, 2.2vw, 1.1rem);
  padding: clamp(1rem, 3vw, 1.35rem);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-lg, 0.5rem);
  background:
    linear-gradient(180deg, rgba(14, 20, 29, 0.98), rgba(7, 9, 12, 0.99)),
    #07090c;
  box-shadow: 0 20px 52px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

html[data-theme] .convert-card-simple::before {
  background: linear-gradient(90deg, transparent, rgba(110, 231, 255, 0.28), rgba(53, 211, 157, 0.18), transparent);
}

html[data-theme] .convert-card-simple .convert-widget-head {
  display: block;
}

html[data-theme] .convert-card-simple .convert-widget-head h1 {
  margin-top: 0.12rem;
  font-size: clamp(1.7rem, 7vw, 2.45rem);
  line-height: 1.02;
}

html[data-theme] .convert-card-simple .convert-widget-subtitle {
  max-width: 34rem;
  margin-top: 0.38rem;
  color: var(--muted-strong);
  font-size: 0.92rem;
}

html[data-theme] .convert-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

html[data-theme] .convert-card-simple .convert-form {
  gap: 0.82rem;
}

html[data-theme] .convert-card-simple .convert-pair-stack {
  grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr);
  gap: 0.58rem;
  align-items: end;
}

html[data-theme] .convert-card-simple .convert-asset-field,
html[data-theme] .convert-card-simple .convert-amount-field {
  min-height: auto;
  gap: 0.34rem;
  padding: 0.78rem;
  border-color: rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
}

html[data-theme] .convert-card-simple .convert-asset-field select,
html[data-theme] .convert-card-simple .convert-amount-field input {
  min-height: 3rem;
  font-size: 1.08rem;
  line-height: 1.2;
}

html[data-theme] .convert-card-simple .convert-field-label {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 850;
}

html[data-theme] .convert-card-simple .convert-field-meta,
html[data-theme] .convert-card-simple .convert-form-note {
  color: var(--muted-strong);
  font-size: 0.78rem;
}

html[data-theme] .convert-card-simple .convert-field-feedback {
  min-height: 1rem;
  color: var(--danger);
  font-size: 0.76rem;
}

html[data-theme] .convert-card-simple .convert-field-feedback[aria-hidden="true"] {
  color: transparent;
}

html[data-theme] .convert-card-simple .convert-amount-control {
  grid-template-columns: minmax(0, 1fr) minmax(3.25rem, auto);
}

html[data-theme] .convert-card-simple .convert-max-button,
html[data-theme] .convert-card-simple .convert-swap-button,
html[data-theme] .convert-card-simple .convert-submit-button {
  min-height: 48px;
  touch-action: manipulation;
}

html[data-theme] .convert-card-simple .convert-swap-button {
  align-self: center;
  justify-self: center;
  width: 48px;
  min-width: 48px;
  margin: 0 0 1.2rem;
  padding: 0;
}

html[data-theme] .convert-card-simple .convert-swap-button svg {
  width: 1.1rem;
  height: 1.1rem;
  color: var(--accent);
}

html[data-theme] .convert-card-simple .convert-swap-button svg path {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

html[data-theme] .convert-card-simple .convert-preview-panel {
  gap: 0.64rem;
  min-height: 7.3rem;
  padding: 0.82rem;
  border-color: rgba(255, 255, 255, 0.1);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.026)),
    rgba(0, 0, 0, 0.18);
}

html[data-theme] .convert-card-simple .convert-state-panel {
  min-height: 3.6rem;
  padding: 0;
  border: 0;
  background: transparent;
}

html[data-theme] .convert-card-simple .convert-state-panel.is-quote {
  display: block;
  color: var(--ink);
}

html[data-theme] .convert-card-simple .convert-state-panel.is-quote .convert-state-icon {
  display: none;
}

html[data-theme] .convert-card-simple .convert-state-panel.is-quote [data-convert-preview-title],
html[data-theme] .convert-card-simple .convert-quote-summary [data-convert-preview-title] {
  display: block;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 850;
}

html[data-theme] .convert-card-simple .convert-state-panel.is-quote [data-convert-preview-detail],
html[data-theme] .convert-card-simple .convert-quote-summary [data-convert-preview-detail] {
  display: block;
  margin-top: 0.2rem;
  color: var(--ink);
  font-size: clamp(1.55rem, 7vw, 2.35rem);
  line-height: 1.04;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

html[data-theme] .convert-card-simple .convert-state-panel.is-loading {
  color: var(--accent);
}

html[data-theme] .convert-card-simple .convert-state-panel.is-stale {
  color: var(--warning);
}

html[data-theme] .convert-card-simple .convert-preview-panel[aria-busy="true"] {
  position: relative;
}

html[data-theme] .convert-card-simple .convert-preview-panel[aria-busy="true"]::after {
  content: "";
  position: absolute;
  right: 0.82rem;
  bottom: 0.82rem;
  width: 2.8rem;
  height: 0.45rem;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(110, 231, 255, 0.18), rgba(110, 231, 255, 0.52), rgba(110, 231, 255, 0.18));
  animation: convert-loading-pulse 1.2s ease-in-out infinite;
}

html[data-theme] .convert-card-simple .convert-quote-details {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

html[data-theme] .convert-card-simple .convert-quote-details div {
  padding: 0.52rem;
}

html[data-theme] .convert-card-simple .convert-submit-button {
  min-height: 3.35rem;
  margin-top: 0.08rem;
  font-size: 1rem;
}

html[data-theme] .convert-card-simple .convert-submit-button:disabled {
  opacity: 0.54;
}

html[data-theme] .convert-card-simple.is-submitting {
  pointer-events: none;
}

html[data-theme] .convert-card-simple :is(select, input, button):focus-visible,
html[data-theme] .convert-offline-banner:focus-visible {
  outline: 2px solid rgba(110, 231, 255, 0.86);
  outline-offset: 3px;
}

@keyframes convert-loading-pulse {
  0%,
  100% {
    opacity: 0.42;
    transform: translateX(-0.15rem);
  }
  50% {
    opacity: 1;
    transform: translateX(0.15rem);
  }
}

@media (max-width: 640px) {
  html[data-theme] .convert-page-shell-simple {
    width: 100%;
    padding-bottom: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 1.6rem);
  }

  html[data-theme] .convert-card-simple {
    padding: 0.95rem;
  }

  html[data-theme] .convert-card-simple .convert-pair-stack {
    grid-template-columns: 1fr;
  }

  html[data-theme] .convert-card-simple .convert-swap-button {
    margin: -0.08rem 0;
    transform: rotate(90deg);
  }

  html[data-theme] .convert-card-simple .convert-swap-button:active {
    transform: rotate(90deg) scale(0.98);
  }

  html[data-theme] .convert-card-simple .convert-quote-details {
    grid-template-columns: 1fr;
  }
}

@supports (-webkit-touch-callout: none) {
  html[data-theme] .convert-page-shell-simple {
    min-height: calc((var(--app-vh, 1vh) * 100) - var(--safe-top, env(safe-area-inset-top)));
    -webkit-overflow-scrolling: touch;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme] .convert-card-simple .convert-preview-panel[aria-busy="true"]::after {
    animation: none;
  }
}

/* Vault/app shell production polish. Final scoped layer for mobile PWA behavior. */
html[data-theme] {
  --vault-shell-gap: clamp(0.68rem, 2.2vw, 0.95rem);
  --vault-sticky-offset: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 0.72rem);
}

html[data-theme],
html[data-theme] body {
  max-width: 100%;
  overflow-x: clip;
}

html[data-theme] .app-startup-failed .intro-loader {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

html[data-theme] .app-startup-failed .intro-loader__panel {
  border-color: rgba(255, 77, 79, 0.38);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.58), 0 0 0 1px rgba(255, 77, 79, 0.08) inset;
}

html[data-theme] .app-startup-failed .intro-loader__copy small {
  color: #ffb2b2;
}

html[data-theme] .intro-loader__retry {
  min-height: 48px;
}

html[data-theme] .crypto-rail {
  box-sizing: border-box;
  max-width: calc(100vw - max(0.75rem, var(--safe-left, env(safe-area-inset-left))) - max(0.75rem, var(--safe-right, env(safe-area-inset-right))));
  overflow-x: clip;
  contain: paint;
}

html[data-theme] .site-header.app-topbar::before,
html[data-theme] .site-header.app-topbar.is-scrolled::before,
html[data-theme] .app-body.nav-open .site-header.app-topbar::before,
html[data-theme] .crypto-rail::before {
  inset-inline: calc((100vw - 100%) / -2);
}

html[data-theme] .crypto-rail-track {
  max-width: 100%;
  min-width: 0;
}

html[data-theme] .page-shell:has(.vault-execution-shell) {
  width: min(100%, 1240px);
  padding-right: max(0.75rem, var(--safe-right, env(safe-area-inset-right)));
  padding-left: max(0.75rem, var(--safe-left, env(safe-area-inset-left)));
  padding-bottom: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 2.25rem);
  overflow-x: clip;
  scroll-padding-bottom: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 2rem);
}

html[data-theme] .vault-execution-shell,
html[data-theme] .vault-activity-card {
  width: min(100%, 980px);
  max-width: 100%;
  min-width: 0;
  gap: var(--vault-shell-gap);
}

html[data-theme] .vault-start-card,
html[data-theme] .vault-active-card,
html[data-theme] .vault-activity-card {
  min-width: 0;
  border-radius: var(--radius-lg, 8px);
  background:
    linear-gradient(180deg, rgba(18, 24, 33, 0.98), rgba(6, 8, 11, 0.99)),
    #07090c;
  box-shadow: 0 20px 52px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

html[data-theme] .vault-command-card {
  overflow: visible;
}

html[data-theme] .vault-title-row,
html[data-theme] .vault-section-heading,
html[data-theme] .vault-cycle-card-head,
html[data-theme] .vault-routing-summary,
html[data-theme] .vault-readiness-state,
html[data-theme] .vault-risk-summary,
html[data-theme] .vault-routing-foot,
html[data-theme] .vault-routing-row,
html[data-theme] .vault-allocation-mini-row {
  min-width: 0;
}

html[data-theme] .vault-title-row h1,
html[data-theme] .vault-section-heading h2 {
  text-wrap: balance;
}

html[data-theme] .vault-form-section {
  min-width: 0;
  border-color: rgba(255, 255, 255, 0.1);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.026)),
    rgba(0, 0, 0, 0.18);
}

html[data-theme] .vault-start-card :is(input, select, button, .vault-asset-option, .vault-exchange-card, summary, .checkbox-row, .text-link) {
  min-height: 48px;
  touch-action: manipulation;
}

html[data-theme] .vault-sticky-actions .checkbox-row input[type="checkbox"] {
  flex: 0 0 auto;
  width: 1.08rem;
  min-width: 1.08rem;
  height: 1.08rem;
  min-height: 1.08rem;
  margin: 0;
  accent-color: var(--accent);
}

html[data-theme] .vault-start-card :is(input, select) {
  width: 100%;
  color: var(--ink);
  color-scheme: dark;
}

html[data-theme] .vault-start-card :is(input, select, button):focus-visible,
html[data-theme] .vault-asset-option:focus-within,
html[data-theme] .vault-exchange-card:focus-within,
html[data-theme] .vault-diagnostics-panel summary:focus-visible,
html[data-theme] .vault-cycle-card .text-link:focus-visible {
  outline: 2px solid rgba(110, 231, 255, 0.86);
  outline-offset: 3px;
}

html[data-theme] .vault-asset-selector,
html[data-theme] .vault-cycle-selector,
html[data-theme] .vault-exchange-grid {
  min-width: 0;
}

html[data-theme] .vault-asset-option {
  position: relative;
  overflow: hidden;
}

html[data-theme] .vault-asset-option input {
  inset: 0;
  width: 100%;
  height: 100%;
}

html[data-theme] .vault-exchange-card {
  min-width: 0;
  border-color: rgba(255, 255, 255, 0.1);
}

html[data-theme] .vault-provider-copy,
html[data-theme] .vault-provider-metrics,
html[data-theme] .vault-provider-blocker {
  min-width: 0;
}

html[data-theme] .vault-provider-copy small {
  display: inline-flex;
  align-items: center;
  gap: 0.34rem;
}

html[data-theme] .vault-provider-copy small::before,
html[data-theme] .vault-readiness-state > span::before,
html[data-theme] .vault-start-disabled-reason::before {
  content: "";
  display: inline-block;
  flex: 0 0 auto;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.86;
}

html[data-theme] .vault-readiness-state > span,
html[data-theme] .vault-start-disabled-reason {
  display: inline-flex;
  align-items: center;
  gap: 0.36rem;
}

html[data-theme] .vault-form.is-routing-ready .vault-start-disabled-reason {
  color: var(--success);
}

html[data-theme] .vault-form.is-routing-error .vault-start-disabled-reason,
html[data-theme] .vault-form.is-routing-blocked:not(.is-routing-empty) .vault-start-disabled-reason {
  color: #ffb2b2;
}

html[data-theme] [data-routing-preview] {
  position: relative;
  contain: layout paint;
}

html[data-theme] [data-routing-preview][data-preview-state="loading"] {
  border-color: rgba(110, 231, 255, 0.34);
}

html[data-theme] [data-routing-preview][data-preview-state="loading"]::after {
  content: "";
  position: absolute;
  right: 0.76rem;
  bottom: 0.76rem;
  width: 3rem;
  height: 0.42rem;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(110, 231, 255, 0.18), rgba(110, 231, 255, 0.58), rgba(110, 231, 255, 0.18));
  animation: vault-loading-pulse 1.2s ease-in-out infinite;
}

html[data-theme] [data-routing-preview][data-preview-state="success"] {
  border-color: rgba(0, 192, 118, 0.34);
}

html[data-theme] [data-routing-preview][data-preview-state="unavailable"],
html[data-theme] [data-routing-preview][data-preview-state="error"] {
  border-color: rgba(255, 77, 79, 0.36);
  background: rgba(255, 77, 79, 0.075);
}

html[data-theme] [data-routing-preview][data-preview-state="empty"],
html[data-theme] [data-routing-preview][data-preview-state="exchange-setup-required"] {
  border-style: dashed;
}

html[data-theme] .vault-routing-row {
  grid-template-columns: minmax(0, 1fr) auto;
}

html[data-theme] .vault-routing-row strong,
html[data-theme] .vault-provider-metrics strong,
html[data-theme] .vault-compact-details dd,
html[data-theme] .vault-allocation-mini-row strong {
  font-variant-numeric: tabular-nums;
}

html[data-theme] .vault-cycle-card {
  min-width: 0;
  transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

html[data-theme] .vault-cycle-card.is-loading {
  border-color: rgba(110, 231, 255, 0.32);
}

html[data-theme] .vault-cycle-card.is-stale {
  border-color: rgba(240, 185, 11, 0.36);
  background: rgba(240, 185, 11, 0.06);
}

html[data-theme] .vault-cycle-card.is-error {
  border-color: rgba(255, 77, 79, 0.36);
  background: rgba(255, 77, 79, 0.07);
}

html[data-theme] .vault-cycle-signal-mini,
html[data-theme] .vault-cycle-risk-mini,
html[data-theme] .vault-allocation-mini-list {
  min-width: 0;
}

html[data-theme] .vault-sticky-actions {
  z-index: 35;
  border-color: rgba(110, 231, 255, 0.16);
}

html[data-theme] .vault-result-sheet {
  bottom: var(--vault-sticky-offset);
  max-width: min(560px, calc(100vw - 1.5rem - var(--safe-left, env(safe-area-inset-left)) - var(--safe-right, env(safe-area-inset-right))));
}

html[data-theme] .vault-empty-state,
html[data-theme] .vault-routing-empty {
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.026);
}

html[data-theme] .card:has(table.is-wide-table),
html[data-theme] .table-responsive,
html[data-theme] .table-scroll-wrap,
html[data-theme] .ops-table-wrap,
html[data-theme] .treasury-table-wrap {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

html[data-theme] table.is-wide-table {
  min-width: max(44rem, 100%);
}

html[data-theme] table .is-numeric,
html[data-theme] table td.is-numeric {
  font-variant-numeric: tabular-nums;
  text-align: right;
}

@keyframes vault-loading-pulse {
  0%,
  100% {
    opacity: 0.42;
    transform: translateX(-0.12rem);
  }
  50% {
    opacity: 1;
    transform: translateX(0.12rem);
  }
}

@media (max-width: 760px) {
  html[data-theme] .page-shell:has(.vault-execution-shell) {
    width: 100%;
    padding-top: 0.72rem;
    padding-bottom: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 8.25rem);
    scroll-padding-bottom: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 8rem);
  }

  html[data-theme] .vault-start-card,
  html[data-theme] .vault-active-card,
  html[data-theme] .vault-activity-card {
    padding: clamp(0.72rem, 2.8vw, 0.92rem);
  }

  html[data-theme] .vault-sticky-actions {
    position: sticky;
    bottom: var(--vault-sticky-offset);
    padding:
      0.62rem
      max(0.62rem, var(--safe-right, env(safe-area-inset-right)))
      calc(0.62rem + var(--safe-bottom, env(safe-area-inset-bottom)))
      max(0.62rem, var(--safe-left, env(safe-area-inset-left)));
    margin-inline: -0.42rem;
    border-radius: var(--radius-lg, 8px);
    background: rgba(5, 6, 7, 0.92);
    -webkit-backdrop-filter: blur(18px) saturate(1.16);
    backdrop-filter: blur(18px) saturate(1.16);
    box-shadow: 0 -18px 42px rgba(0, 0, 0, 0.5);
  }

  html[data-theme] body:has(.vault-execution-shell) .sw-update-banner {
    right: max(0.75rem, var(--safe-right, env(safe-area-inset-right)));
    bottom: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 12rem);
    left: max(0.75rem, var(--safe-left, env(safe-area-inset-left)));
    justify-content: space-between;
  }

  html[data-theme] .vault-funding-module .vault-asset-selector {
    max-width: 100%;
    padding-right: max(0.2rem, var(--safe-right, env(safe-area-inset-right)));
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  html[data-theme] .vault-funding-module .vault-asset-selector::-webkit-scrollbar {
    display: none;
  }

  html[data-theme] table.is-wide-table {
    display: table;
    min-width: 44rem;
    white-space: nowrap;
  }

  html[data-theme] table.is-stacked {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: 0.68rem;
    border: 0;
    background: transparent;
  }

  html[data-theme] table.is-stacked thead,
  html[data-theme] table.is-stacked.has-body-header tbody tr:first-child {
    display: none;
  }

  html[data-theme] table.is-stacked tbody {
    display: grid;
    gap: 0.68rem;
  }

  html[data-theme] table.is-stacked tr {
    display: grid;
    gap: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg, 8px);
    background: rgba(255, 255, 255, 0.04);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
  }

  html[data-theme] table.is-stacked td {
    display: grid;
    grid-template-columns: minmax(6.4rem, 0.42fr) minmax(0, 1fr);
    align-items: center;
    gap: 0.72rem;
    min-width: 0;
    min-height: 2.8rem;
    padding: 0.62rem 0.7rem;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    white-space: normal;
    overflow-wrap: anywhere;
  }

  html[data-theme] table.is-stacked td:last-child {
    border-bottom: 0;
  }

  html[data-theme] table.is-stacked td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 850;
    line-height: 1.2;
    text-align: left;
    text-transform: uppercase;
  }

  html[data-theme] table.is-stacked td.is-numeric {
    justify-items: end;
    text-align: right;
  }

  html[data-theme] table.is-stacked td.mobile-hide,
  html[data-theme] table.is-stacked .mobile-hide {
    display: none;
  }
}

@media (max-width: 430px) {
  html[data-theme] .vault-command-head,
  html[data-theme] .vault-section-heading,
  html[data-theme] .vault-cycle-card-head {
    align-items: flex-start;
  }

  html[data-theme] .vault-cycle-live-badge,
  html[data-theme] .countdown-chip,
  html[data-theme] .status-badge {
    max-width: 100%;
    white-space: normal;
  }

  html[data-theme] .vault-routing-summary,
  html[data-theme] .vault-readiness-state,
  html[data-theme] .vault-risk-summary,
  html[data-theme] .vault-routing-foot,
  html[data-theme] .vault-routing-row {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
  }

  html[data-theme] .vault-routing-summary strong,
  html[data-theme] .vault-readiness-state strong,
  html[data-theme] .vault-risk-summary strong,
  html[data-theme] .vault-routing-row strong {
    text-align: left;
  }
}

@media (max-width: 390px) {
  html[data-theme] .vault-exchange-grid {
    grid-template-columns: 1fr;
  }

  html[data-theme] table.is-stacked td {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  html[data-theme] table.is-stacked td.is-numeric {
    justify-items: start;
    text-align: left;
  }
}

@supports (-webkit-touch-callout: none) {
  html[data-theme] .vault-execution-shell {
    min-height: calc((var(--app-vh, 1vh) * 100) - var(--safe-top, env(safe-area-inset-top)) - 1rem);
  }

  html[data-theme] .site-header,
  html[data-theme] .crypto-rail,
  html[data-theme] .bottom-nav,
  html[data-theme] .vault-sticky-actions,
  html[data-theme] .vault-result-sheet {
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
  }
}

html[data-theme="light"] .vault-start-card,
html[data-theme="light"] .vault-active-card,
html[data-theme="light"] .vault-activity-card,
html[data-theme="light"] .vault-form-section,
html[data-theme="light"] .vault-cycle-card {
  color: var(--ink);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(241, 245, 249, 0.96)),
    #ffffff;
}

html[data-theme="light"] .vault-sticky-actions,
html[data-theme="light"] .vault-result-sheet {
  background: rgba(255, 255, 255, 0.92);
}

html[data-theme="light"] .vault-start-card :is(input, select) {
  color-scheme: light;
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme] [data-routing-preview][data-preview-state="loading"]::after,
  html[data-theme] .vault-cycle-card,
  html[data-theme] .vault-sticky-actions,
  html[data-theme] .vault-result-sheet {
    animation: none;
    transition: none;
  }
}
/* Wallet UX refresh. Scoped late so it overrides legacy wallet card passes. */
body:has(.wallet-page-shell),
body:has(.wallet-flow-shell) {
  overflow-x: hidden;
}

body:has(.wallet-page-shell) .page-shell.app-main,
body:has(.wallet-flow-shell) .page-shell.app-main {
  width: 100%;
  max-width: none;
  overflow-x: clip;
  padding-right: max(0.75rem, var(--safe-right, env(safe-area-inset-right)));
  padding-left: max(0.75rem, var(--safe-left, env(safe-area-inset-left)));
  padding-bottom: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 1.5rem);
}

.wallet-page-shell,
.wallet-flow-shell {
  width: min(100%, 1120px);
  max-width: calc(
    100vw - max(0.75rem, var(--safe-left, env(safe-area-inset-left))) -
      max(0.75rem, var(--safe-right, env(safe-area-inset-right)))
  );
  margin-inline: auto;
  overflow-x: clip;
}

body:has(.wallet-page-shell) .crypto-rail,
body:has(.wallet-flow-shell) .crypto-rail {
  max-width: calc(100vw - 1rem);
  overflow: hidden;
}

.wallet-page-shell {
  display: grid;
  gap: clamp(0.72rem, 2vw, 1rem);
}

.wallet-hero-panel,
.wallet-insight-grid,
.wallet-assets-section,
.wallet-activity-card {
  width: 100%;
}

.wallet-hero-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
  gap: clamp(0.78rem, 2vw, 1rem);
  padding: clamp(0.9rem, 2.4vw, 1.25rem);
  border: 1px solid var(--border);
  border-radius: 0.72rem;
  background:
    linear-gradient(180deg, rgba(15, 23, 32, 0.98), rgba(6, 9, 14, 0.98)),
    var(--panel);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.3);
}

.wallet-hero-copy,
.wallet-hero-balance,
.wallet-trust-note,
.wallet-offline-notice {
  min-width: 0;
}

.wallet-hero-copy h1 {
  max-width: 100%;
  margin: 0.18rem 0 0;
  color: var(--ink);
  font-size: clamp(1.35rem, 4vw, 2.2rem);
  line-height: 1.02;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.wallet-hero-copy p,
.wallet-trust-note,
.wallet-offline-notice {
  margin: 0.45rem 0 0;
  color: var(--muted-strong);
  font-size: 0.86rem;
  line-height: 1.45;
}

.wallet-hero-balance {
  display: grid;
  align-content: center;
  gap: 0.2rem;
  justify-items: end;
  text-align: right;
}

.wallet-hero-balance span,
.wallet-asset-value span,
.wallet-flow-balance dt,
.wallet-asset-breakdown dt,
.wallet-network-form small,
.wallet-form-section small,
.wallet-flow-steps small {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.35;
}

.wallet-hero-balance strong {
  color: var(--ink);
  font-size: clamp(2.45rem, 8vw, 4.8rem);
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  line-height: 0.94;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.wallet-hero-balance small {
  color: var(--muted-strong);
  font-size: 0.86rem;
  font-weight: 800;
}

.wallet-hero-metrics {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0;
}

.wallet-hero-metrics div,
.wallet-asset-breakdown div,
.wallet-flow-balance div,
.wallet-flow-steps div,
.wallet-form-section {
  min-width: 0;
  padding: 0.68rem;
  border: 1px solid rgba(148, 163, 184, 0.12);
  border-radius: 0.56rem;
  background: rgba(255, 255, 255, 0.035);
}

.wallet-hero-metrics dt,
.wallet-hero-metrics dd,
.wallet-flow-balance dt,
.wallet-flow-balance dd,
.wallet-asset-breakdown dt,
.wallet-asset-breakdown dd {
  margin: 0;
}

.wallet-hero-metrics dt {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.wallet-hero-metrics dd,
.wallet-flow-balance dd,
.wallet-asset-breakdown dd {
  margin-top: 0.18rem;
  color: var(--ink);
  font-size: 0.94rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.wallet-primary-actions {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
  gap: 0.55rem;
}

.wallet-primary-actions .button-link,
.wallet-flow-submit .button-link,
.wallet-flow-submit button,
.wallet-action-row .button-link {
  width: 100%;
  min-height: 3rem;
  border-radius: 0.56rem;
}

.wallet-action-muted {
  opacity: 0.74;
}

.wallet-status-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  width: max-content;
  max-width: 100%;
  min-height: 1.8rem;
  padding: 0.28rem 0.58rem;
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: 999px;
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.045);
  font-size: 0.74rem;
  font-weight: 850;
  line-height: 1.1;
}

.wallet-status-chip > span {
  width: 0.42rem;
  height: 0.42rem;
  flex: 0 0 0.42rem;
  border-radius: 999px;
  background: currentColor;
}

.wallet-status-success,
.wallet-status-verified {
  color: var(--success);
  border-color: rgba(32, 214, 139, 0.28);
  background: rgba(32, 214, 139, 0.075);
}

.wallet-status-warning {
  color: var(--warning);
  border-color: rgba(251, 191, 36, 0.28);
  background: rgba(251, 191, 36, 0.08);
}

.wallet-status-danger {
  color: var(--danger);
  border-color: rgba(255, 77, 79, 0.26);
  background: rgba(255, 77, 79, 0.08);
}

.wallet-status-muted {
  color: var(--muted-strong);
}

.wallet-offline-notice {
  grid-column: 1 / -1;
  padding: 0.58rem 0.68rem;
  border: 1px solid rgba(251, 191, 36, 0.28);
  border-radius: 0.56rem;
  color: var(--warning);
  background: rgba(251, 191, 36, 0.08);
}

.wallet-offline-notice[hidden] {
  display: none;
}

.wallet-insight-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(0.72rem, 2vw, 1rem);
}

.wallet-insight-grid .wallet-chart-card,
.wallet-insight-grid .wallet-allocation-panel,
.wallet-activity-card {
  margin: 0;
  border-radius: 0.72rem;
}

.wallet-asset-list {
  display: grid;
  gap: 0.58rem;
}

.wallet-asset-row-card {
  display: grid;
  grid-template-columns: minmax(10rem, 1fr) minmax(8rem, 0.65fr) minmax(15rem, 1.1fr);
  gap: 0.72rem;
  align-items: center;
  min-height: 0;
  padding: 0.78rem;
  border-radius: 0.62rem;
  box-shadow: none;
}

.wallet-asset-identity,
.wallet-row-status,
.wallet-copy-actions,
.wallet-flow-submit {
  display: flex;
  align-items: center;
  gap: 0.58rem;
  min-width: 0;
}

.wallet-asset-identity h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  letter-spacing: 0;
}

.wallet-asset-identity span,
.wallet-row-status small,
.wallet-address-row span,
.wallet-copy-feedback {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.wallet-asset-value {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.wallet-asset-value strong {
  color: var(--ink);
  font-size: clamp(1.28rem, 3vw, 1.72rem);
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  overflow-wrap: anywhere;
}

.wallet-asset-value small {
  color: var(--muted-strong);
  font-size: 0.8rem;
  font-weight: 800;
}

.wallet-asset-breakdown {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem;
  margin: 0;
}

.wallet-row-status {
  grid-column: 1 / 2;
}

.wallet-asset-row-card .wallet-action-row {
  grid-column: 2 / 3;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
  width: 100%;
}

.wallet-asset-row-card .wallet-address-row {
  grid-column: 3 / 4;
  justify-self: end;
  width: min(100%, 22rem);
}

.wallet-address-row code {
  font-variant-numeric: tabular-nums;
}

.wallet-activity-heading {
  position: sticky;
  top: calc(4.75rem + var(--safe-top, env(safe-area-inset-top)));
  z-index: 2;
  padding-bottom: 0.58rem;
  background: linear-gradient(180deg, var(--theme-surface-strong, rgba(16, 24, 35, 0.98)), transparent);
}

.wallet-activity-row {
  min-height: 4.2rem;
}

.wallet-activity-main {
  min-width: 0;
}

.wallet-activity-amount .wallet-status-chip {
  justify-self: end;
}

.wallet-flow-card {
  width: min(100%, 640px);
  gap: 0.82rem;
  padding: clamp(0.9rem, 2.6vw, 1.18rem);
  border-radius: 0.72rem;
  overflow: hidden;
}

.wallet-flow-head h1 {
  max-width: 100%;
  margin: 0.22rem 0 0.35rem;
  color: var(--ink);
  font-size: clamp(1.35rem, 5vw, 2rem);
  line-height: 1.05;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.wallet-network-form,
.wallet-flow-balance,
.wallet-flow-steps,
.wallet-withdraw-form,
.wallet-form-section,
.address-copy-panel {
  display: grid;
  gap: 0.58rem;
}

.wallet-network-form label,
.wallet-form-section label,
.address-copy-panel label {
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 900;
}

.wallet-address-layout {
  grid-template-columns: minmax(7.5rem, 10rem) minmax(0, 1fr);
  padding: 0.78rem;
  border-radius: 0.62rem;
}

.wallet-qr-frame {
  display: grid;
  place-items: center;
}

.wallet-flow-steps,
.wallet-flow-balance {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wallet-flow-steps div {
  display: grid;
  gap: 0.18rem;
}

.wallet-flow-steps span,
.wallet-step-index {
  display: inline-grid;
  place-items: center;
  width: 1.55rem;
  height: 1.55rem;
  border: 1px solid rgba(125, 211, 252, 0.3);
  border-radius: 999px;
  color: var(--accent);
  background: rgba(125, 211, 252, 0.08);
  font-size: 0.72rem;
  font-weight: 950;
}

.wallet-flow-steps strong {
  color: var(--ink);
  font-size: 0.86rem;
}

.wallet-form-section-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.58rem;
  padding: 0;
  border: 0;
  background: transparent;
}

.wallet-form-section-pair > div {
  display: grid;
  gap: 0.58rem;
  min-width: 0;
  padding: 0.68rem;
  border: 1px solid rgba(148, 163, 184, 0.12);
  border-radius: 0.56rem;
  background: rgba(255, 255, 255, 0.035);
}

.wallet-max-row {
  margin-top: 0.2rem;
}

.wallet-flow-submit {
  align-items: stretch;
}

.wallet-flow-submit button,
.wallet-flow-submit .button-link {
  flex: 1 1 0;
}

.wallet-back-link {
  justify-self: start;
}

.wallet-flow-note {
  border-radius: 0.56rem;
}

@media (max-width: 860px) {
  .wallet-hero-panel,
  .wallet-insight-grid,
  .wallet-asset-row-card {
    grid-template-columns: 1fr;
  }

  .wallet-hero-balance {
    justify-items: start;
    text-align: left;
  }

  .wallet-row-status,
  .wallet-asset-row-card .wallet-action-row,
  .wallet-asset-row-card .wallet-address-row {
    grid-column: auto;
  }

  .wallet-asset-row-card .wallet-address-row {
    justify-self: stretch;
    width: 100%;
  }
}

@media (max-width: 980px) {
  .wallet-hero-panel,
  .wallet-insight-grid {
    grid-template-columns: 1fr;
  }

  .wallet-hero-balance {
    justify-items: start;
    text-align: left;
  }

  .wallet-primary-actions,
  .wallet-flow-submit,
  .wallet-form-section-pair {
    grid-template-columns: 1fr;
  }

  .wallet-flow-submit {
    flex-direction: column;
  }
}

@media (max-width: 640px) {
  body:has(.wallet-page-shell) .page-shell.app-main {
    padding-right: max(0.52rem, var(--safe-right, env(safe-area-inset-right)));
    padding-left: max(0.52rem, var(--safe-left, env(safe-area-inset-left)));
    padding-bottom: calc(var(--bottom-nav-height, 82px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 1.1rem);
  }

  .wallet-page-shell {
    gap: 0.62rem;
  }

  .wallet-hero-panel,
  .wallet-flow-card,
  .wallet-activity-card,
  .wallet-insight-grid .wallet-chart-card,
  .wallet-insight-grid .wallet-allocation-panel {
    border-radius: 0.62rem;
  }

  .wallet-hero-metrics,
  .wallet-asset-breakdown,
  .wallet-flow-steps,
  .wallet-flow-balance,
  .wallet-form-section-pair,
  .wallet-address-layout,
  .wallet-flow-submit {
    grid-template-columns: 1fr;
  }

  .wallet-primary-actions {
    grid-template-columns: 1fr;
  }

  .wallet-flow-submit {
    flex-direction: column;
  }

  .wallet-primary-actions .button-link,
  .wallet-action-row .button-link {
    min-height: 3.18rem;
  }

  .wallet-asset-row-card {
    gap: 0.62rem;
    padding: 0.72rem;
  }

  .wallet-asset-row-card .wallet-action-row {
    grid-template-columns: 1fr 1fr;
  }

  .wallet-activity-heading {
    position: static;
    padding-bottom: 0;
    background: transparent;
  }

  .wallet-activity-row {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .wallet-activity-amount {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    text-align: left;
  }

  .wallet-activity-amount .wallet-status-chip {
    justify-self: auto;
  }
}

@media (max-width: 390px) {
  .wallet-hero-panel,
  .wallet-flow-card,
  .wallet-asset-row-card,
  .wallet-activity-card {
    padding: 0.72rem;
  }

  .wallet-asset-row-card .wallet-action-row {
    grid-template-columns: 1fr;
  }

  .wallet-hero-balance strong {
    font-size: clamp(2rem, 15vw, 3rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .wallet-page-shell *,
  .wallet-flow-shell * {
    scroll-behavior: auto;
    transition: none;
  }
}

/* Mascot branding pass: root PWA identity only. */
html[data-theme] .brand-mark.brand-mark--mascot {
  width: 2.48rem;
  height: 2.48rem;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 31, 54, 0.44);
  border-radius: 0.62rem;
  color: transparent;
  background:
    radial-gradient(circle at 62% 34%, rgba(255, 31, 54, 0.18), transparent 54%),
    #020000;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.04), 0 14px 34px rgba(0, 0, 0, 0.46), 0 0 26px rgba(255, 31, 54, 0.12);
}

html[data-theme] .brand-mark.brand-mark--mascot::after {
  display: none;
}

.brand-mark--mascot img,
.intro-loader__mascot img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.brand-mark--mascot img {
  transform: scale(1.03);
}

.intro-loader__mascot {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  width: 4.08rem;
  height: 4.08rem;
  border: 1px solid rgba(255, 31, 54, 0.48);
  border-radius: 1rem;
  background:
    radial-gradient(circle at 56% 36%, rgba(255, 31, 54, 0.22), transparent 58%),
    #020000;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 18px 42px rgba(255, 31, 54, 0.2);
  animation: introMascotPulse 2300ms ease-in-out infinite;
}

.intro-loader__mascot::after {
  content: "";
  position: absolute;
  inset: -35% auto -35% -70%;
  width: 42%;
  transform: skewX(-18deg) translateX(0);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.16), transparent);
  animation: introVaultShimmer 1900ms cubic-bezier(0.2, 0.8, 0.2, 1) infinite;
}

.intro-loader__mascot img {
  transform: scale(1.05);
}

html[data-theme] .intro-loader {
  background:
    radial-gradient(circle at 50% 24%, rgba(255, 31, 54, 0.2), transparent 34%),
    radial-gradient(circle at 72% 64%, rgba(255, 83, 95, 0.12), transparent 30%),
    linear-gradient(180deg, #050000 0%, #000000 52%, #090102 100%);
}

html[data-theme] .intro-loader__ambient {
  background-image:
    linear-gradient(rgba(255, 31, 54, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 31, 54, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, transparent 0%, rgba(255, 31, 54, 0.08) 50%, transparent 100%);
}

html[data-theme] .intro-loader__glow {
  background:
    radial-gradient(circle, rgba(255, 31, 54, 0.2), rgba(255, 31, 54, 0.06) 42%, transparent 68%);
}

html[data-theme] .intro-loader__panel {
  border-color: rgba(255, 31, 54, 0.24);
  background: rgba(5, 0, 1, 0.84);
  box-shadow: 0 26px 74px rgba(0, 0, 0, 0.72), 0 0 42px rgba(255, 31, 54, 0.12);
}

html[data-theme] .intro-loader__ring {
  background: conic-gradient(from 0deg, transparent 0deg, rgba(255, 31, 54, 0.06) 74deg, rgba(255, 31, 54, 0.85) 116deg, transparent 164deg, transparent 360deg);
}

html[data-theme] .intro-loader__ring--secondary {
  background: conic-gradient(from 190deg, transparent 0deg, rgba(255, 255, 255, 0.04) 68deg, rgba(255, 31, 54, 0.5) 116deg, transparent 156deg, transparent 360deg);
}

html[data-theme] .intro-loader__eyebrow {
  color: #ff3448;
}

html[data-theme] .intro-loader__bar {
  background: rgba(255, 31, 54, 0.14);
}

html[data-theme] .intro-loader__bar span {
  background: linear-gradient(90deg, transparent, #ff1f36, #ff7582, transparent);
}

html[data-theme] .intro-loader__ticks span {
  background: #ff1f36;
}

@keyframes introMascotPulse {
  0%,
  100% {
    transform: scale(0.98);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 18px 42px rgba(255, 31, 54, 0.16);
  }

  50% {
    transform: scale(1.025);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06), 0 22px 52px rgba(255, 31, 54, 0.26);
  }
}

@media (max-width: 560px) {
  .intro-loader__mascot {
    width: 3.58rem;
    height: 3.58rem;
    border-radius: 0.86rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .intro-loader__mascot,
  .intro-loader__mascot::after {
    animation: none !important;
  }
}

/* AlgVault red-black premium PWA polish. Final layer wins over legacy accent passes. */
html[data-theme] {
  --bg: #030304;
  --bg-soft: #08090b;
  --panel: rgba(12, 13, 16, 0.96);
  --panel-strong: rgba(18, 19, 23, 0.98);
  --panel-elevated: rgba(24, 25, 30, 0.98);
  --ink: #f8fafc;
  --muted: #8d96a3;
  --muted-strong: #c7ced8;
  --accent: #ff2d2d;
  --accent-strong: #ff4b55;
  --accent-deep: #9f0d15;
  --accent-ink: #ffffff;
  --red-glow: rgba(255, 45, 45, 0.18);
  --red-border: rgba(255, 45, 45, 0.34);
  --focus-ring: rgba(255, 75, 85, 0.78);
  --border: rgba(255, 255, 255, 0.095);
  --border-strong: rgba(255, 45, 45, 0.46);
  --surface-card:
    linear-gradient(180deg, rgba(19, 21, 26, 0.98), rgba(7, 8, 10, 0.985)),
    #08090b;
  --surface-inset:
    linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018)),
    rgba(0, 0, 0, 0.2);
  --shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
  --bottom-nav-height: 78px;
  color-scheme: dark;
}

html[data-theme] body {
  background:
    radial-gradient(circle at 16% -14%, rgba(255, 45, 45, 0.16), transparent 27rem),
    radial-gradient(circle at 86% 12%, rgba(255, 77, 85, 0.075), transparent 26rem),
    radial-gradient(circle at 50% 118%, rgba(159, 13, 21, 0.16), transparent 28rem),
    linear-gradient(180deg, #020203 0%, #08090b 48%, #030304 100%);
  color: var(--ink);
}

html[data-theme] body::before {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.014) 1px, transparent 1px),
    linear-gradient(135deg, rgba(255, 45, 45, 0.06), transparent 32%);
  opacity: 0.58;
}

html[data-theme] ::selection {
  color: #ffffff;
  background: rgba(255, 45, 45, 0.52);
}

html[data-theme] :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 3px;
  box-shadow: 0 0 0 5px rgba(255, 45, 45, 0.12);
}

html[data-theme] :is(h1, h2, h3, .trade-command-copy h1, .vault-title-row h1, .backtest-page-copy h1, .wallet-hero-copy h1) {
  letter-spacing: 0;
  text-wrap: balance;
}

html[data-theme] :is(.card-kicker, .nav-section-title, .vault-section-label span, .wallet-count, .backtest-result-chip) {
  color: var(--accent-strong);
}

html[data-theme] :is(.site-header.app-topbar::before, .app-body.nav-open .site-header.app-topbar::before) {
  border-bottom-color: rgba(255, 45, 45, 0.16);
  background:
    linear-gradient(180deg, rgba(7, 8, 10, 0.92), rgba(3, 3, 4, 0.84)),
    rgba(3, 3, 4, 0.92);
  -webkit-backdrop-filter: blur(22px) saturate(1.15);
  backdrop-filter: blur(22px) saturate(1.15);
}

html[data-theme] .brand-copy .eyebrow,
html[data-theme] .brand-lockup:hover .brand-copy strong {
  color: var(--accent-strong);
}

html[data-theme] .mode-chip,
html[data-theme] .trade-live-badge,
html[data-theme] .status-badge,
html[data-theme] .metric-pill,
html[data-theme] .wallet-status-chip,
html[data-theme] .forecast-quality-chip,
html[data-theme] .backtest-balance-pill,
html[data-theme] .backtest-result-chip {
  border-color: rgba(255, 45, 45, 0.24);
  color: #ffd6d9;
  background: rgba(255, 45, 45, 0.075);
}

html[data-theme] .mode-dot,
html[data-theme] .trade-live-badge::before,
html[data-theme] .wallet-status-chip > span {
  background: var(--accent-strong);
  box-shadow: 0 0 14px rgba(255, 45, 45, 0.55);
}

html[data-theme] .nav-toggle,
html[data-theme] .app-nav,
html[data-theme] .bottom-nav,
html[data-theme] .crypto-rail::before {
  border-color: rgba(255, 45, 45, 0.16);
  background:
    linear-gradient(180deg, rgba(15, 16, 20, 0.9), rgba(3, 3, 4, 0.94)),
    rgba(3, 3, 4, 0.9);
  -webkit-backdrop-filter: blur(22px) saturate(1.18);
  backdrop-filter: blur(22px) saturate(1.18);
}

html[data-theme] :is(.nav-link, .bottom-nav-item, .crypto-rail-item) {
  color: var(--muted-strong);
}

html[data-theme] :is(.nav-link.active, .nav-link[aria-current="page"], .bottom-nav-item.active, .bottom-nav-item[aria-current="page"]) {
  border-color: rgba(255, 45, 45, 0.36);
  color: var(--ink);
  background:
    linear-gradient(180deg, rgba(255, 45, 45, 0.14), rgba(159, 13, 21, 0.12)),
    rgba(255, 255, 255, 0.035);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 12px 32px rgba(255, 45, 45, 0.12);
}

html[data-theme] :is(.nav-link.active, .bottom-nav-item.active) .topnav-icon,
html[data-theme] :is(.nav-link.active, .bottom-nav-item.active) .nav-icon {
  color: var(--accent-strong);
  stroke: currentColor;
}

html[data-theme] :is(button.primary, .button-link.primary, .nav a.primary, .vault-start-button, .backtest-run-button, .convert-submit-button, .sheet-action):not(:disabled) {
  border-color: rgba(255, 75, 85, 0.68);
  color: #ffffff;
  background:
    linear-gradient(180deg, rgba(255, 89, 96, 0.98), rgba(197, 11, 26, 0.98)),
    #d0111d;
  box-shadow: 0 16px 34px rgba(255, 45, 45, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

html[data-theme] :is(button.secondary, .button-link.secondary, .nav-form button, .trade-icon-button, .pagination-button, .vault-max-button, .backtest-use-vault, .convert-max-button, .convert-swap-button) {
  border-color: rgba(255, 255, 255, 0.12);
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.045);
}

html[data-theme] :is(button, .button-link, .nav-link, .bottom-nav-item, .crypto-rail-item):disabled,
html[data-theme] :is(button, .button-link, .nav-link, .bottom-nav-item, .crypto-rail-item)[aria-disabled="true"],
html[data-theme] .is-disabled {
  cursor: not-allowed;
  color: rgba(199, 206, 216, 0.52);
  border-color: rgba(255, 255, 255, 0.07);
  background: rgba(255, 255, 255, 0.026);
  box-shadow: none;
  transform: none;
}

html[data-theme] :is(.card, .vault-card, .wallet-card, .trade-panel, .av-panel, .auth-card, .convert-widget, .convert-card-simple, .convert-side-panel, .treasury-panel, .risk-panel, .ops-bridge, .mini-chart-card, .allocation-panel) {
  border-color: rgba(255, 255, 255, 0.095);
  background: var(--surface-card);
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

html[data-theme] :is(.card, .vault-card, .wallet-card, .trade-panel, .av-panel, .auth-card, .convert-widget, .convert-card-simple, .convert-side-panel, .treasury-panel, .risk-panel, .ops-bridge, .mini-chart-card, .allocation-panel)::before {
  background: linear-gradient(90deg, transparent, rgba(255, 45, 45, 0.24), transparent);
}

html[data-theme] :is(.vault-form-section, .vault-routing-summary, .vault-readiness-state, .vault-risk-summary, .vault-cycle-card, .wallet-hero-metrics div, .wallet-asset-row-card, .wallet-activity-row, .trade-metric, .backtest-metric-card, .backtest-intel-panel, .backtest-strategy-panel, .provider-health-table div, .forecast-summary-grid div, .intelligence-list div, .auth-ops-panel, .convert-preview-panel, .convert-state-panel, .ops-bridge-metric, .treasury-wallet-grid div, .treasury-reserve-card, .risk-status-card) {
  border-color: rgba(255, 255, 255, 0.09);
  background: var(--surface-inset);
}

html[data-theme] :is(.vault-asset-option, .vault-exchange-card, .backtest-allocation-option, .convert-asset-field, .convert-amount-field, input, select, textarea) {
  border-color: rgba(255, 255, 255, 0.11);
  color: var(--ink);
  background: rgba(3, 3, 4, 0.58);
}

html[data-theme] :is(.vault-asset-option.is-selected, .vault-cycle-option.is-selected, .backtest-allocation-option.is-selected, .convert-asset-row.is-selected, .risk-segment.is-active) {
  border-color: rgba(255, 75, 85, 0.52);
  color: var(--ink);
  background:
    linear-gradient(180deg, rgba(255, 45, 45, 0.14), rgba(159, 13, 21, 0.1)),
    rgba(255, 255, 255, 0.035);
  box-shadow: 0 0 0 1px rgba(255, 45, 45, 0.08) inset, 0 14px 32px rgba(255, 45, 45, 0.1);
}

html[data-theme] .vault-provider-mark,
html[data-theme] .backtest-token-icon,
html[data-theme] .panic-empty-mark,
html[data-theme] .wallet-coin,
html[data-theme] .brand-mark.brand-mark--mascot {
  border-color: rgba(255, 45, 45, 0.38);
  background:
    radial-gradient(circle at 62% 34%, rgba(255, 75, 85, 0.24), transparent 58%),
    #030304;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.035), 0 14px 34px rgba(0, 0, 0, 0.46), 0 0 26px rgba(255, 45, 45, 0.14);
}

html[data-theme] .trading-dashboard-shell {
  --dash-bg: #030304;
  --dash-panel: rgba(12, 13, 16, 0.96);
  --dash-panel-strong: rgba(18, 19, 23, 0.98);
  --dash-border: rgba(255, 255, 255, 0.095);
  --dash-muted: #8d96a3;
  --dash-ink: #f8fafc;
  --dash-gold: #ff2d2d;
  --dash-red: #ff4b55;
  background:
    radial-gradient(circle at 16% -10%, rgba(255, 45, 45, 0.12), transparent 28rem),
    linear-gradient(180deg, #030304, #08090b 46%, #030304);
}

html[data-theme] :is(.trade-command-bar, .quick-action-bar, .dashboard-bottom-sheet) {
  border-color: rgba(255, 45, 45, 0.16);
  background:
    linear-gradient(180deg, rgba(13, 14, 18, 0.92), rgba(4, 4, 5, 0.94)),
    rgba(4, 4, 5, 0.92);
}

html[data-theme] .trade-metric.status-connected {
  border-color: rgba(0, 192, 118, 0.28);
  background: linear-gradient(180deg, rgba(0, 192, 118, 0.09), rgba(255, 255, 255, 0.018));
}

html[data-theme] :is(.trade-metric.status-error, .forecast-quality-chip.is-stale, .convert-state-panel.is-error, .dashboard-connection-banner, .vault-cycle-card.is-error, .backtest-panel-state.is-error, .auth-ops-panel-danger) {
  border-color: rgba(255, 75, 85, 0.32);
  color: #ffc5c9;
  background: rgba(255, 45, 45, 0.075);
}

html[data-theme] :is(.trade-metric.status-stale, .vault-cycle-card.is-stale, .convert-state-panel.is-stale, .dashboard-cache-state) {
  border-color: rgba(255, 160, 55, 0.28);
  color: #ffd8a8;
  background: rgba(255, 160, 55, 0.065);
}

html[data-theme] :is(.empty-state, .wallet-empty-state, .trade-empty-state, .dashboard-state-empty, .vault-empty-state, .vault-routing-empty, .backtest-empty-state, .backtest-panel-state, .chart-state-message, .convert-state-panel.is-empty, .wallet-offline-notice, .convert-offline-banner, .dashboard-panel-state, .av-data-state) {
  border-color: rgba(255, 255, 255, 0.09);
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.032);
}

html[data-theme] :is(.flash.success, .convert-state-panel.is-quote, .wallet-status-success, .wallet-status-verified, .auth-ops-panel-success) {
  border-color: rgba(0, 192, 118, 0.3);
  color: #b9f8da;
  background: rgba(0, 192, 118, 0.08);
}

html[data-theme] :is(.flash.error, .flash.danger, .av-data-state-error, .field-error, .negative) {
  color: #ff8f98;
}

html[data-theme] :is(.positive, .wallet-status-success, .wallet-status-verified) {
  color: #7df0b7;
}

html[data-theme] :is(.dashboard-skeleton, .backtest-skeleton-row, .chart-loading, .av-pnl-loading .dashboard-skeleton, [aria-busy="true"] .dashboard-skeleton-line, [data-panel-state="loading"] .dashboard-skeleton-line) {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.05), rgba(255, 75, 85, 0.16), rgba(255, 255, 255, 0.05));
  background-size: 220% 100%;
  animation: algvault-red-skeleton 1.25s ease-in-out infinite;
}

html[data-theme] :is(.chart-canvas-host, .backtest-chart-stage, .av-pnl-chart-shell, .vault-pulse-sparkline) {
  border-color: rgba(255, 45, 45, 0.14);
  background:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.026) 1px, transparent 1px),
    radial-gradient(circle at 20% 12%, rgba(255, 45, 45, 0.09), transparent 38%),
    #050506;
  background-size: 42px 42px, 42px 42px, auto, auto;
}

html[data-theme] .ops-bridge {
  gap: 0.72rem;
  border-color: rgba(255, 45, 45, 0.2);
}

html[data-theme] .ops-bridge-head strong {
  color: var(--ink);
}

html[data-theme] .ops-bridge-actions a {
  min-height: 44px;
}

html[data-theme] .auth-shell {
  min-height: calc(100svh - 7rem);
  align-items: center;
}

html[data-theme] .auth-card {
  width: min(100%, 28rem);
}

html[data-theme] .sw-update-banner {
  border-color: rgba(255, 45, 45, 0.28);
  background: rgba(7, 8, 10, 0.94);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.5), 0 0 24px rgba(255, 45, 45, 0.12);
}

html[data-theme] .sw-update-banner button {
  background: linear-gradient(180deg, rgba(255, 89, 96, 0.98), rgba(197, 11, 26, 0.98));
  color: #ffffff;
}

@keyframes algvault-red-skeleton {
  0%,
  100% {
    background-position: 120% 0;
  }
  50% {
    background-position: -20% 0;
  }
}

@media (hover: hover) and (pointer: fine) {
  html[data-theme] :is(.card, .vault-card, .wallet-card, .trade-panel, .av-panel, .auth-card, .ops-bridge):hover {
    border-color: rgba(255, 45, 45, 0.2);
  }

  html[data-theme] :is(button, .button-link, .nav-link, .bottom-nav-item, .crypto-rail-item):not(:disabled):not([aria-disabled="true"]):hover {
    border-color: rgba(255, 75, 85, 0.42);
  }
}

@media (display-mode: standalone) {
  html[data-theme] body {
    min-height: 100svh;
  }

  html[data-theme] .site-header.app-topbar {
    padding-top: max(0.74rem, var(--safe-top));
  }

  html[data-theme] .page-shell.app-main {
    padding-bottom: calc(var(--bottom-nav-height, 78px) + var(--safe-bottom) + 1.25rem);
  }

  html[data-theme] .bottom-nav {
    padding-bottom: max(0.42rem, var(--safe-bottom));
  }

  html[data-theme] .flash-stack,
  html[data-theme] .sw-update-banner {
    inset-inline: max(0.75rem, var(--safe-left)) max(0.75rem, var(--safe-right));
  }
}

@media (max-width: 760px) {
  html[data-theme] .site-header.app-topbar {
    min-height: calc(4rem + var(--safe-top));
    padding-top: calc(0.58rem + var(--safe-top));
    padding-right: max(0.58rem, var(--safe-right));
    padding-left: max(0.58rem, var(--safe-left));
  }

  html[data-theme] .brand-lockup {
    min-width: 0;
  }

  html[data-theme] .brand-copy {
    min-width: 0;
  }

  html[data-theme] .brand-copy strong,
  html[data-theme] .brand-copy small,
  html[data-theme] .nav-link-copy strong,
  html[data-theme] .nav-link-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  html[data-theme] .topbar-actions {
    flex: 0 0 auto;
  }

  html[data-theme] .mode-chip {
    min-height: 38px;
    padding-inline: 0.58rem;
  }

  html[data-theme] .nav-toggle {
    min-width: 48px;
    min-height: 48px;
  }

  html[data-theme] .page-shell.app-main {
    width: 100%;
    padding-right: max(0.58rem, var(--safe-right));
    padding-left: max(0.58rem, var(--safe-left));
  }

  html[data-theme] :is(button, .button-link, .nav-link, .bottom-nav-item, .crypto-rail-item, input, select, textarea, summary) {
    min-height: 48px;
    touch-action: manipulation;
  }

  html[data-theme] :is(.wallet-hero-panel, .vault-start-card, .vault-active-card, .vault-activity-card, .backtest-result-panel, .auth-card, .ops-bridge, .trade-panel, .av-panel) {
    border-radius: 0.66rem;
  }

  html[data-theme] .ops-bridge-metrics,
  html[data-theme] .backtest-metric-strip,
  html[data-theme] .wallet-hero-metrics,
  html[data-theme] .trade-account-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  html[data-theme] .crypto-rail {
    max-width: 100vw;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  html[data-theme] .crypto-rail::-webkit-scrollbar {
    display: none;
  }

  html[data-theme] .bottom-nav {
    right: max(0.38rem, var(--safe-right));
    left: max(0.38rem, var(--safe-left));
    min-height: calc(var(--bottom-nav-height, 78px) + var(--safe-bottom));
    padding:
      0.42rem
      0.44rem
      max(0.42rem, var(--safe-bottom))
      0.44rem;
    border-radius: 0.72rem 0.72rem 0 0;
  }

  html[data-theme] .bottom-nav-item {
    min-width: 0;
    min-height: 3.55rem;
    padding: 0.3rem 0.18rem;
  }

  html[data-theme] .nav-item-label {
    font-size: 0.68rem;
    line-height: 1.05;
  }
}

@media (max-width: 430px) {
  html[data-theme] .brand-copy small,
  html[data-theme] .mode-chip span:last-child {
    display: none;
  }

  html[data-theme] :is(.ops-bridge-metrics, .backtest-metric-strip, .wallet-hero-metrics, .trade-account-strip) {
    gap: 0.5rem;
  }

  html[data-theme] :is(.trade-metric, .backtest-metric-card, .wallet-hero-metrics div, .ops-bridge-metric) {
    min-height: 4.65rem;
    padding: 0.62rem;
  }

  html[data-theme] :is(.trade-metric strong, .backtest-metric-card strong, .wallet-hero-metrics dd, .ops-bridge-metric strong) {
    font-size: clamp(0.98rem, 4.8vw, 1.15rem);
    overflow-wrap: anywhere;
  }

  html[data-theme] .auth-shell {
    align-items: start;
    padding-top: 0.72rem;
  }
}

@supports (-webkit-touch-callout: none) {
  html[data-theme] :is(.app-nav, .bottom-nav, .site-header.app-topbar, .trade-command-bar, .quick-action-bar, .vault-sticky-actions, .dashboard-bottom-sheet) {
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
  }

  html[data-theme] :is(.page-shell.app-main, .trading-dashboard-shell, .wallet-page-shell, .vault-execution-shell, .backtest-vault-shell) {
    -webkit-overflow-scrolling: touch;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme] *,
  html[data-theme] *::before,
  html[data-theme] *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Settings control-center polish. Final layer scoped to /settings/. */
html[data-theme] .settings-control-center {
  width: min(100%, 1180px);
  margin-inline: auto;
  gap: 0.82rem;
  padding-bottom: calc(var(--safe-bottom, env(safe-area-inset-bottom)) + 1rem);
}

html[data-theme] .settings-control-center .av-page-header {
  margin-bottom: 0;
}

html[data-theme] .settings-state-banner,
html[data-theme] .settings-sync-strip,
html[data-theme] .settings-section-nav,
html[data-theme] .settings-accordion,
html[data-theme] .settings-save-tray {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: rgba(7, 8, 10, 0.86);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.34);
}

html[data-theme] .settings-state-banner {
  display: grid;
  gap: 0.2rem;
  padding: 0.78rem 0.86rem;
  color: #fecaca;
  border-color: rgba(255, 77, 79, 0.3);
  background: rgba(127, 29, 29, 0.18);
}

html[data-theme] .settings-state-banner[hidden],
html[data-theme] .settings-save-tray[hidden] {
  display: none !important;
}

html[data-theme] .settings-state-banner strong {
  color: #fee2e2;
}

html[data-theme] .settings-state-banner span,
html[data-theme] .settings-helper-copy,
html[data-theme] .settings-sync-meta,
html[data-theme] .settings-section-title small,
html[data-theme] .settings-panel p,
html[data-theme] .settings-action-row small,
html[data-theme] .settings-switch-row small {
  color: var(--muted-strong);
  line-height: 1.45;
}

html[data-theme] .settings-sync-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.76rem 0.86rem;
  background:
    linear-gradient(180deg, rgba(16, 22, 31, 0.88), rgba(7, 8, 10, 0.86)),
    rgba(7, 8, 10, 0.86);
}

html[data-theme] .settings-sync-strip > div {
  display: grid;
  gap: 0.08rem;
}

html[data-theme] .settings-sync-strip strong {
  color: var(--ink);
  font-size: 0.98rem;
}

html[data-theme] .settings-section-nav {
  position: sticky;
  top: calc(4.35rem + var(--safe-top, env(safe-area-inset-top)));
  z-index: 12;
  display: flex;
  gap: 0.42rem;
  max-width: 100%;
  padding: 0.42rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  background:
    linear-gradient(180deg, rgba(7, 8, 10, 0.94), rgba(7, 8, 10, 0.82)),
    rgba(7, 8, 10, 0.9);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  backdrop-filter: blur(18px) saturate(1.08);
}

html[data-theme] .settings-section-nav::-webkit-scrollbar {
  display: none;
}

html[data-theme] .settings-section-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 44px;
  padding: 0.58rem 0.76rem;
  border: 1px solid transparent;
  border-radius: var(--radius-sm, 8px);
  color: var(--muted-strong);
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.8rem;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
  touch-action: manipulation;
}

html[data-theme] .settings-section-nav a.is-active,
html[data-theme] .settings-section-nav a[aria-current="true"] {
  color: #ffffff;
  border-color: rgba(255, 45, 45, 0.38);
  background: linear-gradient(180deg, rgba(255, 45, 45, 0.24), rgba(255, 45, 45, 0.1));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 0 20px rgba(255, 45, 45, 0.12);
}

html[data-theme] .settings-section {
  scroll-margin-top: calc(8rem + var(--safe-top, env(safe-area-inset-top)));
}

html[data-theme] .settings-accordion {
  overflow: clip;
  background:
    linear-gradient(180deg, rgba(15, 21, 30, 0.92), rgba(8, 10, 12, 0.94)),
    var(--panel);
}

html[data-theme] .settings-accordion[open] {
  border-color: rgba(255, 45, 45, 0.18);
}

html[data-theme] .settings-section-summary {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 32px;
  align-items: center;
  gap: 0.72rem;
  min-height: 76px;
  padding: 0.78rem;
  cursor: pointer;
  list-style: none;
  touch-action: manipulation;
}

html[data-theme] .settings-section-summary::-webkit-details-marker {
  display: none;
}

html[data-theme] .settings-section-summary:focus-visible {
  outline: 2px solid rgba(255, 75, 85, 0.75);
  outline-offset: -3px;
}

html[data-theme] .settings-section-index {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 45, 45, 0.22);
  border-radius: var(--radius-sm, 8px);
  color: #ffffff;
  background: rgba(255, 45, 45, 0.1);
  font-size: 0.78rem;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}

html[data-theme] .settings-section-title {
  display: grid;
  min-width: 0;
  gap: 0.16rem;
}

html[data-theme] .settings-section-title h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.02rem, 4vw, 1.28rem);
  line-height: 1.12;
  letter-spacing: 0;
}

html[data-theme] .settings-accordion-caret {
  width: 28px;
  height: 28px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: rgba(255, 255, 255, 0.04);
  position: relative;
}

html[data-theme] .settings-accordion-caret::before {
  content: "";
  position: absolute;
  inset: 9px 8px 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  color: var(--muted-strong);
  transform: rotate(45deg);
  transition: transform 0.18s ease;
}

html[data-theme] .settings-accordion[open] .settings-accordion-caret::before {
  transform: translateY(3px) rotate(225deg);
}

html[data-theme] .settings-section-body {
  display: grid;
  gap: 0.76rem;
  padding: 0 0.78rem 0.82rem;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

html[data-theme] .settings-card-grid,
html[data-theme] .settings-trust-grid,
html[data-theme] .settings-risk-summary {
  display: grid;
  gap: 0.68rem;
}

html[data-theme] .settings-panel,
html[data-theme] .provider-status-card {
  border-radius: var(--radius-sm, 8px);
  background:
    linear-gradient(180deg, rgba(17, 24, 35, 0.94), rgba(7, 9, 13, 0.96)),
    rgba(7, 9, 13, 0.92);
}

html[data-theme] .settings-summary-card {
  display: grid;
  align-content: start;
  gap: 0.42rem;
  min-height: 6.1rem;
}

html[data-theme] .settings-panel p {
  margin: 0.34rem 0 0;
  font-size: 0.9rem;
}

html[data-theme] .settings-mode-pill.positive,
html[data-theme] .settings-mode-pill.is-live {
  color: var(--success);
  border-color: rgba(0, 192, 118, 0.34);
  background: rgba(0, 192, 118, 0.1);
}

html[data-theme] .settings-mode-pill.warning {
  color: var(--warning);
  border-color: rgba(240, 185, 11, 0.34);
  background: rgba(240, 185, 11, 0.1);
}

html[data-theme] .settings-mode-pill.danger {
  color: var(--danger);
  border-color: rgba(255, 77, 79, 0.4);
  background: rgba(255, 77, 79, 0.1);
}

html[data-theme] .settings-action-card,
html[data-theme] .settings-form-card {
  display: grid;
  gap: 0.76rem;
}

html[data-theme] .settings-action-card {
  align-items: center;
}

html[data-theme] .settings-action-card--danger {
  border-color: rgba(255, 77, 79, 0.24);
  background:
    linear-gradient(180deg, rgba(35, 17, 21, 0.92), rgba(12, 7, 8, 0.95)),
    rgba(127, 29, 29, 0.1);
}

html[data-theme] .settings-action-button {
  width: 100%;
  min-height: 48px;
  border-radius: var(--radius-sm, 8px);
  white-space: normal;
}

html[data-theme] .settings-trust-card {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr);
  gap: 0.68rem;
}

html[data-theme] .settings-trust-mark {
  width: 10px;
  height: 10px;
  margin-top: 0.32rem;
  border-radius: 999px;
  background: var(--success);
  box-shadow: 0 0 0 5px rgba(0, 192, 118, 0.12), 0 0 18px rgba(0, 192, 118, 0.4);
}

html[data-theme] .settings-trust-mark.warning {
  background: var(--warning);
  box-shadow: 0 0 0 5px rgba(240, 185, 11, 0.12), 0 0 18px rgba(240, 185, 11, 0.34);
}

html[data-theme] .settings-section-action-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.72rem;
}

html[data-theme] .settings-icon-link {
  min-height: 44px;
  border-radius: var(--radius-sm, 8px);
}

html[data-theme] .provider-status-main h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.1;
  letter-spacing: 0;
}

html[data-theme] .provider-status-list {
  display: grid;
  gap: 0.42rem;
  margin: 0;
}

html[data-theme] .provider-status-list div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.72rem;
  min-height: 2rem;
  padding-bottom: 0.42rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

html[data-theme] .provider-status-list div:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

html[data-theme] .provider-status-list dt,
html[data-theme] .provider-status-list dd {
  margin: 0;
}

html[data-theme] .provider-status-list dt {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 900;
  text-transform: uppercase;
}

html[data-theme] .provider-status-list dd {
  display: flex;
  justify-content: flex-end;
  min-width: 0;
}

html[data-theme] .provider-card-note {
  margin: 0;
  color: var(--muted-strong);
  font-size: 0.84rem;
  line-height: 1.4;
}

html[data-theme] .provider-status-card.tone-warning,
html[data-theme] .settings-summary-card.is-warning {
  border-color: rgba(240, 185, 11, 0.26);
}

html[data-theme] .settings-summary-card.is-danger {
  border-color: rgba(255, 77, 79, 0.3);
}

html[data-theme] .settings-risk-stack {
  gap: 0.8rem;
}

html[data-theme] .settings-control-form {
  display: grid;
  gap: 0.62rem;
}

html[data-theme] .settings-switch-row {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: center;
  gap: 0.72rem;
  min-height: 58px;
  padding: 0.68rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-sm, 8px);
  background: rgba(255, 255, 255, 0.035);
  cursor: pointer;
}

html[data-theme] .settings-switch-row input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

html[data-theme] .settings-switch-ui {
  position: relative;
  width: 52px;
  height: 32px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  transition: background 0.18s ease, border-color 0.18s ease;
}

html[data-theme] .settings-switch-ui::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #ffffff;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.28);
  transition: transform 0.18s ease;
}

html[data-theme] .settings-switch-row input:checked + .settings-switch-ui {
  border-color: rgba(0, 192, 118, 0.44);
  background: rgba(0, 192, 118, 0.24);
}

html[data-theme] .settings-switch-row input:checked + .settings-switch-ui::after {
  transform: translateX(20px);
}

html[data-theme] .settings-switch-row input:focus-visible + .settings-switch-ui {
  outline: 2px solid rgba(255, 75, 85, 0.72);
  outline-offset: 3px;
}

html[data-theme] .settings-switch-row > span:last-child {
  display: grid;
  min-width: 0;
  gap: 0.12rem;
}

html[data-theme] .settings-danger-actions {
  display: grid;
  gap: 0.58rem;
}

html[data-theme] .settings-danger-actions form {
  margin: 0;
}

html[data-theme] .settings-action-list {
  gap: 0.62rem;
}

html[data-theme] .settings-action-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.72rem;
  min-height: 58px;
  padding: 0.72rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  color: var(--ink);
  background: rgba(255, 255, 255, 0.035);
  text-decoration: none;
}

html[data-theme] .settings-action-row > span:first-child {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

html[data-theme] .settings-action-row > span:last-child {
  color: var(--accent);
  font-size: 0.82rem;
  font-weight: 900;
}

html[data-theme] .settings-save-tray {
  position: fixed;
  right: max(0.75rem, var(--safe-right, env(safe-area-inset-right)));
  bottom: calc(var(--bottom-nav-height, 72px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 0.82rem);
  left: max(0.75rem, var(--safe-left, env(safe-area-inset-left)));
  z-index: 42;
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  align-items: center;
  gap: 0.62rem;
  width: min(34rem, calc(100vw - 1.5rem - var(--safe-left, env(safe-area-inset-left)) - var(--safe-right, env(safe-area-inset-right))));
  margin-inline: auto;
  padding: 0.72rem 0.82rem;
  color: var(--ink);
  background: rgba(7, 8, 10, 0.92);
  -webkit-backdrop-filter: blur(18px) saturate(1.1);
  backdrop-filter: blur(18px) saturate(1.1);
}

html[data-theme] .settings-save-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--success);
  box-shadow: 0 0 16px rgba(0, 192, 118, 0.42);
}

html[data-theme] .settings-save-tray[data-state="unsaved"] .settings-save-dot,
html[data-theme] .settings-save-tray[data-state="saving"] .settings-save-dot {
  background: var(--warning);
  box-shadow: 0 0 16px rgba(240, 185, 11, 0.42);
}

html[data-theme] .settings-save-tray[data-state="offline"] .settings-save-dot {
  background: var(--danger);
  box-shadow: 0 0 16px rgba(255, 77, 79, 0.42);
}

html[data-theme] [aria-busy="true"] .provider-status-card,
html[data-theme] .settings-panel.is-loading {
  color: transparent;
  background:
    linear-gradient(90deg, rgba(255, 45, 45, 0.05), rgba(255, 255, 255, 0.1), rgba(255, 45, 45, 0.05)),
    rgba(7, 8, 10, 0.88);
  background-size: 220% 100%;
  animation: algvault-red-skeleton 1.25s ease-in-out infinite;
}

html[data-theme] .card:has(table.is-wide-table),
html[data-theme] .table-responsive,
html[data-theme] .table-scroll-wrap,
html[data-theme] .ops-table-wrap,
html[data-theme] .treasury-table-wrap {
  scroll-padding-inline: 0.75rem;
}

@media (min-width: 680px) {
  html[data-theme] .settings-card-grid.two-up,
  html[data-theme] .settings-trust-grid,
  html[data-theme] .settings-risk-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  html[data-theme] .settings-card-grid.three-up,
  html[data-theme] .settings-overview-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  html[data-theme] .settings-action-card {
    grid-template-columns: minmax(0, 1fr) minmax(11rem, 0.34fr);
  }

  html[data-theme] .settings-action-card--danger {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.42fr);
  }
}

@media (min-width: 980px) {
  html[data-theme] .settings-provider-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  html[data-theme] .settings-card-grid.three-up,
  html[data-theme] .settings-overview-grid,
  html[data-theme] .settings-risk-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  html[data-theme] body:has(.settings-control-center) .page-shell.app-main {
    padding-right: max(0.62rem, var(--safe-right, env(safe-area-inset-right)));
    padding-left: max(0.62rem, var(--safe-left, env(safe-area-inset-left)));
    padding-bottom: calc(var(--bottom-nav-height, 72px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 5.2rem);
    scroll-padding-top: calc(8.1rem + var(--safe-top, env(safe-area-inset-top)));
  }

  html[data-theme] .settings-control-center .av-page-header {
    padding: 0.92rem;
  }

  html[data-theme] .settings-section-nav {
    top: calc(4.05rem + var(--safe-top, env(safe-area-inset-top)));
  }

  html[data-theme] .settings-section-summary {
    grid-template-columns: 40px minmax(0, 1fr) 30px;
    gap: 0.58rem;
    padding: 0.68rem;
  }

  html[data-theme] .settings-section-index {
    width: 40px;
    height: 40px;
  }

  html[data-theme] .settings-section-body {
    padding-right: 0.68rem;
    padding-left: 0.68rem;
  }

  html[data-theme] .settings-section-action-row,
  html[data-theme] .settings-action-card,
  html[data-theme] .settings-action-card--danger,
  html[data-theme] .settings-action-row {
    grid-template-columns: 1fr;
  }

  html[data-theme] .settings-section-action-row .settings-icon-link,
  html[data-theme] .settings-danger-actions button,
  html[data-theme] .settings-action-row > span:last-child {
    justify-self: stretch;
    text-align: center;
  }

  html[data-theme] table.is-wide-table th:first-child,
  html[data-theme] table.is-wide-table td:first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    background: rgba(7, 8, 10, 0.96);
    box-shadow: 10px 0 18px rgba(0, 0, 0, 0.22);
  }
}

@media (max-width: 430px) {
  html[data-theme] .settings-control-center {
    gap: 0.68rem;
  }

  html[data-theme] .settings-sync-strip {
    display: grid;
  }

  html[data-theme] .settings-section-nav a {
    min-height: 44px;
    padding-inline: 0.64rem;
    font-size: 0.76rem;
  }

  html[data-theme] .settings-summary-card {
    min-height: 5.7rem;
  }

  html[data-theme] .provider-status-list div {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: start;
  }

  html[data-theme] .provider-status-list dd {
    justify-content: flex-start;
  }

  html[data-theme] .settings-switch-row {
    grid-template-columns: 48px minmax(0, 1fr);
    padding: 0.62rem;
  }

  html[data-theme] .settings-switch-ui {
    width: 48px;
  }

  html[data-theme] .settings-switch-row input:checked + .settings-switch-ui::after {
    transform: translateX(16px);
  }
}

@media (display-mode: standalone) {
  html[data-theme] body:has(.settings-control-center) .page-shell.app-main {
    padding-bottom: calc(var(--bottom-nav-height, 72px) + var(--safe-bottom, env(safe-area-inset-bottom)) + 5.6rem);
  }

  html[data-theme] .settings-section-nav,
  html[data-theme] .settings-save-tray {
    -webkit-backdrop-filter: blur(20px) saturate(1.12);
    backdrop-filter: blur(20px) saturate(1.12);
  }
}

@supports (-webkit-touch-callout: none) {
  html[data-theme] .settings-section-nav,
  html[data-theme] .settings-save-tray {
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
  }

  html[data-theme] .settings-section-nav {
    -webkit-overflow-scrolling: touch;
  }
}
