:root {
  --ui-breakpoint-desktop-xl: 1440px;
  --ui-breakpoint-desktop: 1200px;
  --ui-breakpoint-laptop: 1024px;
  --ui-breakpoint-tablet: 768px;
  --ui-breakpoint-mobile: 480px;
  --ui-container-max: 1180px;
  --ui-docs-container-max: 1380px;
  --ui-page-padding: 24px;
  --ui-mobile-padding: 16px;
  --ui-gap-xs: 6px;
  --ui-gap-sm: 10px;
  --ui-gap-md: 14px;
  --ui-gap-lg: 18px;
  --ui-gap-xl: 24px;
  --ui-card-min: 300px;
  --ui-card-min-compact: 220px;
  --ui-dashboard-card-min: 210px;
  --ui-form-min: 220px;
  --ui-filter-field-min: 180px;
  --ui-filter-action-min: 120px;
  --ui-filter-chip-min: 96px;
  --ui-button-min: 120px;
  --ui-docs-table-cell-min: 140px;
  --ui-radius-md: 14px;
  --ui-sidebar-width: 252px;
  --ui-sidebar-compact-width: 220px;
  --ui-sidebar-mobile-width: min(88vw, 304px);
  --ui-dashboard-main-padding: 24px 24px 34px;
  --ui-table-min-base: 720px;
  --ui-table-min-compact: 760px;
  --ui-table-min-trades: 1100px;
  --ui-table-min-market: 1100px;
  --ui-table-min-deposits: 760px;
  --ui-table-min-public: 760px;
  --ui-table-cell-max: 420px;
  --ui-table-item-min: 220px;
  --ui-table-item-max: 420px;
  --ui-table-text-max: 280px;
  --ui-id-cell-min: 18ch;
}

.container { max-width: var(--ui-container-max); padding-left: var(--ui-page-padding); padding-right: var(--ui-page-padding); }
.header { padding-left: var(--ui-page-padding); padding-right: var(--ui-page-padding); }
.header .container { gap: var(--ui-gap-lg); }
.nav { gap: var(--ui-gap-xl); }

.ui-grid,
.ui-grid-cards,
.ui-grid-settings,
.ui-form-grid { display: grid; min-width: 0; }

.ui-grid { gap: var(--ui-gap-md); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ui-card-min)), 1fr)); }
.ui-grid-cards { gap: var(--ui-gap-md); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ui-card-min-compact)), 1fr)); }
.ui-grid-settings { gap: var(--ui-gap-md); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ui-card-min)), 1fr)); align-items: stretch; }
.ui-form-grid { gap: var(--ui-gap-sm); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ui-filter-field-min)), 1fr)); align-items: end; }

.ui-stack { display: grid; gap: var(--ui-gap-md); min-width: 0; }
.ui-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; min-width: 0; }
.ui-actions > * { min-width: 0; }
.ui-full-width { width: 100%; min-width: 0; }
.ui-truncate { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui-break-anywhere { overflow-wrap: anywhere; word-break: break-word; }
.ui-center { justify-content: center; text-align: center; }
.ui-muted-inline { opacity: 0.45; }
.sidebar-mobile-close { display: none; }
.nowrap,
.full-id,
.table-id-cell {
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

.full-id,
.table-id-cell {
  min-width: var(--ui-id-cell-min);
  max-width: none;
  overflow: visible;
  text-overflow: clip;
}

.full-id .copy-btn,
.table-id-cell .copy-btn {
  display: inline-flex;
  vertical-align: middle;
  margin-left: 4px;
}

.cards,
.settings-grid,
.deposit-grid,
.setup-grid { min-width: 0; }

.cards { gap: var(--ui-gap-md); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ui-dashboard-card-min)), 1fr)); }
.settings-grid { align-items: stretch; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ui-card-min)), 1fr)) !important; }
.deposit-grid,
.setup-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ui-card-min)), 1fr)) !important; }
.cards-spaced { margin-bottom: var(--ui-gap-lg); }

.settings-grid > *,
.surface-card,
.card,
.field-group,
.info-block,
.notice-card,
.code-block,
.secret-field,
.secret-field-value { min-width: 0; }

input,
select,
textarea { max-width: 100%; }

.form-actions,
.modal-actions,
.inline-button-group,
.info-inline,
.address-actions,
.filter-actions { min-width: 0; }

