/**
 * Repair Tools Dialog
 */

.rt-dialog {
	position: fixed;
	inset: 0;
	z-index: var(--rt-z-dialog);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--rt-space-4);
}

.rt-dialog[hidden] {
	display: none;
}

.rt-dialog__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.45);
}

.rt-dialog__panel {
	position: relative;
	z-index: var(--rt-z-base);
	display: flex;
	flex-direction: column;
	width: min(var(--rt-dialog-width-md), 100%);
	max-height: calc(100vh - 2rem);
	border: 1px solid var(--rt-color-border);
	border-radius: var(--rt-radius-lg);
	background: var(--rt-color-surface);
	box-shadow: var(--rt-shadow-xl);
	overflow: hidden;
}

.rt-dialog__panel--sm {
	width: min(var(--rt-dialog-width-sm), 100%);
}

.rt-dialog__panel--lg {
	width: min(var(--rt-dialog-width-lg), 100%);
}

.rt-dialog__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--rt-space-4);
	padding: var(--rt-space-5);
	border-bottom: 1px solid var(--rt-color-divider);
}

.rt-dialog__heading {
	flex: 1 1 auto;
	min-width: 0;
}

.rt-dialog__title {
	margin: 0;
	font-size: var(--rt-font-size-xl);
	font-weight: var(--rt-font-weight-semibold);
	line-height: var(--rt-line-height-tight);
}

.rt-dialog__description {
	margin: var(--rt-space-2) 0 0;
	color: var(--rt-color-text-muted);
	font-size: var(--rt-font-size-sm);
	line-height: var(--rt-line-height-base);
}

.rt-dialog__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border: 0;
	border-radius: var(--rt-radius-md);
	background: transparent;
	color: var(--rt-color-text-muted);
	cursor: pointer;
	transition:
		background-color var(--rt-transition-base),
		color var(--rt-transition-base);
}

.rt-dialog__close:hover {
	background: var(--rt-color-surface-muted);
	color: var(--rt-color-text);
}

.rt-dialog__close:focus-visible {
	outline: none;
	box-shadow: var(--rt-focus-ring);
}

.rt-dialog__body {
	flex: 1 1 auto;
	padding: var(--rt-space-5);
	overflow-y: auto;
}

.rt-dialog__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: var(--rt-space-3);
	padding: var(--rt-space-4) var(--rt-space-5);
	border-top: 1px solid var(--rt-color-divider);
	background: var(--rt-color-surface-muted);
}

/* Body scroll lock helper class
   -------------------------------------------------------------------------- */

body.rt-dialog-open {
	overflow: hidden;
	overscroll-behavior: none;
	touch-action: none;
}
