/**
 * ProductionVenues — components.css (C3–C10)
 * Signal Edition v1.0 · tokens live in style.css (from fields.json).
 * Square corners everywhere; LEDs are the only circles in the system.
 * All animation is transform/opacity only and honors prefers-reduced-motion.
 */

/* =========================================================================
 * ANIMATION PRIMITIVES (C1 sweep/flutter · C4 LED blink · C7 fader sweep)
 * ======================================================================= */

@keyframes pv-sweep {
	0%   { transform: scaleY(0.08); }
	62%  { transform: scaleY(1.14); }
	100% { transform: scaleY(1); }
}

/* Subtle idle flutter, ±3% around rest height (base prompt behavior 1). */
@keyframes pv-flutter {
	0%, 100% { transform: scaleY(1); }
	50%      { transform: scaleY(0.97); }
}

@keyframes pv-blink {
	0%, 100% { opacity: 1; }
	50%      { opacity: 0.35; }
}

@keyframes pv-sweep-x {
	0%   { transform: scaleX(0); }
	100% { transform: scaleX(1); }
}

/* =========================================================================
 * C1 — METER-PIN LOGO
 * Bars sweep up on load (staggered 60ms per bar), then flutter idly with a
 * different phase/duration per bar. Pure CSS on the SVG rects.
 * ======================================================================= */

.pv-pin [data-pv-bar] {
	transform-box: fill-box;
	transform-origin: 50% 100%;
	animation:
		pv-sweep 0.8s calc(var(--pv-i, 0) * 60ms) cubic-bezier(0.2, 0.9, 0.3, 1) both,
		pv-flutter 3s ease-in-out calc(1.6s + var(--pv-i, 0) * 0.45s) infinite alternate;
}
.pv-pin [data-pv-bar="1"] { animation-duration: 0.8s, 3.4s; }
.pv-pin [data-pv-bar="2"] { animation-duration: 0.8s, 3.7s; }
.pv-pin [data-pv-bar="3"] { animation-duration: 0.8s, 4.1s; }

/* Pin outline follows the surface ink; bars/dot keep their raw fills. */
.pv-pin { color: var(--pv-ink); }

/* =========================================================================
 * LAYOUT + TYPE UTILITIES
 * ======================================================================= */

.pv-wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
}

.pv-display {
	font-family: var(--pv-font-display);
	font-weight: 700;
	text-transform: uppercase;
	line-height: 0.95;
	color: var(--pv-ink);
}

.pv-overline {
	font: 700 10.5px var(--pv-font-mono);
	letter-spacing: 0.18em;
	color: var(--pv-text-go);
	text-transform: uppercase;
}

.pv-readout {
	font-family: var(--pv-font-mono);
}

.pv-scope :focus-visible {
	outline: 2px solid var(--pv-info);
	outline-offset: 2px;
}

.pv-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--pv-info);
	color: #fff;
	padding: 10px 16px;
	font: 700 12.5px var(--pv-font-ui);
	z-index: 200;
}
.pv-skip-link:focus {
	left: 0;
	color: #fff;
}

/* =========================================================================
 * C3 — BUTTONS (square corners; 48px primary / 44px min target on mobile)
 * ======================================================================= */

.pv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 0;
	padding: 12px 22px;
	font: 700 12.5px var(--pv-font-ui);
	letter-spacing: 0.02em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	background: transparent;
	color: var(--pv-ink);
	transition: filter 0.15s ease, background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.pv-btn--go {
	background: var(--pv-go);
	color: var(--pv-ink-on-go);
}
.pv-btn--go:hover { filter: brightness(1.08); color: var(--pv-ink-on-go); }
[data-theme="dark"] .pv-btn--go:hover {
	filter: none;
	box-shadow: 0 0 14px rgba(57, 181, 74, 0.5);
}

