/*
 * Styles for the tp_template_jwg publication list template.
 * Auto-enqueued by teachPress next to the template file; uses the design
 * tokens defined in the child theme stylesheet.
 */

/* ---------------------------------------------------------------------------
   Filters and search
   (teachPress renders the filter form inside .teachpress_pub_list but
   OUTSIDE the template's own .jwg-publist wrapper, so scope to the outer
   class.)
--------------------------------------------------------------------------- */
/* One flex row: [search input] [year] [type] [Search], wrapping cleanly.
   The teachPress wrapper divs are flattened with display: contents so
   every control is a direct flex item with a uniform height. */
.teachpress_pub_list form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin: 0 0 20px;
}

.teachpress_pub_list .tp_search_input,
.teachpress_pub_list .teachpress_filter,
.teachpress_pub_list .teachpress_search_button {
	display: contents;
}

.teachpress_pub_list .teachpress_filter select,
.teachpress_pub_list .tp_search_input input[type="search"] {
	font-family: var(--jwg-mono);
	font-size: 0.8rem;
	letter-spacing: 0.02em;
	line-height: 1.4;
	color: var(--jwg-ink);
	background-color: var(--jwg-paper);
	border: 1px solid var(--jwg-line-strong);
	border-radius: var(--jwg-radius-sm);
	padding: 8px 10px;
	max-width: 100%;
	margin: 0;
}

/* Row order: [search] [Search] ......space...... [years] [types] */
.teachpress_pub_list .tp_search_input input[type="search"] {
	order: 1;
	flex: 0 1 300px;
}

.teachpress_pub_list .teachpress_filter select {
	flex: 0 1 auto;
}

.teachpress_pub_list select#yr {
	order: 3;
	margin-left: auto;
}

.teachpress_pub_list select#type {
	order: 4;
}

.teachpress_pub_list input.tp_search_button {
	order: 2;
	flex: 0 0 auto;
	font-family: var(--jwg-mono);
	font-size: 0.8rem;
	line-height: 1.4;
	padding: 8px 16px;
	margin: 0;
	border: 1px solid var(--jwg-teal-dark);
}

.teachpress_pub_list .teachpress_filter select:hover,
.teachpress_pub_list .tp_search_input input[type="search"]:hover {
	border-color: var(--jwg-teal-dark);
}

.teachpress_pub_list a.tp_delete_filter {
	order: 5;
	font-family: var(--jwg-mono);
	font-size: 0.8rem;
	color: var(--jwg-teal-dark);
}

/* Instant-filter feedback (inserted by publications-a11y.js) */
.teachpress_pub_list .jwg-filter-status {
	font-family: var(--jwg-mono);
	font-size: 0.8rem;
	color: var(--jwg-ink-muted);
	margin: 0 0 4px;
	min-height: 1.2em;
}

.teachpress_pub_list .jwg-filter-empty {
	margin: 16px 0;
	padding: 12px 16px;
	border: 1px solid var(--jwg-line);
	border-radius: var(--jwg-radius-sm);
	background: var(--jwg-paper-alt);
	color: var(--jwg-ink-muted);
	font-size: 0.9375rem;
}

/* ---------------------------------------------------------------------------
   Year group headings
--------------------------------------------------------------------------- */
.jwg-publist .jwg-pub-headline {
	font-size: 1.563rem;
	font-weight: 700;
	margin: 1.5em 0 0.25em;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--jwg-line);
	font-variant-numeric: tabular-nums;
}

.jwg-publist .jwg-pub-headline-sl {
	font-size: 1.25rem;
	font-weight: 650;
	margin: 1.2em 0 0.2em;
}

/* ---------------------------------------------------------------------------
   Publication rows
--------------------------------------------------------------------------- */
.jwg-publist .tp_publication {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	padding: 10px 0;
	border-top: 1px solid var(--jwg-line);
}

.jwg-publist .tp_publication:first-of-type,
.jwg-publist .jwg-pub-headline + .tp_publication,
.jwg-publist .jwg-pub-headline-sl + .tp_publication {
	border-top: none;
}

.jwg-publist .tp_pub_image_left {
	flex: 0 0 120px;
}

.jwg-publist .tp_pub_image_left img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--jwg-radius-sm);
	border: 1px solid var(--jwg-line);
	box-shadow: var(--jwg-shadow);
}

.jwg-publist .tp_pub_info {
	flex: 1;
	min-width: 0;
	overflow-wrap: break-word; /* long DOIs and BibTeX keys on narrow screens */
}

.jwg-publist .tp_pub_title {
	font-size: 1.0625rem;
	font-weight: 650;
	line-height: 1.3;
	color: var(--jwg-ink);
	margin: 0 0 2px;
}

.jwg-publist .tp_pub_title a,
.jwg-publist .tp_pub_title a.tp_title_link {
	color: var(--jwg-ink);
	text-decoration: none;
}

.jwg-publist .tp_pub_title a:hover,
.jwg-publist .tp_pub_title a.tp_title_link:hover {
	color: var(--jwg-teal-dark);
	text-decoration: underline;
}

.jwg-publist .tp_pub_author {
	font-size: 0.9375rem;
	line-height: 1.45;
	color: var(--jwg-ink-muted);
	margin: 0 0 2px;
}

.jwg-publist .tp_pub_author strong {
	color: var(--jwg-ink);
	font-weight: 600;
}

.jwg-publist .tp_pub_additional {
	font-size: 0.9375rem;
	line-height: 1.45;
	color: var(--jwg-ink-muted);
	margin: 0 0 5px;
}

