/*
 * Quick Submit – Issue & Article Lists
 * Inherits the theme's fonts and text colour; one accent colour (Settings) does the rest.
 */
.qsl {
	--qsl-accent: #1e3a5f;
	--qsl-turmeric: #b7791f;
	--qsl-radius: 6px;
	--qsl-muted: color-mix(in srgb, currentColor 64%, transparent);
	--qsl-line: color-mix(in srgb, currentColor 14%, transparent);
	--qsl-wash: color-mix(in srgb, var(--qsl-accent) 7%, transparent);
	position: relative;
	margin: 0 0 2em;
	line-height: 1.6;
}
.qsl *,
.qsl *::before,
.qsl *::after { box-sizing: border-box; }
.qsl ul,
.qsl ol { margin: 0; padding: 0; list-style: none; }
.qsl p { margin: 0; }
.qsl a { color: inherit; }
.qsl a:focus-visible,
.qsl summary:focus-visible,
.qsl button:focus-visible,
.qsl input:focus-visible,
.qsl select:focus-visible { outline: 2px solid var(--qsl-accent); outline-offset: 2px; }
.qsl .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.qsl-heading { margin: 0 0 .8em; }
.qsl-group-head { margin: 1.6em 0 .4em; font-size: 1.15em; }
.qsl-group:first-of-type .qsl-group-head,
.qsl > .qsl-group-head:first-child { margin-top: 0; }
.qsl-empty { padding: 1.2em; border: 1px dashed var(--qsl-line); border-radius: var(--qsl-radius); color: var(--qsl-muted); }

/* ------------------------------------------------------------------
 * Covers
 * ---------------------------------------------------------------- */
