#tool-body {
  --c-primary: #2563EB;
  --c-primary-hover: #1D4ED8;
  --c-primary-light: rgba(37,99,235,0.08);
  --c-primary-mid: #BFDBFE;
  --c-success: #16A34A;
  --c-success-bg: #DCFCE7;
  --c-success-border: rgba(22,163,74,0.2);
  --c-warning: #D97706;
  --c-warning-bg: #FEF9C3;
  --c-danger: #DC2626;
  --c-danger-bg: #FEE2E2;
  --c-danger-border: rgba(220,38,38,0.2);
  --c-queued: #7C3AED;
  --c-queued-bg: #EDE9FE;
  --c-text: #1E293B;
  --c-text-2: #64748B;
  --c-text-3: #94A3B8;
  --c-border: #E2E8F0;
  --c-bg: #F8FAFC;
  --c-card: #FFFFFF;
  font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
  color: var(--c-text);
}
.theme-dark-mode #tool-body {
  --c-primary-light: rgba(37,99,235,0.15);
  --c-text: #E2E8F0;
  --c-text-2: #94A3B8;
  --c-text-3: #64748B;
  --c-border: #334155;
  --c-bg: #0F172A;
  --c-card: #1E293B;
  --c-success-bg: #052E16;
  --c-warning-bg: #1C1300;
  --c-danger-bg: #1C0606;
  --c-queued-bg: #2E1065;
}

/* ── 通用卡片 ── */
#tool-body .dc-card {
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-radius: 5px;
  margin-bottom: 16px;
}
#tool-body .dc-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  flex-wrap: wrap;
  gap: 8px;
}
#tool-body .dc-card-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-text);
  display: flex;
  align-items: center;
  gap: 7px;
}
#tool-body .dc-card-title i { color: var(--c-primary); }
#tool-body .dc-card-body { padding: 16px 20px; border-top: 1px solid var(--c-border); }

/* ── 按钮 ── */
#tool-body .dc-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  border: none;
  transition: all 0.15s;
  white-space: nowrap;
}
#tool-body .dc-btn-primary { background: var(--c-primary); color: #fff; }
#tool-body .dc-btn-primary:hover:not(:disabled) { background: var(--c-primary-hover); }
#tool-body .dc-btn-ghost { background: none; color: var(--c-text-2); border: 1px solid var(--c-border); }
#tool-body .dc-btn-ghost:hover:not(:disabled) { border-color: var(--c-primary); color: var(--c-primary); }
#tool-body .dc-btn-success { background: var(--c-success); color: #fff; }
#tool-body .dc-btn-success:hover:not(:disabled) { opacity: 0.88; }
#tool-body .dc-btn-sm { padding: 4px 10px; font-size: 12px; border-radius: 6px; }
#tool-body .dc-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* ── 生成器 ── */
#tool-body .dc-gen-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 14px;
}
@media(max-width:768px){ 
  #tool-body .dc-gen-grid { grid-template-columns: 1fr; } 
}
#tool-body .dc-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-2);
  margin-bottom: 6px;
}
#tool-body .dc-input {
  width: 100%;
  height: 36px;
  padding: 0 12px;
  border: 1px solid var(--c-border);
  border-radius: 8px;
  font-size: 13px;
  color: var(--c-text);
  background: var(--c-bg);
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.2s;
}
#tool-body .dc-input:focus { border-color: var(--c-primary); }
#tool-body .dc-tld-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
#tool-body .dc-tld-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border: 1px solid var(--c-border);
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  color: var(--c-text-2);
  background: var(--c-bg);
  transition: all 0.15s;
  user-select: none;
}
#tool-body .dc-tld-tag.active {
  border-color: var(--c-primary);
  color: var(--c-primary);
  background: var(--c-primary-light);
}
#tool-body .dc-gen-mode-wrap {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
#tool-body .dc-mode-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  border: 1px solid var(--c-border);
  border-radius: 8px;
  font-size: 12px;
  cursor: pointer;
  color: var(--c-text-2);
  background: var(--c-bg);
  transition: all 0.15s;
  user-select: none;
}
#tool-body .dc-mode-tag.active {
  border-color: var(--c-primary);
  color: var(--c-primary);
  background: var(--c-primary-light);
}
#tool-body .dc-gen-preview {
  font-size: 12px;
  color: var(--c-text-3);
  margin-top: 10px;
}
#tool-body .dc-gen-preview span { color: var(--c-primary); font-weight: 600; }

/* ── 输入区 ── */
#tool-body .dc-textarea {
  width: 100%;
  height: 150px;
  padding: 12px 14px;
  border: 1px solid var(--c-border);
  border-radius: 8px;
  font-size: 13px;
  font-family: 'Courier New', monospace;
  color: var(--c-text);
  background: var(--c-bg);
  outline: none;
  resize: vertical;
  line-height: 1.6;
  box-sizing: border-box;
  transition: border-color 0.2s;
}
#tool-body .dc-textarea:focus { border-color: var(--c-primary); }
#tool-body .dc-textarea::placeholder { color: var(--c-text-3); font-family: 'PingFang SC', sans-serif; }
#tool-body .dc-input-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 10px;
  flex-wrap: wrap;
  gap: 8px;
}
#tool-body .dc-input-bar-left { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
#tool-body .dc-count-tip { font-size: 12px; color: var(--c-text-3); }
#tool-body .dc-count-tip b { color: var(--c-primary); }

