/**
 * Post a Need — Block Styles.
 *
 * @package WBListoraPro
 */

/* ---- Wrapper ---- */

.listora-post-need {
	max-width: 640px;
	margin-inline: auto;
}

/* ---- Login Prompt ---- */

.listora-post-need__login {
	text-align: center;
	padding: var(--listora-space-12, 2.5rem);
	background: var(--listora-card-bg, var(--listora-bg-elevated));
	border: var(--listora-card-border, 1px solid var(--listora-border-default));
	border-radius: var(--listora-radius-xl, 1rem);
}

.listora-post-need__login h2 {
	margin: 0 0 0.5rem;
	font-size: var(--listora-text-xl, 1.25rem);
	font-weight: var(--listora-weight-bold, 700);
}

.listora-post-need__login p {
	color: var(--listora-fg-muted, var(--listora-wp-admin-text-muted));
	margin: 0 0 var(--listora-space-4, 1rem);
}

/* ---- Form ---- */

.listora-post-need__form {
	background: var(--listora-card-bg, var(--listora-bg-elevated));
	border: var(--listora-card-border, 1px solid var(--listora-border-default));
	border-radius: var(--listora-radius-xl, 1rem);
	box-shadow: var(--listora-shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.05));
	padding: var(--listora-space-6, 1.5rem);
}

/* ---- Field ---- */

.listora-post-need__field {
	margin-block-end: var(--listora-space-4, 1rem);
}

.listora-post-need__label {
	display: block;
	font-size: var(--listora-text-sm, 0.875rem);
	font-weight: var(--listora-weight-semibold, 600);
	color: var(--listora-text, var(--listora-wp-admin-text));
	margin-block-end: 0.3rem;
}

.listora-post-need__label .required {
	color: var(--listora-danger, var(--listora-danger));
}

/* ---- Input / Textarea / Select ---- */

.listora-post-need__input,
.listora-post-need__textarea,
.listora-post-need__select {
	width: 100%;
	padding: 0.625rem 0.75rem;
	border: 1px solid var(--listora-border, var(--listora-border-strong));
	border-radius: var(--listora-radius-md, 0.5rem);
	font-size: var(--listora-text-base, 1rem);
	background: var(--listora-bg-elevated);
	color: var(--listora-text, var(--listora-wp-admin-text));
	transition: border-color var(--listora-transition-fast, 0.15s);
	box-sizing: border-box;
}

.listora-post-need__input:focus,
.listora-post-need__textarea:focus,
.listora-post-need__select:focus {
	border-color: var(--listora-primary, var(--listora-info));
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--listora-primary, var(--listora-info)) 15%, transparent);
	outline: 2px solid transparent; /* Preserve focus ring for high-contrast mode. */
}

.listora-post-need__urgency-option input:focus-visible + span {
	outline: 2px solid var(--listora-primary, var(--listora-wp-admin-link));
	outline-offset: 2px;
}

.listora-post-need__textarea {
	min-height: 120px;
	resize: vertical;
}

/* ---- Budget Row (2 col) ---- */

.listora-post-need__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--listora-space-2, 0.75rem);
}

/* ---- Urgency Radio Pills ---- */

.listora-post-need__urgency {
	display: flex;
	gap: var(--listora-space-2, 0.75rem);
	flex-wrap: wrap;
}

.listora-post-need__urgency-option {
	cursor: pointer;
	display: inline-flex;
}

.listora-post-need__urgency-option input[type="radio"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.listora-post-need__urgency-option span {
	display: inline-block;
	padding: 0.4rem 1rem;
	border: 1px solid var(--listora-border, var(--listora-border-strong));
	border-radius: 999px;
	font-size: var(--listora-text-sm, 0.875rem);
	font-weight: var(--listora-weight-medium, 500);
	color: var(--listora-fg-muted, var(--listora-wp-admin-text-muted));
	transition: all var(--listora-transition-fast, 0.15s);
	user-select: none;
}

.listora-post-need__urgency-option span:hover {
	border-color: var(--listora-primary, var(--listora-info));
	color: var(--listora-primary, var(--listora-info));
}

.listora-post-need__urgency-option input[type="radio"]:checked + span {
	background: var(--listora-primary, var(--listora-info));
	border-color: var(--listora-primary, var(--listora-info));
	color: var(--listora-fg-inverse, var(--listora-bg-elevated));
}

/* ---- Honeypot ---- */

.listora-post-need__hp {
	position: absolute;
	left: -9999px;
	opacity: 0;
	height: 0;
	overflow: hidden;
}

/* ---- Submit Button ---- */

.listora-post-need__submit {
	display: block;
	width: 100%;
	padding: 0.75rem 1.5rem;
	margin-block-start: var(--listora-space-4, 1rem);
	background: var(--listora-primary, var(--listora-info));
	color: var(--listora-fg-inverse, var(--listora-bg-elevated));
	font-size: var(--listora-text-base, 1rem);
	font-weight: var(--listora-weight-semibold, 600);
	border: none;
	border-radius: var(--listora-radius-md, 0.5rem);
	cursor: pointer;
	transition: background var(--listora-transition-fast, 0.15s);
}

.listora-post-need__submit:hover {
	filter: brightness(0.9);
}

.listora-post-need__submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* ---- Message Area ---- */

.listora-post-need__message {
	border-radius: var(--listora-radius-md, 0.5rem);
	font-size: var(--listora-text-sm, 0.875rem);
	padding: 0;
	transition: padding var(--listora-transition-fast, 0.15s);
}

.listora-post-need__message:not(:empty) {
	padding: var(--listora-space-2, 0.75rem) var(--listora-space-4, 1rem);
	margin-block-end: var(--listora-space-2, 0.75rem);
}

.listora-post-need__message--success {
	background: color-mix(in srgb, var(--listora-success, var(--listora-success)) 10%, transparent);
	color: var(--listora-success, var(--listora-success));
}

.listora-post-need__message--error {
	background: color-mix(in srgb, var(--listora-danger, var(--listora-danger)) 10%, transparent);
	color: var(--listora-danger, var(--listora-danger));
}

/* ---- Note ---- */

.listora-post-need__note {
	font-size: var(--listora-text-xs, 0.75rem);
	color: var(--listora-fg-faint, var(--listora-fg-faint));
	margin-block-start: var(--listora-space-2, 0.75rem);
	text-align: center;
}

/* ---- Loading State ---- */

.listora-post-need.is-submitting .listora-post-need__form {
	opacity: 0.6;
	pointer-events: none;
}

/* ---- Responsive ---- */

@media (max-width: 640px) {
	.listora-post-need__row {
		grid-template-columns: minmax(0, 1fr);
	}
}