.jwg-publist .tp_pub_type {
	font-family: var(--jwg-mono);
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	color: var(--jwg-teal-dark);
	margin-right: 6px;
}

.jwg-publist .jwg-pub-meta {
	font-family: var(--jwg-mono);
	font-size: 0.8rem;
	letter-spacing: 0.02em;
	color: var(--jwg-ink-muted);
}

.jwg-publist .jwg-pub-meta .tp_pub_additional_booktitle,
.jwg-publist .jwg-pub-meta .tp_pub_additional_journal {
	color: var(--jwg-teal-dark);
	letter-spacing: 0.06em;
}

/* Award and forthcoming badges (icon fonts are disabled; CSS glyph instead) */
.jwg-publist .tp_pub_label_award,
.jwg-publist .tp_pub_label_status {
	display: inline-block;
	font-family: var(--jwg-mono);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	color: #7a5b0f;
	background: rgba(185, 149, 74, 0.12);
	border: 1px solid #b9954a;
	border-radius: 999px;
	padding: 1px 10px;
	margin-left: 6px;
	vertical-align: 2px;
	white-space: nowrap;
}

.jwg-publist .tp_pub_label_award i::before {
	content: "\2606\00a0"; /* outline star (Honourable Mention); FA not loaded */
}

.jwg-publist .tp_pub_label_award i.fa-trophy::before {
	content: "\2605\00a0"; /* filled star for Best Paper */
}

.jwg-publist .tp_pub_label_award i {
	font-style: normal;
}

/* ---------------------------------------------------------------------------
   BibTeX / Abstract / Links row
--------------------------------------------------------------------------- */
.jwg-publist .tp_pub_menu {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.jwg-publist .tp_pub_menu a {
	font-family: var(--jwg-mono);
	font-size: 0.8rem;
	line-height: 1.4;
	color: var(--jwg-teal-dark);
	border: 1px solid var(--jwg-line);
	border-radius: var(--jwg-radius-sm);
	padding: 1px 10px;
	text-decoration: none;
	cursor: pointer;
}

.jwg-publist .tp_pub_menu a:hover {
	border-color: var(--jwg-teal-dark);
	background: var(--jwg-paper-alt);
	text-decoration: none;
}

/* ---------------------------------------------------------------------------
   Reveal containers (BibTeX, abstract, links)
--------------------------------------------------------------------------- */
.jwg-publist .tp_bibtex,
.jwg-publist .tp_abstract,
.jwg-publist .tp_links,
.jwg-publist .tp_comment {
	margin: 10px 0 0;
	border: 1px solid var(--jwg-line);
	border-radius: var(--jwg-radius-sm);
	background: var(--jwg-paper-alt);
	padding: 12px 16px;
	font-size: 0.9375rem;
}

.jwg-publist .tp_bibtex_entry pre {
	font-family: var(--jwg-mono);
	font-size: 0.8rem;
	line-height: 1.55;
	margin: 0;
	white-space: pre;
	overflow-x: auto;
	background: none;
	padding: 0;
}

/* teachPress emits both <br> and a real newline per BibTeX line; with
   white-space: pre the <br> would double-space everything. */
.jwg-publist .tp_bibtex_entry pre br {
	display: none;
}

.jwg-publist .tp_links ul.tp_pub_list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.jwg-publist .tp_links ul.tp_pub_list a {
	font-family: var(--jwg-mono);
	font-size: 0.8rem;
	color: var(--jwg-teal-dark);
	border: 1px solid var(--jwg-line);
	border-radius: var(--jwg-radius-sm);
	padding: 2px 10px;
	text-decoration: none;
	background: var(--jwg-paper);
}

.jwg-publist .tp_links ul.tp_pub_list a:hover {
	border-color: var(--jwg-teal-dark);
}

.jwg-publist .tp_abstract_entry {
	max-width: 68ch;
}

.jwg-publist .tp_close_menu {
	margin: 8px 0 0;
	text-align: right;
}

.jwg-publist .tp_close_menu a.tp_close {
	font-family: var(--jwg-mono);
	font-size: 0.75rem;
	color: var(--jwg-ink-muted);
	cursor: pointer;
}

.jwg-publist .tp_close_menu a.tp_close:hover {
	color: var(--jwg-teal-dark);
}

/* ---------------------------------------------------------------------------
   Desktop: resource links are shown directly, no "Links" toggle.
   Small screens keep the compact toggle behaviour.
--------------------------------------------------------------------------- */
@media (min-width: 641px) {
	.jwg-publist .tp_pub_menu a[onclick*="tp_links"] {
		display: none;
	}
	.jwg-publist .tp_pub_menu {
		display: inline-flex;
		margin-right: 8px;
		vertical-align: middle;
	}
	.jwg-publist .tp_links {
		display: inline-block !important;
		border: none;
		background: none;
		padding: 0;
		margin: 0;
		vertical-align: middle;
	}
	.jwg-publist .tp_links .tp_close_menu {
		display: none;
	}
}

/* ---------------------------------------------------------------------------
   Small screens
--------------------------------------------------------------------------- */
@media (max-width: 640px) {
	/* Thumbnails disappear on small phones; text-only compact rows. */
	.jwg-publist .tp_pub_image_left,
	.jwg-publist .tp_pub_image_right,
	.jwg-publist .tp_pub_image_bottom {
		display: none;
	}
	.teachpress_pub_list .teachpress_filter select,
	.teachpress_pub_list .tp_search_input input[type="search"],
	.teachpress_pub_list input.tp_search_button {
		width: 100%;
		flex-basis: 100%;
	}
	.teachpress_pub_list select#yr {
		margin-left: 0;
	}
}