.qsl-cover { display: block; text-decoration: none; }
.qsl-cover-img,
.qsl-cover-made {
	display: block; width: 100%; aspect-ratio: 1 / 1.414; border-radius: calc(var(--qsl-radius) * .6);
	object-fit: cover; background: var(--qsl-wash);
	box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 8px 18px -12px rgba(0, 0, 0, .45);
}
.qsl-cover-made {
	--qsl-c: var(--qsl-accent);
	position: relative; overflow: hidden; container-type: inline-size;
	display: flex; flex-direction: column; padding: 9% 10% 10%;
	color: #fff; background-color: var(--qsl-c);
	line-height: 1.15;
}
.qsl-shade-1 { --qsl-c: color-mix(in srgb, var(--qsl-accent) 78%, #000); }
.qsl-shade-2 { --qsl-c: color-mix(in srgb, var(--qsl-accent) 80%, var(--qsl-turmeric)); }
.qsl-shade-3 { --qsl-c: color-mix(in srgb, var(--qsl-accent) 84%, #fff); }
/* Pulli kolam: the dot grid drawn before a kolam, fading up from the foot of the cover. */
.qsl-kolam .qsl-cover-made::after {
	content: ""; position: absolute; inset: 30% 0 0 38%; pointer-events: none;
	background-image: radial-gradient(circle, rgba(255, 255, 255, .55) 1.3px, transparent 1.9px);
	background-size: 14px 14px; background-position: right 7px bottom 7px;
	-webkit-mask-image: radial-gradient(circle at 100% 100%, #000 20%, transparent 78%);
	mask-image: radial-gradient(circle at 100% 100%, #000 20%, transparent 78%);
}
.qsl-cover-journal { position: relative; z-index: 1; font-size: max(.72rem, 7.5cqi); font-weight: 600; opacity: .92; }
.qsl-cover-vol { position: relative; z-index: 1; margin-top: auto; display: flex; flex-direction: column; }
.qsl-cover-vol-label { font-size: max(.7rem, 7cqi); opacity: .85; }
.qsl-cover-vol-num { font-size: 34cqi; font-weight: 700; letter-spacing: -.02em; line-height: .95; font-variant-numeric: lining-nums tabular-nums; }
.qsl-cover-no { position: relative; z-index: 1; margin-top: .25em; font-size: max(.8rem, 9cqi); font-weight: 600; }
.qsl-cover-year { position: relative; z-index: 1; margin-top: .9em; font-size: max(.68rem, 6.5cqi); opacity: .9; }

/* ------------------------------------------------------------------
 * Issues: grid and rows
 * ---------------------------------------------------------------- */
.qsl-issue-grid {
	display: grid; gap: 2em 1.5em;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 10.5rem), 1fr));
}
.qsl-issue-grid[style*="--qsl-cols"] { grid-template-columns: repeat(var(--qsl-cols), minmax(0, 1fr)); }
.qsl-issue-grid .qsl-issue { display: flex; flex-direction: column; gap: .8em; }
.qsl-issue-grid .qsl-issue-body { display: flex; flex-direction: column; gap: .2em; }
.qsl-issue-ident { margin: 0; font-size: 1em; line-height: 1.35; }
.qsl-issue-ident a { text-decoration: none; }
.qsl-issue-ident a:hover { text-decoration: underline; text-underline-offset: .2em; }
.qsl-issue-title { color: var(--qsl-muted); font-size: .92em; }
.qsl-issue-meta { display: flex; flex-wrap: wrap; gap: .1em 1em; color: var(--qsl-muted); font-size: .86em; font-variant-numeric: tabular-nums; }
.qsl-issue-desc { margin-top: .4em; max-width: 68ch; }
.qsl-issue.is-current .qsl-cover-img,
.qsl-issue.is-current .qsl-cover-made { outline: 3px solid var(--qsl-turmeric); outline-offset: 3px; }

.qsl-issue-rows .qsl-issue {
	display: grid; grid-template-columns: 6.5rem 1fr; gap: 1.25em; align-items: start;
	padding: 1.25em 0; border-bottom: 1px solid var(--qsl-line);
}
.qsl-issue-rows .qsl-issue:first-child { padding-top: 0; }
.qsl-issue-rows .qsl-issue-body { display: flex; flex-direction: column; gap: .3em; align-items: flex-start; }
.qsl-issue-rows .qsl-issue-ident { font-size: 1.15em; }
.qsl-issue-rows .qsl-issue:not(:has(.qsl-cover)) { grid-template-columns: 1fr; }

.qsl-badge {
	display: inline-block; width: fit-content; padding: .1em .55em; border-radius: 99px;
	font-size: .75em; font-weight: 600; line-height: 1.5;
	color: color-mix(in srgb, var(--qsl-turmeric) 70%, #000);
	background: color-mix(in srgb, var(--qsl-turmeric) 16%, transparent);
}
.qsl-badge--upcoming { color: var(--qsl-accent); background: var(--qsl-wash); }

.qsl-button,
.qsl-search-btn {
	display: inline-block; margin-top: .6em; padding: .45em 1em; border: 0; border-radius: var(--qsl-radius);
	background: var(--qsl-accent); color: #fff !important; font: inherit; font-size: .9em; font-weight: 600;
	line-height: 1.3; text-decoration: none; cursor: pointer;
}
.qsl-button:hover,
.qsl-search-btn:hover { background: color-mix(in srgb, var(--qsl-accent) 85%, #000); }

/* Archive: issues by year */
.qsl-archive { border-top: 1px solid var(--qsl-line); }
.qsl-archive-item {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: .2em 1em;
	padding: .6em 0; border-bottom: 1px solid var(--qsl-line);
}
.qsl-archive-link { font-weight: 600; text-decoration: none; }
.qsl-archive-link:hover { text-decoration: underline; text-underline-offset: .2em; }
.qsl-archive-title { flex: 1 1 14rem; }
.qsl-archive-count { margin-left: auto; color: var(--qsl-muted); font-size: .88em; font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------------
 * Tables
 * ---------------------------------------------------------------- */
.qsl-table-wrap { position: relative; overflow-x: auto; }
.qsl-table { width: 100%; border-collapse: collapse; font-size: .95em; }
.qsl-table th,
.qsl-table td { padding: .65em .75em .65em 0; border-bottom: 1px solid var(--qsl-line); text-align: left; vertical-align: top; }
.qsl-table thead th { color: var(--qsl-muted); font-size: .85em; font-weight: 600; border-bottom-width: 2px; }
.qsl-table .qsl-nowrap { white-space: nowrap; }
.qsl-table .qsl-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.qsl-table-group th { padding-top: 1.3em; font-size: 1em; color: inherit; }
.qsl-table .qsl-title-link { font-weight: 600; text-decoration: none; }
.qsl-table .qsl-title-link:hover { text-decoration: underline; }
.qsl-table .qsl-galleys { margin: 0; flex-wrap: nowrap; }

/* ------------------------------------------------------------------
 * Articles: table of contents and list
 * ---------------------------------------------------------------- */
.qsl-entries { border-top: 1px solid var(--qsl-line); }
.qsl-entries > .qsl-entry {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 1.5em;
	padding: 1em 0; border-bottom: 1px solid var(--qsl-line);
}
ol.qsl-entries { counter-reset: qsl; }
ol.qsl-entries > .qsl-entry { counter-increment: qsl; grid-template-columns: 2.2em minmax(0, 1fr) auto; }
ol.qsl-entries > .qsl-entry::before { content: counter(qsl); color: var(--qsl-muted); font-variant-numeric: tabular-nums; padding-top: .1em; }
.qsl-entry-main { display: flex; flex-direction: column; gap: .3em; min-width: 0; }
.qsl-entries--toc .qsl-entry-main { gap: .15em; }
.qsl-entries--toc > .qsl-entry { padding: .85em 0; }
.qsl-title { margin: 0; font-size: 1.05em; font-weight: 600; line-height: 1.45; }
.qsl-title-link { text-decoration: none; }
.qsl-title-link:hover { text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.qsl-subtitle { font-size: .95em; }
.qsl-alt-title { color: var(--qsl-muted); font-size: .93em; line-height: 1.45; }
.qsl-authors { color: var(--qsl-muted); font-size: .93em; }
.qsl-authors--full { display: flex; flex-direction: column; gap: .15em; color: inherit; }
.qsl-author-name { font-weight: 500; }
.qsl-affiliation { display: block; color: var(--qsl-muted); font-size: .9em; }
.qsl-orcid {
	display: inline-flex; align-items: center; justify-content: center; width: 1.15em; height: 1.15em;
	margin-left: .2em; border-radius: 50%; background: #a6ce39; color: #fff !important;
	font-size: .7em; font-weight: 700; text-decoration: none; vertical-align: .1em;
}
.qsl-entry-pages {
	padding-top: .15em; color: var(--qsl-muted); font-size: .9em;
	font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right;
}
.qsl-facts { display: flex; flex-wrap: wrap; gap: .15em 1.25em; margin: 0; font-size: .86em; }
.qsl-fact { display: flex; gap: .4em; }
.qsl-fact dt { color: var(--qsl-muted); }
.qsl-fact dd { margin: 0; font-variant-numeric: tabular-nums; }
.qsl-fact a { text-underline-offset: .15em; }

.qsl-galleys { display: flex; flex-wrap: wrap; gap: .4em; margin-top: .3em; }
.qsl-galley {
	display: inline-flex; align-items: center; gap: .3em; padding: .12em .6em .12em .45em;
	border: 1px solid color-mix(in srgb, var(--qsl-accent) 45%, transparent); border-radius: var(--qsl-radius);
	color: var(--qsl-accent) !important; font-size: .82em; font-weight: 600; line-height: 1.5;
	text-decoration: none; white-space: nowrap;
}
.qsl-galley:hover { background: var(--qsl-accent); border-color: var(--qsl-accent); color: #fff !important; }
.qsl-galley-icon { width: 1em; height: 1em; flex: none; }

.qsl-excerpt { max-width: 72ch; font-size: .95em; line-height: 1.7; }
.qsl-abstract { max-width: 72ch; font-size: .95em; }
.qsl-abstract > summary {
	display: inline-flex; align-items: center; gap: .4em; width: fit-content;
	color: var(--qsl-accent); font-size: .9em; font-weight: 600; cursor: pointer; list-style: none;
}
.qsl-abstract > summary::-webkit-details-marker { display: none; }
.qsl-abstract > summary::before {
	content: ""; width: .5em; height: .5em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(-45deg); transition: transform .15s ease;
}
.qsl-abstract[open] > summary::before { transform: rotate(45deg); }
.qsl-abstract-head { font-weight: 600; font-size: .9em; color: var(--qsl-muted); }
.qsl-abstract-text { margin-top: .5em; padding-left: .9em; border-left: 2px solid var(--qsl-wash); line-height: 1.75; }
.qsl-abstract-text p + p { margin-top: .6em; }
.qsl-keywords { display: flex; flex-wrap: wrap; align-items: baseline; gap: .3em; font-size: .85em; }
.qsl-keywords-head { color: var(--qsl-muted); margin-right: .2em; }
.qsl-keyword { padding: .05em .5em; border-radius: 99px; background: var(--qsl-wash); }

/* Compact list (sidebars, "latest articles") */
.qsl-compact > li { padding: .55em 0; border-bottom: 1px solid var(--qsl-line); }
.qsl-compact > li:last-child { border-bottom: 0; }
ol.qsl-compact { list-style: decimal; padding-left: 1.4em; }
.qsl-compact .qsl-title-link { font-weight: 600; line-height: 1.45; }
.qsl-compact-authors { display: block; color: var(--qsl-muted); font-size: .88em; }

/* Cards */
.qsl-cards {
	display: grid; gap: 1.25em;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
}
.qsl-cards[style*="--qsl-cols"] { grid-template-columns: repeat(var(--qsl-cols), minmax(0, 1fr)); }
.qsl-card {
	display: flex; flex-direction: column; overflow: hidden;
	border: 1px solid var(--qsl-line); border-radius: var(--qsl-radius);
}
.qsl-card-cover img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.qsl-card-body { display: flex; flex-direction: column; gap: .45em; flex: 1; padding: 1em 1.1em 1.1em; }
.qsl-card-section { color: var(--qsl-accent); font-size: .8em; font-weight: 600; }
.qsl-card .qsl-excerpt { font-size: .9em; line-height: 1.6; }
.qsl-card-foot { display: flex; flex-direction: column; gap: .4em; margin-top: auto; padding-top: .6em; }

/* ------------------------------------------------------------------
 * Issue on top of its table of contents
 * ---------------------------------------------------------------- */
.qsl-issue-head {
	display: grid; grid-template-columns: 8.5rem 1fr; gap: 1.5em; align-items: start;
	margin-bottom: 1.8em; padding-bottom: 1.5em; border-bottom: 2px solid var(--qsl-line);
}
.qsl-issue-head-text { display: flex; flex-direction: column; gap: .35em; align-items: flex-start; }
.qsl-issue-head-ident { margin: 0; font-size: 1.5em; line-height: 1.25; }
.qsl-issue-head-title { font-size: 1.05em; }

/* ------------------------------------------------------------------
 * Search and pages
 * ---------------------------------------------------------------- */
.qsl-search { display: flex; flex-wrap: wrap; align-items: stretch; gap: .5em; margin: 0 0 1.25em; }
.qsl-search label { display: flex; }
.qsl-search-text { flex: 1 1 100%; }
.qsl-search label:not(.qsl-search-text) { flex: 1 1 12rem; }
.qsl-search input[type="search"],
.qsl-search select {
	width: 100%; min-height: 2.5em; padding: .4em .7em; border: 1px solid var(--qsl-line);
	border-radius: var(--qsl-radius); background: transparent; color: inherit; font: inherit; font-size: .95em;
}
.qsl-search-btn { margin-top: 0; }
.qsl-search-clear { align-self: center; font-size: .9em; }
.qsl-results { margin: -.4em 0 1em; color: var(--qsl-muted); font-size: .9em; }

.qsl-pages { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5em 1em; margin-top: 1.6em; }
.qsl-page-link {
	padding: .4em .9em; border: 1px solid var(--qsl-line); border-radius: var(--qsl-radius);
	text-decoration: none; font-size: .92em;
}
.qsl-page-link:hover { border-color: var(--qsl-accent); color: var(--qsl-accent); }
.qsl-page-now { color: var(--qsl-muted); font-size: .9em; font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------------
 * Small screens
 * ---------------------------------------------------------------- */
@media (max-width: 600px) {
	.qsl-issue-grid,
	.qsl-issue-grid[style*="--qsl-cols"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5em 1em; }
	.qsl-cards[style*="--qsl-cols"] { grid-template-columns: minmax(0, 1fr); }
	.qsl-issue-rows .qsl-issue { grid-template-columns: 4.5rem 1fr; gap: 1em; }
	.qsl-issue-head { grid-template-columns: 5.5rem 1fr; gap: 1em; }
	.qsl-issue-head-ident { font-size: 1.25em; }
	.qsl-entries > .qsl-entry { grid-template-columns: minmax(0, 1fr); }
	ol.qsl-entries > .qsl-entry { grid-template-columns: 2em minmax(0, 1fr); }
	.qsl-entry-pages { grid-column: -2 / -1; text-align: left; padding-top: .3em; }
	.qsl-search label:not(.qsl-search-text) { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.qsl-abstract > summary::before { transition: none; }
}
@media print {
	.qsl-search, .qsl-pages, .qsl-galleys { display: none; }
}