.pv-btn--ink {
	background: var(--pv-console);
	color: #fff;
}
.pv-btn--ink:hover { background: #2A3038; color: #fff; }
[data-theme="dark"] .pv-btn--ink {
	background: var(--pv-cream);
	color: var(--pv-console);
}
[data-theme="dark"] .pv-btn--ink:hover { background: #fff; color: var(--pv-console); }

.pv-btn--info {
	background: var(--pv-info);
	color: #fff;
}
.pv-btn--info:hover { filter: brightness(1.12); color: #fff; }

.pv-btn--outline {
	border: 2px solid var(--pv-ink);
	background: var(--pv-panel);
	color: var(--pv-ink);
	padding: 10px 20px;
}
.pv-btn--outline:hover {
	background: var(--pv-ink);
	color: var(--pv-bg);
}

.pv-btn--quiet {
	font: 700 11px var(--pv-font-mono);
	letter-spacing: 0.08em;
	color: var(--pv-text-go);
	padding: 4px 0;
	background: none;
}
.pv-btn--quiet:hover { text-decoration: underline; color: var(--pv-text-go); }

.pv-btn--disabled,
.pv-btn:disabled {
	background: var(--pv-border);
	color: var(--pv-muted-2);
	cursor: not-allowed;
	filter: none;
}

.pv-btn--block {
	display: flex;
	width: 100%;
	min-height: 48px;
	font-size: 14px;
}

/* =========================================================================
 * C4 — SIGNAL SYSTEM: verdict chips, stamps, LEDs, meter strips
 * ======================================================================= */

/* Verdict chip: border follows the text tint (component library C4). */
.pv-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font: 700 10px var(--pv-font-mono);
	letter-spacing: 0.04em;
	padding: 6px 10px;
	border: 2px solid currentColor;
	background: var(--pv-panel);
	text-transform: uppercase;
	white-space: nowrap;
}
.pv-chip.is-go      { color: var(--pv-text-go); }
.pv-chip.is-limited { color: var(--pv-text-limited); }
.pv-chip.is-no      { color: var(--pv-text-no); }
.pv-chip.is-info    { color: var(--pv-text-info); }

/* Stamps: PRODUCTION-VERIFIED / RE-VERIFY / CLOSED AV */
.pv-stamp {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font: 700 10px var(--pv-font-mono);
	letter-spacing: 0.1em;
	padding: 7px 12px;
	border: 2px solid currentColor;
	background: var(--pv-panel);
	color: var(--pv-text-go);
	text-transform: uppercase;
	white-space: nowrap;
}
.pv-stamp--reverify { color: var(--pv-text-limited); }
.pv-stamp--closed {
	border: 0;
	background: var(--pv-no);
	color: #fff;
	letter-spacing: 0.08em;
}

/* LED dots — the only circles in the system. */
.pv-led {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50% !important;
	background: var(--pv-led-off);
	flex: none;
}
.pv-led.is-go      { background: var(--pv-go); }
.pv-led.is-limited { background: var(--pv-limited); }
.pv-led.is-no      { background: var(--pv-no); animation: pv-blink 1.4s infinite; }
.pv-led.is-info    { background: var(--pv-info); }
[data-theme="dark"] .pv-led.is-go      { box-shadow: 0 0 8px var(--pv-go); }
[data-theme="dark"] .pv-led.is-limited { box-shadow: 0 0 8px var(--pv-limited); }
[data-theme="dark"] .pv-led.is-no      { box-shadow: 0 0 8px var(--pv-no); }
[data-theme="dark"] .pv-led.is-info    { box-shadow: 0 0 8px var(--pv-info); }

/* Channel meter strip — bars use RAW colors (FIELD-MAP §1); missing bars
 * are INFO blue at the fixed 50% height set server-side via --pv-h. */
.pv-meter {
	display: flex;
	gap: 5px;
	align-items: flex-end;
	height: 34px;
	border-bottom: 2px solid var(--pv-ink);
}
[data-theme="dark"] .pv-meter { border-bottom: 1px solid var(--pv-border); }

.pv-meter__bar {
	width: 9px;
	height: var(--pv-h, 50%);
	flex: none;
}
.pv-meter__bar.is-go      { background: var(--pv-go); }
.pv-meter__bar.is-limited { background: var(--pv-limited); }
.pv-meter__bar.is-no      { background: var(--pv-no); }
.pv-meter__bar.is-info    { background: var(--pv-info); }

.pv-meter__verdict {
	font: 700 11px var(--pv-font-mono);
	margin-left: 10px;
	align-self: center;
	text-transform: uppercase;
	white-space: nowrap;
}
.pv-meter__verdict.is-go      { color: var(--pv-text-go); }
.pv-meter__verdict.is-limited { color: var(--pv-text-limited); }
.pv-meter__verdict.is-no      { color: var(--pv-text-no); }
.pv-meter__verdict.is-info    { color: var(--pv-text-info); }

/* Card-size meter */
.pv-meter--card {
	height: 26px;
	gap: 5px;
	border-bottom-width: 1px;
	border-bottom-color: var(--pv-border);
}
.pv-meter--card .pv-meter__bar { width: 7px; }
.pv-meter--card .pv-meter__verdict { font-size: 10px; margin-left: 8px; }

/* List-row meter */
.pv-meter--row {
	height: 20px;
	gap: 4px;
	border-bottom-width: 1px;
	border-bottom-color: var(--pv-border);
	max-width: 280px;
}
.pv-meter--row .pv-meter__bar { width: 6px; }
.pv-meter--row .pv-meter__verdict { font-size: 9.5px; margin-left: 6px; }

/* Mobile-card meter */
.pv-meter--mobile { height: 30px; }
.pv-meter--mobile .pv-meter__bar { width: 8px; }

.pv-meter__aside {
	font: 9.5px var(--pv-font-mono);
	color: var(--pv-muted-2);
	margin-left: auto;
	align-self: center;
	white-space: nowrap;
}

/* =========================================================================
 * C5 — VENUE CARDS (grid card, list row, mobile)
 * border-left: 3px solid <verdict color> per the base prompt.
 * ======================================================================= */

.pv-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
}

.pv-card {
	display: block;
	background: var(--pv-panel);
	border: 1px solid var(--pv-border);
	border-left-width: 3px;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.pv-card.is-go      { border-left-color: var(--pv-go); }
.pv-card.is-limited { border-left-color: var(--pv-limited); }
.pv-card.is-no      { border-left-color: var(--pv-no); }
.pv-card.is-info    { border-left-color: var(--pv-info); }

.pv-card:hover {
	border-top-color: var(--pv-ink);
	border-right-color: var(--pv-ink);
	border-bottom-color: var(--pv-ink);
	box-shadow: 0 4px 16px rgba(20, 24, 31, 0.12);
	color: inherit;
}
[data-theme="dark"] .pv-card:hover {
	border-top-color: var(--pv-go);
	border-right-color: var(--pv-go);
	border-bottom-color: var(--pv-go);
	box-shadow: 0 0 18px rgba(57, 181, 74, 0.18);
}

.pv-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	background: repeating-linear-gradient(45deg, var(--pv-photo-a) 0 10px, var(--pv-photo-b) 10px 20px);
	overflow: hidden;
}
.pv-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.pv-card__media .pv-stamp {
	position: absolute;
	top: 10px;
	left: 10px;
	font-size: 9px;
	padding: 3px 8px;
	border-width: 1.5px;
}

.pv-card__body { padding: 12px 14px; }

.pv-card__top {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
}

.pv-card__title {
	font: 600 14px var(--pv-font-ui);
	color: var(--pv-ink);
	margin: 0;
}

.pv-card__code {
	font: 700 9px var(--pv-font-mono);
	color: var(--pv-muted-2);
	letter-spacing: 0.04em;
}

.pv-card__meta {
	font-size: 11px;
	color: var(--pv-muted-3);
	margin: 2px 0 10px;
}

.pv-card__av {
	display: inline-block;
	font: 700 9px var(--pv-font-mono);
	letter-spacing: 0.06em;
	padding: 2px 6px;
	border: 1px solid currentColor;
	margin-left: 6px;
	vertical-align: 1px;
	text-transform: uppercase;
}
.pv-card__av.is-go      { color: var(--pv-text-go); }
.pv-card__av.is-neutral { color: var(--pv-muted-2); }
.pv-card__av.is-no      { color: #fff; background: var(--pv-no); border-color: var(--pv-no); }

/* List row variant */
.pv-card--row {
	display: flex;
	border-left-width: 3px;
}
.pv-card--row .pv-card__media {
	width: 150px;
	aspect-ratio: auto;
	flex: none;
}
.pv-card--row .pv-card__body {
	flex: 1;
	padding: 12px 16px;
	min-width: 0;
}
.pv-card--row .pv-card__title { font-size: 15px; }
.pv-card--row .pv-card__meta { font-size: 11.5px; margin-bottom: 8px; }

@media (max-width: 560px) {
	.pv-card--row { flex-direction: column; }
	.pv-card--row .pv-card__media { width: 100%; aspect-ratio: 16 / 10; }
}

/* =========================================================================
 * C6 — SPEC CONSOLE (tiles grouped by channel + hero stat strip)
 * Tile border-left = that channel's SCORE color, 4px, raw.
 * ======================================================================= */

.pv-console {
	background: var(--pv-panel);
	border: 1px solid var(--pv-border);
	padding: 18px 20px;
}
[data-theme="dark"] .pv-console {
	background: var(--pv-console);
	border-color: #000;
}

.pv-console__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 10px;
	gap: 12px;
}
.pv-console__title {
	font-family: var(--pv-font-display);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--pv-ink);
	text-transform: uppercase;
	margin: 0;
}
.pv-console__date {
	font: 9.5px var(--pv-font-mono);
	color: var(--pv-muted-2);
	letter-spacing: 0.04em;
}
.pv-console__date--reverify {
	color: var(--pv-text-limited);
	font-weight: 700;
}

