:root {
  --bg: #f4f6f7;
  --panel: #ffffff;
  --text: #172126;
  --muted: #64747c;
  --line: #d8e0e4;
  --head: #eef2f4;
  --accent: #128a7c;
  --blue: #1277d9;
  --warn: #db8a13;
  --danger: #b83d3d;
  --shadow: 0 12px 30px rgba(29, 43, 48, 0.08);
  font-family: "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  color: var(--text);
  background: var(--bg);
}

button,
input {
  font: inherit;
}

.login-wrap {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 20px;
}

.app {
  width: min(1832px, calc(100% - 48px));
  margin: 0 auto;
  padding: 22px 0;
}

.panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.login-panel {
  width: min(420px, 100%);
  padding: 28px;
}

h1,
h2,
p {
  margin-top: 0;
}

h1 {
  margin-bottom: 4px;
  font-size: 25px;
}

h2 {
  margin-bottom: 0;
  font-size: 16px;
}

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

.alert {
  margin: 14px 0;
  padding: 10px 12px;
  color: #7b4d00;
  background: #fff3d7;
  border: 1px solid #efd29b;
  border-radius: 6px;
}

.field {
  display: grid;
  gap: 8px;
  margin-top: 18px;
}

.field span {
  color: var(--muted);
  font-size: 13px;
}

.input,
.search-input {
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  outline: none;
  background: #fff;
}

.input {
  border-radius: 6px;
}

.search-input {
  width: min(300px, 44vw);
}

.input:focus,
.search-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(18, 138, 124, 0.12);
}

.primary-btn,
.secondary-btn {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border: 1px solid transparent;
  border-radius: 6px;
  text-decoration: none;
  cursor: pointer;
}

.primary-btn {
  width: 100%;
  margin-top: 20px;
  color: #fff;
  background: var(--accent);
}

.primary-btn.compact {
  width: auto;
  margin-top: 0;
}

.secondary-btn {
  color: var(--text);
  background: #fff;
  border-color: var(--line);
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.title-block p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 13px;
}

