:root {
	color-scheme: light;
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	background: #f5f7fa;
	color: #1c2430;
	--success-color: #126334;
	--warning-color: #7a5300;
	--danger-color: #9d2525;
	--muted-color: #687386;
	--status-track-color: #edf1f5;
}

* {
	box-sizing: border-box;
}

body {
	margin: 0;
	min-height: 100vh;
	background: #f5f7fa;
}

button,
input {
	font: inherit;
}

.view-hidden {
	display: none !important;
}

.login-view {
	display: grid;
	min-height: 100vh;
	place-items: center;
	padding: 24px clamp(16px, 4vw, 44px);
}

.login-card {
	display: grid;
	gap: 18px;
	width: min(420px, 100%);
	padding: 28px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 12px 36px rgba(28, 36, 48, 0.08);
}

.login-card h1 {
	margin: 0;
	font-size: 28px;
	letter-spacing: 0;
}

.login-card p {
	margin: 5px 0 0;
	color: #637083;
}

.form-field {
	display: grid;
	gap: 7px;
	font-size: 14px;
	font-weight: 700;
	color: #4d5a6b;
}

.form-field input {
	width: 100%;
	min-height: 42px;
	padding: 9px 11px;
	border: 1px solid #bac5d1;
	border-radius: 8px;
	background: #ffffff;
	color: #1c2430;
	font: inherit;
}

.form-field input:focus {
	border-color: #2d5b89;
	box-shadow: 0 0 0 3px rgba(45, 91, 137, 0.14);
	outline: none;
}

@media (max-width: 740px) {
	.login-card input {
		font-size: 16px;
	}
}

.login-actions {
	display: flex;
	justify-content: flex-end;
}

.login-actions button,
.logout-button {
	min-height: 38px;
	padding: 8px 12px;
	border: 1px solid #bac5d1;
	border-radius: 8px;
	background: #ffffff;
	color: #1c2430;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.login-actions button {
	background: #1f6e43;
	border-color: #1f6e43;
	color: #ffffff;
}

.login-actions button:hover:not(:disabled) {
	background: #195936;
}

.logout-button:hover:not(:disabled) {
	border-color: #7d8da1;
	background: #f9fbfd;
}

.login-actions button:disabled,
.logout-button:disabled {
	cursor: not-allowed;
	opacity: 0.62;
}

.header-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 12px;
}

.user-panel {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
}

.session-actions {
	display: flex;
	align-items: stretch;
	gap: 8px;
	min-width: 0;
}

.user-identity {
	display: grid;
	justify-items: end;
	line-height: 1.2;
}

.user-name {
	color: #1c2430;
	font-size: 14px;
	font-weight: 800;
}

.user-username {
	color: #637083;
	font-size: 12px;
	font-weight: 600;
}

.permission-disabled {
	background: #f4f5f7;
	color: #687386;
}

.app-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 24px clamp(16px, 4vw, 44px);
	background: #ffffff;
	border-bottom: 1px solid #d9e0e8;
}

.app-header h1 {
	margin: 0;
	font-size: 28px;
	font-weight: 700;
	letter-spacing: 0;
}

.app-header p {
	margin: 4px 0 0;
	color: #637083;
	font-size: 14px;
}

.status-strip {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 8px;
}

.status-pill {
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	padding: 5px 10px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	border: 1px solid transparent;
}

.status-online {
	background: #e7f7ee;
	border-color: #a9dfbf;
	color: #126334;
}

.status-offline {
	background: #f4f5f7;
	border-color: #d5dae1;
	color: #687386;
}

.status-error {
	background: #fff0f0;
	border-color: #f0b4b4;
	color: #9d2525;
}

.status-neutral {
	background: #eef4fb;
	border-color: #c7d9ee;
	color: #2d5b89;
}

.app-main {
	width: min(1760px, 100%);
	margin: 0 auto;
	padding: 24px clamp(16px, 4vw, 44px) 40px;
}

.toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-width: 0;
	flex-wrap: wrap;
	margin-bottom: 18px;
}

.toolbar h2 {
	margin: 0;
	font-size: 21px;
	letter-spacing: 0;
}

.toolbar button,
.relay-button,
.number-command-submit,
.rgbw-gradient-add,
.rgbw-gradient-test,
.rgbw-gradient-apply,
.rgbw-gradient-reset,
.rgbw-gradient-remove {
	min-height: 38px;
	padding: 8px 12px;
	border: 1px solid #bac5d1;
	border-radius: 8px;
	background: #ffffff;
	color: #1c2430;
	font-weight: 600;
	cursor: pointer;
}

.number-command-submit {
	width: 44px;
	min-height: 44px;
	padding: 0;
	text-align: center;
	font-size: 18px;
	font-weight: 800;
	line-height: 1;
}

.toolbar button:hover,
.relay-button:hover:not(:disabled),
.number-command-submit:hover:not(:disabled),
.rgbw-gradient-add:hover:not(:disabled),
.rgbw-gradient-test:hover:not(:disabled),
.rgbw-gradient-apply:hover:not(:disabled),
.rgbw-gradient-reset:hover:not(:disabled),
.rgbw-gradient-remove:hover:not(:disabled) {
	border-color: #7d8da1;
	background: #f9fbfd;
}

.toolbar button:disabled,
.relay-button:disabled,
.number-command-submit:disabled,
.rgbw-gradient-add:disabled,
.rgbw-gradient-test:disabled,
.rgbw-gradient-apply:disabled,
.rgbw-gradient-reset:disabled,
.rgbw-gradient-remove:disabled {
	cursor: not-allowed;
	opacity: 0.62;
}

.boolean-switch-control {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	max-width: 100%;
	min-width: 0;
	vertical-align: middle;
}

.boolean-switch-label {
	color: #687386;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0;
}

.boolean-switch-input {
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	width: 44px;
	height: 24px;
	margin: 0;
	border: 1px solid #bac5d1;
	border-radius: 999px;
	background: var(--status-track-color);
	cursor: pointer;
	flex: 0 0 auto;
	transition: background-color 0.16s ease, border-color 0.16s ease;
}

.boolean-switch-input::before {
	content: "";
	position: absolute;
	top: 2px;
	left: 2px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #ffffff;
	box-shadow: 0 1px 2px rgba(28, 36, 48, 0.2);
	transition: transform 0.16s ease;
}

.boolean-switch-input:checked {
	background: #1f6e43;
	border-color: #1f6e43;
}

.boolean-switch-input:checked::before {
	transform: translateX(20px);
}

.boolean-switch-input:hover:not(:disabled) {
	border-color: #7d8da1;
}

.boolean-switch-input:focus-visible {
	outline: 2px solid #2d5b89;
	outline-offset: 2px;
}

.boolean-switch-input:disabled {
	cursor: not-allowed;
	opacity: 0.72;
}

.message-area {
	display: grid;
	gap: 8px;
	margin-bottom: 16px;
}

.message {
	padding: 10px 12px;
	border-radius: 8px;
	background: #fff8e8;
	border: 1px solid #ead39c;
	color: #694d12;
	font-size: 14px;
}

.message-error {
	background: #fff0f0;
	border-color: #f0b4b4;
	color: #9d2525;
}

.device-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	align-items: start;
}

.device-card {
	position: relative;
	display: grid;
	gap: 10px;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	padding: 4px 8px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 1px 2px rgba(28, 36, 48, 0.04);
}

.device-card--compact {
	height: 100px;
	min-height: 100px;
	max-height: 100px;
	grid-template-rows: 44px 44px;
	gap: 0;
	padding: 4px 8px;
	overflow: hidden;
}

.device-card:not(.device-card--compact) > .device-card-main-values {
	margin-top: 10px;
	padding: 0 6px 4px;
}

.device-card-header {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.device-card-title-row {
	min-width: 0;
	overflow: hidden;
}

.device-management-shortcut {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #334155;
	cursor: pointer;
}

.device-management-shortcut:focus-visible {
	outline: 3px solid rgba(37, 99, 235, 0.4);
	outline-offset: 2px;
}

.device-title h3 {
	margin: 0;
	font-size: 18px;
	letter-spacing: 0;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	word-break: normal;
	overflow-wrap: normal;
}

.device-card-toggle,
.device-config-toggle,
.device-status-indicator {
	font: inherit;
	cursor: pointer;
}

.device-card-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	width: 100%;
	min-width: 0;
	min-height: 44px;
	height: 44px;
	padding: 0 4px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: #334155;
	overflow: hidden;
	text-align: left;
}

.device-card-toggle:hover,
.device-card-toggle:focus-visible,
.device-config-toggle:hover,
.device-config-toggle:focus-visible {
	color: #1d4f7d;
}

.device-card-toggle:hover,
.device-card-toggle:focus-visible {
	background: #f4f8fb;
}

.device-card-toggle-caption {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 800;
	user-select: none;
}

.device-card-toggle .action-icon {
	width: 18px;
	height: 18px;
	transition: transform 160ms ease;
}

.device-card-toggle[aria-expanded="true"] .action-icon {
	transform: rotate(180deg);
}

.device-config-toggle .action-icon {
	transition: transform 160ms ease;
}

.device-config-toggle[aria-expanded="true"] .action-icon {
	transform: rotate(180deg);
}

.device-card-toggle:focus-visible,
.device-config-toggle:focus-visible,
.device-status-indicator:focus-visible {
	outline: 3px solid rgba(37, 99, 235, 0.4);
	outline-offset: 2px;
}

.device-status-control {
	position: relative;
	display: inline-flex;
	flex: 0 0 44px;
	align-self: center;
	z-index: 2;
}

.device-status-indicator {
	width: 44px;
	height: 44px;
	flex: 0 0 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
}

.device-status-indicator::before {
	display: block;
	width: 13px;
	height: 13px;
	margin: 0 0 0 4px;
	border: 2px solid #ffffff;
	border-radius: 50%;
	box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.25);
	content: "";
}

