/**
 * Logline Engine front-end styles. Deliberately small and theme-neutral: the
 * plugin owns behaviour/layout of its own components, the theme owns chrome.
 * Uses CSS custom properties so a theme can retheme without overriding rules.
 *
 * @package PitchEngine
 */

.logline-single,
.logline-archive,
.logline-profile,
.logline-list-page,
.logline-tips-page {
	--le-gap: 1rem;
	/* Inherit the theme's brand accent when it sets one; otherwise fall back. */
	--le-accent: var(--brand-accent, #2563eb);
	--le-accent-contrast: var(--brand-accent-contrast, #fff);
	--le-border: var(--brand-border, #d9dde1);
	--le-muted: var(--brand-muted, #5a6472);
	max-width: 44rem;
	margin: 0 auto;
	padding: var(--le-gap);
}

/* Logline Doctor brand green (a "hospital" cue). --le-doctor is used for icons,
   outlines and text: a deep green in light, a brighter one in dark so it stays
   legible on the dark card. Filled buttons use the deep green + white directly
   (white reads on it in both themes). */
:root {
	--le-doctor: #157f5f;
	--le-doctor-fill: #157f5f;
	--le-doctor-fill-hover: #0f6349;
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) { --le-doctor: #3aad82; }
}

:root[data-theme="dark"] { --le-doctor: #3aad82; }

/* Vote control ---------------------------------------------------------- */
.logline-vote {
	flex: 0 0 auto;
}

.logline-vote-btn {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 0.15em;
	min-width: 3rem;
	padding: 0.4rem 0.5rem;
	border: 1px solid var(--le-border);
	border-radius: 8px;
	background: var(--brand-card, #fff);
	color: var(--le-muted);
	font: inherit;
	line-height: 1.1;
	text-decoration: none;
	cursor: pointer;
}

.logline-vote-btn .logline-vote-icon {
	font-size: 1.1em;
}

.logline-vote-btn .logline-vote-score {
	font-weight: 600;
	color: var(--brand-text, #16202b);
}

.logline-vote-btn:hover,
.logline-vote-btn:focus-visible {
	border-color: var(--le-accent);
	color: var(--le-accent);
}

.logline-vote-btn.is-voted {
	border-color: var(--le-accent);
	background: var(--le-accent);
	color: var(--le-accent-contrast);
}

.logline-vote-btn.is-voted .logline-vote-score {
	color: var(--le-accent-contrast);
}

.logline-vote-static {
	cursor: default;
}

/* Single logline -------------------------------------------------------- */
.logline-header {
	display: flex;
	gap: var(--le-gap);
	align-items: flex-start;
}

.logline-title {
	margin: 0 0 0.25rem;
	font-size: 1.5rem;
	line-height: 1.3;
}

.logline-byline {
	margin: 0;
	color: var(--le-muted);
	font-size: 0.9rem;
}

/* Author name links to the member's profile. Accent colour + hover underline
   so it clearly reads as clickable. */
.logline-author {
	color: var(--le-accent);
	font-weight: 600;
	text-decoration: none;
}

.logline-author:hover,
.logline-author:focus-visible {
	text-decoration: underline;
}

/* Authorless content: a plain, non-linked label. */
.logline-author.is-former {
	color: var(--le-muted);
	font-weight: 400;
}

.logline-review-own,
.logline-review-login,
.logline-review-closed {
	color: var(--le-muted);
	font-style: italic;
}

.logline-review-own-hint {
	margin: 0 0 0.75rem;
	color: var(--le-muted);
	font-size: 0.92rem;
}

/* "Improve instead of deleting" modal. */
.logline-modal-overlay {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	background: rgba(6, 12, 20, 0.6);
	/* The modal is appended to <body>, outside the plugin containers that scope
	   these tokens, so redeclare them here. */
	--le-accent: var(--brand-accent, #2563eb);
	--le-accent-contrast: var(--brand-accent-contrast, #fff);
	--le-border: var(--brand-border, #d9dde1);
	--le-muted: var(--brand-muted, #5a6472);
}

.logline-modal {
	max-width: 30rem;
	width: 100%;
	background: var(--brand-card, #fff);
	border: 1px solid var(--le-border);
	border-radius: var(--brand-radius, 12px);
	box-shadow: 0 20px 60px rgba(6, 12, 20, 0.4);
	padding: 1.5rem;
}

.logline-modal-title {
	margin: 0 0 0.5rem;
	font-size: 1.2rem;
}

.logline-modal-body {
	margin: 0 0 1.25rem;
	color: var(--le-muted);
}

.logline-modal-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
}

.logline-modal-delete {
	font: inherit;
	font-weight: 600;
	background: transparent;
	border: 0;
	color: var(--brand-accent-2, #68a6c6);
	cursor: pointer;
	padding: 0.5rem;
	text-decoration: underline;
}

.logline-modal-delete:hover {
	color: var(--brand-accent-2-hover, #7ab4d2);
}

/* Styled confirm dialog (replaces native window.confirm). Uses the modal shell
   above; the confirm button reads as destructive, actions align right. */
.logline-confirm .logline-modal-actions {
	justify-content: flex-end;
}

.logline-confirm-ok {
	font: inherit;
	font-size: 0.85rem;
	font-weight: 700;
	color: #fff;
	background: #b3261e;
	border: 1px solid #b3261e;
	border-radius: 8px;
	padding: 0.4rem 0.95rem;
	cursor: pointer;
}

.logline-confirm-ok:hover,
.logline-confirm-ok:focus-visible {
	background: #8f1d17;
	border-color: #8f1d17;
	color: #fff;
}

/* "Review now" CTA — sits at the bottom-right of the logline card. */
.logline-card-review {
	margin: 0.6rem 0 0;
	text-align: right;
}

.logline-review-now {
	display: inline-block;
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: none;
	padding: 0.35rem 0.85rem;
	border-radius: 999px;
	/* Magenta — the site's call-to-action colour (post + review). Fixed hex, NOT
	   the theme accent token, so it stays the exact same magenta in dark mode. */
	background: #68a6c6;
	color: #fff;
}

.logline-review-now:hover,
.logline-review-now:focus-visible {
	background: #7ab4d2;
	color: #fff;
}

/* Author actions (edit / close / delete) + inline edit form. */
.logline-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 1.25rem 0;
	padding-top: 1rem;
	border-top: 1px solid var(--le-border);
}

.logline-action {
	font: inherit;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--le-muted);
	background: transparent;
	border: 1px solid var(--le-border);
	border-radius: 8px;
	padding: 0.35rem 0.8rem;
	cursor: pointer;
}

.logline-action:hover {
	color: var(--le-accent);
	border-color: var(--le-accent);
}

.logline-delete-btn:hover {
	color: #b3261e;
	border-color: #b3261e;
}

/* Follow / favourite bar. */
.logline-social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 1.25rem 0;
}

.logline-social-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	padding: 0.4rem 0.9rem;
	border: 1px solid var(--le-border);
	border-radius: 999px;
	background: var(--brand-card, #fff);
	color: var(--le-muted);
	cursor: pointer;
}

.logline-social-btn[aria-pressed="true"] {
	border-color: var(--le-accent);
	color: var(--le-accent);
}

.logline-favorite-btn[aria-pressed="true"] {
	color: var(--brand-accent-2, #68a6c6);
	border-color: var(--brand-accent-2, #68a6c6);
}

.logline-social-btn .lbl-on {
	display: none;
}

.logline-social-btn[aria-pressed="true"] .lbl-off {
	display: none;
}

.logline-social-btn[aria-pressed="true"] .lbl-on {
	display: inline;
}

.logline-follow-count:not(:empty) {
	margin-left: 0.15rem;
	font-variant-numeric: tabular-nums;
	opacity: 0.8;
}

.logline-social-login {
	color: var(--le-muted);
	margin: 1.25rem 0;
}

/* Follow control on the member profile header. */
.profile-follow {
	margin: 0.85rem 0 0;
}

.profile-follower-count {
	color: var(--le-muted);
}

.logline-edit-form {
	margin: 0 0 1.5rem;
}

.logline-edit-form textarea,
.logline-edit-form input[type="text"] {
	width: 100%;
	padding: 0.6rem;
	border: 1px solid var(--le-border);
	border-radius: 8px;
	font: inherit;
	box-sizing: border-box;
}

.logline-edit-cancel {
	font: inherit;
	background: transparent;
	border: 0;
	color: var(--le-muted);
	text-decoration: underline;
	cursor: pointer;
}

.logline-byline time::before,
.logline-views::before {
	content: " · ";
}

.logline-level {
	font-weight: 700;
}

/* The level links to the members at that level; keep its level colour and add
   a hover underline so it reads as clickable. */
.logline-level-link {
	text-decoration: none;
}

.logline-level-link:hover,
.logline-level-link:focus-visible {
	text-decoration: underline;
}

/* Per-level colours, tuned to stay legible (bold text) on both the light and
   the dark background — the raw brand level colours (e.g. Singularity #000,
   Summitry #bababa) fail on one background or the other. */
.logline-level--penpusher   { color: #3e7391; }
.logline-level--logliner    { color: #157f5f; }
.logline-level--samurai     { color: #9a6100; }
.logline-level--mentor      { color: #68a6c6; }
.logline-level--overlord    { color: #3f77a8; }
.logline-level--summitry    { color: #5f6b78; }
.logline-level--singularity { color: #16202b; }

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .logline-level--penpusher   { color: #7cb3d6; }
	:root:not([data-theme="light"]) .logline-level--logliner    { color: #45c79c; }
	:root:not([data-theme="light"]) .logline-level--samurai     { color: #e0a437; }
	:root:not([data-theme="light"]) .logline-level--mentor      { color: #ef6fa6; }
	:root:not([data-theme="light"]) .logline-level--overlord    { color: #82b2da; }
	:root:not([data-theme="light"]) .logline-level--summitry    { color: #aab6c2; }
	:root:not([data-theme="light"]) .logline-level--singularity { color: #dfe7ee; }
}

:root[data-theme="dark"] .logline-level--penpusher   { color: #7cb3d6; }
:root[data-theme="dark"] .logline-level--logliner    { color: #45c79c; }
:root[data-theme="dark"] .logline-level--samurai     { color: #e0a437; }
:root[data-theme="dark"] .logline-level--mentor      { color: #ef6fa6; }
:root[data-theme="dark"] .logline-level--overlord    { color: #82b2da; }
:root[data-theme="dark"] .logline-level--summitry    { color: #aab6c2; }
:root[data-theme="dark"] .logline-level--singularity { color: #dfe7ee; }

.logline-body {
	margin: var(--le-gap) 0 2rem;
}

/* Category row with a flush-right "More details" disclosure. The optional
   synopsis stays collapsed and expands full-width below the row, so the first
   review sits high on the page. */
.logline-subhead {
	position: relative;
	margin: var(--le-gap) 0 1.5rem;
	min-height: 1.6em;
}

.logline-subhead .logline-categories {
	margin: 0;
	padding-right: 8rem; /* clear the flush-right toggle */
}

.logline-details {
	margin: 0;
}

.logline-details-toggle {
	position: absolute;
	top: 0;
	right: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	cursor: pointer;
	font-weight: 600;
	color: var(--le-accent);
	list-style: none;
}

/* Hide the native disclosure triangle; use our own caret. */
.logline-details-toggle::-webkit-details-marker {
	display: none;
}

.logline-details-toggle::before {
	content: "\25B8"; /* ▸ */
	display: inline-block;
	transition: transform 0.15s ease;
}

.logline-details[open] > .logline-details-toggle::before {
	transform: rotate(90deg);
}

/* Label swaps "More details" -> "Hide" on open (CSS only, no JS). */
.logline-details-less {
	display: none;
}

.logline-details[open] .logline-details-more {
	display: none;
}

.logline-details[open] .logline-details-less {
	display: inline;
}

.logline-details > .logline-body {
	margin-top: 0.75rem;
}

/* When a logline has details but no category, the disclosure is the first row
   item, so reserve the toggle's line with padding (padding doesn't collapse the
   way a margin would) — otherwise the flush-right toggle overlaps the synopsis. */
.logline-subhead > .logline-details:first-child {
	padding-top: 1.9rem;
}

/* Reviews --------------------------------------------------------------- */
.logline-reviews h2 {
	padding-bottom: 0.4rem;
	border-bottom: 2px solid var(--le-border);
}

.logline-review {
	display: flex;
	gap: var(--le-gap);
	padding: var(--le-gap) 0;
	border-bottom: 1px solid var(--le-border);
}

.logline-review.is-accepted {
	/* Translucent green tint so it reads on both light and dark backgrounds. */
	background: rgba(30, 175, 136, 0.12);
	border-left: 3px solid #1eaf88;
	padding-left: 0.75rem;
}

/* A deep-linked review (arrived via ?r=<id>#review-<id>): briefly highlight it
   so, however far down the list it sits, it's obvious which one was meant. */
.logline-review:target {
	background: var(--le-surface-2, rgba(72, 128, 160, 0.1));
	border-left: 3px solid var(--le-accent, #3e7391);
	padding-left: 0.75rem;
	scroll-margin-top: 5rem;
	animation: logline-review-flash 1.6s ease-out 1;
}

@keyframes logline-review-flash {
	0%, 40% { background: var(--le-surface-2, rgba(72, 128, 160, 0.22)); }
	100% { background: var(--le-surface-2, rgba(72, 128, 160, 0.1)); }
}

.logline-review-main {
	flex: 1 1 auto;
	min-width: 0;
}

.logline-review-meta {
	margin-bottom: 0.4rem;
	color: var(--le-muted);
	font-size: 0.85rem;
}

.logline-review-meta time::before {
	content: " · ";
}

.logline-accepted-badge {
	margin-left: 0.4rem;
	color: #1a8a68;
	font-weight: 700;
}

.logline-review-body {
	overflow-wrap: break-word;
}

.logline-accept-btn {
	margin-top: 0.5rem;
	padding: 0.3rem 0.7rem;
	border: 1px solid var(--le-border);
	border-radius: 6px;
	background: var(--brand-card, #fff);
	color: inherit;
	font: inherit;
	font-size: 0.85rem;
	cursor: pointer;
}

.logline-accept-btn.is-accepted {
	border-color: #1eaf88;
	color: #1a8a68;
	font-weight: 700;
}

/* The accepted greens are legible on white; lighten them for the dark surface. */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .logline-accepted-badge,
	:root:not([data-theme="light"]) .logline-accept-btn.is-accepted {
		color: #45c79c;
	}
}

:root[data-theme="dark"] .logline-accepted-badge,
:root[data-theme="dark"] .logline-accept-btn.is-accepted {
	color: #45c79c;
}

/* Review form ----------------------------------------------------------- */
.logline-review-form {
	margin-top: 1.5rem;
}

/* Collapsed "Write a review" prompt. Hidden by default (no-JS shows the full
   form); JS adds .is-collapsed to swap the fields for the one-line prompt, which
   looks like an empty text box inviting a click. */
.logline-review-prompt {
	display: none;
}

.logline-review-form.is-collapsed .logline-review-fields {
	display: none;
}

.logline-review-form.is-collapsed .logline-review-prompt {
	display: block;
	width: 100%;
	text-align: left;
	padding: 0.8rem 1rem;
	border: 1px solid var(--le-border);
	border-radius: 10px;
	background: var(--brand-card, #fff);
	color: var(--le-muted);
	font: inherit;
	cursor: text;
}

.logline-review-form.is-collapsed .logline-review-prompt:hover,
.logline-review-form.is-collapsed .logline-review-prompt:focus-visible {
	border-color: var(--le-accent);
	color: var(--brand-text, #16202b);
}

.logline-form-field label {
	display: block;
	margin-bottom: 0.3rem;
	font-weight: 600;
}

.logline-review-form textarea {
	width: 100%;
	padding: 0.6rem;
	border: 1px solid var(--le-border);
	border-radius: 8px;
	font: inherit;
	box-sizing: border-box;
}

.logline-submit-btn {
	padding: 0.55rem 1.1rem;
	border: 0;
	border-radius: 8px;
	background: var(--le-accent);
	color: var(--le-accent-contrast);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.logline-submit-btn:disabled {
	opacity: 0.6;
	cursor: progress;
}

.logline-form-status {
	margin-left: 0.6rem;
	color: #b3261e;
}

.logline-form-status.logline-form-error {
	font-weight: 600;
}

/* Post-a-logline form --------------------------------------------------- */
.logline-submit-intro {
	color: var(--le-muted);
	margin: 0 0 1.5rem;
}

.logline-submit-form {
	max-width: 42rem;
}

.logline-submit-form textarea {
	width: 100%;
	padding: 0.6rem;
	border: 1px solid var(--le-border);
	border-radius: 8px;
	font: inherit;
	box-sizing: border-box;
}

.logline-contact-form input[type="text"],
.logline-contact-form input[type="email"] {
	width: 100%;
	max-width: 28rem;
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--le-border);
	border-radius: 8px;
	font: inherit;
	box-sizing: border-box;
}

.logline-submit-authcta {
	display: flex;
	gap: 0.75rem;
	align-items: center;
}

/* Archive --------------------------------------------------------------- */
.logline-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.logline-list-item {
	display: flex;
	gap: var(--le-gap);
	align-items: baseline;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--le-border);
}

/* Fill the row so the bottom-right "Review now" pill reaches the card edge. */
.logline-list-main {
	flex: 1 1 auto;
	min-width: 0;
}

.logline-list-score {
	flex: 0 0 auto;
	min-width: 3rem;
	color: var(--le-muted);
	font-weight: 600;
	text-align: right;
}

/* A logline with no votes/reviews yet: recede the score, and phrase the
   review count as a gentle invitation instead of a stark "0". */
.logline-list-score.is-quiet {
	opacity: 0.4;
	font-weight: 400;
}

.logline-meta-quiet {
	font-style: italic;
}

.logline-list-title {
	margin: 0 0 0.2rem;
	font-size: 1.1rem;
	line-height: 1.35;
}

.logline-list-meta {
	margin: 0;
	color: var(--le-muted);
	font-size: 0.85rem;
}

.logline-pagination {
	margin-top: 1.5rem;
}

.logline-pagination .page-numbers {
	padding: 0.3rem 0.6rem;
	margin-right: 0.25rem;
	border: 1px solid var(--le-border);
	border-radius: 6px;
	text-decoration: none;
}

.logline-pagination .page-numbers.current {
	background: var(--le-accent);
	color: var(--le-accent-contrast);
	border-color: var(--le-accent);
}

/* Archive header: title + jump-to-year, and the load-more button. */
.logline-archive-header {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.logline-archive-header h1 {
	margin: 0;
}

.logline-yearjump {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9rem;
}

.logline-yearjump label {
	color: var(--le-muted);
	font-weight: 600;
}

.logline-yearjump select {
	padding: 0.35rem 0.5rem;
	border: 1px solid var(--le-border);
	border-radius: 8px;
	font: inherit;
	background: var(--brand-bg, #fff);
	color: inherit;
}

.logline-loadmore-wrap {
	margin-top: 1.5rem;
	text-align: center;
}

.logline-loadmore {
	font: inherit;
	font-weight: 600;
	padding: 0.6rem 1.5rem;
	border: 1px solid var(--le-border);
	border-radius: 999px;
	background: transparent;
	color: var(--le-accent);
	cursor: pointer;
}

.logline-loadmore:hover {
	border-color: var(--le-accent);
	background: color-mix(in srgb, var(--le-accent) 8%, transparent);
}

.logline-loadmore:disabled {
	opacity: 0.6;
	cursor: progress;
}

/* Reviews / Members list pages ----------------------------------------- */
.logline-list-header {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
	border-bottom: 2px solid var(--le-border);
	padding-bottom: 0.4rem;
	margin-bottom: 1rem;
}

.logline-list-header h1 {
	margin: 0;
	font-size: 1.5rem;
}

.logline-list-count {
	margin: 0;
	color: var(--le-muted);
	font-variant-numeric: tabular-nums;
}

.review-list,
.member-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.review-list-item {
	position: relative;
	padding: 0.9rem 0.75rem;
	border-bottom: 1px solid var(--le-border);
	border-radius: 6px;
	transition: background-color 0.12s ease;
}

/* Whole item is clickable (the review, not the logline): the link is stretched
   over the card, while the byline's profile link stays clickable above it. */
.review-list-item:hover,
.review-list-item:focus-within {
	background: var(--le-surface-2, rgba(127, 127, 127, 0.08));
}

.review-list-item.is-accepted {
	border-left: 3px solid var(--le-accent-2, #68a6c6);
	padding-left: 0.75rem;
}

.review-list-meta {
	position: relative;
	z-index: 1;
	margin: 0 0 0.35rem;
	font-size: 0.85rem;
	color: var(--le-muted);
}

/* Keep the author link (inside the byline) clickable above the stretched link. */
.review-list-meta a {
	position: relative;
	z-index: 2;
}

.review-list-on {
	font-weight: 600;
}

/* Raised above the stretched .review-list-link overlay so the title stays
   independently clickable (middle-click / open-in-new-tab). */
.review-list-on-link {
	position: relative;
	z-index: 1;
	color: inherit;
	text-decoration: none;
}

.review-list-on-link:hover,
.review-list-on-link:focus-visible {
	text-decoration: underline;
}

.review-list-meta time::before {
	content: " · ";
}

.review-list-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.review-list-link::after {
	content: "";
	position: absolute;
	inset: 0;
}

.review-list-body {
	display: block;
	overflow-wrap: break-word;
}

/* Members list controls: level dropdown + sort caret. */
.logline-list-controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	margin: 0.75rem 0 0.25rem;
}

.member-filter {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	font-size: 0.9rem;
	color: var(--le-muted);
}

.member-filter select {
	font: inherit;
	padding: 0.3rem 0.5rem;
	border: 1px solid var(--le-border);
	border-radius: 8px;
	background: var(--brand-card, #fff);
	color: inherit;
}

.member-sort {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--le-accent);
	text-decoration: none;
}

.member-sort:hover,
.member-sort:focus-visible {
	text-decoration: underline;
}

.member-sort-caret {
	font-size: 0.75rem;
}

.member-card {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--le-border);
}

/* Content fills the row; the follow button sits top-right, admin actions drop
   to their own row — so there's no dead gap for standard viewers. */
.member-main {
	flex: 1 1 auto;
	min-width: 0;
}

.member-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.member-identity {
	min-width: 0;
}

.member-admin-actions {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin-top: 0.5rem;
}

.member-avatar {
	flex: 0 0 auto;
	line-height: 0;
}

.member-avatar img {
	border-radius: 50%;
}

.member-main {
	min-width: 0;
}

.member-name {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.2;
}

.member-rep {
	margin: 0.2rem 0 0;
	font-size: 0.85rem;
	color: var(--le-muted);
}

.member-meta {
	margin: 0.3rem 0 0;
	font-size: 0.85rem;
	color: var(--le-muted);
}

.member-count {
	color: var(--le-muted);
}

.member-count + .member-count::before {
	content: " · ";
	color: var(--le-muted);
}

/* Profile --------------------------------------------------------------- */
.profile-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	border-bottom: 2px solid var(--le-border);
	margin-bottom: 1.25rem;
}

.profile-tab {
	font: inherit;
	font-weight: 600;
	color: var(--le-muted);
	background: transparent;
	border: 0;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	padding: 0.6rem 0.9rem;
	cursor: pointer;
}

.profile-tab[aria-selected="true"] {
	color: inherit;
	border-bottom-color: var(--le-accent);
}

.profile-tab-count {
	color: var(--le-muted);
	font-weight: 400;
	font-variant-numeric: tabular-nums;
}

.profile-panel {
	margin-bottom: 1rem;
}

.profile-header {
	display: flex;
	gap: var(--le-gap);
	align-items: flex-start;
	padding-bottom: 1.25rem;
	margin-bottom: 1.5rem;
	border-bottom: 2px solid var(--le-border);
}

.profile-avatar-img {
	border-radius: 50%;
}

.profile-name {
	margin: 0 0 0.25rem;
	font-size: 1.6rem;
	line-height: 1.2;
}

.profile-rep {
	margin: 0 0 0.35rem;
	font-size: 1.05rem;
}

.profile-level {
	font-weight: 700;
}

.profile-next-level {
	margin: 0 0 0.5rem;
	color: var(--le-muted);
	font-size: 0.9rem;
}

.profile-stats {
	display: flex;
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--le-muted);
	font-size: 0.9rem;
}

.badge-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

.badge-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.25rem 0.7rem;
	border: 1px solid var(--le-border);
	border-radius: 999px;
	font-size: 0.85rem;
}

.badge-dot {
	width: 0.7em;
	height: 0.7em;
	border-radius: 50%;
	background: var(--le-muted);
}

.logline-profile section {
	margin-bottom: 2rem;
}

.logline-profile h2 {
	padding-bottom: 0.4rem;
	border-bottom: 1px solid var(--le-border);
}

.profile-review-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.profile-review-item {
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--le-border);
}

.profile-review-on {
	margin: 0 0 0.3rem;
	color: var(--le-muted);
	font-size: 0.9rem;
}

.profile-review-excerpt {
	overflow-wrap: break-word;
}

.logline-empty {
	color: var(--le-muted);
}

@media (max-width: 480px) {
	.logline-title {
		font-size: 1.25rem;
	}

	.profile-header {
		flex-direction: column;
	}
}

/* Swipe feed (Phase 2) -------------------------------------------------- */
.swipe-feed {
	/* Self-contained tokens so the feed works wherever it is dropped (e.g. the
	   theme's mobile home) without needing the .logline-list-page scope. */
	--le-accent: var(--brand-accent, #2563eb);
	--le-accent-contrast: var(--brand-accent-contrast, #fff);
	--le-border: var(--brand-border, #d9dde1);
	--le-muted: var(--brand-muted, #5a6472);
	max-width: 30rem;
	margin: 0 auto;
}

.swipe-stack {
	position: relative;
	/* Height is set by swipe.js to fit the top card's full logline; this is the
	   pre-JS / short-card floor. */
	min-height: 15rem;
	margin: 1.25rem 0 1.5rem;
}

.swipe-card {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.5rem;
	background: var(--brand-card, #ffffff);
	border: 1px solid var(--le-border);
	border-radius: 16px;
	box-shadow: 0 8px 30px rgba(16, 32, 43, 0.12);
	transition: transform 0.28s ease, opacity 0.28s ease;
	will-change: transform;
	touch-action: pan-y;
	user-select: none;
	overflow: hidden;
}

.swipe-card.is-top {
	cursor: grab;
}

.swipe-card.is-dragging {
	transition: none;
	cursor: grabbing;
}

.swipe-card.is-gone {
	opacity: 0;
}

.swipe-card.is-gone-right {
	transform: translate(140%, 0) rotate(18deg) !important;
}

.swipe-card.is-gone-left {
	transform: translate(-140%, 0) rotate(-18deg) !important;
}

/* Drag-direction hint badges. */
.swipe-card::after {
	position: absolute;
	top: 1.1rem;
	padding: 0.15rem 0.6rem;
	border: 2px solid currentColor;
	border-radius: 8px;
	font-weight: 800;
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	opacity: 0;
	transition: opacity 0.12s ease;
}

.swipe-card.is-like::after {
	content: "LIKE";
	right: 1.1rem;
	color: var(--brand-accent-2, #68a6c6);
	opacity: 1;
}

.swipe-card.is-pass::after {
	content: "PASS";
	left: 1.1rem;
	color: var(--le-muted);
	opacity: 1;
}

.swipe-card-kicker {
	margin: 0;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--le-muted);
}

.swipe-card-logline {
	margin: 0.4rem 0 0;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.3;
	overflow-wrap: break-word;
}

.swipe-card-byline {
	margin: 0.6rem 0 0;
	font-size: 0.9rem;
	color: var(--le-muted);
}

.swipe-card-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin: 0;
	font-size: 0.85rem;
	color: var(--le-muted);
}

.swipe-card-hint {
	margin-left: auto;
	font-style: italic;
}

.swipe-controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
}

.swipe-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 1px solid var(--le-border);
	background: var(--brand-card, #ffffff);
	color: var(--le-muted);
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
	transition: border-color 0.12s ease, color 0.12s ease, transform 0.12s ease;
}

.swipe-btn:hover {
	transform: translateY(-1px);
}

.swipe-pass:hover,
.swipe-pass:focus-visible {
	color: #b3261e;
	border-color: #b3261e;
}

.swipe-like {
	color: var(--brand-accent-2, #68a6c6);
}

.swipe-like:hover,
.swipe-like:focus-visible {
	border-color: var(--brand-accent-2, #68a6c6);
}

.swipe-undo {
	width: 44px;
	height: 44px;
	font-size: 1.1rem;
}

.swipe-cap {
	margin: 1rem 0 0;
	text-align: center;
	font-size: 0.85rem;
	color: var(--le-muted);
	font-variant-numeric: tabular-nums;
}

.swipe-hint {
	margin: 0.35rem 0 0;
	text-align: center;
	font-size: 0.8rem;
	color: var(--le-muted);
}

.swipe-empty {
	text-align: center;
	color: var(--le-muted);
	padding: 3rem 1rem;
}

.swipe-guest-note {
	margin: 0 auto 1rem;
	max-width: 30rem;
	text-align: center;
	color: var(--le-muted);
	font-size: 0.9rem;
}

.swipe-guest-login {
	font: inherit;
	background: none;
	border: 0;
	padding: 0;
	color: var(--le-accent);
	text-decoration: underline;
	cursor: pointer;
}

/* Swipe ⇄ Scroll mode toggle + back-to-swipe (use --brand-* so they work in the
   theme home feed, outside the plugin's --le-* token scope). */
.swipe-modes {
	max-width: 30rem;
	margin: 0 auto 0.5rem;
	text-align: right;
}

.swipe-mode-link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--brand-accent, #3e7391);
	text-decoration: none;
	border: 1px solid var(--brand-border, #e2e6ea);
	border-radius: 999px;
	padding: 0.3rem 0.8rem;
	background: var(--brand-card, #fff);
}

.swipe-mode-link:hover,
.swipe-mode-link:focus-visible {
	border-color: var(--brand-accent, #3e7391);
}

/* The archive's "Swipe instead" link is mobile-only (swiping is the mobile
   experience). */
.swipe-mode-mobile {
	display: none;
}

@media ( max-width: 768px ) {
	.swipe-mode-mobile {
		display: inline-flex;
	}
}

.logline-back-swipe {
	margin: 0 0 1rem;
}

.logline-back-swipe a {
	font-weight: 600;
	text-decoration: none;
}

.logline-back-swipe a:hover,
.logline-back-swipe a:focus-visible {
	text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
	.swipe-card {
		transition: opacity 0.2s ease;
	}
}

/* Logline Generator wizard (guided "Post your logline"). ------------------ */
.logline-gen-cta {
	margin: 0 0 1.25rem;
}

.logline-gen-toggle {
	/* Amber/orange accent — the same colour as the ✨ glyph, so the border and
	   the icon read as one. Brightens to yellow on dark where the deep amber
	   would be muddy. */
	--gen-accent: #b45309;
	font: inherit;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	text-align: left;
	cursor: pointer;
	padding: 0.9rem 1.15rem;
	border: 2px solid var(--gen-accent);
	border-radius: var(--brand-radius, 10px);
	background: var(--brand-card, #fff);
}

.logline-gen-toggle-text {
	min-width: 0;
}

/* The chevron signals the panel expands on click. It flips when open. */
.logline-gen-chevron {
	flex: 0 0 auto;
	display: inline-flex;
	color: var(--gen-accent);
	transition: transform 0.2s ease;
}

.logline-gen-toggle[aria-expanded="true"] .logline-gen-chevron {
	transform: rotate(180deg);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .logline-gen-toggle {
		--gen-accent: #fbbf24;
	}
}

:root[data-theme="dark"] .logline-gen-toggle {
	--gen-accent: #fbbf24;
}

.logline-gen-toggle:hover,
.logline-gen-toggle:focus-visible {
	background: var(--brand-surface, #f6f8fa);
}

.logline-gen-toggle-label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 800;
	font-size: 1.3rem;
	line-height: 1.2;
	color: var(--gen-accent);
}

.logline-gen-glyph {
	flex: 0 0 auto;
	color: var(--gen-accent);
}

.logline-gen-toggle-sub {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.92rem;
	color: var(--le-muted);
}

/* Equal height for the two post fields, so they read as balanced. */
.logline-submit-form textarea {
	min-height: 8rem;
}

/* The optional "more plot details" field is secondary — a third shorter than
   the logline field so it doesn't dominate the form. */
#logline-new-content {
	min-height: 5.3rem;
}

.logline-gen {
	margin: 0 0 1.75rem;
	padding: 1.25rem;
	border: 1px solid var(--le-border);
	border-radius: var(--brand-radius, 10px);
	background: var(--brand-card, #fff);
}

.logline-gen-question {
	display: block;
	font-weight: 700;
	font-size: 1.1rem;
	line-height: 1.35;
	margin: 0 0 0.35rem;
}

.logline-gen-req {
	color: var(--brand-accent-2, #68a6c6);
}

.logline-gen-help {
	margin: 0 0 0.75rem;
	color: var(--le-muted);
	font-size: 0.9rem;
}

.logline-gen-input {
	width: 100%;
	padding: 0.6rem 0.7rem;
	border: 1px solid var(--le-border);
	border-radius: var(--brand-radius, 10px);
	font: inherit;
	box-sizing: border-box;
}

.logline-gen-input.has-error {
	border-color: var(--brand-accent-2, #68a6c6);
	outline: 1px solid var(--brand-accent-2, #68a6c6);
}

.logline-gen-nav {
	display: flex;
	gap: 0.5rem;
	margin-top: 1rem;
	flex-wrap: wrap;
}

.logline-gen-btn {
	font: inherit;
	font-weight: 600;
	padding: 0.45rem 1rem;
	border-radius: var(--brand-radius, 10px);
	border: 1px solid var(--le-border);
	background: transparent;
	color: var(--le-text, inherit);
	cursor: pointer;
}

.logline-gen-next,
.logline-gen-use {
	margin-left: auto;
}

/* Form actions row: lay out the submit button, any hand-off link and the status
   in a line with comfortable spacing (wraps on narrow screens). */
.logline-form-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem 1rem;
}

/* Post-your-logline flow reads left → right: check it in the Doctor first, then
   Post logline flushed to the right edge. */
.logline-submit-page .logline-form-actions .logline-submit-btn {
	margin-left: auto;
}

/* Post-form hand-off to the Logline Doctor — a secondary "pill" button with a
   little breathing room from Post logline, and a stethoscope for identity. */
.logline-post-doctor {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.45rem 1.05rem;
	border: 1px solid var(--le-doctor);
	border-radius: 999px;
	color: var(--le-doctor);
	background: transparent;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.12s ease, color 0.12s ease;
}

/* Stethoscope icon drawn in currentColor, so it always matches the link colour
   (accent) in both light and dark — an emoji glyph doesn't recolour reliably. */
.logline-post-doctor-icon {
	flex: 0 0 auto;
	width: 1.15em;
	height: 1.15em;
}

.logline-post-doctor:hover,
.logline-post-doctor:focus-visible {
	background: var(--le-doctor-fill);
	border-color: var(--le-doctor-fill);
	color: #fff;
	text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {
	.logline-post-doctor { transition: none; }
}

/* Hand-off link to the Logline Doctor (an <a> styled as a secondary button). */
.logline-gen-doctor {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: var(--le-doctor);
	border-color: var(--le-doctor);
}

.logline-gen-doctor:hover {
	background: var(--le-doctor-fill);
	border-color: var(--le-doctor-fill);
	color: #fff;
}

.logline-gen-final {
	font-size: 1.2rem;
	line-height: 1.5;
	font-weight: 600;
	margin: 0 0 0.75rem;
}

.logline-gen-note {
	color: var(--le-muted);
	font-size: 0.9rem;
	margin: 0 0 0.5rem;
}

/* Tips page (/tips/) ------------------------------------------------------ */
.logline-tips-page {
	max-width: 46rem;
}

/* Stack the header (the long title shouldn't sit beside the intro). */
.logline-tips-page .logline-list-header {
	display: block;
}

.logline-tips-page .logline-list-header h1 {
	margin-bottom: 0.5rem;
}

.logline-tips-toc {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 0.9rem;
	list-style: none;
	margin: 0 0 2rem;
	padding: 0.9rem 1rem;
	border: 1px solid var(--le-border);
	border-radius: var(--brand-radius, 10px);
	background: var(--brand-card, #fff);
	counter-reset: tip;
	font-size: 0.9rem;
}

.logline-tips-toc li {
	counter-increment: tip;
}

.logline-tips-toc li::before {
	content: counter(tip) ". ";
	color: var(--le-muted);
}

/* Sections are open by default (works with no JS — the full page). When JS is
   present (.tips-js) it becomes an accordion: only the section the reader opens
   shows, revealed in place under the contents list with no scroll. */
.logline-tip {
	margin: 0;
	padding-top: 1rem;
	border-top: 1px solid var(--le-border);
}

.logline-tips-page.tips-js .logline-tip {
	display: none;
}

.logline-tips-page.tips-js .logline-tip.is-open {
	display: block;
}

.logline-tip-title {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
	font-size: 1.3rem;
	margin: 0 0 0.35rem;
}

.logline-tip-num {
	flex: 0 0 auto;
	width: 1.9rem;
	height: 1.9rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--le-accent);
	color: var(--le-accent-contrast);
	font-size: 0.95rem;
	font-weight: 700;
}

.logline-tip-hint {
	margin: 0 0 0.5rem;
	font-weight: 600;
}

.logline-tip-why {
	margin: 0 0 0.5rem;
	color: var(--le-muted);
}

.logline-tip-framing {
	margin: 0 0 1.25rem;
}

.logline-tip-examples-title {
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--le-muted);
	margin: 1.5rem 0 0.6rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--le-border);
}

.logline-tip-examples {
	margin: 0 0 0.75rem;
	padding: 0;
	list-style: none;
}

.logline-tip-back {
	margin: 0;
	font-size: 0.85rem;
}

/* Browse sort nav (/loglines/{sort}/). */
.logline-sort-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.5rem;
	margin: 0.75rem 0 0;
}

.logline-sort-link {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--le-muted);
	text-decoration: none;
	padding: 0.25rem 0.7rem;
	border: 1px solid var(--le-border);
	border-radius: 999px;
}

.logline-sort-link:hover,
.logline-sort-link:focus-visible {
	color: var(--le-accent);
	border-color: var(--le-accent);
}

.logline-sort-link.is-active {
	color: var(--le-accent-contrast);
	background: var(--le-accent);
	border-color: var(--le-accent);
}

/* Level emblem (icon) inline in the feed card meta. */
.logline-list-level {
	display: inline-flex;
	vertical-align: middle;
	margin: -0.15rem 0 0;
}

.logline-list-level svg {
	display: block;
}

/* Post-form limit/anti-spam notice (styled when actionable). */
.logline-form-status.logline-form-notice {
	display: block;
	margin-top: 0.85rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--le-border);
	border-left: 3px solid var(--brand-accent-2, #68a6c6);
	border-radius: var(--brand-radius, 10px);
	background: var(--brand-card, #fff);
}

.logline-form-notice-title {
	display: block;
	font-weight: 700;
}

.logline-form-notice-sub {
	display: block;
	margin-top: 0.3rem;
	color: var(--le-muted);
	font-size: 0.92rem;
}

/* Report / flag control (trust & safety) ------------------------------- */
.logline-review-foot {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-top: 0.5rem;
}

.logline-report {
	margin: 1rem 0 0;
}

.logline-report--review {
	margin: 0;
	margin-left: auto; /* push to the right of the accept button in the foot row */
}

.logline-report-btn {
	font: inherit;
	font-size: 0.8rem;
	color: var(--le-muted);
	background: transparent;
	border: 0;
	padding: 0.15rem 0.25rem;
	cursor: pointer;
	text-decoration: none;
}

.logline-report-btn:hover,
.logline-report-btn:focus-visible {
	color: #b3261e;
	text-decoration: underline;
}

.logline-report-done {
	font-size: 0.8rem;
	color: var(--le-muted);
	font-style: italic;
}

.logline-report-form {
	margin-top: 0.6rem;
	padding: 0.85rem 1rem;
	max-width: 30rem;
	border: 1px solid var(--le-border);
	border-radius: var(--brand-radius, 10px);
	background: var(--brand-card, #fff);
}

.logline-report--review .logline-report-form {
	/* Break out of the inline foot row so the form sits full-width below. */
	position: relative;
	z-index: 1;
}

.logline-report-field {
	display: block;
	margin-bottom: 0.6rem;
}

.logline-report-label {
	display: block;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--le-muted);
	margin-bottom: 0.25rem;
}

.logline-report-reason,
.logline-report-note {
	width: 100%;
	padding: 0.45rem 0.55rem;
	border: 1px solid var(--le-border);
	border-radius: 8px;
	font: inherit;
	box-sizing: border-box;
	background: var(--brand-bg, #fff);
	color: inherit;
}

.logline-report-actions {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	flex-wrap: wrap;
}

.logline-report-send {
	font: inherit;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--le-accent-contrast);
	background: var(--le-accent);
	border: 1px solid var(--le-accent);
	border-radius: 8px;
	padding: 0.35rem 0.9rem;
	cursor: pointer;
}

.logline-report-cancel {
	font: inherit;
	font-size: 0.85rem;
	background: transparent;
	border: 0;
	color: var(--le-muted);
	text-decoration: underline;
	cursor: pointer;
}

.logline-report-status {
	font-size: 0.8rem;
	color: #b3261e;
}

/* Block control on the member profile ---------------------------------- */
.profile-follow.is-blocked .profile-follow-btn {
	display: none; /* can't follow someone you've blocked */
}

.profile-block-btn[aria-pressed="true"] {
	color: #b3261e;
	border-color: #b3261e;
}

/* Email-verification notice (double opt-in gate) ----------------------- */
.logline-verify-notice {
	margin: 1rem 0 1.5rem;
	padding: 1rem 1.15rem;
	border: 1px solid var(--le-border);
	border-left: 3px solid var(--brand-accent-2, #68a6c6);
	border-radius: var(--brand-radius, 10px);
	background: var(--brand-card, #fff);
}

.logline-verify-title {
	display: block;
	font-weight: 700;
	margin-bottom: 0.25rem;
}

.logline-verify-body {
	margin: 0;
	color: var(--le-muted);
	font-size: 0.95rem;
}

.logline-verify-resend {
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--le-accent);
	background: transparent;
	border: 0;
	padding: 0;
	text-decoration: underline;
	cursor: pointer;
}

.logline-verify-resend:disabled {
	color: var(--le-muted);
	cursor: default;
}

.logline-verify-status {
	display: inline-block;
	margin-left: 0.4rem;
	font-size: 0.85rem;
	color: var(--le-muted);
}

/* Drafts saved when the daily posting cap is hit ----------------------- */
.logline-drafted-notice {
	border-left-color: var(--le-accent, #68a6c6);
}

.logline-drafts {
	margin: 2rem 0 1rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--le-border);
}

.logline-drafts h2 {
	margin: 0 0 0.25rem;
	font-size: 1.15rem;
}

.logline-drafts-note {
	margin: 0 0 1rem;
	color: var(--le-muted);
	font-size: 0.92rem;
}

.logline-drafts-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.logline-draft {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--le-border);
	border-radius: var(--brand-radius, 10px);
	background: var(--brand-card, #fff);
}

.logline-draft-title {
	font-weight: 600;
	overflow-wrap: anywhere;
	/* Long drafts collapse to three lines so they don't dominate the card. */
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.logline-draft-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem 0.85rem;
}

.logline-draft-delete {
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--le-muted);
	background: transparent;
	border: 0;
	padding: 0.35rem 0.5rem;
	cursor: pointer;
}

.logline-draft-delete:hover {
	color: var(--brand-accent-2, #68a6c6);
	text-decoration: underline;
}

.logline-draft-status {
	font-size: 0.85rem;
	font-weight: 600;
	color: #c2410c; /* warning red-orange — readable on light backgrounds */
}

/* Brighter amber-yellow for dark mode, where the red-orange is muddy. */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .logline-draft-status {
		color: #fbbf24;
	}
}

:root[data-theme="dark"] .logline-draft-status {
	color: #fbbf24;
}

/* Account & privacy controls (own profile) ----------------------------- */
.account-privacy {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--le-border);
}

.account-privacy-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	padding: 1rem 0;
	border-bottom: 1px solid var(--le-border);
}

.account-privacy-copy {
	flex: 1 1 18rem;
}

.account-privacy-note {
	margin: 0.25rem 0 0;
	color: var(--le-muted);
	font-size: 0.9rem;
}

.account-privacy-action {
	flex: 0 0 auto;
	text-decoration: none;
	white-space: nowrap;
}

.account-delete-confirm {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: 0.6rem;
	font-size: 0.9rem;
	color: var(--le-muted);
}

.account-delete-btn {
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	color: #b3261e;
	background: transparent;
	border: 1px solid #b3261e;
	border-radius: 999px;
	padding: 0.4rem 1.1rem;
	cursor: pointer;
}

.account-delete-btn:hover {
	color: #fff;
	background: #b3261e;
}

/* Feed-card actions (admin delete / report), flushed right ------------- */
.logline-card-actions {
	margin-left: auto;
	align-self: center;
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.logline-card-delete {
	font: inherit;
	font-size: 0.8rem;
	color: var(--le-muted);
	background: transparent;
	border: 0;
	padding: 0.15rem 0.3rem;
	cursor: pointer;
}

.logline-card-delete:hover,
.logline-card-delete:focus-visible {
	color: #b3261e;
	text-decoration: underline;
}

/* On a feed card the report form opens as a right-aligned popover so it never
   stretches the card row. */
.logline-report--card {
	position: relative;
	margin: 0;
}

.logline-report--card .logline-report-form {
	position: absolute;
	top: calc(100% + 0.4rem);
	right: 0;
	z-index: 20;
	width: 20rem;
	max-width: 80vw;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
}

/* Member-list actions (follow + admin block/delete) -------------------- */
.member-actions {
	margin-left: auto;
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 0.6rem;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.member-follow-btn {
	font-size: 0.8rem;
	padding: 0.25rem 0.75rem;
}

.member-admin-link {
	font-size: 0.8rem;
	color: var(--le-muted);
	text-decoration: none;
	white-space: nowrap;
}

.member-admin-link:hover,
.member-admin-link:focus-visible {
	text-decoration: underline;
	color: var(--le-accent);
}

.member-admin-delete,
.member-admin-delete:hover {
	color: #b3261e;
}

/* Admin suspend control on a member profile ---------------------------- */
.profile-admin-actions {
	margin: 0.6rem 0 0;
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.85rem;
}

.profile-admin-link {
	color: #b3261e;
	text-decoration: none;
	font-weight: 600;
}

.profile-admin-link:hover,
.profile-admin-link:focus-visible {
	text-decoration: underline;
}

.profile-suspended-flag {
	display: inline-block;
	padding: 0.1rem 0.5rem;
	border-radius: 999px;
	background: #b3261e;
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

/* Members-list search --------------------------------------------------- */
.member-search {
	display: flex;
	gap: 0.4rem;
	flex: 1 1 14rem;
	min-width: 0;
}

.member-search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0.45rem 0.6rem;
	border: 1px solid var(--le-border);
	border-radius: 8px;
	font: inherit;
	background: var(--brand-bg, #fff);
	color: inherit;
}

.member-search button {
	flex: 0 0 auto;
	font: inherit;
	font-weight: 600;
	color: var(--le-accent-contrast);
	background: var(--le-accent);
	border: 0;
	border-radius: 8px;
	padding: 0.45rem 0.9rem;
	cursor: pointer;
}

/* Front-end moderation: remove (+ suspend) control ---------------------- */
.logline-moderate-btn {
	font: inherit;
	font-size: 0.8rem;
	font-weight: 600;
	color: #b3261e;
	background: transparent;
	border: 1px solid #b3261e;
	border-radius: 999px;
	padding: 0.2rem 0.75rem;
	cursor: pointer;
	white-space: nowrap;
}

.logline-moderate-btn:hover,
.logline-moderate-btn:focus-visible {
	color: #fff;
	background: #b3261e;
}

.logline-moderate {
	margin: 1rem 0 0;
}

.logline-moderate--review {
	margin-left: auto;
}

/* Members-list "Suspended" filter (moderators) ------------------------- */
.member-suspended-filter {
	font-size: 0.85rem;
	color: #b3261e;
	text-decoration: none;
	white-space: nowrap;
	align-self: center;
}

.member-suspended-filter:hover,
.member-suspended-filter:focus-visible {
	text-decoration: underline;
}

.member-suspended-filter.is-active {
	font-weight: 700;
}

/* Activity tier chip on the member card -------------------------------- */
.member-activity {
	display: inline-block;
	margin-left: 0.4rem;
	padding: 0.05rem 0.5rem;
	border-radius: 999px;
	font-size: 0.68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	vertical-align: middle;
	background: var(--brand-surface, #eef1f4);
	color: var(--le-muted);
}

.member-activity--author      { background: #e7f0f6; color: #3e7391; }
.member-activity--reviewer    { background: #e6f4ee; color: #157f5f; }
.member-activity--contributor { background: #f7e7ef; color: #68a6c6; }

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .member-activity { background: rgba(255,255,255,0.08); }
	:root:not([data-theme="light"]) .member-activity--author      { background: rgba(124,179,214,0.18); color: #7cb3d6; }
	:root:not([data-theme="light"]) .member-activity--reviewer    { background: rgba(69,199,156,0.18); color: #45c79c; }
	:root:not([data-theme="light"]) .member-activity--contributor { background: rgba(239,111,166,0.18); color: #ef6fa6; }
}

/* Email preferences (own profile) -------------------------------------- */
.account-emails-row {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--le-border);
	cursor: pointer;
}

.account-emails-row strong {
	display: block;
}

.account-emails-note {
	margin-top: 0.75rem;
}

.account-emails-saved {
	color: #157f5f;
	font-weight: 600;
}

/* Review craft "traffic lights" ---------------------------------------------
   The reviewer marks each of the ten craft dimensions as a strength (green) or
   something to work on (red). Semantic green/red are fixed (not brand colours)
   and chosen to read on both the light and dark card backgrounds. */
.logline-craft {
	margin: 0 0 1.1rem;
}

/* The verbal guide sits OUTSIDE the traffic-light frame. */
.logline-craft-intro {
	margin: 0 0 0.55rem;
	font-size: 0.92rem;
	line-height: 1.4;
}

.logline-craft-intro-lead {
	font-weight: 700;
}

.logline-craft-intro-sub {
	color: var(--brand-muted, #56636f);
}

.logline-craft-check {
	margin: 0;
	padding: 0.6rem 1rem 0.75rem;
	border: 1px solid var(--brand-border, #e2e6ea);
	border-radius: var(--brand-radius, 10px);
	background: var(--brand-surface, #f6f8fa);
}

.logline-craft-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.3rem;
}

.logline-craft-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.25rem 0;
}

.logline-craft-label {
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.3;
}

.logline-craft-tip {
	display: block;
	font-weight: 400;
	font-size: 0.8rem;
	color: var(--brand-muted, #56636f);
}

.logline-craft-btns {
	flex: 0 0 auto;
	display: inline-flex;
	gap: 0.35rem;
}

.logline-craft-btn {
	width: 2rem;
	height: 2rem;
	padding: 0;
	border-radius: 50%;
	border: 2px solid var(--brand-border, #cfd6dd);
	background: var(--brand-card, #fff);
	cursor: pointer;
	position: relative;
	transition: transform 0.08s ease, background-color 0.12s ease, border-color 0.12s ease;
}

.logline-craft-btn::before {
	content: "";
	position: absolute;
	inset: 4px;
	border-radius: 50%;
	background: transparent;
}

.logline-craft-btn:hover {
	transform: scale(1.06);
}

.logline-craft-pos { border-color: #2b9d5f; }
.logline-craft-neg { border-color: #cf4646; }

.logline-craft-pos[aria-pressed="true"] {
	background: #2b9d5f;
	border-color: #2b9d5f;
}

.logline-craft-neg[aria-pressed="true"] {
	background: #cf4646;
	border-color: #cf4646;
}

/* A tick / cross glyph drawn on the active button. */
.logline-craft-btn[aria-pressed="true"]::before {
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1;
	background: transparent;
}

.logline-craft-pos[aria-pressed="true"]::before { content: "\2713"; }
.logline-craft-neg[aria-pressed="true"]::before { content: "\00d7"; }

@media (prefers-reduced-motion: reduce) {
	.logline-craft-btn { transition: none; }
	.logline-craft-btn:hover { transform: none; }
}

/* Posted-review strengths / needs-work strip. */
.logline-review-flags {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin: 0 0 0.7rem;
}

.logline-review-flagrow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	font-size: 0.85rem;
}

.logline-flag-heading {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	font-size: 0.72rem;
}

.logline-review-flagrow--positive .logline-flag-heading { color: #1f8a53; }
.logline-review-flagrow--negative .logline-flag-heading { color: #c0392b; }

.logline-flag-chip {
	display: inline-block;
	padding: 0.1rem 0.55rem;
	border-radius: 999px;
	font-weight: 600;
	line-height: 1.5;
}

.logline-review-flagrow--positive .logline-flag-chip {
	background: rgba(43, 157, 95, 0.14);
	color: #1f8a53;
}

.logline-review-flagrow--negative .logline-flag-chip {
	background: rgba(207, 70, 70, 0.14);
	color: #c0392b;
}

/* Edit your own published review: an inline form replaces the read view. */
.logline-review-edit-btn,
.logline-review-edit-cancel,
.logline-review-delete-btn {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: var(--le-accent, #3e7391);
	font-weight: 600;
	cursor: pointer;
}

.logline-review-edit-btn:hover,
.logline-review-edit-cancel:hover,
.logline-review-delete-btn:hover {
	text-decoration: underline;
}

.logline-review-delete-btn {
	color: var(--le-muted, #56636f);
}

.logline-review-delete-btn:hover {
	color: #b3261e;
}

/* While editing, hide the read view (strip + prose + footer controls). */
.logline-review.is-editing .logline-review-flags,
.logline-review.is-editing .logline-review-body,
.logline-review.is-editing .logline-review-foot {
	display: none;
}

.logline-review-edit-form {
	margin-top: 0.5rem;
}

.logline-review-done {
	margin: 1rem 0 0;
	color: var(--le-muted, #56636f);
	font-style: italic;
}

/* Logline Doctor -----------------------------------------------------------
   Two-part grader page. Reuses the plugin's --le-* tokens (the page carries the
   .logline-list-page container that scopes them). Green/red check rows match the
   review craft "traffic lights". */
.logline-doctor-page {
	max-width: 40rem;
}

/* Tidy, centred intro above the field. */
.logline-doctor-header {
	text-align: center;
	margin-bottom: 1.5rem;
}

.logline-doctor-title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin: 0 0 0.5rem;
}

.logline-doctor-title-icon {
	flex: 0 0 auto;
	color: var(--le-doctor);
}

.logline-doctor-lead {
	max-width: 34rem;
	margin: 0 auto;
	color: var(--le-muted);
}

.logline-doctor-input {
	width: 100%;
	padding: 0.75rem 0.85rem;
	border: 1px solid var(--le-border);
	border-radius: 10px;
	font: inherit;
	line-height: 1.5;
	box-sizing: border-box;
	background: var(--brand-card, #fff);
	color: var(--brand-text, #16202b);
	resize: vertical;
}

.logline-doctor-count {
	margin: 0.3rem 0 0.75rem;
	color: var(--le-muted);
	font-size: 0.8rem;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.logline-doctor-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}

.logline-doctor-diagnose {
	/* Diagnose is the primary action, flushed to the right (like Post logline).
	   Hospital green — the Logline Doctor's colour. */
	margin-left: auto;
	background: var(--le-doctor-fill);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 0.55rem 1.4rem;
	font-weight: 700;
	cursor: pointer;
}

.logline-doctor-diagnose:hover { background: var(--le-doctor-fill-hover); }

/* Two separate scores, never blended. */
.logline-doctor-scores {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
	margin: 1.5rem 0 1rem;
}

.logline-doctor-scorecard {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1rem;
	border: 1px solid var(--le-border);
	border-radius: 12px;
	background: var(--brand-surface, #f6f8fa);
}

.logline-doctor-scorenum {
	font-size: 2.2rem;
	font-weight: 800;
	line-height: 1;
	color: var(--brand-text, #16202b);
}

.logline-doctor-scoremax {
	font-size: 1rem;
	font-weight: 600;
	color: var(--le-muted);
}

.logline-doctor-scorelabel {
	margin-top: 0.35rem;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--le-muted);
}

.logline-doctor-panel {
	margin: 1.25rem 0;
	padding: 1rem 1.15rem 1.15rem;
	border: 1px solid var(--le-border);
	border-radius: 12px;
}

.logline-doctor-panel h2 {
	margin: 0 0 0.15rem;
	font-size: 1.15rem;
}

.logline-doctor-rank {
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--le-doctor);
}

.logline-doctor-rankdesc,
.logline-doctor-note {
	margin: 0.25rem 0 0.75rem;
	color: var(--le-muted);
	font-size: 0.9rem;
}

.logline-doctor-note {
	margin: 0.85rem 0 0;
	font-size: 0.82rem;
	font-style: italic;
}

.logline-doctor-checks {
	list-style: none;
	margin: 0.5rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.45rem;
}

.logline-doctor-check {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
}

.logline-doctor-mark {
	flex: 0 0 auto;
	width: 1.4rem;
	height: 1.4rem;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 0.85rem;
	color: #fff;
}

.logline-doctor-check.is-ok .logline-doctor-mark { background: #2b9d5f; }
.logline-doctor-check.is-alert .logline-doctor-mark { background: #cf4646; }

.logline-doctor-checkbody { line-height: 1.4; }
.logline-doctor-checkbody strong { display: block; font-size: 0.95rem; }

.logline-doctor-checktip {
	color: var(--le-muted);
	font-size: 0.85rem;
}

.logline-doctor-fixnext {
	margin: 0.85rem 0 0;
	font-weight: 600;
	color: #b3261e;
}

.logline-doctor-verdict {
	margin: 0.5rem 0 0.5rem;
	font-size: 1.02rem;
	font-weight: 600;
}

.logline-doctor-verdict.is-incoherent { color: #b3261e; }

.logline-doctor-content-state { color: var(--le-muted); }

.logline-doctor-panel.is-loading { opacity: 0.7; }

.logline-doctor-rewrite {
	margin-top: 1rem;
	padding: 0.85rem 1rem;
	border-radius: 10px;
	background: var(--brand-surface, #f6f8fa);
	border: 1px solid var(--le-border);
}

.logline-doctor-rewrite h3 { margin: 0 0 0.3rem; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--le-muted); }
.logline-doctor-rewrite-text { margin: 0 0 0.6rem; font-size: 1.02rem; }

@media (max-width: 30rem) {
	.logline-doctor-scorenum { font-size: 1.9rem; }
}

/* --- Pitch single: meta badges, lazy YouTube player, logline (PitchFest) --- */
.pitch-meta { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin:.25rem 0 1rem; font-size:.8rem; }
.pitch-badge { display:inline-block; font-weight:700; border-radius:6px; padding:2px 8px; text-transform:uppercase; letter-spacing:.04em; }
.pitch-badge-elevator { background:#3b2f56; color:#c9b3ff; }
.pitch-badge-standard { background:#1f3d52; color:#7fd0ff; }
.pitch-badge-full { background:#4a3320; color:#ffc37f; }
.pitch-format { color: var(--le-muted, #5a6472); }
.pitch-player { position:relative; width:100%; aspect-ratio:16/9; background:#000; border-radius:12px; overflow:hidden; }
.pitch-player-thumb { position:absolute; inset:0; width:100%; height:100%; border:0; padding:0; cursor:pointer; background-color:#000; background-size:cover; background-position:center; display:flex; align-items:center; justify-content:center; }
.pitch-player-play { width:66px; height:66px; border-radius:50%; background:rgba(0,0,0,.55); color:#fff; font-size:26px; line-height:1; display:flex; align-items:center; justify-content:center; }
.pitch-player-thumb:hover .pitch-player-play, .pitch-player-thumb:focus-visible .pitch-player-play { background: var(--brand-accent, #68a6c6); }
.pitch-player-frame, .pitch-player-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.pitch-video-missing { color: var(--le-muted, #5a6472); font-style:italic; padding:1rem 0; }
.pitch-logline { font-size:1.15rem; line-height:1.5; margin:1rem 0; }
.pitch-ask { font-size:.95rem; color: var(--le-muted, #5a6472); margin:.25rem 0 1rem; }
.pitch-ask-label { font-weight:700; }

/* --- Pinned timestamped notes on reviews (PitchFest) --------------------- */
.logline-review-notes, .logline-pin-list { list-style:none; margin:.5rem 0; padding:0; }
.logline-review-note { display:flex; align-items:flex-start; gap:.5rem; padding:.35rem 0; font-size:.9rem; }
.logline-note-stamp { flex:none; font-variant-numeric:tabular-nums; font-size:.8rem; font-weight:700; color: var(--brand-accent, #68a6c6); background:transparent; border:1px solid var(--le-border, #d9dde1); border-radius:6px; padding:1px 7px; cursor:pointer; }
.logline-note-stamp:hover, .logline-note-stamp:focus-visible { border-color: var(--brand-accent, #68a6c6); }
.logline-note-text { flex:1; }
.logline-pins { margin:.75rem 0; }
.logline-pin-add { display:flex; gap:.5rem; margin-top:.35rem; }
.logline-pin-input { flex:1; }
.logline-pin-now { font-variant-numeric:tabular-nums; }
.logline-pin-remove { font: inherit; font-size:.8rem; background:transparent; border:0; color: var(--brand-accent-2, #68a6c6); text-decoration:underline; cursor:pointer; }

/* --- Fest rounds (PitchFest) --------------------------------------------- */
.fest-theme { font-size: 1.05rem; margin: 1rem 0 1.5rem; }
.fest-status { font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: .72rem; padding: 2px 8px; border-radius: 6px; }
.fest-status-open { background: rgba(67,193,124,.15); color: #2f7a3c; }
.fest-status-closed { background: var(--panel, #eee); color: var(--le-muted, #5a6472); }
.fest-winner { border: 1px solid var(--brand-accent-2, #ffb64d); background: linear-gradient(180deg, rgba(255,182,77,.12), transparent); border-radius: 12px; padding: 1rem 1.25rem; margin: 1rem 0 1.5rem; }
.fest-winner-kicker { font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #b8860b; margin: 0; }
.fest-winner-title { margin: .2rem 0; font-size: 1.3rem; }
.fest-votes-left { font-size: .9rem; color: var(--le-muted, #5a6472); }
.fest-board { list-style: none; margin: .5rem 0; padding: 0; }
.fest-row { display: flex; align-items: center; gap: .75rem; padding: .6rem 0; border-bottom: 1px solid var(--le-border, #e3e3e3); }
.fest-rank { font-weight: 800; color: #b8860b; min-width: 1.5rem; text-align: center; font-variant-numeric: tabular-nums; }
.fest-entry { flex: 1; }
.fest-entry small { display: block; color: var(--le-muted, #5a6472); }
.fest-votes { font-weight: 700; font-variant-numeric: tabular-nums; min-width: 2rem; text-align: right; }
.fest-vote-btn.is-voted { background: var(--brand-accent-2, #ffb64d); border-color: var(--brand-accent-2, #ffb64d); color: #241503; }
.fest-your-entry { font-size: .8rem; color: var(--le-muted, #5a6472); }
.fest-card { border: 1px solid var(--brand-accent-2, #ffb64d); border-radius: 12px; padding: 1rem; }
.fest-card-kicker { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #b8860b; margin: 0 0 .25rem; }

/* =====================================================================
   Screening Room — single-pitch theater (design handoff v1.0)
   A dark cinema regardless of the site theme: the palette is hardcoded
   to the handoff tokens (blue #68a6c6 · magenta #e5588f · teal #3bb3a6
   on #0f1720/#131d28/#16202b, borders #2a3746) so the "attend a pitch"
   metaphor reads the same for every visitor.
   ===================================================================== */
.screening-room {
	/* The theme full-widths the single-pitch page (body.single-pitch drops the
	   container cap + sidebar), so the theater simply fills its container — no
	   100vw breakout, which previously overshot and clipped the queue rail. */
	width: 100%;
	background: #0f1720;
	color: #e8edf2;
	overflow-x: auto;
	font-size: 1rem;
	line-height: 1.5;
}
.screening-room a { color: #6aa8c8; }
.screening-room a:hover { color: #7ab4d2; }
.screening-room .sr-microlabel {
	font-size: .7rem; letter-spacing: .09em; text-transform: uppercase;
	color: #9aa7b4; font-weight: 700;
}

/* View bar ---------------------------------------------------------- */
.sr-viewbar {
	display: flex; align-items: center; gap: 16px;
	padding: 12px 22px; border-bottom: 1px solid #2a3746;
	font-size: .85rem; flex-wrap: wrap;
}
.sr-tab { color: #9aa7b4; padding-bottom: 2px; }
.sr-tab.is-active { color: #e8edf2; font-weight: 600; border-bottom: 2px solid #6aa8c8; }
.sr-tab.is-disabled { cursor: default; opacity: .7; }
.sr-phase {
	padding: 1px 7px; border-radius: 999px; font-size: .62rem; font-weight: 800;
	background: #2a3746; color: #9aa7b4; margin-left: 2px;
}
.sr-postpitch {
	margin-left: auto; text-decoration: none;
	font-weight: 600; font-size: .85rem; border-radius: 9px; padding: 8px 16px;
	background: #68a6c6; color: #08131c !important;
}
.sr-postpitch:hover { background: #7ab4d2; color: #08131c !important; }

/* Three-column grid ------------------------------------------------- */
.sr-stage-grid {
	display: grid;
	grid-template-columns: 230px minmax(560px, 1fr) 372px;
	align-items: stretch; min-width: 1180px;
}

/* Left — queue ------------------------------------------------------ */
.sr-queue {
	border-right: 1px solid #2a3746; padding: 16px 14px;
	display: flex; flex-direction: column; gap: 10px;
}
.sr-queue-card {
	display: grid; gap: 6px; text-decoration: none; color: #e8edf2;
	background: #16202b; border: 1px solid #2a3746; border-radius: 10px; padding: 10px;
}
.sr-queue-card:hover { border-color: #6aa8c8; color: #e8edf2; }
.sr-queue-thumb {
	height: 56px; border-radius: 6px; display: grid; place-items: center;
	color: #6aa8c8; font-size: 1.1rem;
	background: linear-gradient(120deg, #1d2b3a, #2c3f52) center/cover;
}
.sr-queue-title { font-size: .78rem; font-weight: 700; line-height: 1.3; }
.sr-queue-meta { font-size: .68rem; color: #9aa7b4; }
.sr-queue-note { font-size: .72rem; color: #9aa7b4; line-height: 1.5; margin: 2px 0 0; }
.sr-queue-invite {
	margin-top: auto; text-align: center; text-decoration: none;
	border: 2px dashed #2a3746; border-radius: 10px; padding: 12px 10px;
	display: grid; gap: 3px;
}
.sr-queue-invite:hover { border-color: #68a6c6; }
.sr-queue-invite-ico { font-size: 1.1rem; }
.sr-queue-invite-title { font-weight: 700; font-size: .76rem; color: #6aa8c8; }
.sr-queue-invite-sub { font-size: .68rem; color: #9aa7b4; line-height: 1.45; }

/* Centre — stage ---------------------------------------------------- */
.sr-main { padding: 20px 24px; min-width: 0; }
.sr-article { display: flex; flex-direction: column; gap: 14px; }
.sr-screen {
	position: relative; aspect-ratio: 16 / 9; border-radius: 12px;
	border: 1px solid #2a3746; overflow: hidden;
	background: radial-gradient(80% 120% at 50% 0%, #1b2a3a 0%, #0c141d 70%);
}
.screening-room .pitch-player,
.screening-room .sr-screen-empty {
	position: absolute; inset: 0; margin: 0; width: 100%; height: 100%;
	background: transparent; border: 0; border-radius: 0;
}
.screening-room .pitch-player-thumb {
	position: absolute; inset: 0; width: 100%; height: 100%;
	background-size: cover; background-position: center;
	border: 0; border-radius: 0; cursor: pointer;
	display: grid; place-items: center;
}
.screening-room .pitch-player-play {
	width: 74px; height: 74px; border-radius: 50%;
	background: rgba(104,166,198,.18); border: 1px solid #68a6c6;
	color: #6aa8c8; font-size: 1.6rem; display: grid; place-items: center;
}
.screening-room .pitch-player-thumb:hover .pitch-player-play { background: rgba(104,166,198,.32); }
.screening-room .pitch-player-frame,
.screening-room .pitch-player-frame iframe {
	position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}
.sr-screen-badges { position: absolute; top: 14px; left: 14px; display: flex; gap: 8px; z-index: 2; }
.sr-screen-pill {
	padding: 2px 10px; border-radius: 999px; font-size: .7rem; font-weight: 700;
	background: rgba(104,166,198,.15); color: #6aa8c8; border: 1px solid #2a3746;
}
.sr-screen-pill--round { background: rgba(229,88,143,.14); color: #e5588f; }

/* Scrubber ---------------------------------------------------------- */
.sr-scrubber { display: flex; flex-direction: column; gap: 6px; }
.sr-scrub-track { position: relative; height: 26px; }
.sr-scrub-track::before {
	content: ""; position: absolute; top: 11px; left: 0; right: 0;
	height: 4px; border-radius: 2px; background: #2a3746;
}
.sr-scrub-fill {
	position: absolute; top: 11px; left: 0; width: 0; height: 4px;
	border-radius: 2px; background: #68a6c6;
}
.sr-pin {
	position: absolute; top: 4px; transform: translateX(-50%);
	width: 18px; height: 18px; border-radius: 50%;
	background: #68a6c6; color: #08131c; border: 0;
	font-size: .6rem; line-height: 1; display: grid; place-items: center; cursor: pointer;
}
.sr-pin:hover { background: #7ab4d2; }
.sr-scrub-legend { display: flex; align-items: center; gap: 12px; font-size: .78rem; color: #9aa7b4; }
.sr-scrub-hint { margin-left: auto; }

/* Title block ------------------------------------------------------- */
.sr-titlerow { display: flex; align-items: flex-start; gap: 12px; }
.sr-title { font-size: 1.3rem; font-weight: 800; line-height: 1.3; margin: 0; flex: 1; color: #e8edf2; }
.sr-logline { font-size: .98rem; line-height: 1.65; color: #c6d0da; margin-top: 6px; }
.sr-meta {
	display: flex; gap: 14px; margin-top: 10px; font-size: .82rem;
	color: #9aa7b4; align-items: center; flex-wrap: wrap;
}
.sr-meta time, .sr-meta-views, .sr-meta-format { color: #9aa7b4; }
.sr-ask { margin: 10px 0 0; font-size: .9rem; color: #6aa8c8; }
.sr-ask-label { font-weight: 700; }
.sr-controls { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin-top: 4px; }

/* Right — review desk ----------------------------------------------- */
.sr-desk {
	border-left: 1px solid #2a3746; background: #131d28;
	padding: 18px 18px 22px; display: flex; flex-direction: column; gap: 14px;
}
.sr-notes-heading {
	font-size: .8rem; font-weight: 700; margin: 6px 0 0; color: #e8edf2;
	display: flex; align-items: baseline; gap: 8px;
}
.sr-notes-count { font-size: .7rem; color: #9aa7b4; font-weight: 400; }
/* Reused review cards, restyled to "notes from the room". */
.sr-desk .logline-review {
	background: #16202b; border: 1px solid #2a3746; border-radius: 10px;
	padding: 11px; margin: 0 0 10px;
}
.sr-desk .logline-review.is-accepted { border-color: #e5588f; }
.sr-desk .logline-review-body { font-size: .83rem; line-height: 1.55; color: #dce4eb; }
.sr-desk .logline-note-stamp,
.sr-desk .sr-pin { color: #08131c; }
.sr-desk .logline-review-note .logline-note-stamp {
	background: none; border: 0; padding: 0; color: #6aa8c8; font-weight: 700; cursor: pointer;
}
.sr-desk .logline-no-reviews { font-size: .83rem; color: #9aa7b4; }
/* The compose form on the dark desk. */
.sr-desk .logline-review-form { margin: 0; }
.sr-desk textarea,
.sr-desk input[type="text"] {
	background: #0f1720; color: #e8edf2; border: 1px solid #2a3746; border-radius: 9px;
}
.sr-desk .logline-submit-btn {
	background: #68a6c6; color: #08131c; border: 0; border-radius: 9px;
	font-weight: 700; padding: 9px 16px; cursor: pointer;
}
.sr-desk .logline-submit-btn:hover { background: #7ab4d2; }

/* Onboarding strip -------------------------------------------------- */
.sr-onboarding {
	display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
	padding: 12px 22px; border-top: 1px solid #2a3746; background: #131d28; font-size: .8rem;
}
.sr-onboarding-title { font-weight: 700; color: #6aa8c8; }
.sr-step { display: flex; align-items: center; gap: 6px; }
.sr-step--done { color: #3bb3a6; }
.sr-step--now { color: #e8edf2; font-weight: 600; }
.sr-step--todo { color: #9aa7b4; }
.sr-onboarding-tail { margin-left: auto; color: #9aa7b4; }

/* Responsive: stack below the theater's min width. ------------------ */
@media (max-width: 1220px) {
	.sr-stage-grid { grid-template-columns: 1fr; min-width: 0; }
	.sr-queue { border-right: 0; border-bottom: 1px solid #2a3746; }
	.sr-desk { border-left: 0; border-top: 1px solid #2a3746; }
	.screening-room { overflow-x: hidden; }
}
