/* Moderation and DSA (ModerationModule): the report form under a post, the
   DSA notice form and the staff panel under /admin. Component styles only,
   built on the shared tokens (tokens.css); no global element rules. Cards
   and definition lists instead of tables keep every screen usable at 360px. */

.moderation-narrow {
	max-width: var(--form-measure);
}

.moderation-excerpt {
	margin: var(--sp-md) 0;
	padding: var(--sp-sm) var(--sp-md);
	border-left: 3px solid var(--line-deep);
	background: var(--ground-zone);
	color: var(--ink-muted);
	overflow-wrap: anywhere;
}

/* --- Staff panel --- */

.admin {
	display: grid;
	gap: var(--sp-md);
	min-width: 0;
}

.admin-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-xs) var(--sp-md);
	margin: 0;
	padding: 0 0 var(--sp-sm);
	border-bottom: 1px solid var(--line);
	list-style: none;
}

.admin-nav a {
	display: inline-flex;
	align-items: center;
	min-height: var(--hit-min);
	color: var(--ink-muted);
}

.admin-nav a[aria-current='page'],
.admin-tabs a[aria-current='page'] {
	color: var(--ink);
	font-weight: 600;
}

.admin-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-md);
}

.admin-cards {
	display: grid;
	gap: var(--sp-sm);
	margin: 0;
	padding: 0;
	list-style: none;
}

.admin-card {
	display: grid;
	gap: var(--sp-xs);
	min-width: 0;
	padding: var(--sp-sm) var(--sp-md);
	border: 1px solid var(--line);
	border-radius: var(--r-md);
}

.admin-card p {
	margin: 0;
}

.admin-compact .admin-card {
	padding: var(--sp-xs) var(--sp-sm);
}

.admin-card-meta {
	color: var(--ink-muted);
	font-size: 0.875em;
}

.admin-clip {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow-wrap: anywhere;
}

.admin-break {
	overflow-wrap: anywhere;
}

.admin-pre {
	overflow-x: auto;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

.admin-facts,
.admin-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	gap: var(--sp-sm);
	margin: 0;
}

.admin-facts > div,
.admin-stats > div {
	min-width: 0;
	padding: var(--sp-sm) var(--sp-md);
	border: 1px solid var(--line);
	border-radius: var(--r-md);
}

.admin-facts dt,
.admin-stats dt {
	color: var(--ink-muted);
	font-size: 0.875em;
}

.admin-facts dd,
.admin-stats dd {
	margin: 0;
	overflow-wrap: anywhere;
}

.admin-stats dd {
	font-size: 1.5em;
	font-weight: 600;
}

.admin-action {
	padding-top: var(--sp-md);
	border-top: 1px solid var(--line);
}

.badge-dsa {
	border-color: var(--error);
	color: var(--error);
}

.badge-sync-ok {
	border-color: var(--success);
	color: var(--success);
}

.badge-sync-rejected,
.badge-sync-failed {
	border-color: var(--error);
	color: var(--error);
}
