/*
 * PowerLand Design System — RDX-03 component primitives
 * Requires tokens.css and foundations.css inside the v2 scope.
 */

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-card {
	padding: var(--pl-space-6);
	border: 1px solid var(--pl-color-border-subtle);
	border-radius: var(--pl-radius-lg);
	color: var(--pl-color-text-primary);
	background: var(--pl-color-bg-surface);
	box-shadow: var(--pl-shadow-1);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-card[data-emphasis="raised"] {
	box-shadow: var(--pl-shadow-2);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-card[data-state="selected"] {
	border-color: var(--pl-color-brand-primary);
	box-shadow: 0 0 0 2px var(--pl-color-brand-primary), var(--pl-shadow-1);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-block-size: var(--pl-control-height-md);
	gap: var(--pl-space-2);
	padding-inline: var(--pl-space-5);
	border: 1px solid transparent;
	border-radius: var(--pl-radius-md);
	font-weight: var(--pl-font-weight-bold);
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition:
		transform var(--pl-duration-fast) var(--pl-ease-standard),
		background-color var(--pl-duration-fast) var(--pl-ease-standard),
		border-color var(--pl-duration-fast) var(--pl-ease-standard),
		box-shadow var(--pl-duration-fast) var(--pl-ease-standard);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button:hover:not(:disabled, [aria-disabled="true"]) {
	transform: translateY(-1px);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button:active:not(:disabled, [aria-disabled="true"]) {
	transform: translateY(0);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button:disabled,
:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button[aria-disabled="true"] {
	opacity: 0.55;
	cursor: not-allowed;
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button[data-variant="primary"] {
	color: var(--pl-color-text-on-brand);
	background: var(--pl-color-brand-primary);
	box-shadow: var(--pl-shadow-1);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button[data-variant="secondary"] {
	border-color: var(--pl-color-border-strong);
	color: var(--pl-color-text-primary);
	background: var(--pl-color-bg-subtle);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button[data-variant="ghost"] {
	border-color: transparent;
	color: var(--pl-color-link);
	background: transparent;
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button[data-size="small"] {
	min-block-size: var(--pl-control-height-sm);
	padding-inline: var(--pl-space-4);
	font-size: var(--pl-font-size-200);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button[data-size="large"] {
	min-block-size: var(--pl-control-height-lg);
	padding-inline: var(--pl-space-6);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-field {
	display: grid;
	gap: var(--pl-space-2);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-field__label {
	color: var(--pl-color-text-primary);
	font-size: var(--pl-font-size-300);
	font-weight: var(--pl-font-weight-bold);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-field__hint {
	color: var(--pl-color-text-muted);
	font-size: var(--pl-font-size-200);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-field :where(input, select, textarea) {
	inline-size: 100%;
	min-block-size: var(--pl-control-height-lg);
	padding: var(--pl-space-3) var(--pl-space-4);
	border: 1px solid var(--pl-color-border-strong);
	border-radius: var(--pl-radius-md);
	color: var(--pl-color-text-primary);
	background: var(--pl-color-bg-surface);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-field textarea {
	min-block-size: 8rem;
	resize: vertical;
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-field :where(input, select, textarea)[aria-invalid="true"] {
	border-color: var(--pl-color-danger);
	box-shadow: 0 0 0 1px var(--pl-color-danger);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-field__error {
	color: var(--pl-color-danger);
	font-size: var(--pl-font-size-200);
	font-weight: var(--pl-font-weight-bold);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) :where(.pl-chip, .pl-status) {
	display: inline-flex;
	align-items: center;
	min-block-size: 1.75rem;
	gap: var(--pl-space-1);
	padding-inline: var(--pl-space-3);
	border-radius: var(--pl-radius-pill);
	font-size: var(--pl-font-size-100);
	font-weight: var(--pl-font-weight-bold);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-chip {
	color: var(--pl-color-text-primary);
	background: var(--pl-color-bg-subtle);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-status[data-tone="success"] {
	color: var(--pl-color-success);
	background: color-mix(in srgb, var(--pl-color-success) 12%, transparent);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-status[data-tone="warning"] {
	color: var(--pl-color-warning);
	background: color-mix(in srgb, var(--pl-color-warning) 12%, transparent);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-status[data-tone="danger"] {
	color: var(--pl-color-danger);
	background: color-mix(in srgb, var(--pl-color-danger) 12%, transparent);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-status[data-tone="info"] {
	color: var(--pl-color-info);
	background: color-mix(in srgb, var(--pl-color-info) 12%, transparent);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-notice {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: var(--pl-space-3);
	padding: var(--pl-space-4);
	border: 1px solid var(--pl-color-border-subtle);
	border-inline-start: 4px solid currentColor;
	border-radius: var(--pl-radius-sm);
	background: var(--pl-color-bg-subtle);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-notice[data-tone="success"] { color: var(--pl-color-success); }
:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-notice[data-tone="warning"] { color: var(--pl-color-warning); }
:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-notice[data-tone="danger"] { color: var(--pl-color-danger); }
:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-notice[data-tone="info"] { color: var(--pl-color-info); }

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-notice__body {
	color: var(--pl-color-text-primary);
}

:where(.powerland-ui-v2, [data-powerland-ui="v2"]) [aria-busy="true"] {
	cursor: progress;
}

@media (prefers-reduced-motion: reduce) {
	:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button {
		transition: none;
	}

	:where(.powerland-ui-v2, [data-powerland-ui="v2"]) .pl-button:hover:not(:disabled, [aria-disabled="true"]) {
		transform: none;
	}
}
