body { font-family: system-ui, sans-serif; margin: 1.5rem; max-width: 960px; }
nav a { margin-right: 0.75rem; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ccc; padding: 0.35rem 0.5rem; text-align: left; }
form div { margin-bottom: 0.5rem; }
button, input[type=submit] { cursor: pointer; }

.upload-box {
  border: 2px dashed #6b8cce;
  border-radius: 10px;
  padding: 1.5rem;
  margin: 1rem 0 1.5rem;
  background: #f6f9ff;
}
.upload-box.dragover {
  border-color: #2563eb;
  background: #e8f0fe;
}
.upload-box.has-file {
  border-style: solid;
  border-color: #4caf50;
}
.upload-field-label {
  display: block;
  margin-bottom: 0.5rem;
}
.upload-file-input {
  display: block;
  width: 100%;
  max-width: 480px;
  margin: 0.5rem 0;
  padding: 0.35rem;
  font-size: 1rem;
}
.upload-hint {
  color: #555;
  font-size: 0.9rem;
  margin: 0.5rem 0 0;
}
.upload-title { display: block; font-size: 1.1rem; font-weight: 600; margin-bottom: 0.25rem; }
.upload-hint { display: block; color: #555; font-size: 0.9rem; }
.upload-filename {
  margin: 0.75rem 0 0;
  font-weight: 600;
  color: #1b5e20;
  word-break: break-all;
}
.btn-primary {
  background: #2563eb;
  color: #fff;
  border: none;
  padding: 0.55rem 1.2rem;
  border-radius: 6px;
  font-size: 1rem;
}
.btn-primary:hover { background: #1d4ed8; }
.alert { padding: 0.75rem 1rem; border-radius: 6px; margin: 1rem 0; }
.alert-ok { background: #e8f5e9; color: #1b5e20; }
.alert-err { background: #ffebee; color: #b71c1c; }
.alert-warn { background: #fff8e1; color: #6d4c00; }
.alert-warn ul { margin: 0.5rem 0 0 1.2rem; }
.help-block { margin-top: 2rem; }
.help-block h2 { font-size: 1rem; margin-bottom: 0.5rem; }

.pool-section { margin-bottom: 1.5rem; }
.pool-section-count { color: #666; font-size: 0.9rem; font-weight: normal; }
.pool-empty { color: #666; margin: 0.25rem 0 0; }
.pool-meta { color: #555; font-size: 0.95rem; margin-bottom: 0.75rem; }
.pool-section-list { margin-top: 0.25rem; margin-bottom: 0.5rem; }
.pool-item-hidden { display: none; }
.pool-show-more { margin: 0.25rem 0 0.75rem; }
.pool-section-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.25rem 0 0.75rem;
}
.pool-section-actions .pool-show-more,
.pool-section-actions .pool-show-less {
  margin: 0;
}
.btn-secondary {
  background: #f3f4f6;
  color: #111;
  border: 1px solid #ccc;
  padding: 0.45rem 1rem;
  border-radius: 6px;
  font-size: 0.95rem;
}
.btn-secondary:hover { background: #e5e7eb; }
.pool-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin: 1rem 0 1.5rem;
}
.pool-pagination a {
  padding: 0.25rem 0.55rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  text-decoration: none;
  color: #2563eb;
}
.pool-pagination a:hover { background: #f3f4f6; }
.pool-page-current {
  padding: 0.25rem 0.55rem;
  border: 1px solid #2563eb;
  border-radius: 4px;
  background: #2563eb;
  color: #fff;
  font-weight: 600;
}
