/**
 * Purrlink - Main Styles
 *
 * @package Purrlink
 */

// Variables
$purrlink-primary: #6366f1;
$purrlink-primary-hover: #4f46e5;
$purrlink-success: #22c55e;
$purrlink-error: #ef4444;
$purrlink-warning: #f59e0b;
$purrlink-text: #1f2937;
$purrlink-text-muted: #6b7280;
$purrlink-border: #e5e7eb;
$purrlink-bg: #f9fafb;

// Sidebar container
.purrlink-sidebar {
	padding: 16px;

	&__section {
		margin-bottom: 24px;

		&-title {
			font-size: 12px;
			font-weight: 600;
			text-transform: uppercase;
			color: $purrlink-text-muted;
			margin-bottom: 12px;
			letter-spacing: 0.05em;
		}
	}
}

// Selected text display
.purrlink-selected-text {
	background: $purrlink-bg;
	border: 1px solid $purrlink-border;
	border-radius: 8px;
	padding: 12px;
	font-size: 13px;
	line-height: 1.5;
	color: $purrlink-text;
	max-height: 120px;
	overflow-y: auto;

	&--empty {
		color: $purrlink-text-muted;
		font-style: italic;
		text-align: center;
		padding: 24px 12px;
	}
}

// Related posts list
.purrlink-posts {
	list-style: none;
	margin: 0;
	padding: 0;

	&__item {
		border: 1px solid $purrlink-border;
		border-radius: 8px;
		padding: 12px;
		margin-bottom: 8px;
		cursor: pointer;
		transition: all 0.2s ease;

		&:hover {
			border-color: $purrlink-primary;
			background: rgba($purrlink-primary, 0.05);
		}

		&--selected {
			border-color: $purrlink-primary;
			background: rgba($purrlink-primary, 0.1);
		}
	}

	&__title {
		font-weight: 500;
		color: $purrlink-text;
		margin-bottom: 4px;
	}

	&__meta {
		font-size: 12px;
		color: $purrlink-text-muted;
	}

	&--empty {
		text-align: center;
		color: $purrlink-text-muted;
		padding: 24px;
		font-style: italic;
	}
}

// Bridge generator
.purrlink-bridge {
	&__preview {
		background: linear-gradient(135deg, rgba($purrlink-primary, 0.05), rgba($purrlink-primary, 0.1));
		border: 1px solid rgba($purrlink-primary, 0.2);
		border-radius: 8px;
		padding: 16px;
		margin-bottom: 16px;

		p {
			margin: 0;
			line-height: 1.6;
		}

		a {
			color: $purrlink-primary;
			text-decoration: none;

			&:hover {
				text-decoration: underline;
			}

			strong {
				font-weight: 600;
			}
		}
	}

	&__actions {
		display: flex;
		gap: 8px;
	}

	&__loading {
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 32px;
		color: $purrlink-text-muted;

		.components-spinner {
			margin-right: 8px;
		}
	}

	&__error {
		background: rgba($purrlink-error, 0.1);
		border: 1px solid rgba($purrlink-error, 0.2);
		border-radius: 8px;
		padding: 16px;
		color: $purrlink-error;
		margin-bottom: 16px;

		p {
			margin: 0 0 12px 0;
		}
	}

	&__hint {
		font-size: 12px;
		color: $purrlink-text-muted;
		margin: 8px 0 16px 0;
		font-style: italic;
	}

	&__actions {
		display: flex;
		flex-direction: column;
		gap: 8px;
		margin-top: 12px;
	}

	&__preview-wrapper {
		margin-bottom: 0;
	}

	&__edit-btn {
		display: inline-flex !important;
		align-items: center;
		gap: 4px;
		margin: 4px 0 0 0 !important;
		font-size: 12px !important;
		padding: 0 !important;
		min-height: auto !important;
		color: $purrlink-text-muted !important;
		background: transparent !important;
		border: none !important;
		cursor: pointer;
		transition: color 0.2s ease;

		svg {
			width: 12px;
			height: 12px;
		}

		&:hover {
			color: $purrlink-primary !important;
		}
	}

	&__editor {
		margin-bottom: 8px;

		.components-textarea-control__input {
			font-family: monospace;
			font-size: 13px;
			line-height: 1.5;
			min-height: 100px;
		}
	}

	&__target {
		margin-bottom: 12px;

		p {
			margin: 0;
			font-size: 13px;
			color: $purrlink-text;
		}
	}
}