.pv-tiles {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
}
@media (max-width: 900px) { .pv-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .pv-tiles { grid-template-columns: 1fr; } }

.pv-tile {
	background: var(--pv-panel);
	border: 1px solid var(--pv-border);
	border-left-width: 4px;
	padding: 11px 13px;
}
[data-theme="dark"] .pv-tile { background: var(--pv-panel-dk); }
.pv-tile.is-go      { border-left-color: var(--pv-go); }
.pv-tile.is-limited { border-left-color: var(--pv-limited); }
.pv-tile.is-no      { border-left-color: var(--pv-no); }
.pv-tile.is-info    { border-left-color: var(--pv-info); }
.pv-tile.is-neutral { border-left-color: var(--pv-border-2); }

.pv-tile__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}
.pv-tile__label {
	font: 600 10px var(--pv-font-mono);
	letter-spacing: 0.1em;
	color: var(--pv-muted-2);
	text-transform: uppercase;
}
.pv-tile__value {
	font: 700 15px var(--pv-font-mono);
	margin-top: 6px;
	color: var(--pv-ink);
	overflow-wrap: anywhere;
}
.pv-tile__value.is-limited { color: var(--pv-text-limited); }
.pv-tile__value.is-no      { color: var(--pv-text-no); }
.pv-tile__value.is-go      { color: var(--pv-text-go); }

/* Empty tile: dashed border, muted, no verdict color anywhere. */
.pv-tile--empty { border-style: dashed; border-left-width: 1px; }
.pv-tile--empty .pv-tile__label { color: var(--pv-muted-2); }
.pv-tile--empty .pv-tile__value { color: var(--pv-muted-2); }
.pv-tile--empty .pv-led { background: var(--pv-led-off); animation: none; box-shadow: none; }

/* Mobile single-column tiles become label/value rows. */
@media (max-width: 560px) {
	.pv-tile {
		display: flex;
		justify-content: space-between;
		align-items: center;
		min-height: 44px;
		padding: 12px 14px;
	}
	.pv-tile__head { flex: none; }
	.pv-tile__value { margin-top: 0; font-size: 14px; text-align: right; }
	.pv-tile__head .pv-led { display: none; }
}

/* Hero stat strip — CAPACITY · SQ FT · CEILING · AV POLICY · VERDICT */
.pv-stats {
	display: flex;
	background: var(--pv-panel);
	border: 1px solid var(--pv-border);
}
.pv-stats__cell {
	flex: 1;
	padding: 12px 16px;
	border-right: 1px solid var(--pv-hairline);
	min-width: 0;
}
.pv-stats__cell:last-child { border-right: 0; }
.pv-stats__label {
	font: 9.5px var(--pv-font-mono);
	color: var(--pv-muted-2);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.pv-stats__value {
	font: 700 24px var(--pv-font-mono);
	color: var(--pv-ink);
	white-space: nowrap;
}
.pv-stats__value--sm { font-size: 19px; padding-top: 4px; }
.pv-stats__value.is-go { color: var(--pv-text-go); }

/* Verdict cell: always last, always filled with the verdict color. */
.pv-stats__cell--verdict { color: #fff; }
.pv-stats__cell--verdict .pv-stats__label { color: rgba(255, 255, 255, 0.75); }
.pv-stats__cell--verdict .pv-stats__value { color: inherit; }
.pv-stats__cell--verdict.is-go      { background: var(--pv-go); color: var(--pv-ink-on-go); }
.pv-stats__cell--verdict.is-go .pv-stats__label { color: rgba(12, 20, 9, 0.7); }
.pv-stats__cell--verdict.is-limited { background: var(--pv-limited); color: var(--pv-console); }
.pv-stats__cell--verdict.is-limited .pv-stats__label { color: rgba(20, 24, 31, 0.7); }
.pv-stats__cell--verdict.is-no      { background: var(--pv-no); }
.pv-stats__cell--verdict.is-info    { background: var(--pv-info); }

@media (max-width: 720px) {
	.pv-stats { flex-wrap: wrap; }
	.pv-stats__cell { flex: 1 1 33%; border-bottom: 1px solid var(--pv-hairline); }
	.pv-stats__value { font-size: 20px; }
}

/* =========================================================================
 * C7 — CAPACITY FADERS
 * Vertical faders on dark · horizontal bars on light · horizontal always
 * below 480px. Scale = max capacity across the venue's rooms.
 * ======================================================================= */

.pv-faders {
	background: var(--pv-panel);
	border: 1px solid var(--pv-border);
	padding: 16px 20px;
}
[data-theme="dark"] .pv-faders {
	background: var(--pv-console);
	border-color: #000;
}

.pv-faders__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 10px;
}
.pv-faders__title {
	font-family: var(--pv-font-display);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--pv-ink);
	text-transform: uppercase;
}
.pv-faders__fig {
	font: 9px var(--pv-font-mono);
	color: var(--pv-muted-2);
}

