/* ═══════════════════════════════════════════════════════════════════
   SuperInput — Universal configurable input component
   ═══════════════════════════════════════════════════════════════════ */

/* ── Host element ─────────────────────────────────────────────────── */

pc-super-input {
	display: block;
	width: 100%;
	position: relative;
}

/* ── Root container (horizontal flex: outer-left | field | outer-right) ── */

.rd-super-input-root {
	display: flex;
	align-items: center;
	gap: var(--rd-spacing-x-sm, 8px);
	width: 100%;
}

/* ── Field wrapper (has the input border) ─────────────────────────── */

.rd-super-input-field {
	flex: 1;
	display: flex;
	align-items: center;
	border: 1px solid var(--rd-gray);
	border-radius: 24px;
	background: var(--rd-bg-primary);
	transition: border-color 0.2s ease, background 0.3s ease;
	overflow: hidden;
	position: relative;
	padding: 4px 4px 4px 16px;
}


/* ── Field content (vertical: chips on top, then textarea/input) ── */

.rd-super-input-field-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

/* ── Action Zones ─────────────────────────────────────────────────── */

.rd-super-input-zone {
	display: flex;
	align-items: center;
	gap: var(--rd-spacing-xx-sm, 4px);
	flex-shrink: 0;
}

.rd-super-input-zone-inner-left {
	padding-right: var(--rd-spacing-xx-sm, 4px);
}

.rd-super-input-zone-inner-right {
	/* Buttons sit flush against field's 4px right padding */
}

.rd-super-input-zone-outer-left,
.rd-super-input-zone-outer-right {
	/* Outer zones always center-align with the field */
}

/* ── Input / Textarea base styles ─────────────────────────────────── */