// Buttons - Override WordPress defaults
.purrlink-button {
	&--primary {
		background: $purrlink-primary !important;
		color: white !important;
		border: none !important;
		border-radius: 6px !important;
		padding: 10px 20px !important;
		font-weight: 500 !important;
		font-size: 14px !important;
		cursor: pointer;
		transition: all 0.2s ease;
		box-shadow: 0 2px 4px rgba($purrlink-primary, 0.3);

		&:hover,
		&:focus {
			background: $purrlink-primary-hover !important;
			color: white !important;
			box-shadow: 0 4px 8px rgba($purrlink-primary, 0.4);
			transform: translateY(-1px);
		}

		&:active {
			transform: translateY(0);
			box-shadow: 0 2px 4px rgba($purrlink-primary, 0.3);
		}

		&:disabled {
			opacity: 0.5;
			cursor: not-allowed;
			transform: none !important;
			box-shadow: none !important;
		}
	}

	&--secondary {
		background: white !important;
		color: $purrlink-text !important;
		border: 1px solid $purrlink-border !important;
		border-radius: 6px !important;
		padding: 10px 20px !important;
		font-weight: 500 !important;
		font-size: 14px !important;
		cursor: pointer;
		transition: all 0.2s ease;

		&:hover,
		&:focus {
			background: $purrlink-bg !important;
			color: $purrlink-text !important;
			border-color: $purrlink-primary !important;
		}
	}

	// Text link button (regenerate, edit)
	&--text {
		background: transparent !important;
		color: $purrlink-text-muted !important;
		border: none !important;
		padding: 8px 12px !important;
		font-size: 13px !important;
		cursor: pointer;
		transition: color 0.2s ease;
		display: inline-flex !important;
		align-items: center;
		gap: 4px;

		svg {
			fill: currentColor;
		}

		&:hover,
		&:focus {
			background: transparent !important;
			color: $purrlink-primary !important;
		}
	}
}

// Search input
.purrlink-search {
	position: relative;

	&__input {
		width: 100%;
		padding: 10px 12px 10px 36px;
		border: 1px solid $purrlink-border;
		border-radius: 8px;
		font-size: 14px;

		&:focus {
			outline: none;
			border-color: $purrlink-primary;
			box-shadow: 0 0 0 2px rgba($purrlink-primary, 0.1);
		}
	}

	&__icon {
		position: absolute;
		left: 12px;
		top: 50%;
		transform: translateY(-50%);
		color: $purrlink-text-muted;
		z-index: 1;
	}

	// Fix for WordPress TextControl inside search
	.components-base-control {
		margin-bottom: 0;
	}

	.components-text-control__input {
		padding-left: 36px !important;
	}
}

// Search mode indicator
.purrlink-search-mode {
	font-size: 12px;
	color: $purrlink-text-muted;
	margin: 8px 0;
	padding: 8px;
	background: $purrlink-bg;
	border-radius: 4px;

	&__searching {
		display: flex;
		align-items: center;
		gap: 8px;

		.components-spinner {
			margin: 0;
		}
	}

	&__results {
		font-weight: 500;
	}
}

// Search hint
.purrlink-search-hint {
	font-size: 11px;
	color: $purrlink-text-muted;
	margin: 12px 0 0 0;
	font-style: italic;
	text-align: center;
}

// Notice
.purrlink-notice {
	padding: 12px;
	border-radius: 8px;
	margin-bottom: 16px;
	font-size: 13px;

	&__header {
		display: flex;
		align-items: center;
		gap: 6px;
		margin-bottom: 6px;

		svg {
			flex-shrink: 0;
		}

		strong {
			margin: 0;
		}
	}

	strong {
		display: block;
		margin-bottom: 4px;
	}

	p {
		margin: 0;
		opacity: 0.9;
		padding-left: 24px;
	}

	&__count {
		display: block;
		margin-top: 8px;
		padding-left: 24px;
		font-size: 11px;
		font-weight: 600;
		opacity: 0.7;
	}

	&--info {
		background: rgba($purrlink-primary, 0.1);
		color: $purrlink-primary;
	}

	&--success {
		background: rgba($purrlink-success, 0.1);
		color: darken($purrlink-success, 10%);
	}

	&--warning {
		background: rgba($purrlink-warning, 0.1);
		color: darken($purrlink-warning, 10%);
	}

	&--error {
		background: rgba($purrlink-error, 0.1);
		color: $purrlink-error;
	}

	&--tip {
		background: rgba($purrlink-primary, 0.05);
		color: $purrlink-text-muted;
		border: 1px dashed rgba($purrlink-primary, 0.3);

		strong {
			color: $purrlink-primary;
		}
	}
}