/* Vertical variant (dark mode ≥480px) */
.pv-faders__v {
	display: flex;
	gap: 22px;
	align-items: flex-end;
	height: 100px;
	border-bottom: 2px solid var(--pv-border);
	padding: 0 8px;
}
.pv-fader {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	height: 100%;
	justify-content: flex-end;
}
.pv-fader__value {
	font: 700 12px var(--pv-font-mono);
	color: var(--pv-ink);
}
.pv-fader__bar {
	width: 18px;
	transform-origin: 50% 100%;
	animation: pv-sweep 0.8s calc(var(--pv-i, 0) * 60ms) cubic-bezier(0.2, 0.9, 0.3, 1) both;
}
.pv-fader__bar.is-rcp { background: linear-gradient(180deg, var(--pv-go), var(--pv-go-deep)); }
.pv-fader__bar.is-thr { background: linear-gradient(180deg, var(--pv-info), var(--pv-info-deep)); }
.pv-fader__bar.is-bnq { background: linear-gradient(180deg, var(--pv-limited), var(--pv-limited-deep)); }
.pv-fader__label {
	font: 9px var(--pv-font-mono);
	color: var(--pv-muted-2);
	letter-spacing: 0.08em;
}

/* Horizontal variant (light mode, and every mode <480px) */
.pv-faders__h { font-size: 11.5px; }
.pv-faders__hrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}
.pv-faders__hrow:last-child { margin-bottom: 0; }
.pv-faders__hlabel {
	width: 78px;
	color: var(--pv-muted);
	flex: none;
}
.pv-faders__track {
	flex: 1;
	height: 16px;
	background: var(--pv-track);
}
.pv-faders__fill {
	height: 100%;
	transform-origin: 0 50%;
	animation: pv-sweep-x 0.8s calc(var(--pv-i, 0) * 60ms) cubic-bezier(0.2, 0.9, 0.3, 1) both;
}
.pv-faders__fill.is-rcp { background: var(--pv-go); }
.pv-faders__fill.is-thr { background: var(--pv-info); }
.pv-faders__fill.is-bnq { background: var(--pv-limited); }
.pv-faders__hvalue {
	font: 600 13px var(--pv-font-mono);
	width: 44px;
	text-align: right;
	color: var(--pv-ink);
	flex: none;
}

/* Orientation switching */
.pv-faders__v { display: none; }
[data-theme="dark"] .pv-faders__v { display: flex; }
[data-theme="dark"] .pv-faders__h { display: none; }
@media (max-width: 479px) {
	.pv-faders__v,
	[data-theme="dark"] .pv-faders__v { display: none; }
	[data-theme="dark"] .pv-faders__h { display: block; }
}

/* =========================================================================
 * C8 — FILTERS + SEARCH
 * Active chips fill INFO blue. Count always speaks in verdicts.
 * ======================================================================= */

.pv-filterbar {
	background: var(--pv-panel);
	border: 1px solid var(--pv-border);
	padding: 14px 18px;
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	font: 11px var(--pv-font-mono);
}
.pv-filterbar__title {
	color: var(--pv-muted-2);
	letter-spacing: 0.12em;
}

