.journals-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
}
.journals-table th,
.journals-table td {
  border-bottom: 1px solid #eee;
  padding: 0.5rem 0.6rem;
  text-align: left;
  vertical-align: middle;
}
.journals-table th {
  background: #f4f4f4;
  position: sticky;
  top: 0;
  z-index: 1;
}
.journals-table tr:hover td { background: #fbfcff; }
.journals-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.journals-table code { font-size: 0.78rem; color: #555; }
.journals-table .evidence a { font-size: 0.8rem; }

.status-badge {
  display: inline-block;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
}
.status-badge.needs_review { background: #fff4d6; color: #946a00; }
.status-badge.pending { background: #eee; color: #555; }
.status-badge.approved { background: #d6f5dd; color: #1d6b33; }
.status-badge.rejected { background: #ffd6d6; color: #963333; }
.status-badge.posted { background: #d6e6ff; color: #1d4f99; }

.source-badge {
  display: inline-block;
  padding: 0 0.35rem;
  border-radius: 4px;
  background: #f0f0f0;
  font-size: 0.78rem;
  color: #444;
}
.source-badge.discord { background: #e4e4ff; color: #3333a0; }
.source-badge.gmail { background: #ffe4e4; color: #a03333; }
.source-badge.drive_scan { background: #e4ffe4; color: #2a6a2a; }

.summary {
  padding: 0.8rem 1.5rem;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  border-bottom: 1px solid #ddd;
}
.summary .chip {
  background: #fafafa;
  border: 1px solid #e5e5e5;
  border-radius: 6px;
  padding: 0.35rem 0.7rem;
  font-size: 0.85rem;
}
.summary .chip strong { margin-left: 0.3rem; }

button.danger { background: #c62828; color: white; border: none; padding: 0.45rem 1rem; border-radius: 4px; }
button.approve { background: #2e7d32; color: white; border: none; padding: 0.45rem 1rem; border-radius: 4px; }
button.danger:hover { background: #9a1e1e; }
button.approve:hover { background: #1b5e20; }

#edit-dialog .grid { grid-template-columns: 1fr 1fr 1fr; }
#edit-dialog { max-width: 960px; }
#edit-dialog output { padding: 0.4rem 0; color: #555; }
.input-with-btn { display: flex; gap: 0.3rem; align-items: stretch; }
.input-with-btn input { flex: 1; }
.input-with-btn button { padding: 0.25rem 0.5rem; font-size: 0.85rem; }
.hint { display: block; margin-top: 0.2rem; font-size: 0.78rem; color: #666; }
.hint.ok { color: #1d6b33; }
.hint.ng { color: #963333; }

#mail-dialog { max-width: 720px; padding: 1.5rem; }
.mail-grid { display: flex; flex-direction: column; gap: 0.7rem; }
.mail-grid label { display: flex; flex-direction: column; font-size: 0.85rem; color: #444; }
.mail-grid input, .mail-grid textarea {
  margin-top: 0.2rem;
  padding: 0.4rem 0.6rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-family: inherit;
  font-size: 0.92rem;
}
.mail-grid textarea { resize: vertical; min-height: 260px; }
.mail-summary {
  background: #f7f7f7;
  border-radius: 4px;
  padding: 0.5rem 0.7rem;
  font-size: 0.85rem;
  color: #555;
}
.mail-links { display: flex; gap: 0.7rem; }
.mail-links a { color: #0366d6; text-decoration: underline; font-size: 0.9rem; }
