/* Gold Digger v55: canonical responsive application frame.
   This file intentionally owns shell geometry, viewport containment and
   component overflow. Feature CSS may style content, but must not move the
   application frame or widen the document. */

:root {
  --gd-rail-wide: 248px;
  --gd-rail-compact: 88px;
  --gd-page-gutter-wide: 48px;
  --gd-page-gutter-compact: 24px;
  --gd-page-gutter-mobile: 12px;
}

html {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

body,
#app,
.shell {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

body {
  overflow-x: hidden;
}

.shell,
.sidebar,
.workspace,
.topbar,
.page,
.page > *,
.card {
  box-sizing: border-box;
  min-width: 0;
}

.workspace {
  width: calc(100% - var(--gd-rail-wide));
  max-width: calc(100% - var(--gd-rail-wide));
  margin-left: var(--gd-rail-wide);
}

.topbar,
.page {
  width: 100%;
}

.topbar {
  padding-inline: var(--gd-page-gutter-wide);
}

.topbar > div:first-child,
.actions {
  min-width: 0;
}

.actions > * {
  flex: 0 0 auto;
}

.page {
  width: 100%;
  max-width: none;
  padding-inline: var(--gd-page-gutter-wide);
  container-type: inline-size;
  container-name: gd-page;
}

img,
svg,
video,
canvas,
table,
input,
select,
textarea {
  max-width: 100%;
}

.tablewrap,
.mt5-table,
.bulk-sheet-card,
.bulk-sheet-scroll {
  max-width: 100%;
}

.tablewrap,
.mt5-table {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

.modal,
.drawer,
.mt5-modal,
.lab-drawer {
  box-sizing: border-box;
  max-width: calc(100vw - 24px);
}

/* The worksheet may be wide, but only its own scroller may overflow. */
.bulk-review-page,
.bulk-review-toolbar,
.bulk-excel-panel,
.bulk-sheet-card {
  width: 100%;
  max-width: 100%;
}

.bulk-review-page {
  container-type: inline-size;
  container-name: bulk-review;
}

.bulk-review-page > *,
.bulk-review-hero > *,
.bulk-review-filters,
.bulk-apply-bar,
.bulk-sheet-help {
  min-width: 0;
  max-width: 100%;
}

.bulk-review-hero h2,
.bulk-review-hero p,
.bulk-excel-panel h3,
.bulk-excel-panel p,
.bulk-sheet-help span {
  overflow-wrap: anywhere;
}

.bulk-sheet-scroll,
.bulk-sheet-scroll:has(.bulk-sheet.full.expandable) {
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  overflow-y: visible;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
}

.bulk-sheet.full.expandable {
  width: 100%;
  min-width: 820px;
  table-layout: fixed;
}

/* v52 worksheet: every editable group remains visible; there is no
   per-record disclosure step. */
.bulk-sheet.full.dense .bulk-main-row td:nth-child(8),
.bulk-sheet.full.dense th:nth-child(8) {
  width: 92px;
}

.bulk-sheet.full.dense .bulk-detail-row textarea {
  min-height: 34px;
  height: 34px;
}

@container bulk-review (min-width: 1320px) {
  .bulk-sheet.full.dense .bulk-inline-detail {
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
  }

  .bulk-sheet.full.dense .bulk-detail-section:first-child {
    grid-column: auto;
  }

  .bulk-sheet.full.dense .bulk-review-field-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bulk-sheet.full.dense .bulk-review-field-grid .wide {
    grid-column: auto;
  }
}

.bulk-sheet.quick {
  width: 100%;
  min-width: 960px;
}

.bulk-review-filters > *,
.bulk-apply-bar > *,
.bulk-excel-panel > *,
.bulk-excel-actions {
  min-width: 0;
  max-width: 100%;
}

.bulk-save-dock {
  left: calc(var(--gd-rail-wide) + 28px);
  right: 28px;
}

/*
   The app can be shown inside a narrow Codex/browser panel whose usable
   content width is smaller than the layout viewport. Container queries make
   the worksheet respond to the space it actually receives instead of relying
   only on viewport media queries.
*/
@container gd-page (max-width: 700px) {
  .bulk-review-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 12px;
  }

  .bulk-review-hero h2 {
    font-size: clamp(24px, 9cqw, 31px);
  }

  .bulk-review-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    justify-content: stretch;
  }

  .bulk-review-stats span {
    min-width: 0;
    justify-content: center;
    padding-inline: 8px;
    white-space: normal;
    text-align: center;
  }

  .bulk-excel-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: 14px;
    padding: 16px;
  }

  .bulk-excel-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .bulk-excel-actions button {
    width: 100%;
    min-width: 0;
    white-space: normal;
  }

  .bulk-review-toolbar {
    padding: 10px;
  }

  .bulk-review-filters,
  .bulk-apply-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    width: 100%;
  }

  .bulk-review-filters > input,
  .bulk-filter-tabs,
  .bulk-mode-switch,
  .bulk-apply-bar label,
  .bulk-apply-bar strong,
  .bulk-apply-bar select,
  .bulk-apply-bar button {
    width: 100%;
    min-width: 0;
    margin: 0;
  }

  .bulk-filter-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
  }

  .bulk-filter-tabs button {
    min-width: 0;
    padding-inline: 6px;
    white-space: normal;
  }

  .bulk-sheet-help {
    display: grid;
    gap: 3px;
  }

  .bulk-sheet.full.dense .bulk-main-row td:nth-child(8) {
    grid-column: 1 / -1;
    grid-row: 4;
  }
}