/* ── 进度 ── */
#tool-body .dc-progress-card {
  display: none;
}
#tool-body .dc-progress-card.show { display: block; }
#tool-body .dc-stats {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
#tool-body .dc-stat {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
}
#tool-body .dc-stat.total    { background: var(--c-bg); color: var(--c-text-2); border: 1px solid var(--c-border); }
#tool-body .dc-stat.free     { background: var(--c-success-bg); color: var(--c-success); }
#tool-body .dc-stat.taken    { background: var(--c-danger-bg); color: var(--c-danger); }
#tool-body .dc-stat.querying { background: var(--c-primary-light); color: var(--c-primary); }
#tool-body .dc-stat.queued   { background: var(--c-queued-bg); color: var(--c-queued); }
#tool-body .dc-stat.fail     { background: var(--c-warning-bg); color: var(--c-warning); }
#tool-body .dc-bar-wrap { height: 5px; background: var(--c-border); border-radius: 3px; overflow: hidden; margin-top: 12px; }
#tool-body .dc-bar { height: 100%; background: var(--c-primary); border-radius: 3px; transition: width 0.3s; width: 0; }

/* ── Tab ── */
#tool-body .dc-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--c-border);
  padding: 0 20px;
  background: var(--c-bg);
  border-radius: 5px 5px 0 0;
  overflow-x: auto;
  overflow-y: hidden;
}
#tool-body .dc-tab {
  padding: 10px 16px;
  font-size: 13px;
  cursor: pointer;
  color: var(--c-text-2);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: all 0.15s;
  white-space: nowrap;
  user-select: none;
}
#tool-body .dc-tab:hover { color: var(--c-primary); }
#tool-body .dc-tab.active { color: var(--c-primary); border-bottom-color: var(--c-primary); font-weight: 600; }
#tool-body .dc-tab-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  font-size: 10px;
  font-weight: 700;
  margin-left: 5px;
  background: var(--c-border);
  color: var(--c-text-3);
}
#tool-body .dc-tab.active .dc-tab-badge { background: var(--c-primary-light); color: var(--c-primary); }

/* ── 表格 ── */
#tool-body .dc-table-wrap { overflow: auto; max-height: 500px;}
#tool-body .dc-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
#tool-body .dc-table th {
  padding: 10px 14px;
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  color: var(--c-text-3);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  background: var(--c-bg);
  border-bottom: 1px solid var(--c-border);
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  transition: color 0.15s;
}
#tool-body .dc-table th:hover { color: var(--c-primary); }
#tool-body .dc-table th .sort-icon { margin-left: 4px; color: var(--c-text-3); }
#tool-body .dc-table th.sorted { color: var(--c-primary); }
#tool-body .dc-table th.sorted .sort-icon { color: var(--c-primary); }
#tool-body .dc-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--c-border);
  color: var(--c-text);
  vertical-align: middle;
  white-space: nowrap;
}
#tool-body .dc-table tr:last-child td { border-bottom: none; }
#tool-body .dc-table tr:hover td { background: var(--c-bg); }
#tool-body .dc-table td.dc-idx { color: var(--c-text-3); font-size: 11px; width: 32px; text-align: center; }
#tool-body .dc-table td.dc-domain { font-weight: 600; font-family: 'Courier New', monospace; }
#tool-body .dc-table td.dc-domain .tld { color: var(--c-primary); }

/* ── 状态 badge ── */
#tool-body .dc-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 600;
}
#tool-body .dc-badge.free     { background: var(--c-success-bg); color: var(--c-success); border: 1px solid var(--c-success-border); }
#tool-body .dc-badge.taken    { background: var(--c-danger-bg); color: var(--c-danger); border: 1px solid var(--c-danger-border); }
#tool-body .dc-badge.querying { background: var(--c-primary-light); color: var(--c-primary); }
#tool-body .dc-badge.queued   { background: var(--c-queued-bg); color: var(--c-queued); }
#tool-body .dc-badge.fail     { background: var(--c-warning-bg); color: var(--c-warning); }

/* ── 下载菜单 ── */
#tool-body .dc-dl-wrap { position: relative; display: inline-block; }
#tool-body .dc-dl-menu {
  display: none;
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  min-width: 180px;
  z-index: 100;
  overflow: hidden;
}
#tool-body .dc-dl-menu.show { display: block; }
#tool-body .dc-dl-group-title {
  padding: 8px 14px 4px;
  font-size: 10px;
  font-weight: 700;
  color: var(--c-text-3);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
#tool-body .dc-dl-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  font-size: 13px;
  color: var(--c-text-2);
  cursor: pointer;
  transition: background 0.12s;
}
#tool-body .dc-dl-item:hover { background: var(--c-bg); color: var(--c-primary); }
#tool-body .dc-dl-item i { width: 14px; text-align: center; }
#tool-body .dc-dl-divider { height: 1px; background: var(--c-border); margin: 4px 0; }
#tool-body .dc-dl-item .dc-dl-ext {
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 4px;
  background: var(--c-bg);
  color: var(--c-text-3);
  border: 1px solid var(--c-border);
}

/* 空状态 */
#tool-body .dc-empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--c-text-3);
  font-size: 13px;
}
#tool-body .dc-empty i { font-size: 28px; display: block; margin-bottom: 10px; }

/* VIP 提示 */
#tool-body .dc-vip-tip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--c-warning);
  background: var(--c-warning-bg);
  padding: 4px 10px;
  border-radius: 6px;
}

/* spin */
@keyframes dc-spin { from{transform:rotate(0)} to{transform:rotate(360deg)} }
#tool-body .dc-spin { display:inline-block; animation: dc-spin 0.8s linear infinite; }