.pv-filterchip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: 1px solid var(--pv-border-2);
	padding: 6px 12px;
	background: var(--pv-panel);
	color: var(--pv-muted);
	font: inherit;
	cursor: pointer;
	text-decoration: none;
	text-transform: uppercase;
}
.pv-filterchip:hover {
	border-color: var(--pv-ink);
	color: var(--pv-ink);
}
.pv-filterchip.is-active {
	background: var(--pv-info);
	border-color: var(--pv-info);
	color: #fff;
	font-weight: 700;
}
.pv-filterchip.is-active:hover { filter: brightness(1.12); color: #fff; }

.pv-filterbar__count {
	margin-left: auto;
	font-weight: 700;
	color: var(--pv-text-go);
	white-space: nowrap;
}

.pv-viewtoggle {
	border: 1px solid var(--pv-border-2);
	background: var(--pv-panel);
	display: flex;
}
.pv-viewtoggle a,
.pv-viewtoggle span {
	padding: 6px 10px;
	color: var(--pv-muted);
	text-decoration: none;
	cursor: pointer;
}
.pv-viewtoggle .is-active {
	background: var(--pv-console);
	color: #fff;
	font-weight: 700;
}

/* Console search — mono placeholder reads as a query, GO submit. */
.pv-searchbox {
	display: flex;
	background: var(--pv-panel);
	border: 2px solid var(--pv-ink);
	max-width: 560px;
}
.pv-searchbox input[type="search"],
.pv-searchbox input[type="text"] {
	flex: 1;
	border: 0;
	background: transparent;
	padding: 13px 15px;
	font: 12px var(--pv-font-mono);
	color: var(--pv-ink);
	min-width: 0;
}
.pv-searchbox input::placeholder { color: var(--pv-muted-2); }
.pv-searchbox input:focus { outline: none; }
.pv-searchbox .pv-btn { padding: 13px 24px; }

/* Mobile filter sheet — console dark, 44px rows, sticky apply. */
.pv-filtersheet {
	background: var(--pv-console);
	border: 1px solid #000;
	color: var(--pv-cream);
}
.pv-filtersheet__head {
	padding: 14px 16px;
	border-bottom: 1px solid #262b35;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.pv-filtersheet__title {
	font-family: var(--pv-font-display);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--pv-cream);
	text-transform: uppercase;
}
.pv-filtersheet__count {
	font: 700 11px var(--pv-font-mono);
	color: var(--pv-go);
}
.pv-filtersheet__rows {
	padding: 14px 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.pv-filtersheet__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 44px;
	border: 1px solid #363c48;
	padding: 0 14px;
	font: 600 12px var(--pv-font-mono);
	color: #8b919c;
	cursor: pointer;
	background: none;
	width: 100%;
	text-transform: uppercase;
}
.pv-filtersheet__row .pv-filtersheet__state {
	font-weight: 700;
	color: #5a606c;
}
.pv-filtersheet__row:hover {
	border-color: #8b919c;
	color: var(--pv-cream);
}
.pv-filtersheet__row.is-on {
	border-color: var(--pv-go);
	color: var(--pv-go);
}
.pv-filtersheet__row.is-on .pv-filtersheet__state { color: var(--pv-go); }
.pv-filtersheet__actions {
	padding: 0 16px 16px;
	display: flex;
	gap: 10px;
	position: sticky;
	bottom: 0;
	background: var(--pv-console);
}
.pv-filtersheet__actions .pv-btn--ghost {
	flex: 1;
	border: 1px solid #363c48;
	color: #8b919c;
	min-height: 48px;
}
.pv-filtersheet__actions .pv-btn--go { flex: 2; min-height: 48px; }

/* =========================================================================
 * C9 — FORMS (inquiry panel + input states + Directorist add-listing skin)
 * ======================================================================= */

.pv-form {
	background: var(--pv-panel);
	border: 2px solid var(--pv-ink);
	padding: 18px;
}
[data-theme="dark"] .pv-form {
	background: var(--pv-panel-dk);
	border: 1px solid var(--pv-border);
}

.pv-form__title {
	font-family: var(--pv-font-display);
	font-size: 19px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--pv-ink);
	text-transform: uppercase;
	margin: 0;
}
.pv-form__sub {
	font-size: 11.5px;
	color: var(--pv-muted-2);
	margin: 4px 0 14px;
}
.pv-form__label {
	display: block;
	font: 600 9.5px var(--pv-font-mono);
	letter-spacing: 0.12em;
	color: var(--pv-muted);
	margin-bottom: 4px;
	text-transform: uppercase;
}
.pv-form__label.is-error { color: var(--pv-text-no); }

.pv-input,
.pv-scope .pv-form input[type="text"],
.pv-scope .pv-form input[type="email"],
.pv-scope .pv-form input[type="url"],
.pv-scope .pv-form input[type="tel"],
.pv-scope .pv-form input[type="number"],
.pv-scope .pv-form input[type="date"],
.pv-scope .pv-form select,
.pv-scope .pv-form textarea {
	display: block;
	width: 100%;
	border: 1px solid var(--pv-border-2);
	background: var(--pv-panel);
	padding: 11px 12px;
	font: 12px var(--pv-font-mono);
	color: var(--pv-ink);
	margin-bottom: 12px;
}
[data-theme="dark"] .pv-input,
[data-theme="dark"] .pv-scope .pv-form input,
[data-theme="dark"] .pv-scope .pv-form select,
[data-theme="dark"] .pv-scope .pv-form textarea {
	background: var(--pv-console);
	border-color: var(--pv-border);
}

.pv-input:focus,
.pv-scope .pv-form input:focus,
.pv-scope .pv-form select:focus,
.pv-scope .pv-form textarea:focus {
	outline: none;
	border: 2px solid var(--pv-ink);
	box-shadow: 0 0 0 3px rgba(27, 68, 232, 0.18);
	padding: 10px 11px;
}
[data-theme="dark"] .pv-input:focus,
[data-theme="dark"] .pv-scope .pv-form input:focus,
[data-theme="dark"] .pv-scope .pv-form select:focus,
[data-theme="dark"] .pv-scope .pv-form textarea:focus {
	border: 1px solid var(--pv-go);
	box-shadow: 0 0 10px rgba(57, 181, 74, 0.25);
	padding: 11px 12px;
}

.pv-input.is-error {
	border: 2px solid var(--pv-no);
	padding: 10px 11px;
	box-shadow: none;
}
.pv-form__error {
	font: 600 10px var(--pv-font-mono);
	color: var(--pv-text-no);
	margin: 4px 0 14px;
	text-transform: uppercase;
}
.pv-form__hint {
	font: 10px var(--pv-font-mono);
	color: var(--pv-muted-2);
	text-align: center;
	margin-top: 8px;
	text-transform: uppercase;
}