.top-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.summary-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.summary-item {
  min-height: 58px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.summary-item span {
  font-size: 24px;
  font-weight: 800;
}

.summary-item small {
  color: var(--muted);
}

.summary-item.online span {
  color: var(--accent);
}

.summary-item.offline span {
  color: var(--danger);
}

.summary-item.warn span {
  color: var(--warn);
}

.summary-item.mt span {
  color: var(--blue);
}

.summary-mt {
  justify-content: space-between;
  gap: 12px;
}

.summary-pair {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.summary-pair.monitored span {
  color: var(--accent);
}

.summary-divider {
  width: 1px;
  height: 28px;
  background: var(--line);
}

.table-panel {
  overflow: hidden;
}

.table-wrap {
  max-height: calc(100vh - 250px);
  overflow: auto;
  scrollbar-gutter: auto;
}

.vps-table {
  width: 100%;
  min-width: 1360px;
  border-collapse: collapse;
  table-layout: fixed;
}

.vps-table.account-mode {
  min-width: 1360px;
}

.vps-table th,
.vps-table td {
  height: 48px;
  padding: 8px 10px;
  border-bottom: 1px solid #e8eef1;
  text-align: left;
  vertical-align: middle;
  font-size: 13px;
}

.vps-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  color: #26343a;
  background: var(--head);
  font-weight: 700;
}

.col-status {
  width: 42px;
  text-align: center !important;
}

.metric-col {
  width: 170px;
  text-align: center !important;
}

.mt-col {
  width: 92px;
  text-align: center !important;
}

.action-col {
  width: 326px;
  text-align: center !important;
}

.vps-table:not(.account-mode) th[data-col="uptime"],
.vps-table:not(.account-mode) td[data-col="uptime"] {
  width: 150px;
  padding-left: 22px;
}

.vps-table:not(.account-mode) th[data-col="lastSeenAt"],
.vps-table:not(.account-mode) td[data-col="lastSeenAt"] {
  width: 190px;
  text-align: center !important;
}

.vps-table:not(.account-mode) th[data-col="mt"],
.vps-table:not(.account-mode) td[data-col="mt"] {
  width: 76px;
  padding-left: 0;
  padding-right: 22px;
}

.account-ip-col,
.account-login-col {
  width: 120px;
}

.account-remark-col {
  width: 220px;
}

.money-col {
  width: 106px;
  text-align: right !important;
}

.time-col {
  width: 138px;
}

.status-col {
  width: 112px;
  text-align: center !important;
}

.account-detail-col {
  width: 92px;
  text-align: center !important;
}

.dot-head,
.status-dot {
  display: inline-block;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #b8c4c9;
}

.status-dot.online {
  background: #24c27a;
  box-shadow: 0 0 0 4px rgba(36, 194, 122, 0.14);
}

.status-dot.offline {
  background: #b8c4c9;
}

.vps-name {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pending {
  flex: 0 0 auto;
  padding: 2px 7px;
  color: #92560b;
  background: linear-gradient(135deg, #fff7d9, #ffd78a);
  border: 1px solid #f2bd54;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.3;
}

.mt-count {
  min-width: 42px;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-weight: 800;
  line-height: 1;
}

button.mt-count {
  border: 0;
  cursor: pointer;
}

.mt-count-button:hover,
.mt-count-button.active {
  filter: saturate(1.1);
  box-shadow:
    inset 0 0 0 1px rgba(16, 185, 129, 0.26),
    0 0 0 3px rgba(16, 185, 129, 0.14);
}

.mt-count.online {
  color: #066d58;
  background: linear-gradient(135deg, #dffcf0, #b7f2db);
  box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.18);
}

.mt-count.empty {
  color: #7b8b93;
  background: #eef3f5;
  box-shadow: inset 0 0 0 1px rgba(123, 139, 147, 0.16);
}

.vps-table tr.expanded > td {
  border-bottom-color: transparent;
}

.vps-account-detail-row > td {
  height: auto;
  padding: 0 12px 12px;
  background: #f6fafb;
}

.vps-account-detail {
  overflow: auto;
  background: #fff;
  border: 1px solid #dfe8ec;
  border-radius: 8px;
}

.account-mini-table {
  width: 100%;
  min-width: 1040px;
  border-collapse: collapse;
  table-layout: fixed;
}

.account-mini-table .mini-login-col {
  width: 120px;
}

.account-mini-table .mini-remark-col {
  width: 220px;
}

.account-mini-table .mini-money-col {
  width: 118px;
}

.account-mini-table .mini-time-col {
  width: 156px;
}

.account-mini-table .mini-status-col {
  width: 128px;
}

.account-mini-table th,
.account-mini-table td {
  height: 42px;
  padding: 7px 10px;
  border-bottom: 1px solid #edf2f4;
  font-size: 12px;
}

.account-mini-table th {
  color: #26343a;
  background: #f3f7f8;
  font-weight: 800;
}

.account-mini-table tr:last-child td {
  border-bottom: 0;
}

.account-ip-cell,
.account-login-cell,
.account-remark-cell {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-ip-cell,
.account-login-cell {
  font-weight: 800;
}

.account-login-cell {
  color: #7c65e8;
}

.money-cell {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

.time-cell {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.status-cell {
  text-align: center !important;
}

.money-cell.positive {
  color: #13a463;
  font-weight: 800;
}

.money-cell.negative {
  color: #ff2f4f;
  font-weight: 800;
}

.status-pill {
  min-width: 38px;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

.status-pill.online {
  color: #128348;
  background: #dff8ea;
}

.status-pill.empty {
  color: #74858d;
  background: #eef3f5;
}

.account-detail-row td {
  height: auto;
  padding: 0 12px 12px;
  background: #f6fafb;
}

.vps-detail-strip {
  display: grid;
  grid-template-columns: 18px minmax(112px, 1.1fr) minmax(126px, 0.9fr) minmax(126px, 0.9fr) minmax(126px, 0.9fr) auto auto auto minmax(360px, max-content);
  align-items: center;
  gap: 12px;
  min-height: 58px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid #dfe8ec;
  border-radius: 8px;
}

.vps-detail-strip strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.detail-metric .metric {
  grid-template-columns: 30px minmax(44px, 1fr) 38px;
}

.detail-chip {
  color: #52656d;
  white-space: nowrap;
  font-size: 12px;
}

.metric {
  display: grid;
  grid-template-columns: 34px minmax(58px, 1fr) 42px;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

.metric-col svg,
.icon-btn svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.metric-icon {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    0 7px 16px rgba(16, 38, 49, 0.10);
}

.metric-icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.metric-cpu .metric-icon {
  color: #0369a1;
  background: linear-gradient(145deg, #e0f7ff, #bce9ff);
}

.metric-memory .metric-icon {
  color: #047857;
  background: linear-gradient(145deg, #dcfce7, #adf0cf);
}

.metric-disk .metric-icon {
  color: #7c3aed;
  background: linear-gradient(145deg, #f0e8ff, #d7c4ff);
}

.metric-bar {
  position: relative;
  height: 11px;
  overflow: hidden;
  background: linear-gradient(180deg, #edf3f6, #dde8ed);
  border-radius: 999px;
  box-shadow:
    inset 0 1px 2px rgba(15, 23, 42, 0.13),
    0 1px 0 rgba(255, 255, 255, 0.85);
}

.metric-bar span {
  display: block;
  height: 100%;
  min-width: 3px;
  border-radius: inherit;
  background-size: 140% 100%;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.42),
    0 0 10px rgba(28, 156, 235, 0.22);
}

.metric-bar span::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0));
}

.metric-cpu .metric-bar span {
  background-image: linear-gradient(90deg, #38bdf8, #2563eb);
}

.metric-memory .metric-bar span {
  background-image: linear-gradient(90deg, #34d399, #059669);
}

.metric-disk .metric-bar span {
  background-image: linear-gradient(90deg, #a78bfa, #7c3aed);
}

.metric.high .metric-icon {
  color: #a45509;
  background: linear-gradient(145deg, #fff4ce, #ffd98a);
}

.metric.high .metric-bar span {
  background-image: linear-gradient(90deg, #facc15, #f97316);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.42),
    0 0 10px rgba(249, 115, 22, 0.25);
}

.metric.critical .metric-icon {
  color: #b91c1c;
  background: linear-gradient(145deg, #ffe1e1, #ffb4b4);
}

.metric.critical .metric-bar span {
  background-image: linear-gradient(90deg, #fb7185, #dc2626);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.42),
    0 0 10px rgba(220, 38, 38, 0.25);
}

.metric-num {
  color: #26343a;
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  font-weight: 800;
  text-align: left;
}

.row-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.account-row-actions {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.icon-btn {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  cursor: pointer;
}

.icon-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.icon-btn:disabled,
.icon-btn:disabled:hover {
  color: #91a0a7;
  background: #f8fafb;
  border-color: var(--line);
  cursor: not-allowed;
  opacity: 0.62;
}

.icon-btn.danger:hover {
  border-color: var(--danger);
  color: var(--danger);
}

.icon-btn.clean-memory:hover {
  border-color: #16a34a;
  color: #16a34a;
  background: #f0fdf4;
}

.icon-btn.clean-memory.active {
  color: #fff;
  background: linear-gradient(145deg, #10b981, #059669);
  border-color: #059669;
  box-shadow:
    inset 0 2px 4px rgba(0, 0, 0, 0.16),
    0 0 0 3px rgba(16, 185, 129, 0.16);
}

.icon-btn.clean-memory.active:hover {
  color: #fff;
  background: linear-gradient(145deg, #0ea371, #047857);
  border-color: #047857;
}

.icon-btn.clean-disk:hover {
  border-color: #7c3aed;
  color: #7c3aed;
  background: #f5f0ff;
}

.icon-btn.clean-disk.active {
  color: #fff;
  background: linear-gradient(145deg, #a855f7, #7c3aed);
  border-color: #7c3aed;
  box-shadow:
    inset 0 2px 4px rgba(0, 0, 0, 0.16),
    0 0 0 3px rgba(124, 58, 237, 0.16);
}

.icon-btn.clean-disk.active:hover {
  color: #fff;
  background: linear-gradient(145deg, #9333ea, #6d28d9);
  border-color: #6d28d9;
}

.icon-btn.mt:hover {
  border-color: #0f9f8f;
  color: #0f9f8f;
  background: #ecfffb;
}

.icon-btn.show-desktop:hover {
  border-color: #0ea5e9;
  color: #0284c7;
  background: #f0f9ff;
}

.icon-btn.start-mt:hover {
  border-color: #16a34a;
  color: #16a34a;
  background: #f0fdf4;
}

.icon-btn.restart-mt:hover {
  border-color: #2563eb;
  color: #2563eb;
  background: #eff6ff;
}

.icon-btn.update-mt:hover {
  border-color: #0284c7;
  color: #0284c7;
  background: #f0f9ff;
}

.icon-btn.update-agent:hover {
  border-color: #ea580c;
  color: #ea580c;
  background: #fff7ed;
}

.icon-btn.backup-mt:hover {
  border-color: #7c3aed;
  color: #7c3aed;
  background: #f5f0ff;
}

.icon-btn.install-ea:hover {
  border-color: #0891b2;
  color: #0891b2;
  background: #ecfeff;
}

.fast-tooltip {
  position: fixed;
  z-index: 9999;
  max-width: min(260px, calc(100vw - 16px));
  padding: 7px 10px;
  color: #fff;
  background: #10242c;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 7px;
  box-shadow: 0 12px 30px rgba(8, 24, 32, 0.22);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  white-space: normal;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(1px);
}

.fast-tooltip.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.auto-memory-popover {
  position: fixed;
  z-index: 50;
  width: 286px;
  padding: 12px;
  color: var(--text);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 16px 42px rgba(16, 38, 49, 0.18);
}

.auto-memory-popover::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -7px;
  width: 12px;
  height: 12px;
  background: #fff;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transform: translateX(-50%) rotate(45deg);
}

.auto-memory-form {
  display: grid;
  gap: 10px;
}

.auto-memory-title {
  font-size: 14px;
  font-weight: 800;
}

.auto-memory-form label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 12px;
}

.number-field {
  display: grid;
  grid-template-columns: 1fr 42px;
  align-items: center;
  min-height: 34px;
  overflow: hidden;
  color: var(--muted);
  background: #f8fafb;
  border: 1px solid var(--line);
  border-radius: 6px;
}

.number-field input {
  width: 100%;
  min-width: 0;
  height: 32px;
  padding: 6px 8px;
  color: var(--text);
  background: transparent;
  border: 0;
  outline: none;
  font-weight: 700;
}

.number-field em {
  padding-right: 9px;
  font-style: normal;
  text-align: right;
}

.auto-memory-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding-top: 2px;
}

.vps-table td.empty {
  padding: 34px !important;
  color: var(--muted);
  text-align: center !important;
}

.vps-table td.empty.compact {
  padding: 16px !important;
}

.panel-head {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
}

.log-panel {
  margin-top: 12px;
}

#resultLog {
  min-height: 160px;
  max-height: 26vh;
  margin: 0;
  overflow: auto;
  padding: 14px;
  color: #dfe8e6;
  background: #162225;
  border-radius: 0 0 8px 8px;
  white-space: pre-wrap;
  font-family: "Cascadia Mono", Consolas, "Courier New", monospace;
  font-size: 12px;
  line-height: 1.55;
}

@media (max-width: 900px) {
  .app {
    width: calc(100% - 24px);
    padding: 14px 0;
  }

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

  .top-actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .search-input {
    width: 100%;
  }

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

.col-hidden {
  display: none !important;
}

.icon-text-btn {
  min-width: 38px;
  padding: 8px;
}

.icon-text-btn svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.icon-btn.account-switch:hover {
  border-color: #0ea5e9;
  color: #0284c7;
  background: #eff9ff;
}

.icon-btn.account-switch.active {
  color: #fff;
  background: linear-gradient(145deg, #0ea5e9, #2563eb);
  border-color: #2563eb;
  box-shadow:
    inset 0 2px 4px rgba(0, 0, 0, 0.16),
    0 0 0 3px rgba(14, 165, 233, 0.16);
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.28);
}

.settings-modal {
  width: min(940px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.24);
}

.modal-head,
.modal-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
}

.modal-actions {
  justify-content: flex-end;
  border-top: 1px solid var(--line);
  border-bottom: 0;
}

.settings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 16px;
  background: #f6f8f9;
}

.settings-grid section {
  min-width: 0;
  padding: 14px;
  background: #fff;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(16, 24, 40, 0.02);
}

.settings-grid section:nth-child(1) {
  grid-column: 1 / -1;
}

.settings-grid h3 {
  margin: 0 0 10px;
  font-size: 14px;
  color: #10212b;
}

.check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
}

.check-row {
  min-height: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #26343a;
  font-size: 13px;
}

.check-row input {
  width: 16px;
  height: 16px;
}

.settings-grid section:nth-child(1) .check-row {
  display: inline-flex;
  min-width: 180px;
  margin-right: 18px;
}

.pool-section {
  grid-column: 1 / -1;
}

.password-section {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.password-section h3 {
  grid-column: 1 / -1;
}

.password-section .field {
  margin-top: 0;
}

#accountPoolText {
  width: 100%;
  min-height: 150px;
  resize: vertical;
  padding: 10px 12px;
  color: var(--text);
  background: #f8fafb;
  border: 1px solid var(--line);
  border-radius: 6px;
  outline: none;
  font-family: "Cascadia Mono", Consolas, "Courier New", monospace;
  font-size: 12px;
  line-height: 1.55;
}

#accountPoolText:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(18, 138, 124, 0.12);
}

.account-pool-modal {
  width: min(980px, 100%);
}

.account-pool-body {
  display: grid;
  gap: 14px;
  padding: 16px;
  background: #f6f8f9;
}

.account-pool-card {
  min-width: 0;
  padding: 14px;
  background: #fff;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(16, 24, 40, 0.02);
}

.account-pool-card h3 {
  margin: 0 0 10px;
  color: #10212b;
  font-size: 15px;
}

.account-pool-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.account-pool-section-head h3 {
  margin-bottom: 4px;
}

.account-pool-section-head p {
  margin: 0;
  color: #60717c;
  font-size: 12px;
  line-height: 1.5;
}

.account-pool-section-head > span {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  color: #087d71;
  background: #e8fbf7;
  border: 1px solid #b8eee1;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.account-pool-editor-card #accountPoolText {
  min-height: 180px;
}

.account-pool-settings-card .field {
  max-width: 360px;
}

.account-pool-status-card .account-pool-status-panel,
.account-pool-status-card .account-pool-status-panel.empty {
  margin-top: 0;
}

.installer-modal {
  width: min(780px, 100%);
}

.installer-body {
  display: grid;
  gap: 14px;
  padding: 16px;
  background: #f6f8f9;
}

.installer-intro {
  display: grid;
  gap: 5px;
  padding: 13px 14px;
  color: #31424a;
  background: linear-gradient(135deg, #f8fcff, #eef8ff);
  border: 1px solid #d7ebf7;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.65;
}

.installer-intro strong {
  color: #082f49;
  font-size: 15px;
}

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

.installer-card {
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 14px;
  background: #fff;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(16, 24, 40, 0.02);
}

.installer-card-wide {
  grid-column: 1 / -1;
}

.installer-card-title,
.installer-command-wrap span,
.installer-script-url span {
  color: #60717a;
  font-size: 12px;
  font-weight: 700;
}

.installer-file-name {
  min-width: 0;
  color: #10212b;
  font-family: "Cascadia Mono", Consolas, "Courier New", monospace;
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.installer-download {
  text-decoration: none;
}

.installer-update-all {
  justify-self: stretch;
}

.installer-command-wrap {
  display: grid;
  gap: 8px;
}

.installer-command {
  width: 100%;
  min-height: 154px;
  resize: vertical;
  padding: 12px;
  color: #d9f99d;
  background: #102326;
  border: 1px solid #203c41;
  border-radius: 8px;
  outline: none;
  font-family: "Cascadia Mono", Consolas, "Courier New", monospace;
  font-size: 12px;
  line-height: 1.65;
  white-space: pre;
}

.installer-command:focus {
  border-color: #16a3b8;
  box-shadow: 0 0 0 3px rgba(22, 163, 184, 0.16);
}

.installer-script-url {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 12px;
  color: #4b5d66;
  background: #fff;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
}

.installer-script-url code {
  display: block;
  min-width: 0;
  padding: 8px 10px;
  color: #0f4c5c;
  background: #eef9fb;
  border-radius: 6px;
  font-family: "Cascadia Mono", Consolas, "Courier New", monospace;
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.installer-copy-status {
  min-height: 18px;
  color: #0f8a5f;
  font-size: 12px;
  font-weight: 700;
}

.installer-loading,
.installer-error {
  padding: 18px;
  color: #4b5d66;
  background: #fff;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
}

.installer-error {
  color: #b42318;
  border-color: #fecaca;
  background: #fff7f7;
}

.backup-modal {
  width: min(1080px, 100%);
}

.backup-subtitle {
  margin: 4px 0 0;
  color: #60717a;
  font-size: 13px;
}

.backup-files-body {
  display: grid;
  gap: 14px;
  padding: 16px;
  background: #f6f8f9;
}

.backup-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  color: #31424a;
  background: linear-gradient(135deg, #f8fcff, #eef8ff);
  border: 1px solid #d7ebf7;
  border-radius: 8px;
  font-size: 13px;
}

.backup-summary strong {
  margin-right: 4px;
  color: #0f8a7d;
  font-size: 20px;
}

.backup-bulk-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px 16px;
  padding: 14px;
  color: #31424a;
  background: linear-gradient(135deg, #f2fbff 0%, #f7fffb 100%);
  border: 1px solid #cceee5;
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(15, 138, 125, 0.04);
}

.backup-bulk-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}

.backup-bulk-copy strong {
  color: #0f2735;
  font-size: 14px;
}

.backup-bulk-copy span {
  color: #0f8a7d;
  font-size: 13px;
  font-weight: 700;
}

.backup-bulk-copy small {
  color: #60717a;
  font-size: 12px;
}

.backup-bulk-btn {
  min-width: 190px;
}

.backup-bulk-status {
  grid-column: 1 / -1;
  min-height: 18px;
  color: #0f8a5f;
  font-size: 12px;
  font-weight: 700;
}

.backup-retention-field {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-right: 8px;
  padding: 7px 9px;
  color: #263942;
  background: #fff;
  border: 1px solid #cce5ef;
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(15, 138, 125, 0.04);
}

.backup-retention-field input {
  width: 62px;
  height: 30px;
  padding: 0 8px;
  text-align: center;
}

.backup-retention-field .compact {
  min-height: 30px;
  padding: 0 12px;
}

.backup-agent-list {
  display: grid;
  gap: 12px;
}

.backup-agent-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(16, 24, 40, 0.02);
}

.backup-agent-card.has-backup {
  border-color: #bfe9df;
  box-shadow: 0 8px 22px rgba(15, 138, 125, 0.08);
}

.backup-agent-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  background: #f8fbfc;
  border-bottom: 1px solid #e0e9ee;
}

.backup-agent-title {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

.backup-agent-title strong {
  color: #071821;
  font-size: 14px;
}

.backup-agent-title small,
.backup-agent-meta {
  color: #60717a;
  font-size: 12px;
}

.backup-agent-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.backup-file-table {
  display: grid;
}

.backup-file-head,
.backup-file-row {
  display: grid;
  grid-template-columns: 170px 90px minmax(180px, 1.2fr) minmax(220px, 1fr) 76px;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-bottom: 1px solid #e7eef2;
  font-size: 12px;
}

.backup-file-head {
  color: #60717a;
  background: #fbfdfe;
  font-weight: 700;
}

.backup-file-row:last-child {
  border-bottom: 0;
}

.backup-file-name,
.backup-file-summary {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.backup-file-name {
  color: #10212b;
  font-family: "Cascadia Mono", Consolas, "Courier New", monospace;
}

.backup-download-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 12px;
  color: #08766f;
  text-decoration: none;
  background: #eafaf7;
  border: 1px solid #9fe5d8;
  border-radius: 6px;
  font-weight: 700;
}

.backup-download-link:hover {
  color: #fff;
  background: #0f8a7d;
  border-color: #0f8a7d;
}

.backup-empty {
  display: grid;
  gap: 5px;
  padding: 16px;
  color: #60717a;
  background: #fbfdfe;
  font-size: 13px;
}

.backup-empty strong {
  color: #31424a;
}

.backup-empty-large {
  border: 1px dashed #cbd8df;
  border-radius: 8px;
}

.bulk-modal {
  width: min(900px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.24);
}

.bulk-subtitle {
  margin: 4px 0 0;
  color: #60717a;
  font-size: 13px;
}

.bulk-body {
  display: grid;
  gap: 14px;
  padding: 16px;
  background: #f6f8f9;
}

.bulk-overview {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  color: #31424a;
  background: linear-gradient(135deg, #f8fcff, #eef8ff);
  border: 1px solid #d7ebf7;
  border-radius: 8px;
  font-size: 13px;
}

.bulk-overview strong {
  margin-right: 4px;
  color: #0f8a7d;
  font-size: 20px;
}

.mt-update-panel {
  display: grid;
  gap: 12px;
  padding: 13px;
  background: linear-gradient(135deg, #ffffff, #f3fbff);
  border: 1px solid #d7e7ef;
  border-radius: 8px;
}

.mt-update-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.mt-update-head h3 {
  margin: 0;
  color: #10212b;
  font-size: 14px;
}

.mt-update-head p {
  margin: 5px 0 0;
  color: #61727c;
  font-size: 12px;
  line-height: 1.45;
}

.mt-update-packages {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.mt-update-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px;
  background: #fff;
  border: 1px solid #dce8ee;
  border-radius: 8px;
}

.mt-update-card.ready {
  border-color: #aee7d3;
  box-shadow: inset 3px 0 0 #22c493;
}

.mt-update-card.empty {
  box-shadow: inset 3px 0 0 #cbd7df;
}

.mt-update-card-main {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.mt-update-card-main strong {
  color: #122631;
  font-size: 13px;
}

.mt-update-card-main small {
  overflow: hidden;
  color: #667985;
  font-size: 11px;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mt-update-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.mt-update-meta span,
.mt-update-meta code {
  display: inline-flex;
  min-height: 20px;
  align-items: center;
  padding: 2px 7px;
  color: #3f535f;
  background: #f3f7fa;
  border: 1px solid #e1e9ee;
  border-radius: 999px;
  font-size: 11px;
  font-family: inherit;
}

.mt-update-card.ready .mt-update-meta span:first-child {
  color: #047857;
  background: #dff8ec;
  border-color: #b8edcf;
  font-weight: 700;
}

.mt-update-upload {
  display: grid;
  justify-items: end;
  gap: 7px;
}

.mt-update-upload input {
  width: 190px;
  max-width: 100%;
  color: #48606d;
  font-size: 11px;
}

.mt-update-status {
  min-height: 30px;
  padding: 8px 10px;
  color: #48606d;
  background: #f8fbfd;
  border: 1px dashed #c9d9e2;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.4;
}

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

.bulk-action-card {
  min-width: 0;
  min-height: 86px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 13px;
  text-align: left;
  color: #10212b;
  background: #fff;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  cursor: pointer;
  transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.bulk-action-card:hover {
  transform: translateY(-1px);
  border-color: #9bc9d0;
  box-shadow: 0 10px 28px rgba(16, 38, 49, 0.10);
}

.bulk-action-card:disabled {
  cursor: not-allowed;
  opacity: 0.55;
  transform: none;
  box-shadow: none;
}

.bulk-action-icon {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
}

.bulk-action-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bulk-action-text {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.bulk-action-text strong {
  font-size: 14px;
}

.bulk-action-text small {
  color: #60717a;
  font-size: 12px;
  line-height: 1.45;
}

.bulk-action-card em {
  min-width: 46px;
  padding: 4px 9px;
  color: #0f766e;
  background: #ccfbf1;
  border: 1px solid #99f6e4;
  border-radius: 999px;
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.bulk-memory .bulk-action-icon {
  color: #047857;
  background: linear-gradient(145deg, #dcfce7, #adf0cf);
}

.bulk-disk .bulk-action-icon {
  color: #7c3aed;
  background: linear-gradient(145deg, #f0e8ff, #d7c4ff);
}

.bulk-backup .bulk-action-icon {
  color: #6d28d9;
  background: linear-gradient(145deg, #f5f0ff, #d8c9ff);
}

.bulk-start .bulk-action-icon {
  color: #15803d;
  background: linear-gradient(145deg, #e7ffe9, #b9f6c8);
}

.bulk-mt .bulk-action-icon,
.bulk-restart .bulk-action-icon {
  color: #0369a1;
  background: linear-gradient(145deg, #e0f7ff, #bce9ff);
}

.bulk-update .bulk-action-icon,
.bulk-agent .bulk-action-icon {
  color: #ea580c;
  background: linear-gradient(145deg, #fff7ed, #fed7aa);
}

.bulk-ea .bulk-action-icon {
  color: #0891b2;
  background: linear-gradient(145deg, #ecfeff, #a5f3fc);
}

.bulk-warn .bulk-action-icon {
  color: #a45509;
  background: linear-gradient(145deg, #fff4ce, #ffd98a);
}

.bulk-danger .bulk-action-icon {
  color: #b91c1c;
  background: linear-gradient(145deg, #ffe1e1, #ffb4b4);
}

.bulk-danger:hover {
  border-color: #fca5a5;
}

.bulk-status {
  min-height: 42px;
  padding: 11px 12px;
  color: #31424a;
  background: #fff;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.5;
}

.auto-account-popover .number-field {
  grid-template-columns: 1fr 52px;
}

@media (max-width: 900px) {
  .settings-grid {
    grid-template-columns: 1fr;
  }

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

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

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

  .mt-update-packages {
    grid-template-columns: 1fr;
  }

  .backup-bulk-panel {
    grid-template-columns: 1fr;
  }

  .backup-bulk-btn {
    width: 100%;
  }
}

/* account-mode visual polish 20260623 */
.vps-table.account-mode th {
  color: #23343b;
  background:
    linear-gradient(180deg, #f8fbfc 0%, #edf4f6 100%);
  border-bottom-color: #d8e6eb;
}

.vps-table.account-mode tbody tr.account-row td {
  height: 50px;
  background: #fff;
  transition: background 0.16s ease, box-shadow 0.16s ease;
}

.vps-table.account-mode tbody tr.account-row:nth-child(4n + 1) td {
  background: #fcfefe;
}

.vps-table.account-mode tbody tr.account-row:hover td,
.vps-table.account-mode tbody tr.account-row.expanded td {
  background: #f5fbff;
  box-shadow: inset 0 1px 0 rgba(18, 119, 217, 0.08), inset 0 -1px 0 rgba(18, 119, 217, 0.08);
}

.vps-table.account-mode tbody tr.account-row.has-loss td:first-child {
  box-shadow: inset 4px 0 0 #ff4d6d;
}

.vps-table.account-mode tbody tr.account-row.has-profit td:first-child {
  box-shadow: inset 4px 0 0 #19b873;
}

.account-ip-badge,
.account-login-badge,
.account-remark-badge,
.money-badge,
.time-badge,
.money-delta {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-height: 26px;
  border-radius: 999px;
  line-height: 1;
  white-space: nowrap;
}

.account-ip-badge {
  gap: 7px;
  padding: 4px 10px;
  color: #083344;
  background: linear-gradient(135deg, #e8f7ff, #f7fcff);
  border: 1px solid #ccebf8;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.account-ip-dot,
.account-login-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border-radius: 50%;
}

.account-ip-dot.online {
  background: #22c179;
  box-shadow: 0 0 0 3px rgba(34, 193, 121, 0.16);
}

.account-ip-dot.offline {
  background: #a7b4bb;
  box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.14);
}

.account-login-badge {
  gap: 7px;
  padding: 4px 10px;
  color: #5b4bd6;
  background: linear-gradient(135deg, #f0edff, #faf8ff);
  border: 1px solid #ddd6ff;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.account-login-dot {
  background: #7c65e8;
  box-shadow: 0 0 0 3px rgba(124, 101, 232, 0.14);
}

.account-remark-badge {
  justify-content: flex-start;
  padding: 4px 10px;
  color: #264653;
  background: #f4f8fa;
  border: 1px solid #e0eaee;
  overflow: hidden;
  text-overflow: ellipsis;
}

.money-badge {
  justify-content: flex-end;
  min-width: 88px;
  padding: 4px 10px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

.money-badge.balance {
  color: #075985;
  background: linear-gradient(135deg, #e0f2fe, #f5fbff);
  border: 1px solid #bae6fd;
}

.money-badge.equity {
  color: #08705f;
  background: linear-gradient(135deg, #dffcf0, #f6fffb);
  border: 1px solid #bbf7d0;
}

.time-badge {
  max-width: 132px;
  padding: 4px 9px;
  color: #73510a;
  background: #fff7dd;
  border: 1px solid #f5daa2;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  overflow: hidden;
  text-overflow: ellipsis;
}

.time-badge.empty {
  color: #75858c;
  background: #f1f5f7;
  border-color: #e0e8ec;
}

.money-delta {
  justify-content: flex-end;
  min-width: 78px;
  padding: 4px 10px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.money-delta.positive {
  color: #087f4d;
  background: #dff8ea;
  border: 1px solid #b8efcf;
}

.money-delta.negative {
  color: #e11d48;
  background: #ffe6eb;
  border: 1px solid #ffc2cd;
}

.money-delta.zero {
  color: #475861;
  background: #f2f6f8;
  border: 1px solid #e0e8ec;
}

.status-pill.offline {
  color: #b42335;
  background: #ffe6eb;
  border: 1px solid #ffc2cd;
}

.status-pill.online {
  border: 1px solid #b8efcf;
  box-shadow: 0 4px 12px rgba(19, 164, 99, 0.08);
}

.status-pill.empty {
  border: 1px solid #e0e8ec;
}

.account-row-actions .icon-btn {
  background: #fff;
  box-shadow: 0 1px 0 rgba(16, 24, 40, 0.03);
}

.account-row-actions .account-switch {
  color: #0f766e;
  background: linear-gradient(135deg, #e6fffb, #ffffff);
  border-color: #b8ece3;
}

.account-row-actions .install-ea {
  color: #6d45d8;
  background: linear-gradient(135deg, #f3eeff, #ffffff);
  border-color: #ddd1ff;
}

.account-row-actions .icon-btn:hover {
  transform: translateY(-1px);
}

/* account-mode restore 20260623 */
.vps-table.account-mode {
  min-width: 1540px;
}

.vps-table.account-mode tbody tr.account-row td,
.vps-table.account-mode tbody tr.account-row:nth-child(4n + 1) td {
  height: 48px;
  background: #fff;
  box-shadow: none;
}

.vps-table.account-mode tbody tr.account-row:hover td,
.vps-table.account-mode tbody tr.account-row.expanded td {
  background: #f6fbff;
  box-shadow: none;
}

.vps-table.account-mode tbody tr.account-row.has-loss td:first-child,
.vps-table.account-mode tbody tr.account-row.has-profit td:first-child {
  box-shadow: none;
}

.account-ip-inline {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.account-ip-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 50%;
}

.account-ip-dot.online {
  background: #22c179;
  box-shadow: 0 0 0 4px rgba(34, 193, 121, 0.14);
}

.account-ip-dot.offline {
  background: #b8c4c9;
  box-shadow: none;
}

.account-login-cell {
  color: #7c65e8;
  font-weight: 800;
}

.account-remark-cell {
  color: var(--text);
  font-weight: 500;
}

.money-cell,
.time-cell {
  background: transparent !important;
}

.equity-cell {
  color: #08705f;
  font-weight: 800;
}

.equity-cell.equity-tier-2 { color: #0ea5e9; }
.equity-cell.equity-tier-3 { color: #6366f1; }
.equity-cell.equity-tier-4 { color: #a855f7; }
.equity-cell.equity-tier-5 { color: #ec4899; }
.equity-cell.equity-tier-6 { color: #f97316; }
.equity-cell.equity-tier-7 { color: #eab308; }
.equity-cell.equity-tier-8 { color: #ef4444; }
.equity-cell.equity-tier-9 { color: #14b8a6; }
.equity-cell.equity-tier-10 { color: #dc2626; }

.account-login-badge,
.account-remark-badge,
.money-badge,
.time-badge,
.money-delta {
  display: inline;
  min-height: 0;
  padding: 0;
  color: inherit;
  background: transparent;
  border: 0;
  box-shadow: none;
  font-weight: inherit;
}

.status-pill.offline {
  color: #b42335;
  background: #ffe6eb;
  border: 1px solid #ffc2cd;
}

.status-pill.online {
  color: #128348;
  background: #dff8ea;
  border: 1px solid #b8efcf;
  box-shadow: none;
}

.status-pill.empty {
  color: #74858d;
  background: #eef3f5;
  border: 1px solid #e0e8ec;
}

/* account-mode spacing tune 20260623 */
.vps-table.account-mode {
  min-width: 1360px;
}

.vps-table.account-mode th,
.vps-table.account-mode td {
  padding-left: 8px;
  padding-right: 8px;
}

.vps-table.account-mode .account-ip-col { width: 172px; }
.vps-table.account-mode .account-login-col { width: 120px; }
.vps-table.account-mode .account-remark-col { width: 168px; }
.vps-table.account-mode .money-col { width: 104px; }
.vps-table.account-mode .time-col { width: 142px; }
.vps-table.account-mode .status-col { width: 112px; }
.vps-table.account-mode .account-detail-col { width: 104px; }

.vps-table.account-mode .account-ip-cell,
.vps-table.account-mode .account-login-cell,
.vps-table.account-mode .account-remark-cell {
  text-align: left;
}

.vps-table.account-mode .account-remark-cell {
  max-width: 168px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vps-table.account-mode .money-cell {
  padding-right: 14px;
}

.vps-table.account-mode .time-cell {
  color: #26343a;
}

.vps-table.account-mode .account-row-actions {
  justify-content: center;
  gap: 7px;
}


/* account-mode expanded columns 20260624 */
.vps-table.account-mode {
  min-width: 2220px;
}

.vps-table.account-mode th,
.vps-table.account-mode td {
  padding-left: 8px;
  padding-right: 8px;
}

.vps-table.account-mode .account-ip-col { width: 154px; }
.vps-table.account-mode .account-login-col { width: 112px; }
.vps-table.account-mode .account-server-col { width: 168px; }
.vps-table.account-mode .account-ea-col { width: 230px; }
.vps-table.account-mode .account-remark-col { width: 132px; }
.vps-table.account-mode .money-col { width: 104px; }
.vps-table.account-mode .count-col { width: 76px; text-align: center !important; }
.vps-table.account-mode .time-col { width: 142px; }
.vps-table.account-mode .status-col { width: 112px; }
.vps-table.account-mode .lots-col { width: 90px; text-align: right !important; }
.vps-table.account-mode .account-detail-col { width: 104px; }

.account-server-col,
.account-ea-col,
.count-col,
.lots-col {
  vertical-align: middle;
}

.vps-table.account-mode .account-ip-cell,
.vps-table.account-mode .account-login-cell,
.vps-table.account-mode .account-server-cell,
.vps-table.account-mode .account-ea-cell,
.vps-table.account-mode .account-remark-cell {
  text-align: left;
}

.vps-table.account-mode .account-server-cell,
.vps-table.account-mode .account-ea-cell,
.vps-table.account-mode .account-remark-cell {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vps-table.account-mode .money-cell,
.vps-table.account-mode .lots-cell {
  padding-right: 14px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.vps-table.account-mode .count-cell {
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.account-mini-table {
  min-width: 1760px;
}
.account-mini-table .mini-login-col { width: 120px; }
.account-mini-table .mini-server-col { width: 168px; }
.account-mini-table .mini-ea-col { width: 220px; }
.account-mini-table .mini-remark-col { width: 150px; }
.account-mini-table .mini-money-col { width: 108px; }
.account-mini-table .mini-count-col { width: 78px; }
.account-mini-table .mini-time-col { width: 142px; }
.account-mini-table .mini-status-col { width: 118px; }
.account-mini-table .mini-lots-col { width: 90px; }

/* vps/account sorting and spacing 20260624 */
.vps-table:not(.account-mode) {
  min-width: 1540px;
}

.vps-table:not(.account-mode) th[data-col="vps"],
.vps-table:not(.account-mode) td[data-col="vps"] {
  width: 220px;
}

.vps-table:not(.account-mode) .metric-col,
.vps-table:not(.account-mode) td[data-col="cpu"],
.vps-table:not(.account-mode) td[data-col="memory"],
.vps-table:not(.account-mode) td[data-col="disk"] {
  width: 176px;
}

.vps-table:not(.account-mode) th[data-col="uptime"],
.vps-table:not(.account-mode) td[data-col="uptime"] {
  width: 150px;
  padding-left: 14px;
}

.vps-table:not(.account-mode) th[data-col="lastSeenAt"],
.vps-table:not(.account-mode) td[data-col="lastSeenAt"] {
  width: 188px;
  text-align: center !important;
}

.vps-table:not(.account-mode) th[data-col="mt"],
.vps-table:not(.account-mode) td[data-col="mt"] {
  width: 86px;
  padding-left: 0;
  padding-right: 10px;
}

.vps-table:not(.account-mode) .action-col,
.vps-table:not(.account-mode) td[data-col="actions"] {
  width: 356px;
}

.vps-table th.sortable {
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}

.vps-table th.sortable:hover {
  color: #0078d4;
  background: #eaf3f7;
}

.sort-indicator {
  display: inline-block;
  width: 14px;
  margin-left: 4px;
  color: #0078d4;
  font-size: 10px;
  line-height: 1;
}

/* account-mode final polish 20260624 */
.vps-table.account-mode {
  min-width: 2080px;
  table-layout: fixed;
}

.vps-table.account-mode th {
  height: 42px;
  padding: 0 10px;
  color: #203039;
  background: #eef4f7;
  border-bottom: 1px solid #d7e2e7;
  font-size: 13px;
  font-weight: 800;
  line-height: 42px;
}

.vps-table.account-mode td {
  height: 47px;
  padding: 7px 10px;
  border-bottom: 1px solid #e5edf1;
  font-size: 13px;
  line-height: 1.25;
  vertical-align: middle;
}

.vps-table.account-mode tbody tr.account-row td,
.vps-table.account-mode tbody tr.account-row:nth-child(4n + 1) td {
  background: #fff;
  box-shadow: none;
}

.vps-table.account-mode tbody tr.account-row:nth-child(even) td {
  background: #fbfdfe;
}

.vps-table.account-mode tbody tr.account-row:hover td,
.vps-table.account-mode tbody tr.account-row.expanded td {
  background: #f2f8fb;
}

.vps-table.account-mode th.sortable {
  transition: background-color 0.15s ease, color 0.15s ease;
}

.vps-table.account-mode th.sortable:hover,
.vps-table.account-mode th.sortable.sorted {
  color: #0f6fb8;
  background: #e6f2f8;
}

.vps-table.account-mode .account-ip-col { width: 142px; }
.vps-table.account-mode .account-login-col { width: 106px; }
.vps-table.account-mode .account-server-col { width: 148px; }
.vps-table.account-mode .account-ea-col { width: 176px; }
.vps-table.account-mode .account-remark-col { width: 124px; }
.vps-table.account-mode .money-col { width: 96px; }
.vps-table.account-mode .count-col { width: 72px; }
.vps-table.account-mode .time-col { width: 128px; }
.vps-table.account-mode .status-col { width: 104px; }
.vps-table.account-mode .lots-col { width: 82px; }
.vps-table.account-mode .account-detail-col { width: 118px; }

.vps-table.account-mode .account-ip-cell,
.vps-table.account-mode .account-login-cell,
.vps-table.account-mode .account-server-cell,
.vps-table.account-mode .account-ea-cell,
.vps-table.account-mode .account-remark-cell,
.vps-table.account-mode .time-cell {
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vps-table.account-mode .account-ip-cell {
  padding-left: 14px;
}

.account-ip-inline {
  gap: 8px;
  color: #061923;
  font-weight: 800;
}

.account-ip-dot {
  width: 10px;
  height: 10px;
}

.vps-table.account-mode .account-login-cell {
  color: #7462e8;
  font-weight: 800;
}

.vps-table.account-mode .account-server-cell,
.vps-table.account-mode .account-remark-cell {
  color: #273942;
  font-weight: 500;
}

.vps-table.account-mode .account-ea-cell {
  color: #1378d8;
  font-weight: 700;
}

.vps-table.account-mode .money-cell,
.vps-table.account-mode .lots-cell {
  padding-right: 12px;
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

.vps-table.account-mode .count-cell,
.vps-table.account-mode .status-cell {
  text-align: center !important;
}

.vps-table.account-mode .equity-cell {
  font-weight: 850;
}

.vps-table.account-mode .money-cell.positive,
.vps-table.account-mode .lots-cell.positive {
  color: #0f9f5f;
  font-weight: 850;
}

.vps-table.account-mode .money-cell.negative,
.vps-table.account-mode .lots-cell.negative {
  color: #ff3353;
  font-weight: 850;
}

.vps-table.account-mode .time-cell {
  color: #26343a;
}

.vps-table.account-mode .status-pill {
  min-width: 42px;
  min-height: 24px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

.vps-table.account-mode .account-row-actions {
  width: 100%;
  display: flex;
  justify-content: center;
  gap: 7px;
}

.vps-table.account-mode .account-row-actions .icon-btn {
  width: 31px;
  height: 31px;
  border-radius: 7px;
}

.vps-table.account-mode .account-row-actions .icon-btn svg {
  width: 16px;
  height: 16px;
}

.account-mini-table {
  min-width: 1880px;
  table-layout: fixed;
}

.account-mini-table th,
.account-mini-table td {
  height: 40px;
  padding: 6px 9px;
  font-size: 12px;
}

.account-mini-table .mini-login-col { width: 106px; }
.account-mini-table .mini-server-col { width: 148px; }
.account-mini-table .mini-ea-col { width: 176px; }
.account-mini-table .mini-remark-col { width: 124px; }
.account-mini-table .mini-money-col { width: 96px; }
.account-mini-table .mini-count-col { width: 72px; }
.account-mini-table .mini-time-col { width: 128px; }
.account-mini-table .mini-status-col { width: 104px; }
.account-mini-table .mini-lots-col { width: 82px; }

/* account-mode alignment and equity rules 20260624 */
.vps-table.account-mode {
  min-width: 2320px;
}

.vps-table.account-mode .account-status-col,
.vps-table.account-mode .account-status-cell {
  width: 48px;
  min-width: 48px;
  padding-left: 0;
  padding-right: 0;
  text-align: center !important;
}

.vps-table.account-mode .account-status-cell .status-dot {
  margin: 0 auto;
}

.vps-table.account-mode .account-ip-col { width: 170px; }
.vps-table.account-mode .account-login-col { width: 120px; }
.vps-table.account-mode .account-server-col { width: 180px; }
.vps-table.account-mode .account-ea-col { width: 220px; }
.vps-table.account-mode .account-remark-col { width: 180px; }
.vps-table.account-mode .money-col { width: 118px; }
.vps-table.account-mode .count-col { width: 78px; }
.vps-table.account-mode .time-col { width: 150px; }
.vps-table.account-mode .status-col { width: 118px; }
.vps-table.account-mode .lots-col { width: 92px; }
.vps-table.account-mode .account-detail-col { width: 124px; }

.vps-table.account-mode th,
.vps-table.account-mode .money-cell,
.vps-table.account-mode .lots-cell,
.vps-table.account-mode .count-cell,
.vps-table.account-mode .time-cell,
.vps-table.account-mode .status-cell,
.vps-table.account-mode .account-detail-col {
  text-align: center !important;
}

.vps-table.account-mode .account-ip-cell,
.vps-table.account-mode .account-login-cell,
.vps-table.account-mode .account-server-cell,
.vps-table.account-mode .account-ea-cell,
.vps-table.account-mode .account-remark-cell {
  text-align: left !important;
}

.vps-table.account-mode .account-ip-cell {
  padding-left: 0;
}

.vps-table.account-mode .account-ip-inline {
  justify-content: flex-start;
  color: #061923;
  font-weight: 800;
}

.vps-table.account-mode .account-row-actions {
  justify-content: center;
}

.vps-table.account-mode .equity-cell,
.vps-table.account-mode .equity-cell.equity-normal,
.vps-table.account-mode .equity-cell[class*="equity-tier-"] {
  color: #07151c !important;
  font-weight: 800;
}

.vps-table.account-mode .equity-cell.equity-low {
  color: #8a98a1 !important;
}

.vps-table.account-mode .equity-cell.equity-high {
  color: #ff2448 !important;
}

.vps-table.account-mode tbody tr.account-row td {
  height: 50px;
}

.account-mini-table {
  min-width: 2120px;
}

.account-mini-table .mini-login-col { width: 120px; }
.account-mini-table .mini-server-col { width: 180px; }
.account-mini-table .mini-ea-col { width: 220px; }
.account-mini-table .mini-remark-col { width: 180px; }
.account-mini-table .mini-money-col { width: 118px; }
.account-mini-table .mini-count-col { width: 78px; }
.account-mini-table .mini-time-col { width: 150px; }
.account-mini-table .mini-status-col { width: 118px; }
.account-mini-table .mini-lots-col { width: 92px; }

/* account-mode final layout 20260624-0520 */
.vps-table.account-mode {
  min-width: 2380px;
  table-layout: fixed;
}

.vps-table.account-mode th,
.vps-table.account-mode td {
  text-align: center !important;
  vertical-align: middle;
}

.vps-table.account-mode th {
  height: 44px;
  padding: 0 12px;
  line-height: 44px;
}

.vps-table.account-mode tbody tr.account-row td {
  height: 54px;
  padding: 8px 12px;
}

.vps-table.account-mode .account-status-col,
.vps-table.account-mode .account-status-cell {
  width: 42px;
  min-width: 42px;
  padding-left: 0;
  padding-right: 0;
}

.vps-table.account-mode .account-ip-col { width: 176px; }
.vps-table.account-mode .account-login-col { width: 126px; }
.vps-table.account-mode .account-server-col { width: 178px; }
.vps-table.account-mode .account-ea-col { width: 216px; }
.vps-table.account-mode .account-remark-col { width: 178px; }
.vps-table.account-mode .money-col { width: 116px; }
.vps-table.account-mode .count-col { width: 82px; }
.vps-table.account-mode .time-col { width: 150px; }
.vps-table.account-mode .status-col { width: 120px; }
.vps-table.account-mode .lots-col { width: 92px; }
.vps-table.account-mode .account-detail-col { width: 128px; }

.vps-table.account-mode .account-ip-cell {
  padding-left: 10px;
  text-align: left !important;
}

.vps-table.account-mode .account-ip-inline {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  max-width: 100%;
  color: #061923;
  font-weight: 800;
}

.vps-table.account-mode .account-login-cell {
  color: #7462e8;
  font-weight: 800;
}

.vps-table.account-mode .account-server-cell,
.vps-table.account-mode .account-ea-cell,
.vps-table.account-mode .account-remark-cell,
.vps-table.account-mode .time-cell {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vps-table.account-mode .money-cell,
.vps-table.account-mode .lots-cell,
.vps-table.account-mode .count-cell,
.vps-table.account-mode .time-cell {
  font-variant-numeric: tabular-nums;
}

.vps-table.account-mode .equity-cell,
.vps-table.account-mode .equity-cell.equity-normal,
.vps-table.account-mode .equity-cell[class*="equity-tier-"] {
  color: #07151c !important;
  font-weight: 800;
}

.vps-table.account-mode .equity-cell.equity-low {
  color: #8a98a1 !important;
}

.vps-table.account-mode .equity-cell.equity-high {
  color: #ff2448 !important;
}

.vps-table.account-mode .account-row-actions {
  justify-content: center;
  gap: 8px;
}

/* account-mode aligned with VPS mode 20260629 */
.vps-table.account-mode {
  width: 100%;
  min-width: var(--account-table-min-width, 1540px);
  table-layout: fixed;
}

.vps-table.account-mode th,
.vps-table.account-mode td {
  height: 48px;
  padding: 8px 10px;
  border-bottom: 1px solid #e8eef1;
  color: var(--text);
  font-size: 13px;
  line-height: 1.25;
  text-align: center !important;
  vertical-align: middle;
}

.vps-table.account-mode th {
  height: 48px;
  padding: 8px 10px;
  color: #26343a;
  background: var(--head);
  border-bottom: 1px solid #d8e0e4;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
}

.vps-table.account-mode tbody tr.account-row td {
  height: 48px;
  padding: 8px 10px;
  background: #fff;
  box-shadow: none;
}

.vps-table.account-mode tbody tr.account-row:nth-child(even) td {
  background: #fbfdfe;
}

.vps-table.account-mode tbody tr.account-row:hover td,
.vps-table.account-mode tbody tr.account-row.expanded td {
  background: #f2f8fb;
}

.vps-table.account-mode .account-status-col,
.vps-table.account-mode .account-status-cell {
  width: 42px;
  min-width: 42px;
  padding-left: 0;
  padding-right: 0;
}

.vps-table.account-mode .account-ip-col { width: 220px; }
.vps-table.account-mode .account-login-col { width: 150px; }
.vps-table.account-mode .account-server-col { width: 180px; }
.vps-table.account-mode .account-ea-col { width: 220px; }
.vps-table.account-mode .account-remark-col { width: 180px; }
.vps-table.account-mode .money-col { width: 120px; }
.vps-table.account-mode .count-col { width: 86px; }
.vps-table.account-mode .time-col { width: 160px; }
.vps-table.account-mode .status-col { width: 128px; }
.vps-table.account-mode .lots-col { width: 94px; }
.vps-table.account-mode .account-detail-col { width: 128px; }

.vps-table.account-mode .account-ip-cell,
.vps-table.account-mode .account-login-cell,
.vps-table.account-mode .account-server-cell,
.vps-table.account-mode .account-ea-cell,
.vps-table.account-mode .account-remark-cell {
  overflow: hidden;
  text-align: center !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vps-table.account-mode .account-ip-col {
  padding-left: 10px;
  text-align: left !important;
}

.vps-table.account-mode .account-ip-cell {
  padding-left: 10px;
  text-align: left !important;
}

.vps-table.account-mode .account-ip-inline {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.vps-table.account-mode .account-login-cell,
.vps-table.account-mode .account-server-cell,
.vps-table.account-mode .account-ea-cell,
.vps-table.account-mode .account-remark-cell,
.vps-table.account-mode .time-cell,
.vps-table.account-mode .money-cell,
.vps-table.account-mode .count-cell,
.vps-table.account-mode .status-cell {
  text-align: center !important;
}

.vps-table.account-mode .money-cell,
.vps-table.account-mode .lots-cell,
.vps-table.account-mode .count-cell,
.vps-table.account-mode .time-cell {
  font-variant-numeric: tabular-nums;
}

.vps-table.account-mode .equity-cell,
.vps-table.account-mode .equity-cell.equity-normal,
.vps-table.account-mode .equity-cell[class*="equity-tier-"] {
  color: #07151c !important;
  font-weight: 800;
}

.vps-table.account-mode .equity-cell.equity-low {
  color: #8a98a1 !important;
}

.vps-table.account-mode .equity-cell.equity-high {
  color: #ff2448 !important;
}

.vps-table.account-mode .status-pill {
  min-width: 42px;
  min-height: 24px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
}

.vps-table.account-mode .account-row-actions {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.vps-table.account-mode .account-row-actions .icon-btn {
  width: 32px;
  height: 32px;
  border-radius: 7px;
}

.vps-table.account-mode .account-row-actions .icon-btn svg {
  width: 16px;
  height: 16px;
}

.account-mini-table {
  min-width: var(--account-table-min-width, 1540px);
  table-layout: fixed;
}

.account-mini-table th,
.account-mini-table td {
  height: 48px;
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1.25;
}

.vps-table.account-mode th[data-col="login"] .account-head {
  justify-content: flex-start;
  padding-left: 10px;
}

.vps-table.account-mode .account-login-cell {
  padding-left: 14px;
  text-align: left !important;
  color: #7462e8;
  font-weight: 800;
}

.vps-table.account-mode .money-cell,
.vps-table.account-mode .equity-cell,
.vps-table.account-mode .time-cell {
  color: #32444d;
  font-weight: 500;
}

.vps-table.account-mode .equity-cell.equity-normal {
  color: #32444d !important;
  font-weight: 500;
}

.vps-table.account-mode .equity-cell.equity-low {
  color: #8a98a1 !important;
  font-weight: 500;
}

.vps-table.account-mode .equity-cell.equity-high {
  color: #ff2448 !important;
  font-weight: 700;
}

.vps-table.account-mode .money-cell.positive,
.vps-table.account-mode .lots-cell.positive {
  color: #0f9f5f;
  font-weight: 700;
}

.vps-table.account-mode .money-cell.negative,
.vps-table.account-mode .lots-cell.negative {
  color: #ff3353;
  font-weight: 700;
}

.vps-table.account-mode th .account-head {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  vertical-align: middle;
}

.vps-table.account-mode th .account-head-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  color: #6d7f88;
}

.vps-table.account-mode th .account-head-icon svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.vps-table.account-mode th .account-head-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0;
}

.vps-table.account-mode th[data-col="vpsIp"] .account-head {
  justify-content: flex-start;
}

.vps-table.account-mode th[data-col="vpsIp"] .account-head-label {
  color: #23343d;
  font-weight: 900;
}

.vps-table.account-mode th[data-col="login"] .account-head-icon,
.vps-table.account-mode th[data-col="brokerServer"] .account-head-icon,
.vps-table.account-mode th[data-col="mountedEa"] .account-head-icon,
.vps-table.account-mode th[data-col="remark"] .account-head-icon {
  color: #71848e;
}

.vps-table.account-mode th[data-col="principal"] .account-head-icon,
.vps-table.account-mode th[data-col="balance"] .account-head-icon,
.vps-table.account-mode th[data-col="equity"] .account-head-icon,
.vps-table.account-mode th[data-col="positionProfit"] .account-head-icon,
.vps-table.account-mode th[data-col="maxFloatingLoss"] .account-head-icon,
.vps-table.account-mode th[data-col="totalProfit"] .account-head-icon {
  color: #ff9b21;
}

.vps-table.account-mode th[data-col="positionCount"] .account-head-icon,
.vps-table.account-mode th[data-col="totalLots"] .account-head-icon {
  color: #6c7ee8;
}

.vps-table.account-mode th[data-col="depositTime"] .account-head-icon,
.vps-table.account-mode th[data-col="lastOpenTime"] .account-head-icon {
  color: #14a06f;
}

.vps-table.account-mode th[data-col="eaStatus"] .account-head-icon,
.vps-table.account-mode th[data-col="connectionStatus"] .account-head-icon {
  color: #13a4c5;
}

.vps-table.account-mode th[data-col="actions"] .account-head-icon {
  color: #657d8a;
}

.vps-table.account-mode .account-login-cell {
  color: #7462e8;
  font-weight: 800;
}

.vps-table.account-mode .account-server-cell,
.vps-table.account-mode .account-ea-cell,
.vps-table.account-mode .account-remark-cell,
.vps-table.account-mode .time-cell {
  color: #32444d;
  font-weight: 500;
}

.vps-table.account-mode .money-cell {
  color: #0f2630;
  font-weight: 700;
}

.vps-table.account-mode .money-cell.positive,
.vps-table.account-mode .lots-cell.positive {
  color: #0f9f5f;
}

.vps-table.account-mode .money-cell.negative,
.vps-table.account-mode .lots-cell.negative {
  color: #ff3353;
}

.vps-table.account-mode .status-pill.online {
  color: #0c7a4e;
  background: linear-gradient(135deg, #e4fbef, #c8f5db);
  border: 1px solid rgba(31, 186, 116, 0.22);
}

.vps-table.account-mode .status-pill.offline {
  color: #5f6f77;
  background: #eef3f5;
  border: 1px solid #dfe7ea;
}

.vps-table.account-mode .status-pill.empty {
  color: #74858d;
  background: #eef3f5;
  border: 1px solid #e0e8ec;
}

/* account-mode final polish 20260629 */
.vps-table.account-mode th[data-col="login"] .account-head {
  width: 100%;
  justify-content: center;
}

.vps-table.account-mode th[data-col="login"] .account-head-label {
  color: #26343a;
  font-weight: 500;
}

.vps-table.account-mode th[data-col="login"],
.vps-table.account-mode td[data-col="login"] {
  text-align: center !important;
}

.vps-table.account-mode th[data-col="login"]:not(.sorted) .sort-indicator {
  width: 0;
  margin-left: 0;
}

.vps-table.account-mode tbody td:not([data-col="status"]):not([data-col="vpsIp"]):not([data-col="actions"]),
.vps-table.account-mode .account-login-cell,
.vps-table.account-mode .account-server-cell,
.vps-table.account-mode .account-ea-cell,
.vps-table.account-mode .account-remark-cell,
.vps-table.account-mode .time-cell,
.vps-table.account-mode .money-cell,
.vps-table.account-mode .lots-cell,
.vps-table.account-mode .count-cell,
.vps-table.account-mode .equity-cell,
.vps-table.account-mode .money-cell.positive,
.vps-table.account-mode .money-cell.negative,
.vps-table.account-mode .lots-cell.positive,
.vps-table.account-mode .lots-cell.negative,
.vps-table.account-mode .equity-cell.equity-normal,
.vps-table.account-mode .equity-cell.equity-low,
.vps-table.account-mode .equity-cell.equity-high,
.vps-table.account-mode .equity-cell[class*="equity-tier-"] {
  color: #32444d !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.2;
}

/* account-mode MT4 account alignment 20260629 */
.vps-table.account-mode .account-ip-col {
  width: 158px !important;
}

.vps-table.account-mode .account-login-col {
  width: 126px !important;
}

.vps-table.account-mode th[data-col="login"],
.vps-table.account-mode td[data-col="login"],
.vps-table.account-mode .account-login-cell {
  box-sizing: border-box;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
}

.vps-table.account-mode th[data-col="login"] .account-head {
  position: relative;
  width: 100%;
  padding-left: 0 !important;
  padding-right: 0 !important;
  justify-content: center !important;
}

.vps-table.account-mode th[data-col="login"] .account-head-label {
  display: block;
  width: 100%;
  margin: 0;
  text-align: center;
}

.vps-table.account-mode th[data-col="login"] .account-head-icon {
  position: absolute;
  left: calc(50% - 42px);
  top: 50%;
  transform: translateY(-50%);
}

.vps-table.account-mode th[data-col="login"] .sort-indicator {
  position: absolute;
  right: 8px;
}

/* account-mode editable web remarks 20260630 */
.vps-table.account-mode .account-remark-input,
.vps-account-detail .account-detail-table .account-remark-input {
  width: 100%;
  min-width: 0;
  height: 28px;
  padding: 4px 8px;
  color: #32444d;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  outline: none;
  font-size: 12px;
  font-weight: 500;
  text-align: center;
}

.vps-table.account-mode .account-remark-input:hover,
.vps-account-detail .account-detail-table .account-remark-input:hover {
  background: #f8fbfc;
  border-color: #dbe7ec;
}

.vps-table.account-mode .account-remark-input:focus,
.vps-account-detail .account-detail-table .account-remark-input:focus {
  background: #fff;
  border-color: #86d8cd;
  box-shadow: 0 0 0 3px rgba(18, 138, 124, 0.1);
}

/* account-mode subtle equity badge 20260629 */
.vps-table.account-mode .equity-cell .equity-value,
.vps-account-detail .account-detail-table .equity-cell .equity-value {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  min-height: 25px;
  padding: 4px 11px;
  border-radius: 999px;
  line-height: 1;
}

.vps-table.account-mode td[data-col="equity"].equity-cell.equity-high .equity-value,
.vps-account-detail .account-detail-table td[data-col="equity"].equity-cell.equity-high .equity-value {
  color: #2f2a55 !important;
  background: linear-gradient(135deg, #fbf8ff 0%, #f2efff 48%, #eef7ff 100%);
  border: 1px solid rgba(124, 96, 216, 0.18);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 4px 10px rgba(88, 73, 180, 0.07);
}

/* account-mode full-row hover 20260629 */
.vps-table.account-mode tbody tr.account-row:hover > td,
.vps-table.account-mode tbody tr.account-row.expanded > td {
  background: #eef7fb !important;
  background-color: #eef7fb !important;
}

/* vps-mode full-row hover 20260629 */
.vps-table:not(.account-mode) tbody tr:not(.vps-account-detail-row):hover > td,
.vps-table:not(.account-mode) tbody tr.expanded > td {
  background: #eef7fb !important;
  background-color: #eef7fb !important;
}

/* VPS expanded account list mirrors account mode 20260629 */
.vps-account-detail {
  border-radius: 8px;
}

.vps-account-detail .account-detail-table {
  width: 100%;
  min-width: var(--account-table-min-width, 1540px);
  margin: 0;
  border-collapse: collapse;
  table-layout: fixed;
}

.vps-account-detail .account-detail-table th {
  position: static;
  top: auto;
  z-index: 1;
}

.vps-account-detail .account-detail-table th.sortable {
  cursor: default;
}

.vps-account-detail .account-detail-table th.sortable:hover {
  color: #26343a;
  background: var(--head);
}

.vps-account-detail .account-detail-table tbody tr.account-row:hover > td,
.vps-account-detail .account-detail-table tbody tr.account-row.expanded > td {
  background: #eef7fb !important;
  background-color: #eef7fb !important;
}

/* account-mode per-terminal action buttons 20260629 */
.vps-table.account-mode .account-detail-col {
  width: 154px !important;
  min-width: 154px;
}

.vps-table.account-mode .account-row-actions {
  gap: 6px !important;
  flex-wrap: nowrap;
}

.vps-table.account-mode .account-row-actions .icon-btn {
  flex: 0 0 31px;
}

/* account-mode colorful operation buttons 20260629 */
.vps-table.account-mode .account-row-actions .close-mt-target {
  color: #0f766e;
  background: linear-gradient(135deg, #e6fffb, #ffffff);
  border-color: #a6eee6;
}

.vps-table.account-mode .account-row-actions .restart-mt-target {
  color: #0b6fae;
  background: linear-gradient(135deg, #edf7ff, #ffffff);
  border-color: #b9ddff;
}

.vps-table.account-mode .account-row-actions .install-ea {
  color: #6d45d8;
  background: linear-gradient(135deg, #f3eeff, #ffffff);
  border-color: #ddd1ff;
}

.vps-table.account-mode .account-row-actions .account-switch {
  color: #0f766e;
  background: linear-gradient(135deg, #e6fffb, #ffffff);
  border-color: #b8ece3;
}

.vps-table.account-mode .account-row-actions .icon-btn:disabled,
.vps-table.account-mode .account-row-actions .icon-btn:disabled:hover {
  cursor: not-allowed;
  opacity: 0.9;
  filter: none;
}

.vps-table.account-mode .account-row-actions .close-mt-target:disabled,
.vps-table.account-mode .account-row-actions .close-mt-target:disabled:hover {
  color: #0f766e;
  background: #effdfa;
  border-color: #bdeee6;
}

.vps-table.account-mode .account-row-actions .restart-mt-target:disabled,
.vps-table.account-mode .account-row-actions .restart-mt-target:disabled:hover {
  color: #0b6fae;
  background: #f0f8ff;
  border-color: #cbe7ff;
}

.vps-table.account-mode .account-row-actions .install-ea:disabled,
.vps-table.account-mode .account-row-actions .install-ea:disabled:hover {
  color: #6d45d8;
  background: #f6f2ff;
  border-color: #ded3ff;
}

.vps-table.account-mode .account-row-actions .account-switch:disabled,
.vps-table.account-mode .account-row-actions .account-switch:disabled:hover {
  color: #0f766e;
  background: #effdfa;
  border-color: #bdeee6;
}

/* vps-mode right aligned action buttons 20260629 */
.vps-table:not(.account-mode) th[data-col="actions"],
.vps-table:not(.account-mode) td[data-col="actions"] {
  padding-left: 0 !important;
  padding-right: 12px !important;
}

.vps-table:not(.account-mode) td[data-col="actions"].row-actions,
.vps-table:not(.account-mode) .row-actions[data-col="actions"] {
  justify-content: flex-end !important;
  text-align: right !important;
}

.vps-table:not(.account-mode) td[data-col="actions"].action-cell {
  text-align: right !important;
}

.vps-table:not(.account-mode) .vps-row-actions {
  width: 100%;
  justify-content: flex-end !important;
}

/* VPS mode action layout after adding show-desktop button 20260709 */
.vps-table:not(.account-mode) {
  min-width: 1600px;
}

.vps-table:not(.account-mode) th[data-col="vps"],
.vps-table:not(.account-mode) td[data-col="vps"] {
  width: 196px;
}

.vps-table:not(.account-mode) .metric-col,
.vps-table:not(.account-mode) td[data-col="cpu"],
.vps-table:not(.account-mode) td[data-col="memory"],
.vps-table:not(.account-mode) td[data-col="disk"] {
  width: 158px;
}

.vps-table:not(.account-mode) th[data-col="uptime"],
.vps-table:not(.account-mode) td[data-col="uptime"] {
  width: 132px;
}

.vps-table:not(.account-mode) th[data-col="lastSeenAt"],
.vps-table:not(.account-mode) td[data-col="lastSeenAt"] {
  width: 168px;
}

.vps-table:not(.account-mode) th[data-col="mt"],
.vps-table:not(.account-mode) td[data-col="mt"] {
  width: 74px;
  padding-right: 6px;
}

.vps-table:not(.account-mode) th[data-col="actions"],
.vps-table:not(.account-mode) td[data-col="actions"] {
  width: 430px;
  min-width: 430px;
}

.vps-table:not(.account-mode) .vps-row-actions {
  gap: 4px;
  flex-wrap: nowrap;
}

.vps-table:not(.account-mode) .vps-row-actions .icon-btn {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
}

.vps-table:not(.account-mode) .vps-row-actions .icon-btn svg {
  width: 17px;
  height: 17px;
}

/* MT folder backup button 20260710 */
.vps-table:not(.account-mode) {
  min-width: 1640px;
}

.vps-table:not(.account-mode) th[data-col="actions"],
.vps-table:not(.account-mode) td[data-col="actions"] {
  width: 470px;
  min-width: 470px;
}

.vps-table.account-mode .account-vps-info-table .action-col,
.vps-table.account-mode .account-vps-info-table .action-cell {
  width: 470px;
  min-width: 470px;
}

.vps-table.account-mode .account-vps-info-table .vps-row-actions {
  gap: 4px;
  flex-wrap: nowrap;
}

/* account-mode expanded VPS info 20260629 */
.vps-table.account-mode .account-list-detail-row > td {
  height: var(--account-detail-list-height, 258px) !important;
  padding: 0 !important;
  overflow: visible !important;
  background: #f6fafb;
  border-bottom: 1px solid #dfe8ec;
}

.vps-table.account-mode .account-list-detail-row .account-detail-anchor-cell {
  position: relative;
}

.account-vps-info-wrap {
  position: absolute;
  top: 8px;
  left: 12px;
  z-index: 1;
  width: calc(var(--account-table-render-width, var(--account-table-min-width, 1540px)) - 24px);
  height: calc(var(--account-detail-list-height, 258px) - 16px);
  min-width: 0;
  overflow: hidden;
}

.account-vps-info-table {
  width: 100%;
  min-width: 0;
  height: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid #dfe8ec;
  border-radius: 8px;
  overflow: hidden;
}

.vps-table.account-mode .account-vps-info-table th,
.vps-table.account-mode .account-vps-info-table td {
  height: 48px !important;
  padding: 8px 10px !important;
  border-bottom: 1px solid #e8eef1;
  color: var(--text);
  font-size: 13px !important;
  font-weight: 500;
  line-height: 1.25;
  text-align: left !important;
  vertical-align: middle;
}

.vps-table.account-mode .account-vps-info-table th {
  color: #26343a;
  background: var(--head);
  border-bottom-color: #d8e0e4;
  font-weight: 700;
}

.vps-table.account-mode .account-vps-info-table tr:last-child td {
  border-bottom: 0;
}

.vps-table.account-mode .account-vps-info-table .col-status,
.vps-table.account-mode .account-vps-info-table .mt-col,
.vps-table.account-mode .account-vps-info-table .metric-col {
  text-align: center !important;
}

.vps-table.account-mode .account-vps-info-table .metric {
  margin: 0 auto;
}

.vps-table.account-mode .account-vps-info-table .action-col,
.vps-table.account-mode .account-vps-info-table .action-cell {
  width: 410px;
  min-width: 410px;
  padding-left: 4px !important;
  padding-right: 10px !important;
  text-align: right !important;
}

.vps-table.account-mode .account-vps-info-table .vps-row-actions {
  gap: 4px;
  flex-wrap: nowrap;
  justify-content: flex-end !important;
}

.vps-table.account-mode .account-vps-info-table .vps-row-actions .icon-btn {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
}

.vps-table.account-mode .account-vps-info-table .vps-row-actions .icon-btn svg {
  width: 17px;
  height: 17px;
}

.vps-table.account-mode .account-vps-info-table .mt-col {
  width: 72px;
  min-width: 72px;
  padding-left: 4px !important;
  padding-right: 6px !important;
  text-align: center !important;
}

.vps-table.account-mode .account-vps-info-table th:nth-child(2),
.vps-table.account-mode .account-vps-info-table td:nth-child(2) {
  text-align: left !important;
}

.vps-table.account-mode .account-vps-info-table th:nth-child(6),
.vps-table.account-mode .account-vps-info-table td:nth-child(6),
.vps-table.account-mode .account-vps-info-table th:nth-child(7),
.vps-table.account-mode .account-vps-info-table td:nth-child(7) {
  text-align: center !important;
  white-space: nowrap;
}

/* account-mode inline pending command badge layout 20260630 */
.vps-table.account-mode .account-ip-col {
  width: 172px !important;
  min-width: 172px !important;
}

.vps-table.account-mode .account-login-col {
  width: 126px !important;
  min-width: 126px !important;
}

.vps-table.account-mode .account-ip-cell {
  overflow: visible !important;
  padding-right: 8px !important;
}

.vps-table.account-mode .account-ip-inline {
  display: inline-flex !important;
  width: auto;
  max-width: none;
  min-width: 0;
  align-items: center;
  gap: 6px;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.vps-table.account-mode .account-ip-detail-trigger {
  display: inline-flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: flex-start;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.vps-table.account-mode .account-ip-detail-trigger:hover .account-ip-inline,
.vps-table.account-mode .account-ip-detail-trigger:focus-visible .account-ip-inline,
.vps-table.account-mode .account-ip-detail-trigger.active .account-ip-inline {
  color: #0f766e;
}

.vps-table.account-mode .account-ip-detail-trigger:focus-visible {
  outline: 2px solid rgba(20, 184, 166, 0.35);
  outline-offset: 3px;
  border-radius: 6px;
}

.vps-table.account-mode .account-ip-inline .pending {
  display: inline-flex;
  width: auto;
  max-width: none;
  min-width: max-content;
  flex: 0 0 auto;
  margin: 0;
  align-items: center;
  justify-content: center;
  padding: 2px 7px;
  overflow: visible;
  line-height: 1.2;
  text-overflow: clip;
  white-space: nowrap;
}

/* settings account-pool status 20260704 */
.account-expire-field {
  margin-top: 10px;
  align-items: flex-start;
}

.account-expire-field small {
  display: block;
  margin-top: 6px;
  color: #647786;
  font-size: 12px;
  line-height: 1.4;
}

.account-pool-status-panel {
  margin-top: 12px;
  border: 1px solid #dce7ee;
  border-radius: 8px;
  background: #f8fbfd;
  overflow: hidden;
}

.account-pool-status-panel.empty {
  padding: 12px;
  color: #667985;
  font-size: 13px;
}

.account-pool-status-head,
.account-pool-status-row {
  display: grid;
  grid-template-columns: minmax(90px, 1fr) minmax(140px, 1.25fr) minmax(128px, 1fr) 74px;
  align-items: center;
  gap: 8px;
}

.account-pool-status-head {
  padding: 10px 12px;
  color: #2a3a43;
  font-size: 13px;
  border-bottom: 1px solid #e3edf2;
}

.account-pool-status-head span {
  grid-column: 2 / -1;
  color: #6f7f89;
  font-size: 12px;
  text-align: right;
}

.account-pool-status-rows {
  max-height: 180px;
  overflow: auto;
}

.account-pool-status-row {
  padding: 8px 12px;
  color: #233640;
  font-size: 12px;
  border-bottom: 1px solid #eaf1f5;
}

.account-pool-status-row:last-child {
  border-bottom: 0;
}

.account-pool-status-row .pool-login {
  font-weight: 700;
}

.account-pool-status-row .pool-server,
.account-pool-status-row .pool-used {
  min-width: 0;
  overflow: hidden;
  color: #566a76;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pool-status-badge {
  justify-self: end;
  display: inline-flex;
  min-width: 54px;
  height: 22px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.pool-status-badge.pending {
  color: #057a55;
  background: #dff8ec;
  border: 1px solid #afeccb;
}

.pool-status-badge.used {
  color: #1d64aa;
  background: #e8f2ff;
  border: 1px solid #bfddff;
}

.pool-status-badge.expired {
  color: #a34400;
  background: #fff0db;
  border: 1px solid #ffd39a;
}
