: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;
}

@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%;
  }
}