/* Directorist add-listing wrapper: inherit the same input system. */
.pv-addform .directorist-form-group label,
.pv-addform label {
	font: 600 9.5px var(--pv-font-mono);
	letter-spacing: 0.12em;
	color: var(--pv-muted);
	text-transform: uppercase;
}
.pv-addform input[type="text"],
.pv-addform input[type="email"],
.pv-addform input[type="url"],
.pv-addform input[type="tel"],
.pv-addform input[type="number"],
.pv-addform input[type="date"],
.pv-addform select,
.pv-addform textarea {
	border: 1px solid var(--pv-border-2);
	background: var(--pv-panel);
	padding: 11px 12px;
	font: 12px var(--pv-font-mono);
	color: var(--pv-ink);
	width: 100%;
}
[data-theme="dark"] .pv-addform input,
[data-theme="dark"] .pv-addform select,
[data-theme="dark"] .pv-addform textarea {
	background: var(--pv-console);
	border-color: var(--pv-border);
}
.pv-addform .directorist-btn,
.pv-addform button[type="submit"],
.pv-addform input[type="submit"] {
	background: var(--pv-info);
	color: #fff;
	border: 0;
	padding: 12px 22px;
	font: 700 12.5px var(--pv-font-ui);
	text-transform: uppercase;
	cursor: pointer;
}
[data-theme="dark"] .pv-addform .directorist-btn,
[data-theme="dark"] .pv-addform button[type="submit"],
[data-theme="dark"] .pv-addform input[type="submit"] {
	background: var(--pv-go);
	color: var(--pv-ink-on-go);
}

/* =========================================================================
 * C10 — NAVIGATION + FOOTER
 * ======================================================================= */

.pv-nav {
	background: var(--pv-panel);
	border-bottom: 1px solid var(--pv-border);
	position: relative;
	z-index: 50;
}
.pv-nav__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 28px;
	gap: 16px;
}
.pv-nav__logo { display: flex; align-items: center; text-decoration: none; }
.pv-nav__logo svg { height: 32px; width: auto; display: block; }

.pv-nav__links {
	display: flex;
	gap: 22px;
	align-items: center;
	font-size: 12.5px;
	color: var(--pv-muted);
	white-space: nowrap;
	list-style: none;
	margin: 0;
	padding: 0;
}
.pv-nav__links a {
	color: var(--pv-muted);
	text-decoration: none;
	padding-bottom: 2px;
	border-bottom: 2px solid transparent;
}
.pv-nav__links a:hover { color: var(--pv-ink); }
.pv-nav__links .current-menu-item > a,
.pv-nav__links a.is-active {
	border-bottom-color: var(--pv-info);
	color: var(--pv-ink);
	font-weight: 600;
}

.pv-nav__actions {
	display: flex;
	align-items: center;
	gap: 12px;
}
.pv-nav__cta { font-size: 11.5px; padding: 7px 14px; }

/* Theme toggle chip */
.pv-theme-toggle {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	border: 1px solid var(--pv-border-2);
	background: var(--pv-panel);
	padding: 6px 10px;
	font: 600 10.5px var(--pv-font-mono);
	letter-spacing: 0.08em;
	color: var(--pv-muted);
	cursor: pointer;
}
.pv-theme-toggle:hover { border-color: var(--pv-ink); color: var(--pv-ink); }
.pv-theme-toggle__led {
	width: 9px;
	height: 9px;
	border-radius: 50% !important;
	background: var(--pv-limited);
}
[data-theme="dark"] .pv-theme-toggle__led {
	background: var(--pv-go);
	box-shadow: 0 0 8px var(--pv-go);
}
.pv-theme-toggle--floating {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 90;
}

/* Mobile nav: burger + full-screen console drawer (CSS checkbox pattern) */
.pv-nav__check { position: absolute; opacity: 0; pointer-events: none; }
.pv-nav__burger {
	display: none;
	flex-direction: column;
	gap: 5px;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.pv-nav__burger span {
	width: 22px;
	height: 2.5px;
	background: var(--pv-ink);
	display: block;
}
.pv-nav__drawer { display: none; }

@media (max-width: 900px) {
	.pv-nav__links, .pv-nav__cta { display: none; }
	.pv-nav__burger { display: flex; }
	.pv-nav__logo svg { height: 30px; }
	.pv-nav__inner { padding: 12px 16px; }

	.pv-nav__drawer {
		display: none;
		background: var(--pv-console);
		border-top: 1px solid #000;
		padding: 18px 16px;
	}
	.pv-nav__check:checked ~ .pv-nav__drawer { display: block; }
	.pv-nav__drawer a {
		display: flex;
		justify-content: space-between;
		align-items: center;
		min-height: 48px;
		border-bottom: 1px solid #262b35;
		font-family: var(--pv-font-display);
		font-size: 22px;
		font-weight: 700;
		letter-spacing: 0.04em;
		color: var(--pv-cream);
		text-transform: uppercase;
		text-decoration: none;
	}
	.pv-nav__drawer a:hover { color: var(--pv-go); }
	.pv-nav__drawer .pv-nav__drawer-arrow {
		font: 700 12px var(--pv-font-mono);
		color: #5a606c;
	}
	.pv-nav__drawer .pv-btn { margin-top: 16px; }
}

/* Footer — console dark ONLY, both themes (C10). Channel text stays raw. */
.pv-footer {
	background: var(--pv-console);
	color: var(--pv-cream);
	--pv-text-go: var(--pv-go);
	--pv-text-limited: var(--pv-limited);
	--pv-text-no: var(--pv-no);
}
.pv-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	padding: 32px 32px 24px;
	gap: 28px;
	flex-wrap: wrap;
}
.pv-footer__brand { max-width: 280px; }
.pv-footer__brand svg { height: 34px; width: auto; display: block; }
.pv-footer__tag {
	font-size: 12px;
	color: #8b919c;
	line-height: 1.6;
	margin-top: 12px;
}
.pv-footer__cols { display: flex; gap: 48px; flex-wrap: wrap; }
.pv-footer__colhead {
	font: 700 10px var(--pv-font-mono);
	letter-spacing: 0.16em;
	color: #5a606c;
	margin-bottom: 10px;
	text-transform: uppercase;
}
.pv-footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 7px;
	font-size: 12.5px;
}
.pv-footer__col a {
	color: var(--pv-cream);
	text-decoration: none;
}
.pv-footer__col a:hover { color: var(--pv-go); }