.rd-super-input-textarea,
.rd-super-input-input {
	width: 100%;
	padding: 8px 4px;
	border: none;
	outline: none;
	font-size: var(--rd-fontsize-4, 14px);
	font-family: inherit;
	box-sizing: border-box;
	background: transparent;
	color: var(--rd-font-dark, #0d1130);
	resize: none;
	line-height: 1.5;
	-webkit-appearance: none;
	appearance: none;
}

.rd-super-input-textarea::placeholder,
.rd-super-input-input::placeholder {
	color: var(--rd-text-color-secondary, #999);
}

/* Override global input[type="text"]:hover/:focus border from style20200508.css — needs parent scope for specificity */
.rd-super-input-root .rd-super-input-textarea:hover,
.rd-super-input-root .rd-super-input-input:hover,
.rd-super-input-root .rd-super-input-textarea:focus,
.rd-super-input-root .rd-super-input-input:focus {
	border: none;
	outline: none;
}

/* Override global input[type="text"][disabled] from shared.css — needs parent scope for specificity */
.rd-super-input-root .rd-super-input-textarea:disabled,
.rd-super-input-root .rd-super-input-input:disabled {
	opacity: 0.7;
	cursor: not-allowed;
	background: transparent;
}

/* Textarea: auto-grow controlled by JS */
.rd-super-input-textarea {
	overflow-y: hidden;
}

/* Input: fixed single-line height */
.rd-super-input-input {
	height: 40px;
}

/* ── Action Buttons ───────────────────────────────────────────────── */

.rd-super-input-action-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: none;
	cursor: pointer;
	padding: 0;
	flex-shrink: 0;
	transition: all 0.2s ease;
	background: transparent;
	color: var(--rd-font-dark, #0d1130);
}

.rd-super-input-action-btn:hover:not(:disabled) {
	background: var(--rd-gray-200);
}

/* .rd-super-input-action-btn:focus-visible {
	outline: 2px solid var(--rd-primary-active, #d66181);
	outline-offset: 2px;
} */

.rd-super-input-action-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* ── Send button ──────────────────────────────────────────────────── */

.rd-super-input-send,
.rd-super-input-mic.recording {
	background: var(--rd-primary-active);
	color: var(--rd-font-light, #fff);
}

.rd-super-input-send:hover:not(:disabled),
.rd-super-input-mic.recording:hover:not(:disabled) {
	background: var(--rd-primary-hover);
}

.rd-super-input-send:disabled {
	opacity: 0.5;
}

/* Swap animation (mic ↔ send) */
.rd-super-input-send.swapped {
	animation: rd-super-input-fade-in 0.15s ease-out;
}

/* ── Mic button states ────────────────────────────────────────────── */

.rd-super-input-mic.recording {
	animation: rd-super-input-pulse 1s infinite;
}

/*copied from .rd-la-gfx in AppV2.css, TODO: consolidate properly */
.rd-super-input-mic.busy {
	background-image: url("/src/img/2023/svg/svg_img/rd-loader.svg");
	background-size: 100%;
	animation-name: loading-elipse;
	animation-duration: 2s;
	animation-iteration-count: infinite;
}

.rd-super-input-mic.busy .material-icons {
	animation: rd-super-input-spin 1s linear infinite;
}

/* ── Cancel button ────────────────────────────────────────────────── */

.rd-super-input-cancel {
	background: transparent;
	color: var(--rd-error-active, #f54b5e);
}

.rd-super-input-cancel:hover:not(:disabled) {
	background: rgba(245, 75, 94, 0.1);
}

/* ── Clear button ─────────────────────────────────────────────────── */


/* ── File upload button ───────────────────────────────────────────── */

.rd-super-input-file-upload {
	background: transparent;
	color: var(--rd-text-color-secondary, #999);
}

.rd-super-input-file-upload:hover:not(:disabled) {
	color: var(--rd-font-dark, #333);
	background: var(--rd-bg-hover, #f0f0f0);
}

/* ── File Chips ───────────────────────────────────────────────────── */

.rd-super-input-file-chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rd-spacing-xx-sm, 4px);
	padding: var(--rd-spacing-xx-sm, 4px) 0 0;
}

.rd-super-input-file-chips-external {
	padding-top: var(--rd-spacing-xx-sm, 4px);
}

.rd-super-input-file-chips-external .rd-super-input-file-chips {
	padding: 0;
}

.rd-super-input-file-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--rd-spacing-xx-sm, 4px);
	padding: 2px 6px 2px 8px;
	background: var(--rd-bg-secondary, #f0f0f0);
	border-radius: var(--rd-borderradius-border-sm, 4px);
	font-size: var(--rd-fontsize-3, 12px);
	color: var(--rd-font-dark, #0d1130);
	position: relative;
	overflow: hidden;
	max-width: 200px;
}

.rd-super-input-file-chip.uploading {
	opacity: 0.7;
}

.rd-super-input-file-chip-name {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 150px;
}

.rd-super-input-file-chip-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border: none;
	background: transparent;
	cursor: pointer;
	padding: 0;
	font-size: 14px;
	line-height: 1;
	border-radius: 50%;
	color: var(--rd-text-color-secondary, #999);
	flex-shrink: 0;
}

.rd-super-input-file-chip-remove:hover {
	background: rgba(0, 0, 0, 0.1);
	color: var(--rd-error-active, #f54b5e);
}

.rd-super-input-file-chip-progress {
	position: absolute;
	bottom: 0;
	left: 0;
	height: 2px;
	background: var(--rd-secondary-active, #4073b6);
	transition: width 0.2s ease;
}

/* ── State gradients (recording / busy) ───────────────────────────── */

.rd-super-input-root.recording .rd-super-input-field {
	background: linear-gradient(90deg,
			var(--rd-bg-primary, #fff) 0%,
			rgba(245, 75, 94, 0.06) 25%,
			rgba(245, 75, 94, 0.10) 50%,
			rgba(245, 75, 94, 0.06) 75%,
			var(--rd-bg-primary, #fff) 100%);
	background-size: 400% 100%;
	animation: rd-super-input-gradient-shift 2s ease-in-out infinite;
	border-color: rgba(245, 75, 94, 0.3);
}

.rd-super-input-root.busy .rd-super-input-field {
	background: linear-gradient(90deg,
			var(--rd-bg-primary, #fff) 0%,
			rgba(9, 105, 218, 0.08) 25%,
			rgba(130, 80, 223, 0.12) 50%,
			rgba(9, 105, 218, 0.08) 75%,
			var(--rd-bg-primary, #fff) 100%);
	background-size: 400% 100%;
	animation: rd-super-input-gradient-shift 2s ease-in-out infinite;
	border-color: rgba(9, 105, 218, 0.3);
}

/* ── Suggestions Popover ──────────────────────────────────────────── */

.rd-super-input-suggestions {
	position: absolute;
	left: 0;
	right: 0;
	z-index: 1000;
	background: var(--rd-bg-primary);
	border: 1px solid var(--rd-gray);
	border-radius: 0 0 var(--rd-borderradius-border-md) var(--rd-borderradius-border-md);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
	clip-path: inset(0 -12px -12px -12px);
	max-height: none;
	overflow-y: visible;
	padding: var(--rd-spacing-xx-sm, 4px) 0;
}

.rd-super-input-suggestions.bottom {
	top: 100%;
	margin-top: calc(-1 * var(--rd-borderradius-border-md, 4px));
	/* TODO: instead ov moving the box up 4 px, we should remove the rounded corners from the input when suggestions show*/
}

.rd-super-input-suggestions.top {
	bottom: 100%;
	margin-bottom: calc(-1 * var(--rd-borderradius-border-md, 4px));
}

.rd-super-input-suggestion-group+.rd-super-input-suggestion-group {
	margin-top: var(--rd-spacing-x-big, 24px);
}

.rd-super-input-suggestion-heading {
	padding: var(--rd-spacing-xx-sm, 4px) var(--rd-spacing-sm, 12px);
	font-size: var(--rd-fontsize-3, 12px);
	color: var(--rd-text-color-secondary, #999);
	font-weight: 600;
	letter-spacing: 0.03em;
}

.rd-super-input-suggestion-item {
	display: flex;
	align-items: center;
	gap: var(--rd-spacing-x-sm);
	padding: var(--rd-spacing-x-sm) var(--rd-spacing-sm);
	margin: 0 var(--rd-spacing-x-sm);
	border-radius: var(--rd-borderradius-border-md);
	cursor: pointer;
	transition: background 0.1s ease;
}

.rd-super-input-suggestion-item:hover,
.rd-super-input-suggestion-item.active {
	background: var(--rd-pink-100);
}

.rd-super-input-suggestion-icon {
	color: var(--rd-text-color-secondary, #999);
	flex-shrink: 0;
}

.rd-super-input-suggestion-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.rd-super-input-suggestion-label {
	font-size: var(--rd-fontsize-4, 14px);
	color: var(--rd-font-dark, #0d1130);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.rd-super-input-suggestion-desc {
	font-size: var(--rd-fontsize-3, 12px);
	color: var(--rd-text-color-secondary, #999);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.rd-super-input-suggestion-right-label {
	font-size: var(--rd-fontsize-3, 12px);
	color: var(--rd-text-color-secondary, #999);
	white-space: nowrap;
	flex-shrink: 0;
	margin-left: auto;
	padding-left: var(--rd-spacing-x-sm, 8px);
	display: inline-flex;
	align-items: center;
	gap: 4px;
	width: 120px;
}

.rd-super-input-suggestion-right-reverse {
	justify-content: flex-end;
	text-align: right;
}


/* ── Suggestion skeleton loading ────────────────────────────────────────────── */

.rd-super-input-suggestion-skeleton {
	padding: 4px 0;
}

.rd-super-input-skeleton-row {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
}

.rd-super-input-skeleton-icon {
	width: 18px;
	height: 18px;
	border-radius: 4px;
	background: var(--rd-border-color, #e5e5e5);
	flex-shrink: 0;
	animation: rd-skeleton-pulse 1.2s ease-in-out infinite;
}

.rd-super-input-skeleton-text {
	height: 14px;
	border-radius: 6px;
	background: var(--rd-border-color, #e5e5e5);
	flex: 1;
	max-width: 280px;
	animation: rd-skeleton-pulse 1.2s ease-in-out infinite;
	animation-delay: 0.1s;
}

.rd-super-input-skeleton-text-short {
	max-width: 180px;
}

.rd-super-input-skeleton-text-medium {
	max-width: 230px;
}

.rd-super-input-skeleton-badge {
	width: 50px;
	height: 14px;
	border-radius: 6px;
	background: var(--rd-border-color, #e5e5e5);
	flex-shrink: 0;
	margin-left: auto;
	animation: rd-skeleton-pulse 1.2s ease-in-out infinite;
	animation-delay: 0.2s;
}

@keyframes rd-skeleton-pulse {

	0%,
	100% {
		opacity: 1;
	}

	50% {
		opacity: 0.4;
	}
}

/* ── Keyframe animations ──────────────────────────────────────────── */

@keyframes rd-super-input-gradient-shift {
	0% {
		background-position: 100% 50%;
	}

	50% {
		background-position: 0% 50%;
	}

	100% {
		background-position: 100% 50%;
	}
}

@keyframes rd-super-input-pulse {

	0%,
	100% {
		transform: scale(1);
		box-shadow: 0 0 0 0 rgba(245, 75, 94, 0.4);
	}

	50% {
		transform: scale(1.05);
		box-shadow: 0 0 0 6px rgba(245, 75, 94, 0);
	}
}

@keyframes rd-super-input-spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

@keyframes rd-super-input-fade-in {
	from {
		opacity: 0;
		transform: scale(0.8);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}