.research-admin {
  max-width: 1200px;
  margin: auto;
  padding: 24px;
}
.research-admin h1 {
  font-size: 30px;
}
.research-admin nav {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 24px 0;
}
.research-admin .panels {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 20px;
}
.research-admin textarea {
  min-height: 180px;
  width: 100%;
  font-family: monospace;
}
.research-admin table {
  width: 100%;
  border-collapse: collapse;
}
.research-admin td,
.research-admin th {
  text-align: left;
  padding: 9px;
  border-bottom: 1px solid #ddd;
}
.research-admin form {
  display: grid;
  gap: 12px;
}
.research-admin input,
.research-admin select {
  width: 100%;
}
.research-admin .map-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
.research-admin .map-cell {
  padding: 12px;
  background: #ecf2ee;
  border-radius: 8px;
}
.research-admin .error {
  color: #a92727;
  white-space: pre-wrap;
}
.research-admin .success {
  color: #206440;
}
.research-admin .card {
  margin-bottom: 20px;
}
.research-admin pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.research-preview {
  width: 100%;
  max-width: 1000px;
  background: #eee;
}
.research-admin button {
  margin: 3px;
}
.research-context {
  max-width: 1200px;
  margin: 15px auto;
  padding: 16px;
  background: #edf4f0;
  border-radius: 12px;
}
.research-context a {
  margin-right: 12px;
}
