@layer components {
	/*
	 * Shared select control
	 *
	 * Keep route-specific select styles out of page styles. Add data-rida-select
	 * to a native select and the shared controller will preserve its value and
	 * form events while presenting this consistent interface.
	 */
	.rida-select-native {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		margin: -1px !important;
		padding: 0 !important;
		overflow: hidden !important;
		clip: rect(0 0 0 0) !important;
		clip-path: inset(50%) !important;
		border: 0 !important;
		white-space: nowrap !important;
	}

	.rida-select {
		position: relative;
		width: 100%;
		min-width: 0;
		font-family: var(--font-main), sans-serif;
	}

	.rida-select__trigger {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr) auto;
		align-items: center;
		gap: 10px;
		width: 100%;
		min-height: var(--control-height);
		padding: var(--control-padding-block) var(--control-padding-inline);
		border: 1px solid var(--table-border);
		border-radius: var(--radius-sm);
		background: var(--surface);
		color: var(--text);
		font: var(--control-font-weight) var(--control-font-size)/1.25 var(--font-main), sans-serif;
		text-align: left;
		cursor: pointer;
		box-sizing: border-box;
	}

	.rida-select__trigger:hover:not(:disabled) {
		background: color-mix(in srgb, var(--elevation) 45%, var(--surface));
	}

	.rida-select__trigger:focus-visible,
	.rida-select.is-open .rida-select__trigger {
		border-color: var(--blue);
		outline: none;
		box-shadow: 0 0 0 2px color-mix(in srgb, var(--blue) 16%, transparent);
	}

	.rida-select__trigger:disabled {
		cursor: not-allowed;
		opacity: 0.58;
	}

	.rida-select__leading,
	.rida-select__caret {
		color: var(--text-muted);
	}

	.rida-select__leading:empty {
		display: none;
	}

	.rida-select__swatch {
		display: block;
		width: 30px;
		height: 30px;
		border-radius: var(--radius-md);
		background: var(--rida-option-color, var(--blue));
	}

	.rida-select__value,
	.rida-select__option-copy {
		display: grid;
		gap: 2px;
		min-width: 0;
	}

	.rida-select__value strong,
	.rida-select__option-copy strong {
		overflow: hidden;
		font: var(--control-font-weight) var(--control-font-size)/1.2 var(--font-main), sans-serif;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.rida-select__value small,
	.rida-select__option-copy small {
		overflow: hidden;
		color: var(--text-muted);
		font: 600 0.72rem/1.25 var(--font-main), sans-serif;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.rida-select__caret {
		justify-self: end;
		font-size: 0.68rem;
		transition: transform 160ms ease;
	}

	.rida-select.is-open .rida-select__caret {
		transform: rotate(180deg);
	}

	.rida-select__menu {
		position: fixed;
		z-index: var(--z-select-menu);
		display: grid;
		gap: 3px;
		max-height: min(280px, 45vh);
		padding: 4px;
		border: 1px solid var(--table-border);
		border-radius: var(--radius-md);
		background: var(--surface);
		box-shadow: var(--shadow-md);
		overflow-x: hidden;
		overflow-y: auto;
		box-sizing: border-box;
	}

	.rida-select__menu[hidden] {
		display: none;
	}

	.rida-select__option {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 18px;
		align-items: center;
		gap: 10px;
		width: 100%;
		min-height: var(--control-height);
		padding: 7px 9px;
		border: 0;
		border-radius: var(--radius-sm);
		background: transparent;
		color: var(--text);
		text-align: left;
		cursor: pointer;
		box-sizing: border-box;
	}

	.rida-select__option > i {
		justify-self: end;
		color: var(--blue);
		opacity: 0;
	}

	.rida-select__option:hover,
	.rida-select__option:focus-visible {
		background: var(--elevation);
		outline: none;
	}

	.rida-select__option.is-selected {
		background: var(--alpha-blue);
		color: var(--blue);
	}

	.rida-select__option.is-selected > i {
		opacity: 1;
	}

	.rida-select--color .rida-select__trigger {
		min-height: 52px;
		border-color: var(--rida-select-color, var(--table-border));
		background: color-mix(in srgb, var(--rida-select-color, var(--blue)) 10%, var(--surface));
	}

	.rida-select__option--color {
		grid-template-columns: auto minmax(0, 1fr) 18px;
		min-height: 52px;
		border: 1px solid transparent;
	}

	.rida-select__option--color:hover,
	.rida-select__option--color:focus-visible,
	.rida-select__option--color.is-selected {
		border-color: var(--rida-option-color);
		background: color-mix(in srgb, var(--rida-option-color) 10%, var(--surface));
		color: var(--text);
	}

	.rida-select__option--color.is-selected > i {
		color: var(--rida-option-color);
	}

	.rida-select__menu--hide-checkmark .rida-select__option {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
		padding-inline: 10px;
	}

	.rida-select__option:disabled {
		cursor: not-allowed;
		opacity: 0.48;
	}

	.rida-select--compact {
		width: auto;
		min-width: 70px;
	}

	.rida-select--compact .rida-select__trigger {
		min-height: 30px;
		padding-block: 4px;
	}

	.rida-select--compact .rida-select__option,
	.rida-select__menu--compact .rida-select__option {
		min-height: 34px;
	}

	@media (max-width: 640px) {
		.rida-select__trigger {
			min-height: var(--control-height);
		}

		.rida-select__option {
			min-height: 44px;
		}
	}
}

@layer components {
    .rida-select__group-label {
        padding: 10px 12px 6px;
        color: var(--text-muted);
        font: 700 var(--type-caption)/1.3 var(--font-main), sans-serif;
    }
    .rida-select__menu > [role="group"] + [role="group"] {
        margin-top: 6px;
        border-top: 1px solid var(--table-border);
    }
}