/* The four-channel rule above the legal line. */
.pv-footer__rule { display: flex; height: 5px; }
.pv-footer__rule span { flex: 1; }
.pv-footer__rule span:nth-child(1) { background: var(--pv-no); }
.pv-footer__rule span:nth-child(2) { background: var(--pv-limited); }
.pv-footer__rule span:nth-child(3) { background: var(--pv-go); }
.pv-footer__rule span:nth-child(4) { background: var(--pv-info); }

.pv-footer__legal {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	padding: 12px 32px;
	font: 10px var(--pv-font-mono);
	color: #5a606c;
	letter-spacing: 0.08em;
	flex-wrap: wrap;
	gap: 8px;
	text-transform: uppercase;
}
.pv-footer__nominal { color: var(--pv-go); }

/* =========================================================================
 * SINGLE LISTING PAGE SCAFFOLD (C6 + C7 + C1 pin)
 * ======================================================================= */

.pv-single { padding: 28px 0 60px; }
.pv-single__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	margin: 18px 0;
	flex-wrap: wrap;
}
.pv-single__titleblock { min-width: 0; }
.pv-single__venue {
	font: 700 10.5px var(--pv-font-mono);
	letter-spacing: 0.2em;
	color: var(--pv-muted-2);
	text-transform: uppercase;
}
.pv-single__title { font-size: 40px; margin: 4px 0 6px; }
.pv-single__meta { font-size: 13px; color: var(--pv-muted); }
.pv-single__pin svg { width: 74px; height: 86px; display: block; }
.pv-single__badges {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
	margin: 14px 0;
}
.pv-single__hero {
	aspect-ratio: 16 / 10;
	max-height: 520px;
	width: 100%;
	overflow: hidden;
	background: repeating-linear-gradient(45deg, var(--pv-photo-a) 0 10px, var(--pv-photo-b) 10px 20px);
}
.pv-single__hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.pv-single__grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 20px;
	margin-top: 20px;
	align-items: start;
}
@media (max-width: 900px) {
	.pv-single__grid { grid-template-columns: 1fr; }
	.pv-single__title { font-size: 34px; }
}
.pv-single__section { margin-top: 20px; }
.pv-single__content {
	font-size: 14px;
	line-height: 1.55;
	color: var(--pv-muted);
	max-width: 720px;
}

/* Archive scaffold */
.pv-archive { padding: 24px 0 60px; }
.pv-archive__head { margin: 10px 0 16px; }
.pv-archive__title { font-size: 44px; }
.pv-archive .pv-filterbar { margin-bottom: 20px; }
.pv-archive__none {
	font: 12px var(--pv-font-mono);
	color: var(--pv-muted-2);
	padding: 40px 0;
	text-transform: uppercase;
}

/* Pagination */
.pv-pagination {
	display: flex;
	gap: 8px;
	margin-top: 24px;
	font: 700 11px var(--pv-font-mono);
}
.pv-pagination a,
.pv-pagination span {
	border: 1px solid var(--pv-border-2);
	padding: 8px 12px;
	color: var(--pv-muted);
	text-decoration: none;
	background: var(--pv-panel);
}
.pv-pagination .current {
	background: var(--pv-console);
	color: #fff;
	border-color: var(--pv-console);
}
.pv-pagination a:hover { border-color: var(--pv-ink); color: var(--pv-ink); }

/* =========================================================================
 * REDUCED MOTION — disables sweep, flutter, blink, fader sweeps, hovers.
 * ======================================================================= */

@media (prefers-reduced-motion: reduce) {
	.pv-scope *,
	.pv-pin [data-pv-bar],
	.pv-fader__bar,
	.pv-faders__fill,
	.pv-led {
		animation: none !important;
		transition: none !important;
	}
}

/* ---- v2: member gating (locked tiles + gate panel) ---- */
.pv-tile--locked .pv-tile__value { display: flex; align-items: center; gap: .5em; }
.pv-locked { display: inline-flex; align-items: center; gap: .45em; }
.pv-locked__blur {
  filter: blur(6px);
  user-select: none;
  pointer-events: none;
  opacity: .75;
  letter-spacing: .04em;
}
.pv-locked__key { font-size: .85em; opacity: .8; }

.pv-gate {
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px dashed currentColor;
  border-radius: 8px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  opacity: .95;
}
.pv-gate__copy { display: flex; flex-direction: column; gap: 2px; max-width: 46ch; }
.pv-gate__title { font-weight: 700; letter-spacing: .02em; }
.pv-gate__sub { font-size: .85em; opacity: .8; }
.pv-gate__actions { display: flex; align-items: center; gap: 14px; }
.pv-gate__login { font-size: .85em; text-decoration: underline; opacity: .85; }
@media (max-width: 560px) {
  .pv-gate { flex-direction: column; align-items: flex-start; }
}

/* ---- v2: account path (register / login / welcome / dashboard) ---- */
.pv-account { padding: 48px 20px 72px; }
.pv-account__wrap {
  max-width: 980px; margin: 0 auto;
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: start;
}
.pv-account__wrap--narrow { max-width: 560px; grid-template-columns: 1fr; }
.pv-account__wrap--wide { max-width: 1080px; grid-template-columns: 1fr; gap: 24px; }
@media (max-width: 760px) { .pv-account__wrap { grid-template-columns: 1fr; } }