.device-status-indicator--red::before { background: #c93030; }
.device-status-indicator--gray::before { background: #8793a2; }
.device-status-indicator--orange::before { background: #d97706; }
.device-status-indicator--green::before { background: #169653; }

.device-status-popover {
	position: fixed;
	top: 0;
	left: 0;
	display: none;
	width: min(300px, calc(100vw - 24px));
	max-height: calc(100vh - 24px);
	padding: 12px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 12px 28px rgba(15, 23, 42, 0.18);
	color: #1c2430;
	font-size: 13px;
	line-height: 1.4;
	overflow-y: auto;
	overflow-wrap: anywhere;
	pointer-events: none;
	z-index: 1300;
}

.device-status-popover.is-visible {
	display: block;
}

.device-status-reasons {
	display: grid;
	gap: 5px;
	margin: 8px 0 0;
	padding-left: 18px;
}

.device-compact-content {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: 44px;
	gap: 0 10px;
	align-content: center;
	min-width: 0;
	min-height: 0;
	overflow: hidden;
}

.compact-capability {
	display: grid;
	grid-template-columns: 16px minmax(0, 1fr);
	align-items: center;
	gap: 4px;
	min-width: 0;
	min-height: 16px;
	border-radius: 3px;
	color: #334155;
}

.compact-capability:has(.compact-capability-control) {
	grid-row: span 1;
}

.compact-capability--unknown {
	grid-template-columns: 16px minmax(32px, 0.7fr) minmax(0, 1fr);
}

.compact-capability-short-label {
	min-width: 0;
	overflow: hidden;
	color: #687386;
	font-size: 10px;
	font-weight: 700;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.compact-capability:focus-visible {
	outline: 2px solid #2d5b89;
	outline-offset: 1px;
}

.compact-capability-value {
	display: inline-flex;
	align-items: baseline;
	gap: 3px;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-size: 13px;
	line-height: 1;
}

.compact-capability-number {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	font-size: 13px;
	font-weight: 800;
}

.compact-capability-unit {
	flex: 0 0 auto;
	color: #687386;
	font-size: 11px;
	font-weight: 600;
}

.compact-capability-control {
	display: block;
	min-width: 0;
	padding: 0;
	border: 0;
}

.compact-capability-control .capability-name {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.compact-capability-control .capability-value,
.compact-capability-control .value-stack,
.compact-capability-control .capability-value-summary {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	min-width: 0;
	margin: 0;
}

.capability-row--compact {
	grid-template-columns: minmax(0, 1fr);
	min-height: 0;
	padding: 2px 0;
}

.capability-row--compact .observed-at-group,
.capability-row--compact .status-visualization {
	display: none;
}

.capability-row--compact .capability-name,
.capability-row--compact .capability-value {
	min-width: 0;
	overflow-wrap: anywhere;
	font-size: 12px;
	line-height: 1.2;
}

.capability-row--compact .boolean-switch-control,
.capability-row--compact .enum-command-control,
.capability-row--compact .enum-command-select {
	max-width: 100%;
	min-height: 44px;
}

.device-card .enum-command-select,
.device-card .searchable-enum-button {
	min-height: 24px;
	padding-top: 2px;
	padding-bottom: 2px;
}

.device-compact-empty {
	grid-column: 1 / -1;
	align-self: center;
	margin: 0;
	color: #687386;
	font-size: 12px;
}

.device-compact-more {
	position: absolute;
	right: 8px;
	bottom: 5px;
	color: #687386;
	font-size: 12px;
}

.device-config-toggle {
	width: 100%;
	min-height: 44px;
	padding: 8px 12px;
	border: 0;
	border-top: 1px solid #d9e0e8;
	border-radius: 0 0 7px 7px;
	background: #f8fafc;
	color: #465467;
	font-weight: 800;
	text-align: center;
}

.device-config-values {
	padding-top: 4px;
}

.online-indicator {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-width: 28px;
	min-height: 28px;
	padding: 0 2px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 800;
	white-space: nowrap;
}

.online-symbol {
	font-size: 11px;
	line-height: 1;
}

.device-card-status-row {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 6px;
	min-width: 0;
}

.device-header-indicator {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	min-height: 28px;
	color: var(--muted-color);
}

.device-header-indicator .battery-icon {
	width: 22px;
	height: 12px;
	padding: 1px;
	border-width: 2px;
}

.device-header-indicator .battery-icon::after {
	top: 2px;
	right: -4px;
	height: 5px;
}

.device-header-indicator .linkquality-icon {
	width: 18px;
	height: 18px;
}

.online-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #909aa7;
}

.online-indicator.is-online {
	color: #126334;
	background: #e7f7ee;
}

.online-indicator.is-online .online-dot {
	background: #19a35b;
}

.online-indicator.is-online .online-symbol {
	color: #126334;
}

.online-indicator.is-offline {
	color: #8a2b2b;
	background: #f4f5f7;
}

.online-indicator.is-offline .online-dot {
	background: #c53d3d;
}

.online-indicator.is-offline .online-symbol {
	color: #8a2b2b;
}

.online-indicator.is-unknown {
	background: #eef4fb;
	color: #2d5b89;
}

.online-indicator.is-unknown .online-dot {
	background: #7d8da1;
}

.online-indicator.is-unknown .online-symbol {
	color: #2d5b89;
}

.device-card--offline {
	border-color: #cfd7e1;
	background: #fafbfd;
	box-shadow: 0 1px 1px rgba(28, 36, 48, 0.03);
}

.device-card--offline .device-title h3,
.device-card--offline .capability-name,
.device-card--offline .capability-value,
.device-card--offline .device-footer {
	color: #6b7787;
}

.device-card--offline .device-card-status-row,
.device-card--offline .status-visualization,
.device-card--offline .status-visualization-value {
	color: #6d7a8a;
}

.device-card--offline .online-indicator {
	box-shadow: inset 0 0 0 1px rgba(137, 151, 170, 0.35);
}

.capability-list {
	display: grid;
	gap: 4px;
	margin: 0;
	min-width: 0;
}

.capability-row {
	display: grid;
	grid-template-columns: minmax(112px, 0.75fr) minmax(0, 1.25fr);
	align-items: center;
	gap: 10px;
	padding: 6px 0;
	border-top: 1px solid #edf1f5;
	min-width: 0;
}

.capability-row--number-command {
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
	gap: 3px;
}

.capability-row--number-command .capability-value {
	margin: 0;
	width: 100%;
	text-align: left;
}

.capability-row--number-command .value-stack {
	justify-items: stretch;
	width: 100%;
}

.capability-name {
	color: #4d5a6b;
	font-size: 14px;
	min-width: 0;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: auto;
}

.capability-name--interactive {
	display: flex;
}

.capability-name-button {
	display: inline-flex;
	align-items: baseline;
	gap: 0;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.capability-name-button:hover {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.capability-name-button:focus-visible {
	outline: 2px solid #7d8da1;
	outline-offset: 2px;
	border-radius: 6px;
}

.capability-name.capability-command-error,
.capability-name-button.capability-command-error {
	color: #9d2525;
}

.capability-value {
	font-weight: 700;
	text-align: right;
	word-break: break-word;
}

.light-mode-row .capability-value {
	font-weight: 600;
}

.light-mode-selector {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 4px;
	padding: 2px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #f4f7fa;
}

.light-mode-button {
	min-width: 68px;
	min-height: 32px;
	padding: 6px 10px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: #5a6677;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.light-mode-button:hover {
	color: #1f2a37;
}

.light-mode-button:focus-visible {
	outline: 2px solid #2d5b89;
	outline-offset: 2px;
}

.light-mode-button.is-active {
	background: #ffffff;
	color: #1f2a37;
	box-shadow: 0 1px 2px rgba(28, 36, 48, 0.08);
}

.motion-active {
	color: #a14700;
}

.motion-inactive {
	color: #2c6a43;
}

.wifi-rssi-value {
	display: inline-block;
	padding: 2px 0;
}

.wifi-rssi-very-good,
.wifi-rssi-good {
	color: #23633c;
}

.wifi-rssi-fair {
	color: #6f5a13;
}

.wifi-rssi-weak,
.wifi-rssi-critical {
	color: #8a2b2b;
}

.device-footer {
	display: grid;
	gap: 4px;
	color: #637083;
	font-size: 13px;
}

.empty-state {
	padding: 24px;
	border: 1px dashed #bac5d1;
	border-radius: 8px;
	background: #ffffff;
	color: #637083;
	text-align: center;
}

@media (max-width: 640px) {
	.login-card {
		padding: 22px;
	}

	.header-actions,
	.user-panel,
	.user-identity {
		align-items: flex-start;
		justify-content: flex-start;
		justify-items: start;
		width: 100%;
	}

	.user-panel {
		flex-direction: column;
	}

	.session-actions { width: 100%; }
	.session-actions button { flex: 1 1 0; min-width: 0; }

	.app-header {
		align-items: flex-start;
		flex-direction: column;
	}

	.status-strip {
		justify-content: flex-start;
	}

	.toolbar {
		align-items: stretch;
		flex-direction: column;
	}

	.toolbar button {
		width: 100%;
	}

	.device-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.device-card-header {
		grid-template-columns: auto minmax(0, 1fr) auto;
	}

	.device-card-status-row {
		justify-content: flex-start;
	}

	.capability-row {
		grid-template-columns: 1fr;
		gap: 3px;
	}

	.capability-row--number-command {
		grid-template-columns: 1fr;
	}

	.enum-command-control {
		grid-template-columns: 1fr;
	}

	.enum-command-select,
	.searchable-enum-picker {
		width: 100%;
		justify-self: stretch;
	}

	.capability-value {
		text-align: left;
	}

	.light-mode-selector {
		justify-content: flex-start;
	}
}

.value-stack {
	display: grid;
	gap: 2px;
	justify-items: end;
}

.number-command-control {
	display: grid;
	grid-template-columns: minmax(120px, 1fr) minmax(66px, auto) auto;
	align-items: center;
	gap: 6px;
	width: min(100%, 460px);
	max-width: 100%;
	min-width: 0;
	justify-self: stretch;
}

.number-command-control--compact {
	grid-template-columns: minmax(0, 1fr) auto;
	width: 100%;
	max-width: 100%;
}

.compact-capability-control .number-command-submit {
	display: none;
}

.number-command-control--compact .number-command-input {
	width: min(86px, 100%);
	flex: 0 0 86px;
}

.number-command-control--compact .number-command-error {
	grid-column: 1 / -1;
}

.number-command-range {
	display: block;
	width: 100%;
	min-width: 0;
	max-width: none;
	box-sizing: border-box;
	justify-self: stretch;
}

.number-command-input {
	width: 68px;
	flex: 0 0 68px;
	min-height: 38px;
	padding: 7px 9px;
	border: 1px solid;
	border-radius: 8px;
	background: transparent;
	color: inherit;
	font-weight: 600;
}

.number-command-input:focus {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.number-command-error {
	flex-basis: 100%;
	font-size: 12px;
	font-weight: 600;
}

.enum-command-control {
	display: grid;
	grid-template-columns: minmax(112px, 0.75fr) minmax(0, 1.25fr);
	align-items: center;
	gap: 6px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	justify-self: stretch;
}

.enum-command-select {
	width: min(100%, 260px);
	min-width: 0;
	max-width: 100%;
	justify-self: end;
}

.searchable-enum-picker {
	position: relative;
	width: min(100%, 280px);
	justify-self: end;
}

.searchable-enum-button {
	width: 100%;
	min-height: 38px;
	padding: 7px 10px;
	border: 1px solid #cfd7e3;
	border-radius: 8px;
	background: #ffffff;
	color: #1f2a37;
	font: inherit;
	font-weight: 700;
	text-align: left;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	cursor: pointer;
}

.searchable-enum-button:disabled,
.searchable-enum-search:disabled {
	opacity: 0.65;
	cursor: not-allowed;
}

.searchable-enum-panel {
	position: absolute;
	z-index: 30;
	top: calc(100% + 4px);
	right: 0;
	display: grid;
	gap: 6px;
	width: min(320px, 88vw);
	padding: 8px;
	border: 1px solid #cfd7e3;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 16px 40px rgba(31, 42, 55, 0.18);
}

.searchable-enum-panel[hidden] {
	display: none !important;
	pointer-events: none;
}

.searchable-enum-search {
	width: 100%;
	min-height: 36px;
	padding: 7px 9px;
	border: 1px solid #d9e0e8;
	border-radius: 7px;
	font: inherit;
}

.searchable-enum-list {
	display: grid;
	gap: 2px;
	max-height: 240px;
	overflow-y: auto;
}

.searchable-enum-option {
	width: 100%;
	padding: 7px 8px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: #1f2a37;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.searchable-enum-option:hover,
.searchable-enum-option[aria-selected="true"] {
	background: #eef3f8;
}

.searchable-enum-empty {
	padding: 8px;
	color: #637083;
	font-size: 13px;
}

input[type="range"] {
	touch-action: pan-y;
}

.number-command-range,
.ccw-slider-row input[type="range"] {
	min-height: 38px;
}

.ccw-control-row {
	align-items: start;
	grid-template-columns: minmax(0, 1fr);
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	box-sizing: border-box;
}

.ccw-control-title {
	display: none;
}

.ccw-control,
.ccw-control *,
.ccw-control *::before,
.ccw-control *::after {
	box-sizing: border-box;
}

.ccw-control {
	display: grid;
	gap: 0.65rem;
	justify-items: stretch;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	text-align: left;
}

.ccw-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.ccw-header-title {
	min-width: 0;
	overflow-wrap: anywhere;
	color: #4d5a6b;
	font-size: 14px;
	font-weight: 800;
}

.ccw-toggle {
	justify-self: end;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.ccw-toggle button,
.ccw-toggle .boolean-switch-control {
	max-width: 100%;
	margin: 0;
	box-sizing: border-box;
}

.ccw-channel {
	display: grid;
	gap: 0.25rem;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.ccw-channel-label {
	min-width: 0;
	color: #4d5a6b;
	font-size: 13px;
	font-weight: 800;
}

.ccw-mix-channel {
	justify-items: stretch;
}

.ccw-mix-layout {
	display: grid;
	grid-template-columns: minmax(2.5rem, 1fr) 84px minmax(2.5rem, 1fr);
	align-items: center;
	gap: 0.65rem;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.ccw-mix-end {
	color: #637083;
	font-size: 12px;
	font-weight: 800;
}

.ccw-mix-end--cold {
	text-align: right;
}

.ccw-mix-end--warm {
	text-align: left;
}

.ccw-mix-knob {
	--ccw-mix-angle: 0deg;
	position: relative;
	width: 84px;
	height: 84px;
	border: 2px solid #91a0b3;
	border-radius: 50%;
	background: linear-gradient(135deg, #d8eaff 8%, #f8fbff 46%, #fff0ca 92%);
	box-shadow: inset 0 0 0 5px rgb(255 255 255 / 58%), 0 2px 7px rgb(34 51 73 / 18%);
	cursor: grab;
	touch-action: none;
	user-select: none;
}

.ccw-mix-knob:hover {
	border-color: #60758d;
}

.ccw-mix-knob:focus-visible {
	outline: 3px solid rgb(37 99 235 / 38%);
	outline-offset: 3px;
}

.ccw-mix-knob[aria-disabled="true"] {
	opacity: 0.55;
	cursor: not-allowed;
}

.ccw-mix-knob-marker {
	position: absolute;
	inset: 8px;
	border-radius: 50%;
	transform: rotate(var(--ccw-mix-angle));
	pointer-events: none;
}

.ccw-mix-knob-marker::before {
	position: absolute;
	top: 0;
	left: 50%;
	width: 4px;
	height: 25px;
	border-radius: 999px;
	background: #34475d;
	content: "";
	transform: translateX(-50%);
}

.ccw-mix-value {
	display: block;
	justify-self: center;
	color: #4d5a6b;
	font-size: 13px;
	font-weight: 800;
	text-align: center;
}

.ccw-channel-includes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.75rem;
}

.ccw-channel-include {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 12px;
}

.ccw-slider-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) max-content;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.ccw-slider-row input[type="range"] {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	box-sizing: border-box;
}

.ccw-slider-value {
	display: block;
	justify-self: end;
	min-width: 3.5rem;
	max-width: 4.5rem;
	font-size: 13px;
	font-weight: 800;
	text-align: right;
	white-space: nowrap;
	box-sizing: border-box;
}

@media (max-width: 480px) {
	.ccw-slider-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.25rem;
	}

	.ccw-slider-value {
		justify-self: end;
	}

	.ccw-header {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.ccw-mix-layout {
		grid-template-columns: minmax(2rem, 1fr) 76px minmax(2rem, 1fr);
		gap: 0.4rem;
	}

	.ccw-mix-knob {
		width: 76px;
		height: 76px;
	}
}

@media (max-width: 360px) {
	.ccw-header {
		grid-template-columns: minmax(0, 1fr);
	}

	.ccw-toggle {
		justify-self: start;
	}
}

.color-command-control {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 6px;
}

.color-command-trigger {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 38px;
	padding: 4px;
	border: 1px solid #bac5d1;
	border-radius: 8px;
	background: #ffffff;
	cursor: pointer;
}

.color-command-trigger:focus {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.color-command-trigger:disabled {
	cursor: not-allowed;
	opacity: 0.65;
}

.color-command-swatch {
	display: block;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(0, 0, 0, 0.28);
	border-radius: 5px;
	background: var(--selected-color, #ffffff);
}

.color-command-hex {
	min-width: 76px;
	font-size: 13px;
	font-weight: 700;
}

.color-wheel-picker {
	position: fixed;
	z-index: 20;
	top: 0;
	left: 0;
	display: grid;
	gap: 8px;
	padding: 10px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 18px 40px rgba(15, 23, 42, 0.24);
}

.color-wheel-stage {
	position: relative;
	width: 160px;
	height: 160px;
}

.color-wheel-canvas {
	display: block;
	width: 160px;
	height: 160px;
	border-radius: 50%;
	cursor: crosshair;
	touch-action: none;
}

.color-wheel-marker {
	position: absolute;
	width: 14px;
	height: 14px;
	border: 2px solid #ffffff;
	border-radius: 999px;
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.65);
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.color-wheel-value {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
}

.color-wheel-value::before {
	content: "";
	width: 14px;
	height: 14px;
	border: 1px solid rgba(0, 0, 0, 0.28);
	border-radius: 4px;
	background: var(--selected-color, #ffffff);
}

.color-value-preview {
	white-space: pre-line;
}

.rgbw-gradient-editor {
	display: grid;
	gap: 8px;
	justify-items: stretch;
	width: min(520px, 100%);
	text-align: left;
}

.rgbw-gradient-summary {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	width: 100%;
	min-width: 0;
}

.rgbw-gradient-summary-button {
	justify-self: end;
}

.rgbw-gradient-summary-picker {
	position: relative;
	min-width: 0;
	width: min(240px, 100%);
}

.rgbw-gradient-summary-picker-button {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 6px;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	overflow: hidden;
	padding: 7px 10px;
}

.rgbw-gradient-summary-picker-button .rgbw-gradient-summary-preview {
	position: relative;
	top: auto;
	right: auto;
	left: auto;
	height: 12px;
	width: 28px;
	min-width: 28px;
	max-width: 28px;
}

.rgbw-gradient-summary-picker-label {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-align: left;
	font-weight: 700;
}

.rgbw-gradient-summary-picker-caret {
	color: #667285;
	font-size: 11px;
	font-weight: 800;
}

.rgbw-gradient-summary-picker-menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 20;
	display: grid;
	gap: 6px;
	width: min(320px, calc(100vw - 48px));
	max-height: 320px;
	padding: 8px;
	overflow-y: auto;
	border: 1px solid #cfd8e3;
	border-radius: 10px;
	background: #ffffff;
	box-shadow: 0 16px 36px rgba(28, 36, 48, 0.14);
}

.rgbw-gradient-summary-picker-menu[hidden] {
	display: none;
}

.rgbw-gradient-summary-picker-item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 112px;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	color: inherit;
	text-align: left;
	cursor: pointer;
}

.rgbw-gradient-summary-picker-item:hover,
.rgbw-gradient-summary-picker-item:focus-visible {
	background: #f7fafc;
}

.rgbw-gradient-summary-picker-item-label {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 13px;
	font-weight: 700;
}

.rgbw-gradient-summary-picker-item-preview.rgbw-gradient-preview {
	position: relative;
	top: auto;
	right: auto;
	left: auto;
	height: 18px;
}

.rgbw-gradient-summary-picker-empty {
	padding: 8px 10px;
	color: #637083;
	font-size: 12px;
	font-weight: 700;
}

.rgbw-gradient-layout-library {
	display: grid;
	grid-template-columns: minmax(180px, 220px) minmax(120px, 1fr) auto;
	align-items: end;
	gap: 6px 10px;
	width: 100%;
	min-width: 0;
	padding: 8px 10px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #f8fafc;
}

.rgbw-gradient-layout-picker {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.rgbw-gradient-layout-label {
	color: #4d5a6b;
	font-size: 12px;
	font-weight: 800;
}

.rgbw-gradient-layout-select {
	width: 100%;
	min-height: 38px;
	padding: 7px 9px;
	border: 1px solid #c8d2de;
	border-radius: 8px;
	background: #ffffff;
	color: #1c2430;
	font-weight: 700;
}

.rgbw-gradient-layout-preview.rgbw-gradient-preview {
	position: relative;
	top: auto;
	right: auto;
	left: auto;
	height: 30px;
}

.rgbw-gradient-layout-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 6px;
}

.rgbw-gradient-layout-status {
	grid-column: 1 / -1;
	min-height: 16px;
	color: #637083;
	font-size: 12px;
	font-weight: 700;
}

.rgbw-gradient-track {
	position: relative;
	height: 38px;
	touch-action: pan-y;
}

.rgbw-gradient-track-controls {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
}

.rgbw-gradient-stop-button {
	min-width: 38px;
	min-height: 34px;
	padding: 0 10px;
	font-size: 18px;
	font-weight: 800;
	line-height: 1;
}

.rgbw-gradient-preview {
	position: absolute;
	top: 12px;
	right: 0;
	left: 0;
	height: 14px;
	border: 1px solid #bac5d1;
	border-radius: 8px;
	background: repeating-linear-gradient(45deg, #eef2f6 0 8px, #ffffff 8px 16px);
}

.rgbw-gradient-preview--invalid {
	background: repeating-linear-gradient(45deg, #eef2f6 0 8px, #ffffff 8px 16px);
}

.rgbw-gradient-markers {
	position: absolute;
	inset: 0;
}

.rgbw-gradient-marker {
	position: absolute;
	top: 50%;
	width: 18px;
	height: 18px;
	padding: 0;
	border: 2px solid #ffffff;
	border-radius: 50%;
	background: #1c2430;
	box-shadow: 0 0 0 1px #687587;
	transform: translate(-50%, -50%);
	cursor: grab;
	touch-action: none;
}

.rgbw-gradient-marker:active {
	cursor: grabbing;
}

.rgbw-gradient-marker.is-selected {
	background: #0f766e;
	box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.24);
}

.rgbw-gradient-selected {
	display: grid;
	grid-template-columns: repeat(7, max-content);
	align-items: end;
	justify-content: start;
	gap: 8px 10px;
}

.rgbw-gradient-selected-title {
	grid-column: 1 / -1;
	color: #4d5a6b;
	font-size: 12px;
	font-weight: 800;
}

.rgbw-gradient-field {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.rgbw-gradient-field--pixel {
	width: 88px;
}

.rgbw-gradient-field--position {
	width: 120px;
}

.rgbw-gradient-field--rgb {
	width: 58px;
}

.rgbw-gradient-field--channel {
	width: 72px;
}

.rgbw-gradient-field-label {
	color: #4d5a6b;
	font-size: 12px;
	font-weight: 800;
}

.rgbw-gradient-field-value {
	display: flex;
	align-items: center;
	gap: 4px;
	min-width: 0;
}

.rgbw-gradient-readonly {
	min-height: 38px;
	padding: 8px 10px;
	border: 1px solid #d4dde6;
	border-radius: 8px;
	background: #f7fafc;
	font-size: 13px;
	font-weight: 700;
}

.rgbw-gradient-number {
	width: 100%;
	min-height: 38px;
	padding: 7px 9px;
	border: 1px solid;
	border-radius: 8px;
	background: transparent;
	color: inherit;
	font-weight: 600;
}

.rgbw-gradient-color {
	width: 44px;
	height: 38px;
	padding: 2px;
	border: 1px solid;
	border-radius: 8px;
	background: transparent;
	cursor: pointer;
}

.rgbw-gradient-color:focus,
.rgbw-gradient-number:focus,
.rgbw-gradient-marker:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.rgbw-gradient-suffix {
	color: #667285;
	font-size: 12px;
	font-weight: 700;
}

.rgbw-gradient-live-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 34px;
	color: #4d5a6b;
	font-size: 13px;
	font-weight: 800;
}

.rgbw-gradient-actions {
	display: flex;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 6px;
}

.rgbw-gradient-error {
	color: var(--danger-color);
	font-size: 12px;
	font-weight: 700;
}

.rgbw-gradient-dialog {
	width: min(1120px, calc(100% - 32px));
}

.rgbw-gradient-dialog-form {
	gap: 14px;
}

.rgbw-gradient-dialog-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	min-width: 0;
}

.rgbw-gradient-dialog-heading {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.rgbw-gradient-dialog-body {
	min-width: 0;
}

.rgbw-gradient-editor--dialog {
	width: 100%;
	max-width: none;
	gap: 10px;
}

.rgbw-gradient-editor--dialog .rgbw-gradient-track {
	height: 52px;
}

.rgbw-gradient-editor--dialog .rgbw-gradient-preview {
	top: 18px;
	height: 16px;
}

.rgbw-gradient-editor--dialog .rgbw-gradient-selected {
	grid-template-columns: repeat(7, max-content);
	gap: 8px 10px;
}

.rgbw-gradient-editor--dialog .rgbw-gradient-actions {
	justify-content: space-between;
	align-items: center;
}

.status-visualization {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 8px;
	width: min(300px, 100%);
}

.status-progress {
	flex: 1 1 96px;
	height: 9px;
	min-width: 78px;
	overflow: hidden;
	border: 1px solid currentColor;
	border-radius: 999px;
	background: var(--status-track-color);
}

.status-progress-level {
	height: 100%;
	width: 0%;
	background: currentColor;
	transition: width 160ms ease-out;
}

.status-visualization-value {
	white-space: nowrap;
	font-size: 12px;
	font-weight: 800;
}

.battery-visualization,
.linkquality-visualization {
	color: var(--muted-color);
}

.battery-icon {
	position: relative;
	flex: 0 0 auto;
	width: 28px;
	height: 14px;
	padding: 2px;
	border: 2px solid currentColor;
	border-radius: 4px;
}

.battery-icon::after {
	content: "";
	position: absolute;
	top: 3px;
	right: -5px;
	width: 3px;
	height: 6px;
	border-radius: 0 2px 2px 0;
	background: currentColor;
}

.battery-icon-level {
	height: 100%;
	width: 0%;
	border-radius: 2px;
	background: currentColor;
}

.linkquality-icon {
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	fill: currentColor;
}

.status-good {
	color: var(--success-color);
}

.status-warning {
	color: var(--warning-color);
}

.status-critical {
	color: var(--danger-color);
}

.status-unknown {
	color: var(--muted-color);
}

.capability-value-summary {
	display: inline-flex;
	align-items: baseline;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 4px;
	max-width: 100%;
}

.capability-value-primary {
	font-weight: 700;
}

.capability-read-only-hint {
	max-width: 100%;
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.3;
	overflow-wrap: anywhere;
	text-align: right;
}

.capability-history-value {
	display: inline-flex;
	align-items: baseline;
	margin: 0;
	padding: 0 2px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: inherit;
	cursor: pointer;
}

.capability-history-value:hover,
.capability-history-value:focus-visible {
	background: #f1f5f9;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.capability-history-value:focus-visible {
	outline: 2px solid #7d8da1;
	outline-offset: 2px;
}

.observed-at-group {
	display: inline-flex;
	align-items: baseline;
	gap: 0;
	min-width: 0;
}

.observed-at-age {
	margin-left: 4px;
	color: #7b8796;
	font-size: 12px;
	font-weight: 500;
	white-space: nowrap;
}

@media (max-width: 640px) {
	.value-stack {
		justify-items: start;
	}

	.capability-value-summary {
		justify-content: flex-start;
	}

	.number-command-control {
		width: 100%;
		max-width: 100%;
		grid-template-columns: minmax(96px, 1fr) minmax(64px, auto) auto;
	}

	.number-command-control--compact {
		grid-template-columns: minmax(0, 1fr) auto auto;
	}

	.number-command-range {
		min-width: 0;
	}

	.number-command-input {
		width: min(100px, 100%);
		flex-basis: 100px;
	}

	.number-command-submit {
		flex: 0 0 auto;
	}

	.ccw-control-row {
		grid-template-columns: minmax(0, 1fr);
	}

	.ccw-control {
		width: 100%;
	}

	.color-command-control {
		justify-content: flex-start;
		width: 100%;
	}

	.rgbw-gradient-editor {
		width: 100%;
	}

	.rgbw-gradient-summary {
		justify-content: flex-start;
	}

	.rgbw-gradient-summary-button {
		flex: 0 0 auto;
	}

	.rgbw-gradient-summary-picker-button {
		grid-template-columns: auto minmax(0, 1fr) auto;
	}

	.rgbw-gradient-layout-library {
		grid-template-columns: 1fr;
	}

	.rgbw-gradient-selected {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rgbw-gradient-field--pixel,
	.rgbw-gradient-field--position,
	.rgbw-gradient-field--rgb,
	.rgbw-gradient-field--channel {
		width: 100%;
	}

	.rgbw-gradient-actions {
		justify-content: flex-start;
	}

	.rgbw-gradient-dialog {
		width: min(100%, calc(100% - 12px));
	}

	.rgbw-gradient-dialog-header {
		align-items: flex-start;
	}

	.rgbw-gradient-editor--dialog .rgbw-gradient-selected {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rgbw-gradient-editor--dialog .rgbw-gradient-actions {
		justify-content: flex-start;
	}

	.status-visualization {
		justify-content: flex-start;
		width: 100%;
	}

	.status-progress {
		flex-basis: 100px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.status-progress-level {
		transition: none;
	}
}

.main-navigation {
	display: flex;
	gap: 8px;
	margin-bottom: 20px;
	border-bottom: 1px solid #d9e0e8;
	min-width: 0;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
}

.mobile-navigation-toggle.action-button { display: none; }
.mobile-navigation-toggle.action-button[hidden],
.main-navigation[hidden] { display: none; }

.navigation-button {
	min-height: 40px;
	padding: 8px 14px;
	border: 0;
	border-bottom: 3px solid transparent;
	background: transparent;
	color: #4d5a6b;
	font-weight: 800;
	cursor: pointer;
}

.navigation-button[aria-current="page"] {
	border-bottom-color: #1f6e43;
	color: #1c2430;
}

@media (max-width: 740px) {
	.mobile-navigation-toggle.action-button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		width: 100%;
		min-height: 44px;
		margin-bottom: 10px;
		padding: 8px 12px;
		border: 1px solid #bac5d1;
		border-radius: 8px;
		background: #ffffff;
		color: #1c2430;
		font: inherit;
		font-weight: 800;
		cursor: pointer;
	}
	.mobile-navigation-toggle:hover:not(:disabled),
	.mobile-navigation-toggle:focus-visible,
	.mobile-navigation-toggle[aria-expanded="true"] { border-color: #1f6e43; background: #f4faf6; }
	.main-navigation {
		display: none;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		margin-bottom: 20px;
		padding: 10px;
		border: 1px solid #d9e0e8;
		border-radius: 8px;
		overflow: visible;
	}
	.main-navigation.mobile-navigation-open { display: grid; }
	.navigation-button {
		min-width: 0;
		min-height: 44px;
		padding: 8px 10px;
		border: 1px solid transparent;
		border-radius: 6px;
		text-align: center;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.navigation-button[aria-current="page"] { border-color: #1f6e43; background: #f4faf6; }
}

@media (max-width: 360px) {
	.main-navigation { grid-template-columns: minmax(0, 1fr); }
	.mobile-navigation-toggle .action-button-label,
	.session-actions .action-button-label { display: none; }
	.mobile-navigation-toggle,
	.session-actions button { width: auto; min-width: 44px; flex: 0 0 44px; padding: 8px; }
	.session-actions { justify-content: flex-end; }
}

.navigation-button:hover:not(:disabled),
.navigation-button.is-active {
	border-bottom-color: #1f6e43;
	color: #1c2430;
}

.toolbar-actions,
.users-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
}

.secondary-button,
.danger-button,
.dialog-actions button,
.user-actions button {
	min-height: 38px;
	padding: 8px 12px;
	border: 1px solid #bac5d1;
	border-radius: 8px;
	background: #ffffff;
	color: #1c2430;
	font-weight: 700;
	cursor: pointer;
}

.lsm-icon {
	display: block;
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	pointer-events: none;
}

.capability-icon {
	width: 16px;
	height: 16px;
	flex-basis: 16px;
	stroke-width: 1.9;
}

.action-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 44px;
	min-height: 44px;
}

.action-button--icon-only .action-button-label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.action-button[data-tooltip]::after {
	position: absolute;
	left: 50%;
	top: calc(100% + 6px);
	z-index: 20;
	max-width: min(240px, calc(100vw - 24px));
	padding: 5px 7px;
	border-radius: 5px;
	background: #172033;
	color: #ffffff;
	content: attr(data-tooltip);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -2px);
	transition: opacity 120ms ease, transform 120ms ease;
	white-space: normal;
}

.action-button[data-tooltip]:hover::after,
.action-button[data-tooltip]:focus-visible::after {
	opacity: 1;
	transform: translate(-50%, 0);
}

.action-button:focus-visible {
	outline: 3px solid rgba(37, 99, 235, 0.4);
	outline-offset: 2px;
}

.secondary-button:hover:not(:disabled),
.dialog-actions button:hover:not(:disabled),
.user-actions button:hover:not(:disabled) {
	border-color: #7d8da1;
	background: #f9fbfd;
}

.danger-button {
	border-color: #e0b5b5;
	color: #8a2b2b;
}

.danger-button:hover:not(:disabled) {
	background: #fff0f0;
	border-color: #cc7878;
}

.secondary-button:disabled,
.danger-button:disabled,
.dialog-actions button:disabled,
.user-actions button:disabled,
.navigation-button:disabled {
	cursor: not-allowed;
	opacity: 0.62;
}

.user-list {
	display: grid;
	gap: 14px;
}

.user-card {
	display: grid;
	gap: 14px;
	padding: 16px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 1px 2px rgba(28, 36, 48, 0.04);
}

.user-card-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
}

.user-title {
	min-width: 0;
}

.user-name-line {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.user-name-line h3 {
	margin: 0;
	font-size: 18px;
	letter-spacing: 0;
	word-break: break-word;
}

.current-user-badge,
.role-badge,
.user-status {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 4px 8px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 800;
}

.current-user-badge {
	background: #eef4fb;
	color: #2d5b89;
}

.user-status.is-active {
	background: #e7f7ee;
	color: #126334;
}

.user-status.is-disabled {
	background: #f4f5f7;
	color: #8a2b2b;
}

.user-details {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
}

.user-detail-row {
	display: grid;
	gap: 5px;
	min-width: 0;
}

.user-detail-row dt {
	color: #637083;
	font-size: 12px;
	font-weight: 800;
}

.user-detail-row dd {
	margin: 0;
	color: #1c2430;
	font-size: 14px;
	font-weight: 700;
	word-break: break-word;
}

.role-badge-list {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}

.role-badge {
	background: #edf1f5;
	color: #4d5a6b;
}

.role-badge.is-admin {
	background: #fff5dd;
	color: #7a5300;
}

.user-actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.grant-status,
.grant-list {
	display: grid;
	gap: 10px;
}

.grant-status p,
.grant-item p {
	margin: 0;
}

.grant-item {
	display: grid;
	gap: 8px;
	min-width: 0;
	padding: 12px;
	border: 1px solid #d9e0e8;
	border-radius: 7px;
}

.grant-item strong,
.grant-item p {
	overflow-wrap: anywhere;
}

.grant-create-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.grant-access-fieldset {
	margin: 0;
	padding: 12px;
	border: 1px solid #d9e0e8;
	border-radius: 7px;
}

.grant-access-fieldset legend {
	padding: 0 6px;
	font-weight: 800;
}

.grant-access-options {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

.grant-detail-grid {
	display: grid;
	gap: 6px;
	margin: 0;
}

.grant-detail-row {
	display: grid;
	grid-template-columns: minmax(120px, 0.35fr) minmax(0, 1fr);
	gap: 10px;
}

.grant-detail-row dt {
	color: #637083;
	font-weight: 700;
}

.grant-detail-row dd {
	margin: 0;
	overflow-wrap: anywhere;
}

.grant-advanced {
	padding: 12px;
	border: 1px solid #d9e0e8;
	border-radius: 7px;
}

.grant-advanced > summary,
.grant-technical-details > summary {
	cursor: pointer;
	font-weight: 800;
}

.grant-advanced[open] {
	display: grid;
	gap: 12px;
}

.grant-technical-details p {
	margin-top: 8px;
}

.grant-item > .danger-button {
	justify-self: start;
}

.grant-warning {
	color: #7a5300;
	font-weight: 700;
}

.dialog {
	width: min(560px, calc(100% - 32px));
	padding: 0;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	color: #1c2430;
	box-shadow: 0 18px 60px rgba(28, 36, 48, 0.2);
}

.dialog::backdrop {
	background: rgba(28, 36, 48, 0.34);
}

.dialog-form {
	display: grid;
	gap: 16px;
	padding: 22px;
}

.dialog-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	min-width: 0;
}

.dialog-header h2 {
	min-width: 0;
}

.dialog-close-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	flex: 0 0 auto;
	font-size: 22px;
	line-height: 1;
	border-radius: 8px;
}

.dialog-form h2,
.dialog-form h3,
.dialog-subtitle {
	margin: 0;
	letter-spacing: 0;
}

.dialog-form h2 {
	font-size: 21px;
}

.dialog-form h3 {
	font-size: 15px;
}

.dialog-subtitle,
.muted-text {
	color: #637083;
	font-size: 14px;
}

.checkbox-list {
	display: grid;
	gap: 8px;
}

.checkbox-field {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 700;
	color: #4d5a6b;
}

.checkbox-field input {
	width: 18px;
	height: 18px;
	accent-color: #1f6e43;
}

.role-checkbox-label {
	display: grid;
	gap: 2px;
}

.role-description {
	color: #637083;
	font-size: 12px;
	font-weight: 500;
}

.dialog-actions {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	flex-wrap: wrap;
}

@media (max-width: 760px) {
	.user-card-header,
	.user-details {
		grid-template-columns: 1fr;
	}

	.user-card-header {
		align-items: flex-start;
		flex-direction: column;
	}

	.user-actions,
	.toolbar-actions {
		width: 100%;
	}

	.user-actions button,
	.toolbar-actions button,
	.dialog-actions button {
		flex: 1 1 150px;
	}
}

.action-hint {
	align-self: center;
	font-weight: 700;
}


.form-field textarea,
.form-field select,
.form-grid select,
.json-textarea {
	width: 100%;
	min-height: 42px;
	padding: 9px 11px;
	border: 1px solid #bac5d1;
	border-radius: 8px;
	background: #ffffff;
	color: #1c2430;
	font: inherit;
}

.form-field textarea:focus,
.form-field select:focus,
.form-grid select:focus,
.json-textarea:focus {
	border-color: #2d5b89;
	box-shadow: 0 0 0 3px rgba(45, 91, 137, 0.14);
	outline: none;
}

.json-textarea {
	min-height: 130px;
	resize: vertical;
	font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
	font-size: 13px;
	line-height: 1.45;
}

.form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.form-section {
	display: grid;
	gap: 12px;
	padding-top: 14px;
	border-top: 1px solid #edf1f5;
}

.large-dialog {
	width: min(920px, calc(100% - 32px));
}

.large-dialog .dialog-form {
	max-height: min(84vh, 860px);
	overflow: auto;
}

.managed-device-workspace {
	display: grid;
	grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
	gap: 16px;
	align-items: start;
}

.managed-device-master,
.managed-device-detail {
	display: grid;
	gap: 12px;
	min-width: 0;
}

.managed-device-master {
	position: sticky;
	top: 12px;
	max-height: calc(100vh - 140px);
	overflow: auto;
	padding-right: 2px;
}

.managed-device-search {
	display: grid;
	gap: 6px;
	color: #637083;
	font-size: 12px;
	font-weight: 800;
}

.managed-device-search input {
	min-height: 38px;
	padding: 8px 10px;
	border: 1px solid #d4dce6;
	border-radius: 8px;
	background: #ffffff;
	color: #182230;
}

.managed-device-filters {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}

.managed-device-filters button {
	min-height: 32px;
	padding: 6px 9px;
	border: 1px solid #d4dce6;
	border-radius: 8px;
	background: #ffffff;
	color: #465467;
	font-weight: 800;
	cursor: pointer;
}

.managed-device-filters button.is-active {
	border-color: #2563eb;
	background: #eaf1ff;
	color: #1746a2;
}

.managed-device-list {
	display: grid;
	gap: 8px;
}

.managed-device-card {
	display: grid;
	gap: 6px;
	width: 100%;
	padding: 10px 11px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 1px 2px rgba(28, 36, 48, 0.04);
	text-align: left;
	cursor: pointer;
}

.managed-device-card.is-selected {
	border-width: 2px;
	border-color: #2563eb;
	background: #f4f8ff;
	box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.12);
}

.managed-device-back-button { display: none; }

.managed-device-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
}

.managed-device-header h3 {
	margin: 0;
	font-size: 14px;
	letter-spacing: 0;
	word-break: break-word;
}

.managed-device-key {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	padding: 0;
	border: 0;
	background: transparent;
}

.managed-device-key span,
.managed-device-key em {
	color: #637083;
	font-size: 12px;
	font-style: normal;
	font-weight: 800;
}

.managed-device-key strong {
	font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
	font-size: 14px;
	word-break: break-word;
}

.managed-device-details {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
}

.managed-device-detail-card {
	display: grid;
	gap: 16px;
	padding: 16px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 1px 2px rgba(28, 36, 48, 0.04);
}

.device-presentation-editor {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.device-presentation-row {
	display: grid;
	grid-template-columns: minmax(140px, 1fr) minmax(0, auto);
	align-items: center;
	gap: 12px;
	min-width: 0;
	padding: 10px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
}

.device-presentation-label {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.device-presentation-label strong,
.device-presentation-label small {
	overflow-wrap: anywhere;
}

.device-presentation-label small {
	color: #687386;
}

.device-presentation-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 8px;
}

.device-presentation-move {
	min-width: 44px;
	min-height: 44px;
	padding: 6px;
}

.device-presentation-invalid {
	padding: 9px 10px;
	border: 1px solid #e6b36a;
	border-radius: 8px;
	background: #fff8e8;
	color: #694d12;
	overflow-wrap: anywhere;
}

.managed-device-detail-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.managed-device-detail-header h3 {
	margin: 0;
	font-size: 22px;
	letter-spacing: 0;
}

.managed-device-detail-title {
	display: grid;
	min-width: 0;
	gap: 2px;
	flex: 1 1 auto;
}

.managed-device-detail-title h3,
.managed-device-detail-title .device-meta {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.managed-device-section {
	display: grid;
	gap: 0;
	border-top: 1px solid #edf1f5;
}

.managed-device-section > h4 {
	margin: 0;
	font-size: 14px;
	letter-spacing: 0;
}

.managed-device-section-toggle {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 8px;
	width: 100%;
	min-height: 44px;
	padding: 8px 4px;
	border: 0;
	background: transparent;
	color: #1c2430;
	font: inherit;
	font-weight: 800;
	text-align: left;
	cursor: pointer;
}

.managed-device-section-toggle:hover,
.managed-device-section-toggle:focus-visible {
	background: #f5f8fb;
}

.managed-device-section-toggle:focus-visible {
	outline: 3px solid rgba(37, 99, 235, 0.4);
	outline-offset: -3px;
}

.managed-device-section-toggle .action-icon {
	transition: transform 140ms ease;
}

.managed-device-section-toggle[aria-expanded="true"] .action-icon {
	transform: rotate(180deg);
}

.managed-device-section-count {
	min-width: 24px;
	padding: 2px 7px;
	border-radius: 999px;
	background: #eef4fb;
	color: #2d5b89;
	font-size: 12px;
	text-align: center;
}

.managed-device-section-content {
	padding: 2px 4px 10px;
}

.managed-device-section-content[hidden] {
	display: none;
}

.managed-device-section-content.managed-device-details {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}

.managed-device-section-content.managed-device-details[hidden] {
	display: none;
}

.managed-device-section-content.managed-device-details .user-detail-row {
	display: grid;
	grid-template-columns: minmax(112px, 0.35fr) minmax(0, 1fr);
	align-items: center;
	gap: 12px;
	min-height: 38px;
	padding: 6px 4px;
	border-bottom: 1px solid #f0f3f6;
}

.managed-device-section-content.managed-device-details .user-detail-row:last-child {
	border-bottom: 0;
}

.managed-device-section-content.managed-device-details dt,
.managed-device-section-content.managed-device-details dd {
	font-size: 13px;
}

.managed-device-section-content.managed-device-details dd {
	min-width: 0;
	overflow-wrap: anywhere;
}

.managed-device-technical-value {
	display: block;
	max-width: 100%;
	overflow: hidden;
	font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
	text-overflow: ellipsis;
	white-space: nowrap;
	user-select: text;
}

.managed-capability-list {
	display: grid;
	gap: 8px;
	margin: 0;
}

.managed-capability-row {
	display: grid;
	grid-template-columns: minmax(180px, 1fr) minmax(90px, auto) minmax(180px, auto);
	gap: 10px;
	align-items: center;
	min-height: 52px;
	padding: 6px 4px;
	border-bottom: 1px solid #edf1f5;
}

.managed-capability-row dt,
.managed-capability-row dd {
	margin: 0;
	min-width: 0;
}

.managed-capability-row dt {
	font-weight: 800;
}

.managed-capability-row dd {
	color: #465467;
}

.managed-capability-label {
	display: flex;
	align-items: center;
	gap: 9px;
}

.managed-capability-label-text {
	display: grid;
	min-width: 0;
	gap: 1px;
}

.managed-capability-label-text strong {
	overflow-wrap: anywhere;
}

.managed-capability-label-text small {
	color: #748094;
	font-size: 11px;
	font-weight: 600;
	overflow-wrap: anywhere;
}

.managed-capability-value {
	max-width: min(320px, 40vw);
	overflow: hidden;
	font-variant-numeric: tabular-nums;
	font-weight: 800;
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.managed-config-command {
	display: flex;
	gap: 6px;
	align-items: center;
}

.managed-config-command input,
.managed-config-command select {
	min-height: 44px;
	min-width: 0;
	padding: 6px 8px;
	border: 1px solid #d4dce6;
	border-radius: 8px;
	font-size: 16px;
}

.managed-config-command input:not([type="checkbox"]),
.managed-config-command select {
	width: min(150px, 100%);
}

.managed-config-command input[type="checkbox"] {
	width: 44px;
	height: 44px;
	margin: 0;
}

.managed-config-submit {
	min-width: 44px;
	min-height: 44px;
}

.zigbee-import-card {
	border-style: dashed;
}

.managed-device-actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.managed-device-settings {
	display: grid;
	gap: 12px;
}

.managed-device-settings-actions {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}

.managed-device-settings-actions button {
	justify-content: flex-start;
	width: 100%;
	min-height: 44px;
}

.managed-device-danger-zone {
	display: flex;
	justify-content: flex-start;
	padding-top: 12px;
	border-top: 1px solid #e0b5b5;
}

.managed-device-danger-zone button {
	min-height: 44px;
}

.managed-device-actions button,
.capability-editor-row > button {
	min-height: 38px;
	padding: 8px 12px;
	border-radius: 8px;
	font-weight: 700;
	cursor: pointer;
}

.mqtt-binding-status,
.capability-summary {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 4px 8px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 800;
}

.mqtt-binding-status .action-icon {
	width: 15px;
	height: 15px;
	flex-basis: 15px;
}

.mqtt-binding-status.is-bound {
	background: #e7f7ee;
	color: #126334;
}

.mqtt-binding-status.is-unbound {
	background: #f4f5f7;
	color: #687386;
}

.capability-summary {
	background: #eef4fb;
	color: #2d5b89;
}

.capability-editor {
	display: grid;
	gap: 12px;
}

.capability-editor-row {
	display: grid;
	gap: 12px;
	padding: 14px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #f9fbfd;
}

.capability-editor-fields {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.warning-message {
	margin: 0;
	padding: 10px 12px;
	border: 1px solid #ead39c;
	border-radius: 8px;
	background: #fff8e8;
	color: #694d12;
	font-size: 14px;
	font-weight: 700;
}

.destructive-confirmation {
	padding: 10px 12px;
	border: 1px solid #e0b5b5;
	border-radius: 8px;
	background: #fff0f0;
	color: #8a2b2b;
}

@media (max-width: 740px) {
	.app-header {
		padding-top: max(24px, env(safe-area-inset-top));
		padding-right: max(clamp(16px, 4vw, 44px), env(safe-area-inset-right));
		padding-left: max(clamp(16px, 4vw, 44px), env(safe-area-inset-left));
	}

	.form-grid,
	.managed-device-workspace,
	.capability-editor-fields {
		grid-template-columns: 1fr;
	}

	.managed-device-master {
		position: static;
		max-height: none;
	}

	.managed-device-workspace--editor-open .managed-device-master { display: none; }
	.managed-device-workspace:not(.managed-device-workspace--editor-open) .managed-device-detail { display: none; }
	.managed-device-workspace--editor-open .managed-device-detail {
		display: grid;
		width: 100%;
		min-width: 0;
	}

	.managed-device-back-button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
	}

	.managed-device-detail-card {
		min-width: 0;
		overflow: visible;
		gap: 0;
		padding: 0 10px 10px;
	}

	.managed-device-detail-header {
		position: sticky;
		top: env(safe-area-inset-top);
		z-index: 4;
		display: grid;
		grid-template-columns: 44px minmax(0, 1fr) auto;
		align-items: center;
		gap: 8px;
		margin: 0 -10px;
		padding: 7px max(10px, env(safe-area-inset-right)) 7px max(10px, env(safe-area-inset-left));
		border-bottom: 1px solid #d9e0e8;
		background: rgba(255, 255, 255, 0.97);
	}

	.managed-device-detail-header h3 {
		font-size: 16px;
		line-height: 1.25;
	}

	.managed-device-detail-title .device-meta {
		margin: 0;
		font-size: 11px;
	}

	.managed-device-detail-header .mqtt-binding-status {
		max-width: 150px;
		min-width: 28px;
		min-height: 28px;
		padding: 5px 7px;
		overflow: hidden;
	}

	.managed-device-section-toggle {
		padding-right: 2px;
		padding-left: 2px;
	}

	.managed-device-section-content {
		padding-right: 2px;
		padding-left: 2px;
	}

	.managed-device-section-content.managed-device-details .user-detail-row {
		grid-template-columns: minmax(92px, 0.38fr) minmax(0, 1fr);
		gap: 8px;
		min-height: 36px;
		padding: 5px 2px;
	}

	.managed-capability-row {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 4px 10px;
		min-height: 52px;
		padding: 6px 2px;
	}

	.managed-capability-label {
		min-width: 0;
	}

	.managed-config-command {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		width: 100%;
	}

	.managed-config-command input:not([type="checkbox"]),
	.managed-config-command select {
		width: 100%;
	}

	.managed-device-settings-actions {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.managed-device-header {
		align-items: flex-start;
		flex-direction: column;
	}

	.managed-device-actions {
		width: 100%;
		position: sticky;
		bottom: 0;
		z-index: 3;
		padding: 10px 0 calc(10px + env(safe-area-inset-bottom));
		background: #ffffff;
		border-top: 1px solid #d9e0e8;
	}

	.managed-device-actions button,
	.capability-editor-row > button {
		flex: 1 1 150px;
	}

	.dialog {
		max-height: calc(100vh - 24px);
		overflow: auto;
	}

	.dialog-actions {
		position: sticky;
		bottom: 0;
		z-index: 4;
		padding: 10px 0 calc(10px + env(safe-area-inset-bottom));
		background: #ffffff;
		border-top: 1px solid #d9e0e8;
	}

	.dialog-form {
		scroll-padding-bottom: calc(68px + env(safe-area-inset-bottom));
	}

	#edit-device-identity-dialog .dialog-header,
	#edit-device-metadata-dialog .dialog-header,
	#edit-device-capabilities-dialog .dialog-header,
	#edit-device-presentation-dialog .dialog-header,
	#edit-device-mqtt-dialog .dialog-header {
		position: sticky;
		top: 0;
		z-index: 4;
		padding-bottom: 10px;
		background: #ffffff;
	}

	.dialog-actions button { min-height: 44px; }

	.grant-create-grid,
	.grant-detail-row {
		grid-template-columns: 1fr;
	}

	.grant-detail-row {
		gap: 2px;
	}

	.grant-item > .danger-button {
		width: 100%;
	}
}

@media (max-width: 359px) {
	.managed-device-detail-header .mqtt-binding-status-label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	.managed-device-settings-actions,
	.managed-config-command {
		grid-template-columns: 1fr;
	}

	.managed-config-submit {
		justify-self: stretch;
	}
}

@media (prefers-reduced-motion: reduce) {
	.managed-device-section-toggle .action-icon {
		transition: none;
	}
}

.room-device-group {
	display: grid;
	grid-template-columns: minmax(200px, 220px) minmax(0, 1fr);
	width: 100%;
	min-width: 0;
	justify-self: stretch;
	align-self: start;
	align-items: start;
	align-content: start;
	gap: 18px;
	margin-top: 0;
}

.room-device-group--collapsed {
	grid-template-columns: minmax(200px, 220px);
}

.room-device-group--collapsed .room-device-grid,
.room-device-grid[hidden] {
	display: none !important;
}

.room-device-group + .room-device-group {
	padding-top: 16px;
	border-top: 1px solid #d9e0e8;
}

.room-device-group-header {
	display: grid;
	width: 100%;
	gap: 8px;
	min-width: 0;
	padding-top: 2px;
	padding-bottom: 0;
	border-bottom: 0;
}

.room-device-group-topline {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	min-width: 0;
}

.room-device-group-summary {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 10px;
	min-width: 0;
	justify-self: start;
}

.room-device-group-toggle {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: baseline;
	gap: 8px;
	min-width: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-weight: 700;
	text-align: left;
	cursor: pointer;
}

.room-device-group-actions {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
	margin-left: auto;
}

.room-device-group-toggle:hover:not(:disabled) {
	color: #1c2430;
}

.room-device-group-toggle:focus-visible {
	outline: 2px solid #2d5b89;
	outline-offset: 3px;
	border-radius: 6px;
}

.room-device-group-disclosure {
	flex: 0 0 auto;
	color: #687386;
	font-size: 14px;
	font-weight: 800;
}

.room-device-group-title {
	display: block;
	min-width: 0;
	color: #1c2430;
	font-size: 18px;
	letter-spacing: 0;
	line-height: 1.2;
	white-space: normal;
	overflow-wrap: break-word;
	word-break: normal;
}

.room-temperature-value {
	display: inline-flex;
	align-items: baseline;
	margin: 0;
	padding: 0 2px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: #1c2430;
	font-size: 14px;
	font-weight: 800;
	font-family: inherit;
	line-height: inherit;
	white-space: nowrap;
	cursor: pointer;
}

.room-temperature-value:hover:not(:disabled),
.room-temperature-value:focus-visible {
	background: #f1f5f9;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.room-temperature-value:focus-visible {
	outline: 2px solid #7d8da1;
	outline-offset: 2px;
}

.room-temperature-value:disabled {
	cursor: default;
}

.room-temperature-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 1px solid #d9e0e8;
	border-radius: 50%;
	background: #ffffff;
	color: #687386;
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
}

.room-temperature-button:hover:not(:disabled) {
	color: #1c2430;
	border-color: #b8c4d2;
}

.room-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 30px;
	min-height: 28px;
	padding: 4px 9px;
	border: 1px solid #d9e0e8;
	border-radius: 999px;
	background: #ffffff;
	color: #687386;
	font-size: 13px;
	font-weight: 800;
	justify-self: end;
	align-self: start;
}

.room-presence-indicators {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 5px;
	min-width: 0;
}

.room-presence-dot {
	width: 10px;
	height: 10px;
	flex: 0 0 auto;
	border: 1px solid #a7b2c1;
	border-radius: 50%;
	background: transparent;
	box-sizing: border-box;
}

.room-presence-dot--active {
	border-color: #1f6e43;
	background: #1f6e43;
}

.room-presence-dot--inactive {
	border-color: #9aa6b5;
	background: #9aa6b5;
}

.room-presence-dot--unavailable {
	border-color: #c8d2de;
	background: transparent;
	opacity: 0.7;
}

@media (min-width: 641px) {
	.room-device-group-header {
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
	}

	.room-device-group-toggle {
		width: 100%;
	}
}

.temperature-source-list {
	display: grid;
	gap: 10px;
	min-width: 0;
}

.room-settings-section {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.room-settings-section h3 {
	margin: 0;
	color: #1c2430;
	font-size: 15px;
	letter-spacing: 0;
}

.presence-indicator-list {
	display: grid;
	gap: 10px;
	min-width: 0;
}

.temperature-source-row,
.presence-indicator-row {
	display: grid;
	gap: 8px;
	min-width: 0;
	padding: 10px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
}

.temperature-source-title,
.presence-indicator-title {
	min-width: 0;
	color: #1c2430;
	font-weight: 800;
	overflow-wrap: anywhere;
}

.temperature-source-controls,
.presence-indicator-controls {
	display: flex;
	align-items: end;
	flex-wrap: wrap;
	justify-content: flex-start;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	gap: 8px 10px;
}

.presence-indicator-actions {
	display: flex;
	align-items: end;
	justify-content: flex-end;
	flex: 0 0 auto;
	gap: 6px;
	min-width: auto;
}

.temperature-source-control {
	display: grid;
	gap: 4px;
	flex: 0 1 auto;
	min-width: 0;
	color: #687386;
	font-size: 12px;
	font-weight: 700;
}

.dialog-actions--split {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.dialog-actions-group {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 10px;
}

.dialog-icon-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	min-height: 36px;
	padding: 0 10px;
	font-size: 18px;
	line-height: 1;
}

.presence-indicator-controls .temperature-source-control {
	flex: 0 1 auto;
}

.temperature-source-control--enabled {
	width: 44px;
}

.temperature-source-control--weight {
	width: 74px;
}

.temperature-source-control--mode {
	width: 164px;
}

.temperature-source-control--minutes {
	width: 70px;
}

.presence-indicator-control--source {
	width: min(100%, 220px);
}

.presence-indicator-control--caption {
	width: 140px;
}

.presence-indicator-control--enabled {
	width: 44px;
}

.presence-indicator-control--order {
	width: 70px;
}

.temperature-source-control input,
.temperature-source-control select {
	width: 100%;
	min-width: 0;
	min-height: 36px;
	box-sizing: border-box;
}

.temperature-source-control input[type="checkbox"] {
	width: 18px;
	height: 18px;
	min-height: 18px;
	align-self: center;
}

#room-temperature-dialog {
	width: min(620px, calc(100% - 32px));
}

#room-temperature-dialog .dialog-form {
	gap: 12px;
}

.room-device-group .room-device-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: 16px;
	align-items: start;
}

.room-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	gap: 16px;
	align-items: start;
}

.room-device-grid {
	min-width: 0;
}

.room-card {
	display: grid;
	gap: 14px;
	align-self: start;
	width: 100%;
	padding: 18px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 8px 24px rgba(28, 36, 48, 0.06);
	box-sizing: border-box;
}

.room-card > :first-child {
	margin-top: 0;
}

.room-card h3 {
	margin-top: 0;
}

@media (max-width: 640px) {
	.room-device-group {
		grid-template-columns: minmax(0, 1fr);
		gap: 14px;
	}

	.room-device-group--collapsed {
		grid-template-columns: minmax(0, 1fr);
	}

	.room-device-group + .room-device-group {
		padding-top: 0;
		border-top: 0;
	}

	.room-device-group-header {
		gap: 8px;
	}

	.room-device-group-summary {
		gap: 6px;
	}

	.room-count {
		display: none;
	}

	.temperature-source-controls {
		align-items: stretch;
	}

	.presence-indicator-controls {
		align-items: stretch;
	}

	.temperature-source-control,
	.presence-indicator-controls .temperature-source-control,
	.presence-indicator-actions {
		width: 100%;
		flex-basis: 100%;
	}

	.presence-indicator-actions {
		justify-content: flex-end;
	}

	.room-device-group-topline {
		align-items: center;
	}

	.room-device-group-summary {
		gap: 6px 8px;
	}

	.dialog-actions--split {
		flex-wrap: wrap;
	}

	.dialog-actions-group {
		margin-left: auto;
	}

	.room-device-grid,
	.room-list {
		grid-template-columns: 1fr;
	}

	.device-presentation-row {
		grid-template-columns: minmax(0, 1fr);
	}

	.device-presentation-actions {
		justify-content: flex-start;
	}
}


.history-button {
	align-self: flex-start;
	min-height: 32px;
	padding: 6px 10px;
	border: 1px solid #bac5d1;
	border-radius: 8px;
	background: #ffffff;
	color: #1c2430;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.history-button--compact {
	align-self: baseline;
	min-height: 0;
	padding: 2px 6px;
	border-color: transparent;
	border-radius: 999px;
	background: transparent;
	color: #556476;
	font-size: 12px;
	font-weight: 700;
}

.history-button:hover:not(:disabled),
.history-button:focus-visible,
.history-panel-close:hover,
.history-panel-close:focus-visible,
.history-range-selector select:hover:not(:disabled),
.history-range-selector select:focus-visible {
	border-color: #7d8da1;
	background: #f9fbfd;
	outline: none;
}

.history-panel {
	position: fixed;
	inset: 0;
	z-index: 40;
	display: grid;
	grid-template-rows: auto auto minmax(0, 1fr) auto auto;
	gap: clamp(10px, 1.8vh, 16px);
	overflow: hidden;
	overscroll-behavior: contain;
	width: 100%;
	height: 100vh;
	height: 100dvh;
	padding: clamp(14px, 2.5vw, 28px);
	padding-top: max(clamp(14px, 2.5vw, 28px), env(safe-area-inset-top));
	padding-right: max(clamp(14px, 2.5vw, 28px), env(safe-area-inset-right));
	padding-bottom: max(clamp(14px, 2.5vw, 28px), env(safe-area-inset-bottom));
	padding-left: max(clamp(14px, 2.5vw, 28px), env(safe-area-inset-left));
	border: 0;
	border-radius: 0;
	background: #ffffff;
	box-shadow: none;
}

.history-panel-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}

.history-panel-title {
	min-width: 0;
}

.history-panel-title h3,
.history-panel-title p {
	margin: 0;
}

.history-panel-title h3 {
	font-size: 18px;
	letter-spacing: 0;
}

.history-panel-title p {
	margin-top: 4px;
	color: var(--muted-color);
	font-size: 14px;
}

.history-panel-close,
.history-range-selector select {
	min-height: 34px;
	padding: 6px 10px;
	border: 1px solid #bac5d1;
	border-radius: 8px;
	background: #ffffff;
	color: #1c2430;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.history-panel-close {
	width: 36px;
	height: 36px;
	padding: 0;
	font-size: 22px;
	line-height: 1;
}

.history-range-selector {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	min-width: 0;
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 800;
}

.history-range-selector select {
	min-width: 170px;
}

.history-chart {
	position: relative;
	min-height: 0;
	height: 100%;
	width: 100%;
	overflow: hidden;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: linear-gradient(180deg, #ffffff 0%, #f9fbfd 100%);
}

.history-chart-svg {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 320px;
}

.history-chart-axis {
	fill: var(--muted-color);
	font-size: 12px;
}

.history-chart-grid {
	stroke: #d9e0e8;
	stroke-width: 1;
}

.history-chart-grid--minor {
	stroke: #edf1f5;
}

.history-chart-grid--time {
	stroke: #eef2f6;
}

.history-chart-grid--major {
	stroke: #d2dbe5;
}

.history-chart-hit {
	fill: transparent;
	pointer-events: all;
}

.history-chart-line,
.history-chart-step-line {
	fill: none;
	stroke: #2d5b89;
	stroke-width: 2.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.history-chart-point {
	fill: #ffffff;
	stroke: #2d5b89;
	stroke-width: 2;
}

.history-chart-focus {
	fill: #ffffff;
	stroke: #1f4d78;
	stroke-width: 2.5;
	pointer-events: none;
}

.history-chart-marker {
	stroke: #7d8da1;
	stroke-width: 1;
	stroke-dasharray: 4 4;
	pointer-events: none;
}

.history-chart-tooltip {
	position: absolute;
	z-index: 2;
	max-width: min(180px, calc(100% - 16px));
	padding: 7px 9px;
	border: 1px solid #bac5d1;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 8px 24px rgba(28, 36, 48, 0.14);
	color: #1c2430;
	font-size: 12px;
	white-space: pre-line;
	pointer-events: none;
}

.history-summary {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
}

.history-summary-item {
	display: grid;
	gap: 3px;
	padding: 10px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #f9fbfd;
}

.history-summary-label {
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 700;
}

.history-summary-value {
	margin: 0;
	font-weight: 800;
}

.history-loading,
.history-empty,
.history-error,
.history-truncated {
	padding: 12px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #f9fbfd;
	color: var(--muted-color);
}

.history-error {
	border-color: rgba(157, 37, 37, 0.28);
	color: var(--danger-color);
}

.history-truncated {
	font-size: 13px;
}

@media (max-width: 640px) {
	.history-panel {
		padding: 12px;
	}

	.history-panel-header {
		align-items: flex-start;
		gap: 10px;
	}

	.history-panel-close {
		align-self: flex-start;
	}

	.history-chart-svg {
		min-height: 280px;
	}

	.history-summary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 380px) {
	.history-summary {
		grid-template-columns: 1fr;
	}
}

@media (orientation: landscape) and (max-height: 520px) {
	.history-panel {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: auto minmax(0, 1fr) auto;
		align-items: start;
		gap: 8px 12px;
		padding-top: max(10px, env(safe-area-inset-top));
		padding-right: max(12px, env(safe-area-inset-right));
		padding-bottom: max(10px, env(safe-area-inset-bottom));
		padding-left: max(12px, env(safe-area-inset-left));
	}

	.history-panel-header {
		grid-column: 1;
		grid-row: 1;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		min-width: 0;
	}

	.history-panel-title {
		min-width: 0;
	}

	.history-panel-title h3 {
		font-size: 16px;
	}

	.history-panel-title p {
		font-size: 12px;
	}

	.history-range-selector {
		grid-column: 1;
		grid-row: 3;
		align-items: center;
		gap: 6px;
	}

	.history-panel-close {
		grid-column: 2;
		grid-row: 1;
		align-self: start;
		justify-self: end;
	}

	.history-range-selector select,
	.history-panel-close {
		min-height: 30px;
		padding: 5px 9px;
		font-size: 12px;
	}

	.history-chart {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.history-chart-svg {
		min-height: 0;
	}

	.history-summary {
		grid-column: 2;
		grid-row: 3;
		grid-template-columns: repeat(3, minmax(0, auto));
		justify-content: end;
		align-items: stretch;
		gap: 6px;
	}

	.history-summary-item {
		padding: 8px 9px;
	}

	.history-summary-label,
	.history-summary-value,
	.history-truncated {
		font-size: 11px;
	}
}



.scene-list {
	display: grid;
	gap: 12px;
}

.scene-list-item {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 16px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 8px 24px rgba(28, 36, 48, 0.05);
}

.scene-list-content,
.scene-detail-title,
.scene-action-title {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.scene-list-title h3,
.scene-list-title p,
.scene-detail-title h3,
.scene-detail-title p,
.scene-action-title h4,
.scene-action-title p {
	margin: 0;
}

.scene-list-title h3,
.scene-detail-title h3 {
	font-size: 18px;
	letter-spacing: 0;
}

.scene-action-title h4 {
	font-size: 15px;
	letter-spacing: 0;
}

.scene-list-title p,
.scene-detail-title p,
.scene-action-title p {
	color: var(--muted-color);
	font-size: 13px;
	font-weight: 600;
}

.scene-list-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin: 0;
}

.scene-list-meta dt {
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 800;
}

.scene-list-meta dd {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
	overflow-wrap: anywhere;
}

.scene-list-actions,
.scene-badges {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 8px;
}

.scene-list-icon-button {
	width: 44px;
	padding: 0;
	flex: 0 0 44px;
}

.scene-detail {
	display: grid;
	gap: 16px;
}

.scene-detail-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 16px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
}

.scene-action-list {
	display: grid;
	gap: 12px;
}
.scene-device-card-editor {
	display: grid;
	gap: 16px;
}

.scene-device-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 320px));
	justify-content: start;
	align-items: start;
	gap: 16px;
	width: 100%;
	min-width: 0;
}

.scene-capability-include {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	min-height: 28px;
	cursor: pointer;
}

.scene-capability-include input {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: #1f6e43;
}

.scene-capability-selection {
	display: inline-flex;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 6px;
	max-width: 100%;
}

.scene-action-repeat {
	position: relative;
	max-width: min(220px, 100%);
	font-size: 12px;
}

.scene-action-repeat summary {
	cursor: pointer;
	font-weight: 700;
	white-space: nowrap;
}

.scene-action-repeat-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin-top: 6px;
	padding: 8px;
	border: 1px solid #d9e0e8;
	border-radius: 6px;
	background: #ffffff;
}

.scene-action-repeat-fields label {
	display: grid;
	gap: 4px;
	font-weight: 700;
}

.scene-action-repeat-fields input {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
}

.scene-action-repeat-fields small {
	grid-column: 1 / -1;
	color: var(--muted-color);
	line-height: 1.35;
}

.scene-capability-control--disabled {
	opacity: 0.45;
	pointer-events: none;
	user-select: none;
}

.scene-string-command-control,
.scene-string-command-control input {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
.scene-action-card {
	display: grid;
	gap: 12px;
	padding: 16px;
	border: 1px solid #d9e0e8;
	border-left: 5px solid #1f6e43;
	border-radius: 8px;
	background: #ffffff;
}

.scene-action-card-editing {
	background: #fbfcfe;
}

.scene-action-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.scene-action-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 12px;
	align-items: start;
}

.scene-json-preview {
	max-height: 180px;
	margin: 0;
	padding: 10px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #f9fbfd;
	color: #334155;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	font-size: 12px;
	overflow: auto;
}

.automation-list {
	display: grid;
	gap: 12px;
}

.automation-group-section {
	display: grid;
	gap: 12px;
	min-width: 0;
	padding: 14px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #f8fafc;
}

.automation-group-section--invalid {
	border-color: #b42318;
	background: #fff7f5;
}

.automation-group-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	min-width: 0;
}

.automation-group-section--collapsible .automation-group-header {
	display: grid;
	gap: 8px;
}

.automation-group-topline {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	min-width: 0;
}

.automation-group-toggle {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: baseline;
	gap: 8px;
	flex: 1 1 auto;
	min-width: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-weight: 700;
	text-align: left;
	cursor: pointer;
}

.automation-group-toggle:hover:not(:disabled) {
	color: #1c2430;
}

.automation-group-toggle:focus-visible {
	outline: 2px solid #2d5b89;
	outline-offset: 3px;
	border-radius: 6px;
}

.automation-group-disclosure {
	flex: 0 0 auto;
	color: #687386;
	font-size: 14px;
	font-weight: 800;
}

.automation-group-title {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.automation-group-section--collapsible .automation-group-title {
	display: block;
	color: #1c2430;
	font-size: 18px;
	letter-spacing: 0;
	line-height: 1.2;
	white-space: normal;
	overflow-wrap: break-word;
	word-break: normal;
}

.automation-group-summary {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 10px;
	min-width: 0;
}

.automation-group-summary-text {
	color: var(--muted-color);
	font-size: 13px;
	font-weight: 700;
}

.automation-group-actions {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
	margin-left: auto;
}

.automation-group-content {
	display: grid;
	gap: 12px;
	min-width: 0;
}

.automation-group-section--collapsed .automation-group-content {
	display: none !important;
}

.automation-group-items {
	display: grid;
	gap: 10px;
	min-width: 0;
}

.automation-state-context-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 10px;
	min-width: 0;
}

.automation-state-context-overview:empty {
	display: none;
}

.automation-state-context-card {
	display: grid;
	gap: 8px;
	min-width: 0;
	padding: 10px 12px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 6px 18px rgba(28, 36, 48, 0.035);
}

.automation-state-context-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	min-width: 0;
}

.automation-state-context-header h4 {
	min-width: 0;
	margin: 0;
	color: #1c2430;
	font-size: 14px;
	letter-spacing: 0;
	overflow-wrap: anywhere;
}

.automation-state-context-type,
.automation-state-candidate-chip {
	display: inline-flex;
	align-items: center;
	min-width: 0;
	padding: 3px 7px;
	border-radius: 999px;
	background: #edf1f6;
	color: #445066;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.2;
}

.automation-state-context-type {
	flex: 0 0 auto;
	background: #e8f2fb;
	color: #24527d;
}

.automation-state-context-facts {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 5px 10px;
	min-width: 0;
	margin: 0;
	font-size: 12px;
}

.automation-state-context-facts dt {
	color: var(--muted-color);
	font-weight: 800;
}

.automation-state-context-facts dd {
	min-width: 0;
	margin: 0;
	color: #1f2937;
	font-weight: 700;
	overflow-wrap: anywhere;
}

.automation-state-context-candidates {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	min-width: 0;
}

.automation-state-candidate-chip {
	background: #f5f7fb;
	color: #445066;
}

.automation-state-candidate-chip--winner {
	background: #e7f6ee;
	color: #1f6e43;
}

.automation-state-context-missing {
	margin: 0;
	color: var(--danger-color);
	font-size: 12px;
	font-weight: 700;
}

.automation-trace-panel {
	display: grid;
	gap: 8px;
	min-width: 0;
	padding: 10px 12px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 6px 18px rgba(28, 36, 48, 0.035);
}

.automation-trace-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	min-width: 0;
}

.automation-trace-title {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.automation-trace-title h3,
.automation-trace-title h4,
.automation-trace-title p {
	margin: 0;
}

.automation-trace-title h3 {
	font-size: 18px;
	letter-spacing: 0;
}

.automation-trace-title h4 {
	font-size: 14px;
	letter-spacing: 0;
}

.automation-trace-title p,
.automation-trace-empty,
.automation-trace-item-body p {
	color: var(--muted-color);
	font-size: 12px;
}

.automation-trace-open {
	flex: 0 0 auto;
}

.automation-trace-list {
	display: grid;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.automation-trace-list--dialog {
	gap: 4px;
}

.automation-trace-item {
	display: grid;
	grid-template-columns: 8px 74px minmax(0, 1fr);
	gap: 10px;
	min-width: 0;
	padding: 2px 0;
	border-top: 1px solid #edf1f6;
	align-items: start;
}

.automation-trace-item:first-child {
	border-top: 0;
}

.automation-trace-marker {
	width: 8px;
	height: 8px;
	margin-top: 5px;
	border-radius: 999px;
	background: #6b7280;
}

.automation-trace-item--warning .automation-trace-marker {
	background: #b7791f;
}

.automation-trace-item--error .automation-trace-marker {
	background: #c53030;
}

.automation-trace-time {
	display: block;
	min-width: 0;
	color: var(--muted-color);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1;
}

.automation-trace-message {
	min-width: 0;
	color: #1c2430;
	font-size: 13px;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.automation-trace-dialog-form {
	display: flex;
	flex-direction: column;
	gap: 0;
	max-height: min(78vh, 720px);
	padding: 0;
	overflow: hidden;
}

.automation-trace-dialog-header {
	padding: 22px 22px 14px;
	border-bottom: 1px solid #edf1f6;
	background: #ffffff;
	flex: 0 0 auto;
	min-width: 0;
}

.automation-trace-dialog-header .automation-trace-title {
	min-width: 0;
}

.automation-trace-dialog-body {
	flex: 1 1 auto;
	min-height: 0;
	min-width: 0;
	padding: 14px 22px 22px;
	overflow-y: auto;
	overflow-x: hidden;
}

@media (max-width: 640px) {
	.automation-trace-item {
		grid-template-columns: 8px minmax(0, 1fr);
	}

	.automation-trace-time {
		grid-column: 2;
	}

	.automation-trace-message {
		grid-column: 2;
		margin-top: -2px;
	}

	.automation-trace-dialog-header {
		padding: 18px 18px 12px;
	}

	.automation-trace-dialog-body {
		padding: 12px 18px 18px;
	}
}

.automation-signal-overview {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
	min-width: 0;
}

.automation-signal-card,
.automation-timeline-card {
	display: grid;
	gap: 10px;
	min-width: 0;
	padding: 12px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 6px 18px rgba(28, 36, 48, 0.04);
}

.automation-signal-header,
.automation-timeline-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	min-width: 0;
}

.automation-signal-title {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.automation-signal-title h4,
.automation-signal-title p {
	margin: 0;
	overflow-wrap: anywhere;
}

.automation-signal-title h4 {
	font-size: 14px;
	letter-spacing: 0;
}

.automation-signal-title p {
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 700;
}

.automation-signal-value {
	flex: 0 0 auto;
	max-width: 42%;
	color: #1f2937;
	font-size: 15px;
	text-align: right;
	overflow-wrap: anywhere;
}

.automation-signal-thresholds {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	min-width: 0;
}

.automation-threshold-pill {
	display: inline-flex;
	align-items: center;
	min-width: 0;
	padding: 3px 7px;
	border-radius: 999px;
	background: #fff4e5;
	color: #7a4a00;
	font-size: 11px;
	font-weight: 800;
}

.automation-threshold-pill--disabled {
	background: #edf1f6;
	color: #7b8794;
	text-decoration: line-through;
}

.automation-signal-chart {
	position: relative;
	min-width: 0;
	height: 252px;
	overflow: hidden;
	border-radius: 6px;
	background: #f8fafc;
	border: 1px solid #e5eaf1;
	transition: border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
}

.automation-timeline-chart {
	position: relative;
	display: grid;
	grid-template-rows: auto minmax(0, 1fr);
	min-width: 0;
	min-height: 160px;
	overflow: hidden;
	border-radius: 6px;
	background: #f8fafc;
	border: 1px solid #e5eaf1;
}

.timeline-viewport-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	min-width: 0;
	padding: 7px;
	border-bottom: 1px solid #e5eaf1;
	background: #ffffff;
}

.timeline-viewport-toolbar [aria-pressed="true"] {
	border-color: #1f6e43;
	background: #e8f5ed;
}

.timeline-viewport-status,
.timeline-viewport-window,
.timeline-viewport-hint,
.timeline-viewport-error {
	font-size: 11px;
	line-height: 1.35;
}

.timeline-viewport-status {
	padding: 3px 7px;
	border-radius: 999px;
	background: #e8f5ed;
	color: #1f6e43;
	font-weight: 800;
}

.timeline-viewport-window {
	min-width: 0;
	color: #334155;
	font-variant-numeric: tabular-nums;
}

.timeline-viewport-hint {
	color: var(--muted-color);
}

.timeline-viewport-error {
	flex-basis: 100%;
	color: #a61b1b;
}

.timeline-viewport-loading {
	position: absolute;
	top: 52px;
	right: 8px;
	z-index: 3;
	padding: 4px 8px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.16);
	color: #334155;
	font-size: 11px;
	font-weight: 750;
}

.timeline-viewport-selection {
	pointer-events: none;
	fill: rgba(37, 99, 235, 0.2);
	stroke: #2563eb;
	stroke-width: 1.5;
}

.automation-timeline-chart .history-chart-hit {
	touch-action: pan-y;
	cursor: grab;
}

.automation-timeline-chart .history-chart-hit[data-timeline-dragging="true"] {
	cursor: grabbing;
}

.automation-timeline-svg {
	display: block;
	width: 100%;
	height: auto;
	min-height: 150px;
}

.automation-timeline-signal-overview {
	display: grid;
	grid-template-columns: auto fit-content(24rem) max-content minmax(16px, 1fr) minmax(72px, auto) minmax(72px, auto) minmax(72px, auto) minmax(92px, auto);
	align-items: center;
	column-gap: 8px;
	gap: 4px;
	min-width: 0;
	padding: 8px 10px;
	border: 1px solid #e5eaf1;
	border-radius: 6px;
	background: #f8fafc;
	color: #334155;
	font-size: 12px;
	font-weight: 750;
}

.automation-timeline-signal-row {
	display: contents;
}

.automation-timeline-signal-label,
.automation-timeline-signal-metrics,
.automation-timeline-signal-metric {
	min-width: 0;
	overflow-wrap: anywhere;
}

.automation-timeline-signal-label {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.automation-timeline-signal-value {
	color: #0f172a;
	text-align: right;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.automation-timeline-signal-spacer {
	display: block;
	min-width: 0;
}

.automation-timeline-signal-metrics {
	display: contents;
}

.automation-timeline-signal-metric {
	display: grid;
	grid-template-columns: auto minmax(0, auto);
	align-items: baseline;
	justify-content: end;
	gap: 4px;
	color: #475569;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.automation-timeline-signal-metric--empty {
	visibility: hidden;
}

.automation-timeline-signal-metric--emphasized {
	color: #334155;
}

.automation-timeline-signal-metric-label {
	font-size: 11px;
	color: #64748b;
}

.automation-timeline-signal-metric-value {
	text-align: right;
}

.automation-timeline-swatch {
	width: 10px;
	height: 10px;
	border-radius: 999px;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.65);
}

@media (max-width: 720px) {
	.automation-timeline-signal-overview {
		grid-template-columns: auto minmax(0, 1fr) auto;
	}

	.automation-timeline-signal-row {
		display: contents;
	}

	.automation-timeline-signal-label {
		white-space: normal;
	}

	.automation-timeline-signal-metrics {
		display: flex;
		flex-wrap: wrap;
		grid-column: 2 / -1;
		gap: 4px 10px;
	}

	.automation-timeline-signal-metric {
		display: inline-flex;
		justify-content: flex-start;
	}

	.automation-timeline-signal-metric--empty {
		display: none;
	}
}

.automation-timeline-header-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	gap: 8px;
}

.automation-timeline-card:fullscreen,
.automation-timeline-card--fullscreen-fallback {
	display: grid;
	grid-template-rows: auto auto minmax(0, 1fr);
	gap: 12px;
	margin: 0;
	background: #ffffff;
}

.automation-timeline-card:fullscreen {
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	padding: 12px;
}

.automation-timeline-card--fullscreen-fallback {
	position: fixed;
	inset: 16px;
	z-index: 1200;
	padding: 16px;
	border-radius: 14px;
	box-shadow: 0 24px 70px rgba(15, 23, 42, 0.2);
}

.automation-timeline-card:fullscreen .automation-timeline-chart,
.automation-timeline-card--fullscreen-fallback .automation-timeline-chart {
	min-height: 0;
	height: 100%;
}

.automation-timeline-card:fullscreen .automation-timeline-signal-overview,
.automation-timeline-card--fullscreen-fallback .automation-timeline-signal-overview {
	align-self: start;
}

.automation-timeline-card:fullscreen .automation-timeline-svg,
.automation-timeline-card--fullscreen-fallback .automation-timeline-svg {
	min-height: min(72vh, 980px);
}

@media (max-width: 720px) {
	.automation-timeline-card:fullscreen,
	.automation-timeline-card--fullscreen-fallback {
		inset: 8px;
		padding: 12px;
	}
}

.automation-timeline-tooltip {
	min-width: 190px;
	max-width: 260px;
	display: grid;
	gap: 6px;
}

.automation-timeline-tooltip--touch {
	min-width: 0;
	max-width: calc(100% - 16px);
}

.automation-timeline-tooltip-time {
	font-size: 12px;
	color: #0f172a;
}

.automation-timeline-tooltip-row {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: #334155;
}

.automation-timeline-tooltip-swatch {
	width: 9px;
	height: 9px;
	border-radius: 999px;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.72);
}

.automation-timeline-tooltip-label {
	min-width: 0;
}

.automation-timeline-tooltip-value {
	color: #0f172a;
}

.automation-signal-chart-empty {
	display: grid;
	place-items: center;
	height: 100%;
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 700;
	text-align: center;
}

.automation-mini-chart-svg {
	display: block;
	width: 100%;
	height: 100%;
}

.automation-mini-gridline {
	stroke: #e0e7ef;
	stroke-width: 1;
	stroke-dasharray: 2 5;
}

.automation-mini-gridline--vertical {
	stroke-dasharray: 1 5;
}

.automation-mini-gridline--edge {
	stroke-opacity: 0.55;
}

.automation-mini-axis {
	stroke: #cbd5e1;
	stroke-width: 1;
}

.automation-mini-time-label {
	fill: #64748b;
	font-size: 10px;
	font-weight: 700;
}

.automation-mini-axis-label {
	fill: #667085;
	font-size: 10px;
	font-weight: 700;
}

.automation-mini-hysteresis-band {
	fill: rgba(100, 116, 139, 0.12);
}

.automation-mini-threshold-label {
	fill: #8b5e00;
	font-size: 10px;
	font-weight: 800;
	paint-order: stroke;
	stroke: #f8fafc;
	stroke-width: 3px;
	stroke-linejoin: round;
}

.automation-mini-threshold-label--disabled {
	fill: #7b8794;
}

.automation-mini-threshold-leader {
	stroke: #b0892c;
	stroke-width: 1;
	stroke-dasharray: 3 4;
	stroke-linecap: round;
}

.automation-mini-threshold-leader--disabled {
	stroke: #aab4c1;
	stroke-opacity: 0.7;
}

.automation-mini-line {
	fill: none;
	stroke: #2d5b89;
	stroke-width: 2.25;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.automation-mini-step-line {
	fill: none;
	stroke: #2d5b89;
	stroke-width: 2.25;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.automation-mini-threshold {
	stroke: #a16207;
	stroke-width: 1.4;
	stroke-dasharray: 4 5;
	stroke-opacity: 0.82;
}

.automation-mini-threshold--disabled {
	stroke: #9aa4b2;
	stroke-opacity: 0.65;
}

.automation-mini-marker {
	fill: #1f6e43;
	stroke: #ffffff;
	stroke-width: 1.5;
}

.automation-mini-marker--boolean {
	fill: #2d5b89;
}

.automation-list-item {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 16px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 8px 24px rgba(28, 36, 48, 0.05);
}

.automation-runtime-led {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	box-shadow: 0 0 0 3px rgba(31, 41, 55, 0.08);
}

.automation-runtime-led--none { background: #9ca3af; }
.automation-runtime-led--active { background: #d97706; }
.automation-runtime-led--completed { background: #15803d; }
.automation-runtime-led--error { background: #b91c1c; }

.automation-lifecycle-options {
	display: inline-flex;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 0;
	min-width: 0;
}

.automation-lifecycle-options > button,
.automation-lifecycle-options > .automation-pause-control > button {
	min-height: 44px;
	border-radius: 0;
}

.automation-lifecycle-options > :first-child { border-radius: 6px 0 0 6px; }
.automation-lifecycle-options > :last-child { border-radius: 0 6px 6px 0; }
.automation-lifecycle-options [aria-pressed="true"] { color: #ffffff; }
.automation-lifecycle-options [aria-pressed="true"][data-lifecycle-option="play"] { background: #15803d; border-color: #166534; }
.automation-lifecycle-options [aria-pressed="true"][data-lifecycle-option="pause"] { background: #c2410c; border-color: #9a3412; }
.automation-lifecycle-options [aria-pressed="true"][data-lifecycle-option="stop"] { background: #4b5563; border-color: #374151; }

.automation-detail-editing .automation-detail-header {
	position: sticky;
	top: 0;
	z-index: 4;
}

.automations-section--editing > .toolbar {
	position: sticky;
	top: 0;
	z-index: 5;
	padding: 10px 0;
	background: var(--page-background, #f5f7fa);
}

.automation-list-item--disabled {
	background: #f8fafc;
	border-color: #e2e8f0;
	box-shadow: 0 6px 16px rgba(28, 36, 48, 0.03);
}

.automation-list-item--disabled .automation-list-content {
	opacity: 0.78;
}

.automation-list-item--disabled .automation-list-actions {
	opacity: 0.98;
}

.automation-list-item--disabled .automation-list-title h3,
.automation-list-item--disabled .automation-list-title p,
.automation-list-item--disabled .automation-list-meta dt,
.automation-list-item--disabled .automation-list-meta dd {
	color: #52606d;
}

.automation-list-content,
.automation-detail-title {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.automation-list-header {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	min-width: 0;
}

.automation-list-header .automation-runtime-led {
	flex: 0 0 auto;
	margin-top: 6px;
}

.automation-list-title h3,
.automation-list-title p,
.automation-detail-title h3,
.automation-detail-title p {
	margin: 0;
}

.automation-list-title h3,
.automation-detail-title h3 {
	font-size: 18px;
	letter-spacing: 0;
}

.automation-list-title p,
.automation-detail-title p,
.automation-node-subtitle {
	color: var(--muted-color);
	font-size: 13px;
	font-weight: 600;
}

.automation-list-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin: 0;
}

.automation-list-meta dt {
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 800;
}

.automation-list-meta dd {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
}

.automation-runtime-summary {
	display: grid;
	gap: 6px;
	width: min(280px, 100%);
	min-width: 0;
}

.automation-runtime-summary-text {
	font-size: 12px;
	font-weight: 700;
	color: #445066;
}

.automation-runtime-progress {
	position: relative;
	height: 6px;
	overflow: hidden;
	border-radius: 999px;
	background: #d9e0e8;
}

.automation-runtime-progress-fill {
	height: 100%;
	border-radius: inherit;
	background: #2d5b89;
}

.automation-list-item--disabled .automation-runtime-summary-text {
	color: #52606d;
}

.automation-list-item--disabled .automation-runtime-progress {
	background: #d5dde7;
}

.automation-list-item--disabled .automation-runtime-progress-fill {
	background: #56708d;
}

.automation-list-actions,
.automation-badges {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 8px;
}

.automation-list-actions { align-items: flex-start; }

.automation-group-select {
	max-width: 180px;
	min-width: 130px;
}

.automation-toggle-control {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.automation-detail {
	display: grid;
	gap: 16px;
}

.automation-runtime-panel {
	display: grid;
	gap: 12px;
	padding: 16px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
}

.automation-runtime-panel-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.automation-runtime-panel-title {
	display: grid;
	gap: 4px;
}

.automation-runtime-panel-title h4,
.automation-runtime-panel-title p {
	margin: 0;
}

.automation-runtime-panel-title h4 {
	font-size: 15px;
}

.automation-runtime-panel-title p {
	color: var(--muted-color);
	font-size: 13px;
	font-weight: 600;
}

.automation-runtime-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin: 0;
}

.automation-runtime-meta dt {
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 800;
}

.automation-runtime-meta dd {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
}

.automation-runtime-empty {
	color: var(--muted-color);
	font-size: 13px;
	font-weight: 700;
}

.automation-detail-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 16px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
}

.automation-detail-header-aside {
	display: grid;
	justify-items: end;
	gap: 10px;
	min-width: 0;
}

.automation-detail-actions {
	display: flex;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 8px;
	min-width: 0;
}

.automation-flow {
	display: grid;
	justify-items: center;
	gap: 0;
	padding: 16px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	overflow-x: auto;
}

.automation-flow-node {
	width: min(360px, 100%);
	padding: 13px;
	border: 1px solid #bac5d1;
	border-left-width: 5px;
	border-radius: 8px;
	background: #f9fbfd;
}

.automation-flow-node h4,
.automation-flow-node p {
	margin: 0;
}

.automation-flow-node h4 {
	font-size: 15px;
	letter-spacing: 0;
}

.automation-node-row {
	margin-top: 7px;
	color: #334155;
	font-size: 13px;
	font-weight: 650;
	overflow-wrap: anywhere;
}

.automation-node-trigger {
	border-left-color: #2d5b89;
}

.automation-node-scene {
	border-left-color: #1f6e43;
}

.automation-node-delay {
	border-left-color: #7a5300;
}

.automation-node-adjust-capability {
	width: min(520px, 100%);
	border-left-color: #157081;
}

.automation-adjust-capability-editor {
	min-width: 0;
}

.automation-adjust-capability-editor > .form-field,
.automation-adjust-capability-editor select,
.automation-adjust-capability-editor input {
	min-width: 0;
	max-width: 100%;
}

.automation-node-pause-automations,
.automation-node-resume-automations {
	width: min(680px, 100%);
	border-color: color-mix(in srgb, var(--accent-color) 38%, var(--border-color));
}

.automation-lifecycle-target-editor {
	display: grid;
	gap: 10px;
	margin-top: 10px;
	min-width: 0;
}

.automation-lifecycle-target-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: start;
	min-width: 0;
	max-width: 100%;
}

.automation-lifecycle-target-control {
	max-width: 100%;
	min-width: 0;
}

.automation-lifecycle-target-select {
	flex: 2 1 170px;
}

.automation-lifecycle-mode-select {
	flex: 1 1 120px;
}

.automation-lifecycle-duration-input {
	flex: 0 1 76px;
	width: 76px;
}

.automation-lifecycle-unit-select {
	flex: 1 1 90px;
}

.automation-lifecycle-target-remove {
	flex: 0 0 44px;
	padding: 8px;
}

.automation-lifecycle-target-error {
	flex: 1 0 100%;
	margin-top: 0;
	min-width: 0;
}

@media (max-width: 740px) {
	.automation-lifecycle-target-row > .automation-lifecycle-target-control {
		flex-basis: 100%;
		width: 100%;
	}
}

.automation-node-branch,
.automation-node-select-state,
.automation-node-condition {
	border-left-color: #5f4b8b;
}

.automation-node-else {
	border-left-color: #687386;
}

.automation-node-error {
	border-left-color: var(--danger-color);
}

.automation-runtime-active {
	border-color: #24527d;
	background: #f4f8fc;
	box-shadow: 0 0 0 3px rgba(36, 82, 125, 0.12);
}

.automation-runtime-completed {
	border-color: #cde9d8;
	background: #fafdfb;
	opacity: 0.92;
}

.automation-runtime-failed {
	border-color: #f0c7c7;
	background: #fff8f8;
}

.automation-runtime-cancelled {
	border-color: #dde3ea;
	background: #fbfcfd;
	opacity: 0.92;
}

.automation-runtime-inline {
	margin-top: 8px;
	color: #24527d;
	font-size: 12px;
	font-weight: 800;
}

.automation-flow-connector {
	min-height: 28px;
	color: #7d8da1;
	font-size: 20px;
	font-weight: 800;
	line-height: 28px;
	text-align: center;
}

.automation-flow-empty {
	padding: 12px;
	border: 1px dashed #bac5d1;
	border-radius: 8px;
	background: #f9fbfd;
	color: var(--muted-color);
	font-size: 13px;
	font-weight: 700;
}

.automation-branch {
	display: grid;
	justify-items: center;
	gap: 14px;
	width: 100%;
}

.automation-branch-paths {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
	width: 100%;
	align-items: start;
}

.automation-branch-path {
	display: grid;
	justify-items: center;
	gap: 0;
	min-width: 0;
	padding: 12px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #fbfcfe;
}

.automation-branch-label {
	margin-bottom: 10px;
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
}

.automation-select-state-paths {
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
}

.automation-select-state-case-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	width: 100%;
	min-width: 0;
}

.automation-select-state-case > .form-field,
.automation-select-state-case > .automation-flow-node {
	width: 100%;
	min-width: 0;
}

.automation-runtime-branch-selected {
	border-color: #24527d;
	background: #eef5fb;
	box-shadow: 0 0 0 1px rgba(36, 82, 125, 0.12);
}

.automation-runtime-branch-muted {
	opacity: 0.78;
}

.automation-range-editor,
.automation-range-boundaries,
.automation-range-list {
	display: grid;
	gap: 8px;
	width: 100%;
}

.automation-range-row {
	display: grid;
	grid-template-columns: minmax(120px, 1fr) minmax(90px, 0.8fr) minmax(110px, 1fr) auto;
	gap: 8px;
	align-items: center;
	width: 100%;
}

.automation-range-interval {
	color: var(--muted-color);
	font-size: 12px;
	white-space: nowrap;
}

.state-overview,
.state-sections,
.state-section {
	display: grid;
	gap: 16px;
	min-width: 0;
}

.state-section-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.state-section-header h3 {
	margin: 0;
	font-size: 18px;
	letter-spacing: 0;
}

.state-section-count,
.state-type-badge,
.state-badge {
	display: inline-flex;
	align-items: center;
	min-width: 0;
	padding: 3px 7px;
	border-radius: 999px;
	background: #edf1f6;
	color: #445066;
	font-size: 11px;
	font-weight: 800;
}

.state-type-badge {
	background: #e8f2fb;
	color: #24527d;
}

.state-badge--winner {
	background: #e7f6ee;
	color: #1f6e43;
}

.state-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 12px;
	min-width: 0;
}

.state-card {
	display: grid;
	gap: 12px;
	min-width: 0;
	padding: 16px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 8px 24px rgba(28, 36, 48, 0.05);
}

.state-card-header,
.state-candidate-status-heading,
.state-candidate-editor-header,
.state-editor-section-header,
.state-card-actions {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	min-width: 0;
}

.state-card-title {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.state-card-title h3,
.state-card-title p,
.state-derived-inspection h4,
.state-editor-section h3,
.state-definition-preview p {
	margin: 0;
}

.state-card-title h3 {
	font-size: 18px;
	letter-spacing: 0;
	overflow-wrap: anywhere;
}

.state-card-title p,
.state-definition-preview,
.state-control-note,
.state-condition-row {
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 700;
	overflow-wrap: anywhere;
}

.state-metric-grid,
.state-candidate-facts {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	gap: 5px 12px;
	margin: 0;
	min-width: 0;
}

.state-metric-grid dt,
.state-candidate-facts dt {
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 800;
}

.state-metric-grid dd,
.state-candidate-facts dd {
	margin: 0;
	color: #1c2430;
	font-size: 13px;
	font-weight: 750;
	min-width: 0;
	overflow-wrap: anywhere;
}

.state-manual-controls,
.state-duration-group,
.state-candidate-editor-fields,
.state-value-editor-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	min-width: 0;
}

.state-manual-controls select {
	min-width: 130px;
}

.state-duration-input {
	width: 82px;
}

.state-derived-inspection,
.state-candidate-list,
.state-editor-section,
.state-value-editor-list,
.state-candidate-editor-list,
.state-condition-editor,
.state-condition-leaf-editor {
	display: grid;
	gap: 10px;
	min-width: 0;
}

.state-candidate-status,
.state-candidate-editor,
.state-definition-preview {
	display: grid;
	gap: 10px;
	min-width: 0;
	padding: 12px;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #f8fafc;
}

.state-candidate-status--active {
	border-color: #b8d4ec;
	background: #f4f8fc;
}

.state-candidate-status--winner {
	border-color: #b7dec5;
	background: #f5fbf7;
}

.state-candidate-marker {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	display: inline-grid;
	place-items: center;
	border-radius: 999px;
	background: #edf1f6;
	color: #445066;
	font-size: 13px;
	font-weight: 900;
}

.state-candidate-status--active .state-candidate-marker {
	background: #d8ebf9;
	color: #24527d;
}

.state-candidate-status--winner .state-candidate-marker {
	background: #d7f0e1;
	color: #1f6e43;
}

.state-candidate-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-left: auto;
}

.state-fallback-row {
	color: var(--muted-color);
	font-size: 13px;
	font-weight: 800;
}

.state-inline-field {
	display: grid;
	gap: 4px;
	min-width: 130px;
	flex: 1 1 150px;
	color: var(--muted-color);
	font-size: 12px;
	font-weight: 800;
}

.state-inline-field input,
.state-inline-field select {
	min-width: 0;
	width: 100%;
}

.state-condition-child {
	display: grid;
	gap: 8px;
	padding-left: 12px;
	border-left: 2px solid #d9e0e8;
}

.state-dialog-form {
	max-width: min(920px, calc(100vw - 28px));
}

.automation-group-editor-form {
	max-width: min(920px, calc(100vw - 28px));
}

.automation-group-editor-section {
	display: grid;
	gap: 12px;
}

.automation-group-signal-list {
	display: grid;
	gap: 8px;
}

.automation-group-signal-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
	padding: 10px 12px;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: var(--panel-background);
}

.automation-group-signal-row--hidden {
	opacity: 0.68;
}

.automation-group-signal-row-text {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.automation-group-signal-row-text strong {
	font-size: 12px;
	color: var(--muted-color);
}

.automation-group-signal-row-text span {
	overflow-wrap: anywhere;
}

.automation-group-signal-row-text small {
	color: var(--muted-color);
	font-size: 11px;
}

.automation-group-signal-row-fields {
	display: grid;
	grid-template-columns: minmax(160px, 1fr) minmax(130px, auto) auto;
	gap: 8px;
	align-items: end;
}

.chart-color-picker { min-width: 0; max-width: 100%; margin: 0; padding: 0.65rem; border: 1px solid #cbd5e1; border-radius: 8px; }
.chart-color-picker-swatches { display: grid; grid-template-columns: repeat(auto-fit, minmax(44px, 1fr)); gap: 0.45rem; }
.chart-color-picker-swatch { position: relative; min-width: 44px; min-height: 44px; padding: 0.25rem; border: 3px solid transparent; border-radius: 7px; background: var(--chart-color-swatch, repeating-linear-gradient(135deg, #e2e8f0 0 6px, #ffffff 6px 12px)); color: #ffffff; text-shadow: 0 1px 2px #000000; }
.chart-color-picker-swatch--active { border-color: #0f172a; box-shadow: 0 0 0 2px #ffffff inset; }
.chart-color-picker-swatch:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
.chart-color-picker-check { visibility: hidden; font-weight: 800; }
.chart-color-picker-swatch--active .chart-color-picker-check { visibility: visible; }
.chart-color-picker-swatch-label { display: block; font-size: 0.65rem; overflow-wrap: anywhere; }
.chart-color-picker-manual { display: grid; grid-template-columns: 44px minmax(90px, 0.5fr) minmax(120px, 1fr); align-items: end; gap: 0.55rem; margin-top: 0.65rem; }
.chart-color-picker-preview { display: block; width: 44px; height: 44px; border: 2px solid #0f172a; border-radius: 7px; }
.chart-color-picker-native-label,
.chart-color-picker-hex-label { min-width: 0; }
.chart-color-picker-native-label > span,
.chart-color-picker-hex-label > span { display: block; margin-bottom: 0.25rem; font-size: 0.78rem; }
.chart-color-picker-native-label input { width: 100%; min-height: 44px; }
.chart-color-picker-hex { width: 100%; min-width: 0; box-sizing: border-box; }
.chart-color-picker-error { margin: 0.45rem 0 0; color: #b91c1c; font-size: 0.82rem; }

.automation-group-signal-visible-control input {
	width: auto;
}

.automation-group-signal-row-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: flex-end;
}

.automation-group-signal-add {
	display: grid;
	gap: 8px;
	padding: 12px;
	border: 1px dashed var(--border-color);
	border-radius: 8px;
	background: #fafbfd;
}

.automation-group-signal-add input,
.automation-group-signal-add select,
.automation-group-signal-add button {
	width: 100%;
}

@media (max-width: 720px) {
	.automation-group-signal-row {
		grid-template-columns: minmax(0, 1fr);
	}

	.automation-group-signal-row-fields {
		grid-template-columns: minmax(0, 1fr);
	}

	.automation-group-signal-row-actions {
		justify-content: flex-start;
	}
}

.automation-json-textarea {
	min-height: min(70vh, 620px);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	font-size: 13px;
}

@media (max-width: 720px) {
	.scene-device-card-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.scene-list-item,
	.scene-detail-header,
	.scene-action-header,
	.automation-list-item,
	.automation-detail-header,
	.state-card-header,
	.state-candidate-status-heading,
	.state-candidate-editor-header {
		align-items: stretch;
		flex-direction: column;
	}

	.scene-list-actions,
	.scene-badges,
	.automation-detail-actions,
	.automation-list-actions,
	.automation-badges,
	.state-card-actions {
		justify-content: flex-start;
	}

	.automation-detail-header-aside {
		justify-items: start;
		width: 100%;
	}

	.scene-action-grid,
	.automation-branch-paths {
		grid-template-columns: 1fr;
	}

	.automation-range-row {
		grid-template-columns: 1fr;
	}

	.state-card-grid,
	.state-metric-grid,
	.state-candidate-facts {
		grid-template-columns: 1fr;
	}

	.state-dialog-form {
		max-width: calc(100vw - 20px);
	}
}
.end-user-card {
	display: grid;
	gap: 0.75rem;
	align-items: center;
}

.favorite-view-navigation {
	display: grid;
	gap: 0.75rem;
	min-width: 0;
	margin-bottom: 1rem;
}

#favorites-section {
	min-width: 0;
}

.favorite-tabs {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.favorite-view-select {
	display: none;
}

.favorite-administration-view {
	min-width: 14rem;
}

.favorite-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.favorite-card {
	display: grid;
	align-content: start;
	gap: 0.75rem;
	min-width: 0;
	padding: 1rem;
	border: 1px solid #d9e0e8;
	border-radius: 10px;
	background: #fff;
}

.favorite-card--small { grid-column: span 1; }
.favorite-card--medium { grid-column: span 2; }
.favorite-card--wide { grid-column: span 3; }
.favorite-card--full { grid-column: 1 / -1; }
.favorite-card.is-selected { outline: 3px solid #1f6e43; outline-offset: 2px; }
.favorite-card h3,
.favorite-item-status { margin: 0; }

.favorite-measurement-card { gap: 0.55rem; }
.favorite-measurement-range,
.favorite-measurement-status { margin: 0; color: #536273; font-size: 0.82rem; }
.favorite-measurement-card-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 0.4rem 0.65rem; min-width: 0; }
.favorite-measurement-card-header h3 { min-width: 0; overflow-wrap: anywhere; }
.favorite-measurement-range-select { width: 8.5rem; min-width: 0; max-width: 100%; }
.favorite-measurement-loading { color: #536273; font-size: 0.8rem; }
.favorite-measurement-loading[hidden] { display: none; }
.favorite-measurement-range-error { grid-column: 1 / -1; margin: 0; color: #a61b1b; font-size: 0.82rem; }
.favorite-measurement-range-error[hidden] { display: none; }
.favorite-measurement-list { display: grid; grid-template-columns: 0.75rem minmax(0, max-content) minmax(0, max-content) minmax(0, 1fr); gap: 0.35rem 0.55rem; min-width: 0; }
.favorite-measurement-row { display: grid; grid-column: 1 / -1; grid-template-columns: subgrid; align-items: baseline; min-width: 0; }
.favorite-measurement-swatch { width: 0.75rem; height: 0.75rem; border-radius: 999px; align-self: center; }
.favorite-measurement-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.favorite-measurement-value { min-width: 0; overflow: hidden; text-align: left; text-overflow: ellipsis; white-space: nowrap; font-size: 1rem; }
.favorite-measurement-status { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.favorite-measurement-chart { position: relative; min-width: 0; overflow: hidden; }
.favorite-measurement-chart svg { display: block; width: 100%; max-width: 100%; border-radius: 6px; background: #f5f7fa; }
.favorite-measurement-chart svg:focus-visible { outline: 3px solid #1f6e43; outline-offset: 2px; }
.favorite-measurement-axis { margin: 0; color: #536273; font-size: 0.82rem; }
.favorite-measurement-editor { display: grid; gap: 0.75rem; }
.favorite-measurement-editor[hidden] { display: none; }
.favorite-measurement-editor-header,
.favorite-measurement-editor-actions { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; flex-wrap: wrap; }
.favorite-measurement-editor-row { display: grid; gap: 0.65rem; padding: 0.75rem; border: 1px solid #d9e0e8; border-radius: 8px; }

@media (max-width: 430px) {
	.timeline-viewport-toolbar .compact-button { min-height: 40px; }
	.timeline-viewport-window,
	.timeline-viewport-hint { flex-basis: 100%; }
	.chart-color-picker-manual { grid-template-columns: 44px minmax(0, 1fr); }
	.chart-color-picker-hex-label { grid-column: 1 / -1; }
}

.favorite-state-options,
.favorite-item-actions {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.favorite-state-options [aria-pressed="true"],
.favorite-state-options [aria-pressed="true"].is-selected,
.favorite-state-options [aria-pressed="true"]:hover,
.favorite-state-options [aria-pressed="true"]:focus-visible,
.favorite-state-options [aria-pressed="true"]:active {
	border-color: #1f6e43;
	background: #e8f5ed;
}

.favorite-state-options button:focus-visible {
	outline: 3px solid rgba(37, 99, 235, 0.45);
	outline-offset: 2px;
}

.favorite-state-options button.is-pending {
	box-shadow: inset 0 0 0 2px rgba(45, 91, 137, 0.35);
	cursor: progress;
}

.favorite-item-status {
	display: grid;
	gap: 0.5rem;
}

.favorite-editor {
	display: grid;
	gap: 1rem;
	margin-bottom: 1rem;
}

.favorite-editor[hidden],
.favorite-item-actions[hidden] { display: none; }

.favorite-editor-toolbar {
	display: flex;
	position: sticky;
	top: 0;
	z-index: 10;
	gap: 0.5rem;
	flex-wrap: wrap;
	padding: 0.75rem;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 3px 10px rgb(0 0 0 / 8%);
}

.favorite-editor-fields {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.favorite-assignment-field {
	display: grid;
	grid-column: span 3;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: 0.5rem;
	padding: 0.75rem;
	border: 1px solid #d9e0e8;
	border-radius: 8px;
}

.favorite-assignment-option {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.favorite-width-field { min-width: 10rem; }

@media (max-width: 740px) {
	.favorite-tabs { display: none; }
	.favorite-view-select { display: grid; }
	.favorite-grid { grid-template-columns: minmax(0, 1fr); }
	.favorite-card--small,
	.favorite-card--medium,
	.favorite-card--wide,
	.favorite-card--full { grid-column: 1; }
	.favorite-editor-fields { grid-template-columns: minmax(0, 1fr); }
	.favorite-assignment-field { grid-column: 1; }
	.favorite-measurement-card-header { grid-template-columns: minmax(0, 1fr) auto; }
	.favorite-measurement-loading { grid-column: 2; }
}

.end-user-subheading {
	margin: 1rem 0 0.25rem;
}

.end-user-status,
.end-user-value {
	margin: 0;
}

.end-user-monitoring-value {
	display: grid;
	grid-template-columns: minmax(8rem, 1fr) auto;
	gap: 0.35rem 1rem;
	align-items: center;
}

.end-user-monitoring-value small,
.end-user-history {
	grid-column: 1 / -1;
}

@media (max-width: 640px) {
	.end-user-monitoring-value {
		grid-template-columns: 1fr;
	}
	.end-user-monitoring-value small,
	.end-user-history {
		grid-column: 1;
	}
}

@media (max-width: 720px) {
	.action-button[data-tooltip]::after {
		content: none;
	}

	.app-main {
		width: 100%;
		max-width: none;
		padding-right: max(12px, env(safe-area-inset-right));
		padding-left: max(12px, env(safe-area-inset-left));
	}

	.device-grid,
	.room-device-grid,
	.room-list,
	.user-list,
	.scene-list,
	.automation-list,
	.automation-group-items,
	.state-card-grid {
		grid-template-columns: minmax(0, 1fr);
		width: 100%;
		max-width: none;
		min-width: 0;
	}

	.device-card,
	.room-card,
	.user-card,
	.managed-device-card,
	.managed-device-detail-card,
	.scene-list-item,
	.scene-action-card,
	.automation-group-section,
	.automation-list-item,
	.automation-state-context-card,
	.automation-signal-card,
	.automation-timeline-card,
	.state-card,
	.end-user-card,
	form {
		width: 100%;
		max-width: none;
		min-width: 0;
		box-sizing: border-box;
	}

	.automation-group-topline {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
	}

	.automation-group-toggle {
		width: 100%;
		min-width: 0;
	}

	.automation-group-section--collapsible .automation-group-title,
	.automation-list-title h3 {
		display: -webkit-box;
		min-width: 0;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		line-clamp: 2;
		white-space: normal;
		word-break: normal;
		overflow-wrap: break-word;
	}

	.automation-group-actions,
	.automation-list-actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
		min-width: 0;
		margin-left: 0;
	}

	.automation-group-actions > *,
	.automation-list-actions > * {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	select,
	input,
	textarea,
	table,
	button {
		max-width: 100%;
		min-width: 0;
	}

	table {
		width: 100%;
		table-layout: fixed;
	}

	th,
	td {
		overflow-wrap: anywhere;
	}
}

@media (max-width: 340px) {
	.automation-group-actions,
	.automation-list-actions {
		grid-template-columns: minmax(0, 1fr);
	}

	.device-compact-content {
		grid-template-columns: minmax(0, 1fr);
	}
}

.automation-group-disclosure .action-icon {
	width: 16px;
	height: 16px;
	transition: transform 160ms ease;
}

.automation-group-disclosure.is-collapsed .action-icon {
	transform: rotate(-90deg);
}

.room-device-group-disclosure .action-icon {
	width: 16px;
	height: 16px;
	transition: transform 160ms ease;
}

.room-device-group-disclosure.is-collapsed .action-icon {
	transform: rotate(-90deg);
}

.skyq-toolbar > div:first-child {
	display: grid;
	gap: 0.25rem;
}

.skyq-current-channel {
	margin: 0;
	color: var(--muted, #59636e);
}

.skyq-current-channel.is-uncertain {
	color: #9a6700;
}

.skyq-remote-panel {
	display: grid;
	gap: 0.5rem;
	width: min(100%, 390px);
	max-width: 390px;
	min-width: 0;
	margin-bottom: 1rem;
	padding: 0.65rem;
	border: 1px solid var(--border-color, #cbd5e1);
	border-radius: 0.75rem;
	background: var(--surface, #fff);
}

.skyq-remote-header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.25rem 0.75rem;
	min-width: 0;
}

.skyq-remote-header h3 {
	margin: 0;
	font-size: 1rem;
}

.skyq-remote-header span {
	color: var(--muted-color);
	font-size: 0.72rem;
}

.skyq-remote-shortcuts,
.skyq-remote-secondary {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.35rem;
	min-width: 0;
}

.skyq-remote-controls {
	display: grid;
	grid-template-columns: 132px minmax(0, 1fr);
	gap: 0.5rem;
	align-items: center;
	min-width: 0;
}

.skyq-remote-dpad {
	display: grid;
	grid-template-columns: repeat(3, 44px);
	grid-template-rows: repeat(3, 44px);
	gap: 0;
}

.skyq-remote-button {
	width: 100%;
	min-width: 0;
	min-height: 44px;
	padding: 0.35rem;
	touch-action: manipulation;
}

.skyq-remote-up { grid-column: 2; grid-row: 1; }
.skyq-remote-left { grid-column: 1; grid-row: 2; }
.skyq-remote-select { grid-column: 2; grid-row: 2; }
.skyq-remote-right { grid-column: 3; grid-row: 2; }
.skyq-remote-down { grid-column: 2; grid-row: 3; }

.skyq-remote-dpad .skyq-remote-button {
	padding: 0;
	border-radius: 0.65rem;
	font-size: 1.1rem;
	font-weight: 800;
}

.skyq-remote-status.is-error {
	margin: 0;
	color: var(--danger-color);
	font-size: 0.8rem;
	overflow-wrap: anywhere;
}

.skyq-video-preview {
	display: grid;
	position: sticky;
	top: max(0.75rem, env(safe-area-inset-top));
	z-index: 12;
	gap: 0.35rem;
	width: 100%;
	max-width: 480px;
	max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 1.5rem);
	margin: 0 0 1rem auto;
	padding: 0.65rem;
	overflow-x: hidden;
	overflow-y: auto;
	border: 1px solid var(--border-color, #cbd5e1);
	border-radius: 0.65rem;
	background: #111827;
	box-shadow: 0 8px 24px rgb(15 23 42 / 24%);
	color: #f8fafc;
	isolation: isolate;
	overscroll-behavior: contain;
}

.skyq-video-preview[hidden] {
	display: none;
}

.skyq-video-preview-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 26px;
	align-items: center;
	gap: 0.25rem;
	min-width: 0;
}

.skyq-video-title {
	min-width: 0;
	margin: 0;
	overflow: hidden;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.2;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.skyq-video-close-button {
	justify-self: end;
	width: 26px;
	height: 26px;
	min-width: 26px;
	min-height: 26px;
	padding: 2px;
	border-radius: 6px;
}

.skyq-video-feedback {
	display: contents;
}

.skyq-video-status:not(.is-visible) {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.skyq-video-status.is-visible {
	margin: 0;
	padding: 0.45rem;
	border: 1px solid #f3b4b4;
	border-radius: 0.35rem;
	background: #431b1b;
	color: #fff;
	font-size: 0.8rem;
	line-height: 1.25;
	overflow-wrap: anywhere;
}

.skyq-video-retry-button {
	justify-self: start;
	min-height: 44px;
}

.skyq-video-frame {
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #000;
}

.skyq-video-frame video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: #000;
}

.skyq-current-row,
.skyq-tabs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem;
}

.skyq-tabs {
	margin-top: 1rem;
}

.skyq-tabs [role="tab"].is-active {
	border-color: #2563eb;
	background: #dbeafe;
	color: #1e3a8a;
}

.skyq-device-field {
	display: grid;
	gap: 0.25rem;
	font-size: 0.85rem;
}

.skyq-search {
	margin-block: 1rem;
}

.skyq-message-region {
	box-sizing: border-box;
	min-block-size: 42px;
	margin-bottom: 1rem;
}

.skyq-message-region.is-empty {
	visibility: hidden;
}

.skyq-channel-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	min-width: 0;
}

.skyq-channel-card {
	display: grid;
	grid-template-rows: 32px 24px 24px 8px 32px;
	gap: 4px;
	box-sizing: border-box;
	block-size: 146px;
	min-width: 0;
	padding: 4px;
	border: 1px solid var(--border-color, #cbd5e1);
	border-radius: 0.75rem;
	background: var(--surface, #fff);
}

.skyq-favorite-button {
	inline-size: 32px;
	min-inline-size: 32px;
	max-inline-size: 32px;
	block-size: 28px;
	min-block-size: 28px;
	padding: 0;
	border-color: #64748b;
	background: #f8fafc;
	color: #52606d;
	font-family: Arial, sans-serif;
	font-size: 1.2rem;
	line-height: 1;
}

.skyq-favorite-button.is-active {
	border-color: #8a5a00;
	background: #f2c94c;
	color: #000;
}

.skyq-current-favorite-button.is-active {
	color: #8a5a00;
}

.skyq-current-favorite-button:not(.is-active) {
	color: #52606d;
}

.skyq-favorite-button:hover:not(:disabled) {
	border-color: #475569;
	background: #eef2f7;
	color: #334155;
}

.skyq-favorite-button.is-active:hover:not(:disabled) {
	border-color: #714600;
	background: #e8b92f;
	color: #000;
}

.skyq-favorite-button:active:not(:disabled) {
	border-color: #475569;
	background: #e2e8f0;
	color: #334155;
	box-shadow: inset 0 1px 2px rgb(15 23 42 / 18%);
}

.skyq-favorite-button.is-active:active:not(:disabled) {
	border-color: #714600;
	background: #dcae18;
	color: #000;
}

.skyq-favorite-button:disabled:not([aria-busy="true"]) {
	opacity: 1;
	border-style: dashed;
	border-color: #64748b;
	background: #f1f5f9;
	color: #52606d;
}

.skyq-favorite-button.is-active:disabled:not([aria-busy="true"]) {
	border-color: #8a5a00;
	background: #e6c65a;
	color: #000;
}

.skyq-favorite-button[aria-busy="true"] {
	cursor: progress;
	opacity: 1;
	box-shadow: inset 0 0 0 2px rgb(0 95 204 / 32%);
}

.skyq-favorite-button.is-active[aria-busy="true"] {
	border-color: #8a5a00;
	background: #f2c94c;
	color: #000;
}

.skyq-favorite-button:focus-visible {
	outline: 3px solid #005fcc;
	outline-offset: 2px;
}

.skyq-programme-button:focus-visible {
	outline: 2px solid #2563eb;
	outline-offset: 2px;
}

.skyq-sort-card > .skyq-channel-header {
	grid-row: 1;
}

.skyq-sort-card > .skyq-channel-tune {
	grid-row: 2 / 5;
}

.skyq-sort-handle {
	border: 1px dashed #60a5fa;
	cursor: grab;
	touch-action: none;
	user-select: none;
}

.skyq-sort-handle:active {
	cursor: grabbing;
}

.skyq-sort-handle.is-dragging {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgb(37 99 235 / 25%);
}

.skyq-sort-handle:focus-visible {
	outline: 3px solid #60a5fa;
	outline-offset: 2px;
}

.skyq-sort-placeholder {
	border: 2px dashed #2563eb;
	background: #dbeafe;
}

.skyq-sort-placeholder > * {
	visibility: hidden;
}

.skyq-sort-preview {
	position: fixed;
	z-index: 1000;
	pointer-events: none;
	box-sizing: border-box;
	opacity: 0.94;
	box-shadow: 0 12px 28px rgb(15 23 42 / 28%);
	transform: scale(1.02);
}

@media (prefers-reduced-motion: reduce) {
	.skyq-sort-preview {
		transform: none;
	}
}

.skyq-channel-card.is-selected {
	border-color: #15803d;
	box-shadow: 0 0 0 2px rgb(21 128 61 / 20%);
}

.skyq-channel-card.is-stale {
	border-style: dashed;
}

.skyq-channel-tune {
	display: grid;
	grid-row: 1 / 5;
	grid-template-rows: subgrid;
	grid-template-columns: minmax(0, 1fr);
	gap: 4px;
	min-width: 0;
	min-height: 0;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	text-align: left;
}

.skyq-channel-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 3.25rem;
	align-items: center;
	gap: 0.5rem;
	min-width: 0;
	height: 32px;
	padding: 4px 6px;
	border-radius: 0.4rem;
	background: #000;
	color: #f8fafc;
}

.skyq-channel-identity {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	min-width: 0;
	height: 24px;
	overflow: hidden;
}

.skyq-channel-logo {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left center;
}

.skyq-channel-logo[hidden],
.skyq-channel-name[hidden] {
	display: none;
}

.skyq-channel-number {
	grid-column: 2;
	width: 3.25rem;
	min-width: 3.25rem;
	overflow: hidden;
	font-weight: 700;
	color: #f8fafc;
	text-align: right;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.skyq-channel-name,
.skyq-programme-current,
.skyq-programme-time,
.skyq-programme-next {
	display: block;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.skyq-channel-name {
	width: 100%;
	font-weight: 700;
	color: #f8fafc;
}

.skyq-programme-current,
.skyq-programme-time,
.skyq-programme-next,
.skyq-programme-empty {
	line-height: 24px;
	min-height: 24px;
	font-size: 0.85rem;
	color: var(--muted, #59636e);
}

.skyq-programme-current {
	font-weight: 600;
	color: inherit;
}

.skyq-favorite-execution-status {
	display: block;
	font-weight: 600;
}

.skyq-programme-progress {
	display: block;
	align-self: center;
	height: 6px;
	overflow: hidden;
	border-radius: 999px;
	background: #dbe3ec;
}

.skyq-programme-progress-fill {
	display: block;
	height: 100%;
	background: #2563eb;
}

.skyq-programme-row {
	display: grid;
	grid-row: 5;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.5rem;
	min-width: 0;
	height: 32px;
}

.skyq-channel-actions {
	display: grid;
	grid-template-columns: 32px 32px;
	align-items: center;
	gap: 4px;
	width: 68px;
	height: 28px;
}

.skyq-programme-button {
	inline-size: 32px;
	min-inline-size: 32px;
	max-inline-size: 32px;
	block-size: 28px;
	min-block-size: 28px;
	padding: 3px;
}

.skyq-programme-button .action-icon {
	width: 18px;
	height: 18px;
}

.skyq-epg-dialog {
	width: min(680px, calc(100% - 32px));
	max-block-size: 70vh;
	overflow: hidden;
}

.skyq-epg-dialog-layout {
	display: grid;
	grid-template-rows: auto minmax(8rem, 1fr);
	gap: 0.75rem;
	max-block-size: 70vh;
	padding: 1rem;
}

.skyq-epg-dialog-content {
	min-height: 8rem;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.skyq-epg-dialog-content p {
	margin: 0;
	padding-block: 0.45rem;
	border-bottom: 1px solid var(--border-color, #cbd5e1);
}

.skyq-load-more {
	display: flex;
	justify-content: center;
	padding-block: 1rem;
}

.automation-node-skyq-programme {
	width: min(520px, 100%);
}

.automation-skyq-programme-editor {
	display: grid;
	gap: 0.6rem;
	max-width: 100%;
	margin-top: 0.65rem;
}

@media (max-width: 1100px) {
	.skyq-channel-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.skyq-remote-panel {
		width: 100%;
		max-width: 390px;
		padding: 0.5rem;
	}

	.skyq-channel-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.skyq-toolbar,
	.skyq-toolbar .toolbar-actions {
		align-items: stretch;
	}

	.skyq-device-field,
	.skyq-device-field select,
	#skyq-video-button,
	#refresh-skyq-button {
		width: 100%;
	}

	.skyq-video-preview {
		top: max(0.5rem, env(safe-area-inset-top));
		width: min(50vw, 240px);
		max-width: calc(50vw - env(safe-area-inset-right));
		max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 1rem);
		margin-left: auto;
		padding: 0.4rem;
	}

	.skyq-video-title {
		font-size: 0.7rem;
	}

	.skyq-video-retry-button {
		width: 100%;
	}
}
.automation-pause-control {
	position: relative;
}

.automation-pause-menu {
	display: grid;
	gap: 0.5rem;
	min-width: 12rem;
	padding: 0.75rem;
	position: absolute;
	right: 0;
	z-index: 20;
	background: var(--surface, #fff);
	border: 1px solid var(--border-color, #bbb);
	border-radius: 0.5rem;
}

.automation-pause-menu[hidden] {
	display: none;
}

@media (max-width: 740px) {
	.automation-pause-menu {
		position: fixed;
		inset: auto 1rem 1rem;
		min-width: 0;
	}
}