@container gd-page (max-width: 340px) {
  .bulk-review-page {
    margin-inline: 0;
  }

  .bulk-review-hero {
    margin-bottom: 12px;
  }

  .bulk-review-hero h2 {
    margin-block: 5px 7px;
    font-size: 23px;
    line-height: 1.12;
  }

  .bulk-review-hero p,
  .bulk-excel-panel p {
    font-size: 12px;
    line-height: 1.5;
  }

  .bulk-review-stats {
    gap: 5px;
  }

  .bulk-review-stats span {
    display: grid;
    gap: 3px;
    padding: 8px 4px;
    font-size: 10px;
  }

  .bulk-review-stats b {
    font-size: 16px;
  }

  .bulk-excel-panel {
    margin-block: 12px;
    padding: 12px;
  }

  .bulk-excel-panel h3 {
    font-size: 17px;
  }

  .bulk-review-toolbar {
    padding: 8px;
  }

  .bulk-filter-tabs button,
  .bulk-mode-switch,
  .bulk-apply-bar button,
  .bulk-excel-actions button {
    font-size: 11px;
  }

  .bulk-review-filters > input,
  .bulk-apply-bar select {
    font-size: 12px;
  }

  .bulk-sheet.full.expandable tbody {
    padding-inline: 4px;
  }

  .bulk-sheet.full.expandable .bulk-main-row {
    grid-template-columns: 30px minmax(0, 1fr) auto;
  }

  .bulk-sheet.full.expandable .bulk-check {
    padding-left: 7px;
  }

  .bulk-sheet.full.expandable .bulk-identity {
    grid-column: 2;
  }

  .bulk-sheet.full.expandable .bulk-readonly {
    grid-column: 3;
  }

  .bulk-sheet.full.expandable .bulk-main-row td:nth-child(4),
  .bulk-sheet.full.expandable .bulk-main-row td:nth-child(5),
  .bulk-sheet.full.expandable .bulk-main-row td:nth-child(6),
  .bulk-sheet.full.expandable .bulk-main-row td:nth-child(7),
  .bulk-sheet.full.expandable .bulk-main-row td:nth-child(8),
  .bulk-sheet.full.expandable .bulk-main-row td:nth-child(9) {
    grid-column: 1 / -1;
  }

  .bulk-sheet.full.dense .bulk-main-row td:nth-child(8) {
    grid-column: 1 / -1;
    grid-row: 4;
  }

  .bulk-detail-row .bulk-review-field-grid,
  .bulk-detail-row .bulk-tv-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .bulk-detail-row .bulk-indicator-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bulk-detail-row .bulk-mini-field.wide {
    grid-column: auto;
  }
}