.table-shell,
.table-wrap,
.table-scroll {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.table-shell { overflow: hidden; }

.table-scroll,
.table-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.table-scroll table,
.table-wrap table {
  table-layout: auto;
  max-width: none;
}

.table-scroll th,
.table-scroll td,
.table-wrap th,
.table-wrap td {
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
  vertical-align: middle;
}

.table-scroll td,
.table-wrap td {
  max-width: var(--ui-table-cell-max);
  overflow: hidden;
  text-overflow: ellipsis;
}

.table-scroll .item-name-cell,
.table-scroll .item-name,
.table-wrap .item-name,
.table-wrap .item-cell {
  min-width: var(--ui-table-item-min);
  max-width: var(--ui-table-item-max);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.table-scroll .fail-reason-cell,
.table-scroll .modal-text-cell,
.table-wrap .table-text-cell {
  max-width: var(--ui-table-text-max);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.table-scroll .money,
.table-wrap .money,
.table-scroll .badge,
.table-wrap .badge,
.table-scroll .status-pill,
.table-wrap .status-pill,
.table-scroll .token-amount,
.table-wrap .token-amount,
.table-scroll .btn-inline,
.table-wrap .btn-inline,
.table-scroll .table-link,
.table-wrap .table-link {
  white-space: nowrap;
}

.table-scroll .table-overview,
.table-scroll .table-balance,
.table-scroll .table-history { min-width: var(--ui-table-min-base); }
.table-scroll .table-deposits { min-width: var(--ui-table-min-deposits); }
.table-wrap table { min-width: var(--ui-table-min-public); }
.table-scroll .table-market { min-width: var(--ui-table-min-market); }
.table-scroll .table-trades { min-width: var(--ui-table-min-trades); }
.table-scroll > .table-compact { min-width: var(--ui-table-min-compact); }
.table-scroll > .table-compact.table-trades { min-width: var(--ui-table-min-trades); }

.info-table code,
.detail-value-code,
.table-scroll code {
  display: inline-block;
  max-width: 100%;
  overflow-x: auto;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
  vertical-align: top;
}

.info-table td {
  word-break: normal;
  overflow-wrap: normal;
}

.modal-card,
.modal-box,
.modal-box-wide,
.modal-card-wide {
  max-width: min(calc(100vw - (var(--ui-page-padding) * 2)), 100%);
}

.modal-card,
.modal-box {
  max-height: calc(100vh - (var(--ui-page-padding) * 2));
  overflow: auto;
}

.modal-card-narrow { width: min(100%, 420px); }
.modal-pre-wrap {
  max-height: 400px;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: normal;
}
.modal-status-note-spaced { margin: var(--ui-gap-lg) 0; }

.deposit-network-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-gap-xs);
  justify-content: center;
}
.network-pill-eth {
  background: rgba(98, 126, 234, 0.12) !important;
  color: #627eea !important;
  border-color: rgba(98, 126, 234, 0.22) !important;
}
.notice-card-spaced { margin-top: var(--ui-gap-xs); }
.invoice-link { font-size: 12px; padding: 4px 10px; }
.secret-inline { justify-content: center; }
.secret-code { text-align: center; max-width: min(100%, 340px); }
.stack-form-spaced { margin-top: var(--ui-gap-md); }
.notice-stack-spaced { margin-top: var(--ui-gap-lg); }

.webhook-form,
.market-search-form,
.filter-form,
.filters-form-trades,
.filters-form-logs { min-width: 0; }

.filter-form,
.filters-form-trades,
.filters-form-logs {
  display: grid;
  align-items: end;
  gap: var(--ui-gap-sm);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ui-filter-field-min)), 1fr));
}

.filter-form-spaced { margin-bottom: var(--ui-gap-lg); }

.filter-form .filter-actions,
.filters-form-trades .filter-actions,
.filters-form-logs .filter-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-gap-xs);
  flex-wrap: wrap;
  min-width: min(100%, var(--ui-filter-action-min));
}

.settings-grid > .surface-card:has(.webhook-form) { grid-column: 1 / -1; }

.settings-grid .webhook-form {
  align-items: stretch !important;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ui-filter-field-min)), 1fr)) !important;
}

