* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  background: #f0f4f8;
  color: #333;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height: 1.6;
}
.container { max-width: 1350px; margin: 0 auto; padding: 20px; }
header { text-align: center; padding: 24px 0 16px; }
header h1 { font-size: 26px; color: #1565c0; }
.subtitle { color: #666; font-size: 14px; margin-top: 6px; }
.support-note { color: #2e7d32; font-size: 13px; margin-top: 10px; max-width: 900px; margin-left: auto; margin-right: auto; }
.panel {
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 16px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.panel h2 { font-size: 16px; color: #1565c0; margin-bottom: 12px; }
.hint { font-size: 13px; color: #888; margin-bottom: 12px; }
.checkbox-group { display: flex; flex-wrap: wrap; gap: 12px; }
.checkbox-item {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 12px; border: 1px solid #ddd; border-radius: 6px; cursor: pointer;
}
.checkbox-item input { width: 16px; height: 16px; accent-color: #1565c0; }
.version-select { padding: 4px 8px; border: 1px solid #ccc; border-radius: 4px; min-width: 96px; }
.checkbox-item small { color: #888; font-size: 12px; width: 100%; margin-left: 24px; }
.host-table { width: 100%; overflow-x: auto; }
.add-header,
.host-form-row {
  display: grid;
  grid-template-columns: 1fr 80px 80px 1.5fr 240px 110px;
  gap: 8px;
  align-items: center;
}
.add-header {
  padding: 8px 10px;
  background: #e3f2fd;
  font-weight: 600;
  font-size: 13px;
  border-radius: 6px 6px 0 0;
}
.list-header,
.host-list-row {
  display: grid;
  grid-template-columns: 36px 120px 70px 100px 1.2fr 2fr 150px 72px;
  gap: 8px;
  align-items: center;
}
.list-header {
  padding: 8px 10px;
  background: #e3f2fd;
  font-weight: 600;
  font-size: 13px;
  border-radius: 6px 6px 0 0;
}
.host-form-row {
  padding: 10px;
  border-bottom: 1px solid #eee;
}
.host-list-row {
  padding: 10px;
  border-bottom: 1px solid #eee;
  font-size: 13px;
}
.host-form-row input, .host-list-row span { font-size: 13px; }
.host-form-row input {
  padding: 8px;
  border: 1px solid #ccc;
  border-radius: 4px;
  width: 100%;
}
.host-ip-input { max-width: 180px; }
.readonly { background: #f5f5f5; color: #666; }
.captcha-box { display: flex; gap: 8px; align-items: center; width: 100%; }
.captcha-box input { flex: 1; min-width: 90px; }
.captcha-code {
  display: inline-block;
  min-width: 96px;
  padding: 8px 12px;
  background: #fff3e0;
  border: 1px dashed #e65100;
  border-radius: 4px;
  font-weight: bold;
  letter-spacing: 4px;
  cursor: pointer;
  text-align: center;
  user-select: none;
  flex-shrink: 0;
}
.check-cell { display: flex; justify-content: center; }
.btn-primary {
  background: #1565c0;
  color: #fff;
  border: none;
  padding: 8px 14px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 13px;
}
.btn-primary:hover { background: #0d47a1; }
.btn-primary:disabled { background: #90caf9; cursor: not-allowed; }
.btn-add { white-space: nowrap; }
.action-bar {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 8px 0 20px;
}
.action-bar .btn-primary { padding: 10px 24px; font-size: 14px; }
.status-badge { padding: 3px 8px; border-radius: 10px; font-size: 12px; display: inline-block; }
.status-0 { background: #fff3e0; color: #e65100; }
.status-1 { background: #e3f2fd; color: #1565c0; }
.status-2 { background: #e8f5e9; color: #2e7d32; }
.status-3 { background: #ffebee; color: #c62828; }
.status-4 { background: #f5f5f5; color: #616161; }
.status-text { color: #666; }
.msg-cell { word-break: break-all; color: #555; white-space: pre-line; }
.host-ip-cell { word-break: break-all; font-family: ui-monospace, monospace; font-size: 12px; }
.btn-delete {
  background: #fff;
  color: #c62828;
  border: 1px solid #ef9a9a;
  padding: 4px 10px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.btn-delete:hover { background: #ffebee; }
.btn-delete:disabled {
  color: #bbb;
  border-color: #ddd;
  cursor: not-allowed;
  background: #f5f5f5;
}
.feedback-panel { margin-bottom: 32px; }
.feedback-row {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  flex-wrap: wrap;
}
.feedback-input {
  width: 60%;
  min-width: 280px;
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 14px;
  font-family: inherit;
  resize: vertical;
}
.feedback-btn { padding: 10px 20px; white-space: nowrap; flex-shrink: 0; }
.wechat-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.wechat-qr {
  height: 220px;
  width: auto;
  object-fit: contain;
  border: 1px solid #eee;
  border-radius: 6px;
  background: #fff;
}
.wechat-hint { font-size: 13px; color: #666; }
