/* publish.css — publisher desk / article editor */

.publish_heading {
  font-size: 24px;
  font-weight: 700;
  margin: 18px 0 8px;
}

.publish_kicker {
  font-family: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;
  font-size: 12px;
  color: var(--accent);
  letter-spacing: 0.04em;
  margin: 0 0 16px;
}

.publish_gate {
  margin: 12px 0 20px;
  padding: 16px;
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--muted);
  border: 1px dashed var(--line);
}

.publish_gate a {
  color: var(--accent-bright);
}

.publish_form {
  display: grid;
  gap: 10px;
  margin-bottom: 36px;
}

.publish_label {
  margin-top: 8px;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}

.publish_title,
.publish_description,
.publish_embed_url,
.github_source_label,
.github_source_url,
.download_source_label,
.download_source_kind,
.download_source_url,
.image_url_url,
.image_url_label,
.publish_tags,
.publish_body {
  width: 100%;
  padding: 12px 14px;
  min-height: 44px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--text);
  font: inherit;
}

.publish_body,
.publish_description {
  min-height: 96px;
  resize: vertical;
}

.publish_embed_kind {
  color: var(--accent);
  font-size: 13px;
}

.thumb_preview {
  width: 160px;
  height: 90px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--primary);
}

.publish_actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, auto));
  gap: 10px;
  align-items: center;
  margin-top: 16px;
}

.publish_save,
.publish_delete {
  min-height: 44px;
  padding: 12px 18px;
  border-radius: var(--radius-sm);
  border: 0;
  font-size: 15px;
  font-weight: 650;
  cursor: pointer;
}

.publish_save {
  background: var(--accent);
  color: #04251f;
}

.publish_save:hover {
  background: var(--accent-bright);
}

.publish_delete {
  background: var(--surface);
  color: var(--error);
  border: 1px solid var(--error);
}

.publish_delete:hover {
  background: #3b1520;
}

.publish_list_heading {
  font-size: 16px;
  margin: 8px 0 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.publish_list {
  display: grid;
  gap: 10px;
}

.publish_list_item {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 8px;
  align-items: center;
  padding: 12px 14px;
  min-height: 44px;
  border-radius: var(--radius);
  background: var(--surface);
  border: 1px solid var(--surface-2);
}

.publish_list_title {
  min-width: 0;
  font-weight: 650;
}

.publish_list_stamp {
  font-family: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;
  font-size: 11px;
  color: var(--accent);
}

.publish_page .home_link {
  display: inline-block;
  margin: 0 0 8px;
}

@media (max-width: 640px) {
  .publish_list_item {
    grid-template-columns: 1fr auto;
  }

  .publish_list_stamp {
    grid-column: 1 / -1;
  }
}

.image_url_head,
.github_source_head,
.download_source_head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: center;
  margin-top: 8px;
}

.image_url_head .publish_label,
.github_source_head .publish_label,
.download_source_head .publish_label {
  margin-top: 0;
}

.image_url_add,
.github_source_add,
.download_source_add {
  display: grid;
  place-items: center;
  min-width: 44px;
  min-height: 44px;
  padding: 8px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--accent);
  cursor: pointer;
}

.image_url_add svg,
.github_source_add svg,
.download_source_add svg {
  width: 18px;
  height: 18px;
}

.image_url_add:hover,
.github_source_add:hover,
.download_source_add:hover {
  border-color: var(--accent);
  color: var(--accent-bright);
}

.image_url_list,
.github_source_list,
.download_source_list {
  display: grid;
  gap: 8px;
}

.github_source_row {
  display: grid;
  grid-template-columns: minmax(96px, 0.4fr) 1fr auto;
  gap: 8px;
  align-items: center;
}

.download_source_row {
  display: grid;
  grid-template-columns: minmax(96px, 0.32fr) auto 1fr auto;
  gap: 8px;
  align-items: center;
}

.image_url_row {
  display: grid;
  grid-template-columns: 1fr minmax(96px, 0.4fr) 44px auto;
  gap: 8px;
  align-items: center;
}

.image_url_preview {
  width: 44px;
  height: 44px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--primary);
}

@media (max-width: 640px) {
  .github_source_row,
  .download_source_row,
  .image_url_row {
    grid-template-columns: 1fr auto;
  }

  .github_source_url,
  .download_source_kind,
  .download_source_url,
  .image_url_url,
  .image_url_label {
    grid-column: 1 / -1;
  }
}