/* Compact desktop: a real rail rather than a squeezed full sidebar. */
@media (min-width: 901px) and (max-width: 1399px) {
  .sidebar {
    width: var(--gd-rail-compact);
    padding: 24px 10px;
  }

  .brand {
    justify-content: center;
    padding: 0 0 22px;
  }

  .brand > div,
  .sidefoot {
    display: none;
  }

  .mark {
    width: 44px;
    height: 44px;
  }

  .nav {
    gap: 7px;
    margin-top: 20px;
  }

  .nav button {
    min-height: 54px;
    padding: 7px 4px;
    text-align: center;
    font-size: 10px;
    line-height: 1.1;
  }

  .nav i {
    display: block;
    width: auto;
    margin-bottom: 3px;
    font-size: 20px;
  }

  .nav button.active {
    box-shadow: inset 3px 0 #d5ad4b;
  }

  .workspace {
    width: calc(100% - var(--gd-rail-compact));
    max-width: calc(100% - var(--gd-rail-compact));
    margin-left: var(--gd-rail-compact);
  }

  .topbar {
    height: 104px;
    padding-inline: var(--gd-page-gutter-compact);
    gap: 16px;
  }

  .topbar h1 {
    font-size: clamp(22px, 2.5vw, 31px);
  }

  .actions {
    max-width: 58%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
  }

  .actions .secondary {
    display: none;
  }

  .page {
    padding-inline: var(--gd-page-gutter-compact);
  }

  .bulk-sheet.full.expandable {
    min-width: 800px;
  }

  .bulk-save-dock {
    left: calc(var(--gd-rail-compact) + 18px);
    right: 18px;
  }
}

