/* WB Design System — Forms */

.wb-form-container {
	max-width: 43.75rem;
	margin: 0 auto;
	padding: 1.875rem;
	background: var(--wb-ctx-bg);
	color: var(--wb-ctx-text, #fff);
	border-radius: var(--wb-ctx-radius, 0.9375rem);
}

.wb-form-group {
	margin-bottom: 1.125rem !important;
}

.wb-form-group label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.375rem !important;
	color: var(--wb-ctx-text, #fff);
}

.wb-form-group input[type="text"],
.wb-form-group input[type="email"],
.wb-form-group input[type="tel"],
.wb-form-group input[type="number"],
.wb-form-group input[type="date"],
.wb-form-group input[type="time"],
.wb-form-group input[type="url"],
.wb-form-group input[type="password"],
.wb-form-group select,
.wb-form-group textarea,
#kv-dates-list input[type="text"],
#kv-dates-list input[type="date"] {
	width: 100%;
	padding: 0.625rem 0.875rem;
	border: 0.125rem solid rgba(255, 255, 255, 0.3);
	border-radius: var(--wb-ctx-radius, 0.9375rem);
	background: rgba(255, 255, 255, 0.15);
	color: var(--wb-ctx-text, #fff);
	font-size: 0.9375rem;
	box-sizing: border-box;
	transition: border-color 0.2s;
}

.wb-form-group input:focus,
.wb-form-group select:focus,
.wb-form-group textarea:focus {
	outline: none;
	border-color: var(--wb-ctx-primary);
	background: rgba(255, 255, 255, 0.25);
}

.wb-form-group input::placeholder,
.wb-form-group textarea::placeholder {
	color: rgba(255, 255, 255, 0.6);
}

.wb-form-group select option {
	color: #333 !important;
	background: #fff;
}

.wb-form-group textarea {
	resize: vertical;
}

/* Field validation error */
.wb-field-error {
	border-color: #e74c3c !important;
	background: rgba(231, 76, 60, 0.15) !important;
	outline: 0.125rem solid #e74c3c;
	outline-offset: 0.125rem;
	border-radius: calc(var(--wb-ctx-radius, 0.9375rem) / 2);
}

.wb-field-hint {
	font-size: 0.8rem !important;
	margin: 0.125rem 0 0.5rem;
}

.wb-field-description {
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.6);
	margin-top: 0.25rem;
}

/* Character counter */
.wb-char-counter {
	text-align: right;
	font-size: 0.75rem;
	color: var(--wb-ctx-text, #fff);
	margin-top: 0.25rem;
}

.wb-char-counter-warn {
	color: #e67e22;
}

.wb-char-counter-limit {
	color: #e74c3c;
	font-weight: 600;
}

/* Form layout */
.wb-form-row {
	display: flex;
	gap: 1rem;
}

.wb-form-half {
	flex: 1;
}

.wb-form-third {
	flex: 1;
}

.wb-form-hint {
	font-size: 0.8125rem;
	opacity: 0.8;
	margin-top: 0.25rem;
}

/* Category context box */
.wb-category-context {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--wb-ctx-radius, 0.9375rem);
	padding: 0.875rem 1rem 0.5rem;
	margin-bottom: 1.5rem !important;
}

/* Saving indicator */
.wb-saving-indicator {
	text-align: right;
	font-size: 0.75rem;
	opacity: 0.7;
	margin: -1.125rem 0 0.75rem;
	animation: wb-pulse 1.2s ease-in-out infinite;
}

/* Submit form container */
.wb-submit-form {
	width: 50rem;
	max-width: 100%;
	padding: 1.875rem 0;
	color: var(--wb-ctx-text, #fff);
}

.wb-submit-form h2 {
	margin-top: 0;
	margin-bottom: 1.5rem;
}

.wb-submit-form h3 {
	margin-top: 0;
	margin-bottom: 1.25rem;
	border-bottom: 0.125rem solid rgba(255, 255, 255, 0.2);
	padding-bottom: 0.625rem;
}

/* Searchable select */
.wb-searchable-select {
	position: relative;
}

.wb-ss-input {
	width: 100%;
	padding: 0.625rem 0.875rem;
	border: 0.125rem solid rgba(255, 255, 255, 0.3);
	border-radius: var(--wb-ctx-radius, 0.9375rem);
	background: rgba(255, 255, 255, 0.15);
	color: var(--wb-ctx-text, #fff);
	font-size: 0.9375rem;
	box-sizing: border-box;
	transition: border-color 0.2s;
}

.wb-ss-input:focus {
	outline: none;
	border-color: var(--wb-ctx-primary);
	background: rgba(255, 255, 255, 0.25);
}

.wb-ss-input::placeholder {
	color: rgba(255, 255, 255, 0.6);
}

.wb-ss-dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	max-height: 12rem;
	overflow-y: auto;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 0.5rem;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
	z-index: 100;
	margin-top: 0.25rem;
}

.wb-ss-item {
	padding: 0.5rem 0.875rem;
	cursor: pointer;
	color: #333 !important;
	font-size: 0.9375rem;
}

.wb-ss-item:hover,
.wb-ss-item-active {
	background: #f0f0f0;
}

.wb-ss-empty {
	padding: 0.5rem 0.875rem;
	color: #999 !important;
	font-size: 0.875rem;
}

/* Dashboard context: light-background overrides */
.wb-dashboard-content .wb-ss-input {
	border-color: #ddd;
	background: #fff;
	color: #333;
}

.wb-dashboard-content .wb-ss-input:focus {
	border-color: #999;
	background: #fff;
}

.wb-dashboard-content .wb-ss-input::placeholder {
	color: #999;
}

/* Responsive */
@media (max-width: 37.5rem) {
	.wb-form-row {
		flex-direction: column;
	}
}