.pv-account__kicker {
  font-family: var(--pv-font-mono); font-size: 11px; letter-spacing: .18em;
  color: var(--pv-muted-2); margin: 0 0 10px;
}
.pv-account__title {
  font-family: var(--pv-font-display); font-size: clamp(30px, 4.5vw, 44px);
  line-height: 1.05; margin: 0 0 12px; color: var(--pv-ink);
}
.pv-account__sub { color: var(--pv-muted); margin: 0 0 22px; max-width: 46ch; }
.pv-account__fine { font-size: 12px; color: var(--pv-muted-2); margin-top: 18px; }

.pv-unlocks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pv-unlocks__item {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--pv-font-mono); font-size: 13px; color: var(--pv-ink);
  padding: 10px 12px; background: var(--pv-panel);
  border: 1px solid var(--pv-border); border-radius: 6px;
}
.pv-unlocks__led {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--pv-led-off); flex: none;
}
.pv-unlocks__led.is-go { background: var(--pv-go); }
.pv-unlocks__led.is-limited { background: var(--pv-limited); }
.pv-unlocks__led.is-no { background: var(--pv-no); }
.pv-unlocks__led.is-info { background: var(--pv-info); }

.pv-account__form {
  background: var(--pv-panel); border: 1px solid var(--pv-border);
  border-radius: 10px; padding: 26px 26px 22px;
}
.pv-account__formtitle {
  font-family: var(--pv-font-display); font-size: 24px; margin: 0 0 16px; color: var(--pv-ink);
}
.pv-account__switch { font-size: 13px; color: var(--pv-muted); margin-top: 16px; }
.pv-account__switch a { color: var(--pv-info); }
.pv-account__legal { font-size: 11px; color: var(--pv-muted-2); margin-top: 12px; line-height: 1.5; }
.pv-account__fallback { font-size: 13px; color: var(--pv-muted); }

/* Reskin any form fields rendered inside the account scope
   (Directorist registration/login/dashboard + WP fallbacks). */
.pv-account input[type="text"],
.pv-account input[type="email"],
.pv-account input[type="password"],
.pv-account input[type="url"],
.pv-account select,
.pv-account textarea {
  width: 100%; padding: 12px 14px; margin: 4px 0 14px;
  font: 14px/1.4 var(--pv-font-ui); color: var(--pv-ink);
  background: var(--pv-bg); border: 1px solid var(--pv-border-2); border-radius: 6px;
}
.pv-account input:focus, .pv-account select:focus, .pv-account textarea:focus {
  outline: 2px solid var(--pv-info); outline-offset: 1px; border-color: var(--pv-info);
}
.pv-account label { font-family: var(--pv-font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--pv-muted); }
.pv-account input[type="submit"],
.pv-account button[type="submit"] {
  display: block; width: 100%; padding: 13px 18px; border: 0; border-radius: 6px;
  background: var(--pv-go); color: var(--pv-ink-on-go);
  font: 700 14px/1 var(--pv-font-ui); letter-spacing: .06em; cursor: pointer;
}
.pv-account input[type="submit"]:hover, .pv-account button[type="submit"]:hover { filter: brightness(1.08); }

/* Planner / venue fork */
.pv-usertype { border: 0; padding: 0; margin: 4px 0 16px; display: grid; gap: 8px; }
.pv-usertype__opt {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 12px; border: 1px solid var(--pv-border); border-radius: 6px; cursor: pointer;
  text-transform: none; letter-spacing: 0;
}
.pv-usertype__opt:has(input:checked) { border-color: var(--pv-info); outline: 1px solid var(--pv-info); }
.pv-usertype__opt input { margin-top: 3px; }
.pv-usertype__opt strong { display: block; font: 600 14px/1.3 var(--pv-font-ui); color: var(--pv-ink); }
.pv-usertype__opt em { display: block; font: 12px/1.4 var(--pv-font-ui); font-style: normal; color: var(--pv-muted); }

/* Welcome console */
.pv-welcome { text-align: left; }
.pv-welcome__console {
  display: inline-flex; align-items: center; gap: 12px;
  background: var(--pv-console); color: #fff;
  padding: 12px 18px; border-radius: 8px; margin-bottom: 22px;
  font-family: var(--pv-font-mono); font-size: 13px; letter-spacing: .14em;
}
.pv-welcome__led { width: 9px; height: 9px; border-radius: 50%; }
.pv-welcome__led.is-go { background: var(--pv-go); box-shadow: 0 0 8px var(--pv-go); }
.pv-welcome__user { color: var(--pv-muted-2); }
.pv-welcome__actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 6px 0 28px; }

/* Consultation panel — the PS surface */
.pv-consult {
  margin-top: 8px; padding: 18px 20px;
  border-left: 3px solid var(--pv-info);
  background: var(--pv-panel); border-radius: 0 8px 8px 0;
}
.pv-consult--dash { margin-top: 4px; }
.pv-consult__kicker { font-family: var(--pv-font-mono); font-size: 10px; letter-spacing: .18em; color: var(--pv-muted-2); margin: 0 0 6px; }
.pv-consult__copy { font-size: 14px; color: var(--pv-muted); margin: 0 0 8px; max-width: 56ch; }
.pv-consult__link { font: 600 14px var(--pv-font-ui); color: var(--pv-info); text-decoration: none; }
.pv-consult__link:hover { text-decoration: underline; }

/* Member dashboard header */
.pv-member {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  padding: 18px 20px; background: var(--pv-console); border-radius: 10px; margin-bottom: 20px;
}
.pv-member__id { display: flex; align-items: center; gap: 14px; }
.pv-member__name { font-family: var(--pv-font-display); font-size: 22px; color: #fff; }
.pv-member__meta { font-family: var(--pv-font-mono); font-size: 11px; letter-spacing: .14em; color: var(--pv-muted-2); margin-top: 2px; }
.pv-member__actions { display: flex; align-items: center; gap: 12px; }
.pv-account__panel {
  background: var(--pv-panel); border: 1px solid var(--pv-border);
  border-radius: 10px; padding: 24px; margin-bottom: 20px;
}