/* Tablet and PWA: one coordinated switch to bottom navigation. */
@media (max-width: 900px) {
  body {
    padding-bottom: calc(80px + env(safe-area-inset-bottom));
  }

  .sidebar {
    position: fixed;
    inset: auto 0 0;
    display: block;
    width: 100%;
    height: calc(72px + env(safe-area-inset-bottom));
    padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
  }

  .brand,
  .sidefoot {
    display: none;
  }

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

  .nav button {
    min-width: 0;
    min-height: 54px;
    padding: 4px 1px;
    text-align: center;
    font-size: clamp(8px, 1.35vw, 10px);
    line-height: 1.12;
  }

  .nav i {
    display: block;
    width: auto;
    margin-bottom: 2px;
    font-size: 18px;
  }

  .nav button.active {
    box-shadow: inset 0 3px #d5ad4b;
  }

  .workspace {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
  }

  .topbar {
    width: 100%;
    height: auto;
    min-height: 88px;
    padding: 12px 18px;
    gap: 12px;
  }

  .topbar h1 {
    max-width: min(44vw, 330px);
    font-size: clamp(19px, 3.2vw, 25px);
    line-height: 1.15;
  }

  .actions {
    max-width: 55%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  .actions::-webkit-scrollbar {
    display: none;
  }

  .actions .secondary {
    display: none;
  }

  .page {
    width: 100%;
    max-width: 100%;
    padding: 22px 18px 44px;
  }

  .bulk-review-hero {
    align-items: flex-start;
    flex-direction: column;
  }

  .bulk-sheet.full.expandable {
    min-width: 800px;
  }

  .bulk-save-dock {
    left: 14px;
    right: 14px;
    bottom: calc(84px + env(safe-area-inset-bottom));
  }

  .bulk-save-dock:has(#bulkSaveAll:disabled) {
    display: none;
  }
}

/* Phone: retain the existing card-style worksheet and reserve both action bars. */
@media (max-width: 720px) {
  html,
  body,
  .page,
  .modal,
  .drawer {
    scroll-padding-bottom: calc(150px + env(safe-area-inset-bottom));
  }

  body {
    padding-bottom: calc(146px + env(safe-area-inset-bottom));
  }

  .topbar {
    min-height: calc(76px + max(env(safe-area-inset-top), 12px));
    padding: calc(9px + max(env(safe-area-inset-top), 12px)) 14px 9px;
  }

  .topbar h1 {
    max-width: 48vw;
    font-size: 20px;
  }

  .actions {
    max-width: 48%;
  }

  .page {
    padding: 16px var(--gd-page-gutter-mobile) 30px;
  }

  .bulk-sheet-scroll:has(.bulk-sheet.full.expandable) {
    overflow-x: hidden !important;
  }

  .bulk-sheet.full.expandable {
    min-width: 0;
  }

  .bulk-save-dock {
    left: 10px;
    right: 10px;
    bottom: calc(148px + env(safe-area-inset-bottom));
  }

  body:has(.bulk-review-page) {
    padding-bottom: calc(146px + env(safe-area-inset-bottom));
  }

  body:has(.bulk-review-page) .mobile-quick-actions {
    display: grid;
  }

  body:has(.bulk-review-page) .bulk-save-dock {
    bottom: calc(148px + env(safe-area-inset-bottom));
  }

  body:has(.bulk-review-page .bulk-save-dock #bulkSaveAll:not(:disabled)) {
    padding-bottom: calc(270px + env(safe-area-inset-bottom));
    scroll-padding-bottom: calc(274px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 430px) {
  .nav button {
    font-size: 8px;
  }

  .nav i {
    font-size: 17px;
  }

  .topbar {
    padding-inline: 10px;
  }

  .page {
    padding-inline: 10px;
  }
}

@media (max-width: 340px) {
  .topbar {
    gap: 8px;
  }

  .topbar h1 {
    max-width: 42vw;
    font-size: 18px;
  }

  /* MT5/add are already available in the mobile action dock. Keep the
     ultra-narrow header to identity + sync instead of a clipped button rail. */
  .actions .pwa-btn,
  .actions .mt5-btn,
  .actions .primary {
    display: none !important;
  }

  .actions {
    max-width: none;
    overflow: visible;
  }
}

/* v53 — one ledger, one review surface. */
.trade-workbench {
  width: 100%;
  max-width: 100%;
  container: trade-workbench / inline-size;
}

.trade-workbench-hero {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 18px;
  padding: 4px 0 18px;
  border-bottom: 1px solid var(--line);
}

.trade-workbench-hero h2 {
  margin: 6px 0 2px;
  font: 760 clamp(28px, 3vw, 42px)/1.08 Bahnschrift, "Microsoft YaHei UI", sans-serif;
  letter-spacing: -.035em;
}

.trade-workbench-hero p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.trade-workbench-stats {
  display: flex;
  gap: 8px;
  flex: 0 0 auto;
}

.trade-workbench-stats span {
  min-width: 82px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  color: var(--muted);
  font-size: 11px;
  text-align: center;
}

.trade-workbench-stats b {
  display: block;
  color: var(--ink);
  font: 800 19px/1 Bahnschrift, sans-serif;
}

.trade-workbench-stats .needs-work {
  border-color: #dfc274;
  background: #fff9ea;
  color: #85631c;
}

.trade-workbench-controls {
  margin-bottom: 14px;
  padding: 12px 14px;
  border-radius: 14px;
}

.trade-workbench-search,
.trade-workbench-date,
.trade-workbench-batch {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

.trade-workbench-search {
  padding-bottom: 10px;
}

.trade-workbench-search .search {
  flex: 1 1 320px;
  width: auto;
  min-width: 180px;
}

.trade-workbench-search .trade-view-switch,
.trade-workbench-search .bulk-filter-tabs {
  flex: 0 0 auto;
}

.trade-workbench-date {
  justify-content: space-between;
  padding-block: 10px;
  border-block: 1px solid #edf1ee;
}

.trade-excel-actions {
  display: flex;
  gap: 7px;
}

.trade-excel-actions button,
.trade-workbench-batch button,
.trade-workbench-batch select {
  height: 36px;
  font-size: 11px;
}

.trade-workbench-batch {
  padding-top: 10px;
}

.trade-workbench-batch .bulk-select-all {
  margin-right: 0;
}

.trade-workbench-batch #bulkSelectionCount {
  color: var(--green2);
  white-space: nowrap;
}

.trade-workbench-batch select {
  min-width: 104px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 0 9px;
}

.trade-workbench-batch .danger {
  margin-left: auto;
  margin-right: 0;
}

.trade-workbench-grid {
  display: grid;
  grid-template-columns: minmax(320px, 360px) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.trade-ledger {
  position: sticky;
  top: 130px;
  max-height: calc(100vh - 154px);
  overflow: hidden;
  border-radius: 14px;
}

.trade-ledger > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 15px 11px;
  border-bottom: 1px solid var(--line);
  background: #fbfcfa;
}

.trade-ledger > header b,
.trade-ledger > header small {
  display: block;
}

.trade-ledger > header b {
  font-size: 14px;
}

.trade-ledger > header small,
.trade-ledger > header > span {
  color: var(--muted);
  font-size: 10px;
}

.trade-ledger-list {
  max-height: calc(100vh - 218px);
  overflow: auto;
  scrollbar-width: thin;
}

.trade-ledger-group {
  min-width: 0;
  border-bottom: 1px solid #edf1ee;
  background: #fff;
}

.trade-ledger-group.expanded {
  background: #f7faf8;
  box-shadow: inset 3px 0 0 #98b8aa;
}

.trade-ledger-item {
  position: relative;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 38px;
  align-items: stretch;
  background: #fff;
}

.trade-ledger-item::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: transparent;
}

.trade-ledger-item:hover {
  background: #fbfcfa;
}

.trade-ledger-item.active {
  background: #f0f6f2;
}

.trade-ledger-item.active::before {
  background: var(--green2);
}

.trade-ledger-item.has-draft::after {
  content: "";
  position: absolute;
  top: 9px;
  right: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
}

.trade-ledger-check {
  display: grid;
  place-items: start center;
  padding-top: 16px;
}

.trade-ledger-select {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px 10px;
  width: 100%;
  padding: 13px 4px 13px 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  text-align: left;
}

.trade-ledger-date b,
.trade-ledger-date small,
.trade-ledger-meta em,
.trade-ledger-meta small {
  display: block;
}

.trade-ledger-date b {
  font: 750 13px/1.2 Bahnschrift, sans-serif;
}

.trade-ledger-date small,
.trade-ledger-meta small,
.trade-ledger-progress small {
  color: var(--muted);
  font-size: 9px;
}

.trade-ledger-batch {
  align-self: start;
  padding: 3px 6px;
  border-radius: 5px;
  background: #edf2ee;
  color: #496057;
  font: 800 9px/1.2 ui-monospace, Consolas, monospace;
}

.trade-ledger-side {
  display: flex;
  align-items: center;
  gap: 7px;
}

.trade-ledger-side i {
  font-style: normal;
}

.trade-ledger-side strong {
  font: 750 13px/1 Bahnschrift, sans-serif;
}

.trade-ledger-meta {
  text-align: right;
}

.trade-ledger-meta em {
  max-width: 120px;
  overflow: hidden;
  font-size: 10px;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trade-ledger-progress {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.trade-ledger-progress i,
.trade-review-result i {
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--green2) var(--progress), #dfe7e2 var(--progress));
}

.trade-ledger-actions {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 4px;
  padding: 6px 4px 6px 0;
}

.trade-ledger-open {
  width: 27px;
  height: 27px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--green2);
}

.trade-ledger-collapse {
  display: grid;
  grid-template-columns: 16px auto minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  width: calc(100% - 40px);
  min-height: 34px;
  margin: 0 8px 8px 32px;
  padding: 6px 9px;
  border: 1px solid #c7d8cf;
  border-radius: 8px;
  background: #f2f7f4;
  color: var(--green2);
  text-align: left;
}

.trade-ledger-collapse > span {
  font-size: 12px;
  text-align: center;
}

.trade-ledger-collapse > b {
  font: 750 10px/1.2 Bahnschrift, sans-serif;
  white-space: nowrap;
}

.trade-ledger-collapse > small {
  overflow: hidden;
  color: #6f8178;
  font-size: 8px;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trade-ledger-collapse:hover,
.trade-ledger-collapse[aria-expanded="true"] {
  border-color: var(--green2);
  background: #e3efe8;
}

.trade-ledger-deals {
  display: grid;
  gap: 5px;
  padding: 8px 8px 10px 31px;
  border-top: 1px dashed #cddbd3;
}

.trade-ledger-deals > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: #61736b;
  font-size: 9px;
}

.trade-ledger-deals > header span {
  font-weight: 800;
  letter-spacing: .08em;
}

.trade-ledger-deals > header small {
  color: var(--muted);
  font-size: 8px;
}

.trade-deal-mini {
  display: grid;
  grid-template-columns: minmax(82px, .9fr) minmax(88px, 1fr) auto 18px;
  align-items: center;
  gap: 7px;
  width: 100%;
  min-width: 0;
  padding: 8px;
  border: 1px solid #dce6e0;
  border-radius: 9px;
  background: #fff;
  color: var(--ink);
  text-align: left;
}

.trade-deal-mini:hover {
  border-color: #9dbbac;
  background: #fbfdfb;
}

.trade-deal-mini span,
.trade-deal-mini b,
.trade-deal-mini small {
  display: block;
  min-width: 0;
}

.trade-deal-mini b {
  overflow: hidden;
  font: 700 9px/1.25 Bahnschrift, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trade-deal-mini small {
  margin-top: 2px;
  color: var(--muted);
  font: 650 8px/1.2 ui-monospace, Consolas, monospace;
}

.trade-deal-mini > strong {
  font: 750 10px/1 Bahnschrift, sans-serif;
  white-space: nowrap;
}

.trade-deal-mini > i {
  color: var(--green2);
  font-style: normal;
  text-align: right;
}

.trade-ledger-empty {
  display: grid;
  gap: 5px;
  padding: 54px 20px;
  color: var(--muted);
  text-align: center;
}

.trade-ledger-empty b {
  color: var(--ink);
}

.trade-review-inspector {
  min-width: 0;
  overflow: hidden;
  border-radius: 14px;
}

.trade-review-inspector.empty {
  display: grid;
  gap: 5px;
  min-height: 430px;
  place-content: center;
  color: var(--muted);
  text-align: center;
}

.trade-review-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 18px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(110deg, #f8fbf8, #fffdf6);
}

.trade-review-kicker {
  color: var(--gold);
  font: 800 10px/1.2 ui-monospace, Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.trade-review-header h3 {
  margin: 4px 0 1px;
  font: 760 21px/1.2 Bahnschrift, "Microsoft YaHei UI", sans-serif;
}

.trade-review-header p {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
}

.trade-review-result {
  display: grid;
  grid-template-columns: auto auto;
  align-items: end;
  gap: 3px 10px;
  min-width: 132px;
  text-align: right;
}

.trade-review-result strong {
  font: 800 22px/1 Bahnschrift, sans-serif;
}

.trade-review-result span {
  color: var(--muted);
  font-size: 9px;
}

.trade-review-result i {
  grid-column: 1 / -1;
}

.trade-review-core {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: #fbfcfa;
}

.trade-review-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(270px, .75fr);
  align-items: start;
}

.trade-review-block {
  min-width: 0;
  padding: 16px;
  border-bottom: 1px solid var(--line);
}

.trade-review-block.review-copy {
  grid-row: span 2;
  border-right: 1px solid var(--line);
}

.trade-review-block > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.trade-review-block > header span,
.trade-review-block > header b {
  display: block;
}

.trade-review-block > header span {
  color: #8b9a92;
  font: 800 8px/1 ui-monospace, Consolas, monospace;
  letter-spacing: .12em;
}

.trade-review-block > header b {
  margin-top: 4px;
  font-size: 14px;
}

.trade-review-block > header small {
  color: var(--muted);
  font-size: 9px;
}

.trade-review-field-grid,
.trade-review-indicators,
.trade-review-links {
  display: grid;
  gap: 7px;
}

.trade-review-field-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.trade-review-field-grid .wide {
  grid-column: 1 / -1;
}

.trade-review-indicators,
.trade-review-links {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.trade-review-inspector .bulk-mini-field {
  display: grid;
  min-width: 0;
  gap: 4px;
  padding: 7px;
  border: 1px solid #e0e7e2;
  border-radius: 8px;
  background: #f8faf8;
  color: #52645b;
  font-size: 9px;
  font-weight: 750;
}

.trade-review-inspector .bulk-mini-field > span small {
  float: right;
  color: #8a9891;
  font-size: 8px;
}

.trade-review-inspector .bulk-mini-field input,
.trade-review-inspector .bulk-mini-field select,
.trade-review-inspector .bulk-mini-field textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #d4dfd8;
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  font-size: 11px;
}

.trade-review-inspector .bulk-mini-field input,
.trade-review-inspector .bulk-mini-field select {
  height: 34px;
  padding: 0 8px;
}

.trade-review-inspector .bulk-mini-field textarea {
  min-height: 54px;
  padding: 8px;
  resize: vertical;
}

.trade-editor-savebar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  background: #f5f8f5;
}

.trade-editor-savebar > div {
  min-width: 0;
  margin-right: auto;
}

.trade-editor-savebar b,
.trade-editor-savebar small {
  display: block;
}

.trade-editor-savebar b {
  font-size: 11px;
}

.trade-editor-savebar small {
  color: var(--muted);
  font-size: 9px;
}

.trade-editor-savebar button {
  height: 38px;
}

@container trade-workbench (max-width: 980px) {
  .trade-workbench-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .trade-ledger {
    position: static;
    max-height: none;
  }

  .trade-ledger-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: 410px;
  }

  .trade-ledger-item:nth-child(odd) {
    border-right: 1px solid #edf1ee;
  }

  .trade-ledger-group:nth-child(odd) {
    border-right: 1px solid #edf1ee;
  }
}

@container trade-workbench (max-width: 760px) {
  .trade-workbench-hero {
    display: grid;
    gap: 12px;
  }

  .trade-workbench-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .trade-workbench-stats span {
    min-width: 0;
  }

  .trade-workbench-search,
  .trade-workbench-date,
  .trade-workbench-batch {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .trade-workbench-search .search {
    width: 100%;
  }

  .trade-workbench-search .trade-view-switch,
  .trade-workbench-search .bulk-filter-tabs {
    display: grid;
    width: 100%;
  }

  .trade-workbench-search .trade-view-switch {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trade-workbench-search .bulk-filter-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .trade-date-filter {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  }

  .trade-date-filter button {
    width: 100%;
  }

  .trade-excel-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trade-workbench-batch {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trade-workbench-batch .bulk-select-all,
  .trade-workbench-batch #bulkSelectionCount,
  .trade-workbench-batch .danger {
    margin: 0;
  }

  .trade-review-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .trade-review-block.review-copy {
    grid-row: auto;
    border-right: 0;
  }
}

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

  .trade-workbench-hero h2 {
    font-size: 27px;
  }

  .trade-ledger-list {
    grid-template-columns: minmax(0, 1fr);
    max-height: 440px;
  }

  .trade-ledger-item:nth-child(odd) {
    border-right: 0;
  }

  .trade-ledger-group:nth-child(odd) {
    border-right: 0;
  }

  .trade-ledger-deals {
    padding-left: 28px;
  }

  .trade-review-header {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    padding: 15px;
  }

  .trade-review-header > button {
    grid-column: 1 / -1;
    width: 100%;
  }

  .trade-review-core,
  .trade-review-field-grid,
  .trade-review-indicators,
  .trade-review-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trade-review-field-grid .wide {
    grid-column: 1 / -1;
  }

  .trade-editor-savebar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trade-editor-savebar > div {
    grid-column: 1 / -1;
  }

  .trade-editor-savebar button {
    width: 100%;
  }
}

@media (max-width: 390px) {
  .trade-workbench-controls {
    padding: 9px;
  }

  .trade-workbench-hero p {
    font-size: 11px;
  }

  .trade-workbench-stats span {
    padding-inline: 5px;
    font-size: 9px;
  }

  .trade-workbench-batch {
    grid-template-columns: minmax(0, 1fr);
  }

  .trade-review-core,
  .trade-review-field-grid,
  .trade-review-links {
    grid-template-columns: minmax(0, 1fr);
  }

  .trade-review-field-grid .wide {
    grid-column: auto;
  }

  .trade-review-indicators {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trade-review-result {
    width: 100%;
    min-width: 108px;
    text-align: left;
  }

  .trade-review-result strong {
    font-size: 18px;
  }

  .trade-review-header {
    grid-template-columns: minmax(0, 1fr);
  }

  .trade-review-header > button {
    grid-column: auto;
  }
}