.settings-grid .webhook-form input,
.settings-grid .webhook-form .field-group,
.settings-grid .webhook-form .form-actions {
  width: 100%;
  min-width: 0;
}

.settings-grid .webhook-form .form-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: var(--ui-button-min);
  white-space: nowrap;
}

.section-shell { display: grid; gap: 16px; min-width: 0; }
.section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.section-header h1 { margin-bottom: 0; }
.section-caption { color: var(--text-muted, #64748b); font-size: 0.8rem; }
.summary-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 13px;
  border-radius: 14px;
  border: 1px solid var(--border, rgba(148, 163, 184, 0.2));
  background: rgba(255, 255, 255, 0.03);
  color: var(--text-soft, #64748b);
}
.summary-pill strong { color: var(--heading, inherit); font-size: 0.94rem; }
.field-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.field-label {
  color: var(--text-soft, #64748b);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.filter-card { padding: 16px; }
.reset-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--text-soft, #64748b);
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 600;
}
.reset-link svg { width: 14px; height: 14px; }
.empty-state {
  padding: 28px 16px;
  text-align: center;
  color: var(--text-muted, #64748b);
}
.empty-state strong { display: block; margin-bottom: 6px; color: var(--heading, inherit); }
.info-table {
  width: auto;
  border: none;
  background: transparent;
  box-shadow: none;
}
.info-table td {
  padding: 7px 0;
  border-bottom: 1px solid rgba(148, 163, 184, 0.16);
  vertical-align: top;
}
.info-table tr:last-child td { border-bottom: none; }
.info-label {
  padding-right: 14px;
  color: var(--text-soft, #64748b);
  font-weight: 700;
  white-space: nowrap;
}
.modal-box h3,
.modal-card h3 { margin: 0 0 8px; }
.trades-page .table-card { min-width: 0; }
.trades-page .card .label {
  margin-bottom: 6px;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted, #64748b);
}
.trades-page .card .value {
  font-size: 1.48rem;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.15;
}
.trades-page .card .value.money {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.trades-page .surface-card-title,
.logs-page .surface-card-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.trades-page .surface-card-title strong,
.logs-page .surface-card-title strong {
  color: var(--heading, inherit);
  font-size: 0.94rem;
}
.trades-page .surface-card-title span,
.logs-page .surface-card-title span {
  color: var(--text-muted, #64748b);
  font-size: 0.8rem;
}
.trades-page .filter-actions .btn-filter,
.logs-page .filter-actions .btn-filter {
  min-height: 40px;
  padding: 9px 16px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: linear-gradient(135deg, var(--accent, #7c5cff), #5da4ff);
  color: #fff;
  cursor: pointer;
  font-weight: 700;
  font-size: 0.88rem;
  font-family: inherit;
  box-shadow: 0 10px 20px rgba(124, 92, 255, 0.16);
  transition: transform 0.18s ease, filter 0.18s ease, background 0.2s ease;
}
.trades-page .filter-actions .btn-filter:hover,
.logs-page .filter-actions .btn-filter:hover {
  transform: translateY(-1px);
  background: linear-gradient(135deg, var(--accent-hover, #9277ff), #6cb0ff);
  filter: none;
}
.trades-page .reset-link:hover { text-decoration: underline; }
.trades-page .table-link {
  color: var(--accent-cyan, #0ea5e9);
  font-weight: 600;
  text-decoration: none;
}
.trades-page .table-link:hover { text-decoration: underline; }
.trades-page tr.anomaly-mismatch {
  background: rgba(245, 158, 11, 0.08);
  box-shadow: inset 4px 0 0 rgba(245, 158, 11, 0.6);
}
.trades-page td.fail-reason-cell {
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.78rem;
  color: var(--danger, #dc2626);
  cursor: default;
}
.trades-page td.fail-reason-cell.has-error { cursor: pointer; }
.trades-page td.fail-reason-cell.has-error:hover {
  text-decoration: underline;
  filter: brightness(0.88);
}
.trades-page td.fail-reason-cell.has-error:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--danger, #ef4444) 28%, transparent);
  outline-offset: 2px;
  border-radius: 6px;
}
html[data-theme="dark"] .trades-page td.fail-reason-cell {
  color: #ffb4c0 !important;
}
html[data-theme="dark"] .trades-page td.fail-reason-cell.has-error:hover {
  color: #ffd4dc !important;
  filter: none;
}
html[data-theme="light"] .trades-page td.fail-reason-cell {
  color: #b91c1c;
}
html[data-theme="light"] .trades-page td.fail-reason-cell.has-error:hover {
  color: #991b1b;
  filter: none;
}

@media (max-width: 1440px) {
  :root {
    --ui-page-padding: 20px;
    --ui-gap-lg: 16px;
    --ui-dashboard-card-min: 170px;
    --ui-dashboard-main-padding: 16px 16px 24px;
  }
}

@media (max-width: 1200px) {
  :root {
    --ui-card-min: 280px;
    --ui-filter-field-min: 170px;
    --ui-page-padding: 18px;
    --ui-gap-xl: 20px;
  }
  .deposit-grid,
  .setup-grid,
  .settings-grid,
  .ui-grid,
  .ui-grid-settings {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)) !important;
  }
}

@media (max-width: 1024px) {
  :root {
    --ui-page-padding: 18px;
    --ui-dashboard-main-padding: 78px 18px 24px;
  }
  .sidebar-toggle { display: inline-flex; }
  .sidebar {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    z-index: 40;
    width: var(--ui-sidebar-mobile-width);
    max-width: calc(100vw - 24px);
    transform: translateX(-100%);
    transition: transform 0.24s ease;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  body.sidebar-open .sidebar { transform: translateX(0); }
  .sidebar-backdrop {
    position: fixed;
    inset: 0;
    z-index: 30;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
  }
  body.sidebar-open .sidebar-backdrop {
    opacity: 1;
    pointer-events: auto;
  }
  body.sidebar-open .sidebar-toggle {
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
  }
  .sidebar-mobile-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 42px;
    margin-bottom: 12px;
    padding: 9px 12px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.08);
    color: inherit;
    font-weight: 800;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
  }
  .sidebar-mobile-close svg {
    width: 17px;
    height: 17px;
    flex: none;
  }
}

@media (max-width: 768px) {
  :root {
    --ui-page-padding: 16px;
    --ui-mobile-padding: 16px;
    --ui-card-min: 100%;
    --ui-dashboard-card-min: 100%;
    --ui-filter-field-min: 160px;
    --ui-gap-md: 12px;
    --ui-gap-lg: 14px;
  }
  .header .container { height: auto; padding-top: 12px; padding-bottom: 12px; align-items: flex-start; gap: 12px; }
  .nav { gap: 14px; }
  .docs-table { display: block !important; overflow-x: auto !important; overflow-y: hidden !important; white-space: nowrap; }
  .docs-table th,
  .docs-table td { min-width: var(--ui-docs-table-cell-min); }
  .deposit-grid,
  .setup-grid,
  .settings-grid,
  .webhook-form,
  .market-search-form,
  .cards,
  .ui-grid,
  .ui-grid-settings,
  .ui-form-grid {
    grid-template-columns: 1fr !important;
  }
  .settings-grid > .surface-card:has(.webhook-form),
  .settings-grid > * {
    grid-column: auto !important;
    width: 100%;
  }
  .form-actions,
  .modal-actions,
  .filter-actions,
  .filter-form,
  .ui-actions {
    width: 100%;
  }
  .filter-form input,
  .filter-form select,
  .filter-form button,
  .filter-input-wide,
  .filter-select {
    width: 100%;
    min-width: 0;
  }
  .detail-grid { grid-template-columns: 1fr; }
  .modal-actions { justify-content: flex-start; }
  .modal-actions > * { flex: 1 1 0; }
}

@media (max-width: 480px) {
  :root {
    --ui-page-padding: 12px;
    --ui-mobile-padding: 12px;
    --ui-gap-md: 10px;
    --ui-filter-field-min: 100%;
  }
  .header .btn { width: 100%; }
  .filter-form,
  .form-actions,
  .modal-actions,
  .filter-actions,
  .inline-button-group,
  .info-inline,
  .ui-actions {
    flex-direction: column;
    align-items: stretch;
  }
  input,
  select,
  button,
  textarea { max-width: 100%; }
  .form-actions > *,
  .modal-actions > *,
  .filter-actions > *,
  .settings-grid .webhook-form .form-actions button,
  .ui-actions > * {
    width: 100%;
  }
}
