/**
 * Frontend styles for Text to Speech Converter.
 *
 * @package    TTS_Converter
 */

/* Container */
.tts-converter {
	max-width: 100%;
	margin: 1em 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}

.tts-converter-container {
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 1.5em;
	background: #fff;
}

/* Theme: Dark */
.tts-converter[data-theme="dark"] .tts-converter-container {
	background: #1e1e1e;
	border-color: #444;
	color: #e0e0e0;
}

/* Textarea */
.tts-textarea-wrapper {
	position: relative;
	margin-bottom: 1em;
}

.tts-textarea {
	width: 100%;
	min-height: 150px;
	padding: 0.75em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-family: inherit;
	font-size: 1em;
	line-height: 1.5;
	resize: vertical;
	box-sizing: border-box;
	transition: border-color 0.2s ease;
}

.tts-textarea:focus {
	outline: none;
	border-color: #0073aa;
	box-shadow: 0 0 0 1px #0073aa;
}

.tts-converter[data-theme="dark"] .tts-textarea {
	background: #2d2d2d;
	border-color: #555;
	color: #e0e0e0;
}

.tts-converter[data-theme="dark"] .tts-textarea:focus {
	border-color: #0073aa;
	box-shadow: 0 0 0 1px #0073aa;
}

/* Character Counter */
.tts-char-counter {
	text-align: right;
	font-size: 0.875em;
	color: #666;
	margin-top: 0.25em;
}

.tts-char-counter.tts-char-limit {
	color: #d63638;
	font-weight: bold;
}

.tts-converter[data-theme="dark"] .tts-char-counter {
	color: #999;
}

.tts-converter[data-theme="dark"] .tts-char-counter.tts-char-limit {
	color: #ff6b6b;
}

/* Buttons */
.tts-controls {
	display: flex;
	flex-direction: column;
	gap: 1em;
}

.tts-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}

.tts-btn {
	padding: 0.5em 1em;
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #f7f7f7;
	color: #333;
	font-size: 0.9375em;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s ease;
	flex: 0 0 auto;
}

.tts-btn:hover:not(:disabled) {
	background: #e0e0e0;
	border-color: #999;
}

.tts-btn:active:not(:disabled) {
	background: #d0d0d0;
	transform: translateY(1px);
}

.tts-btn:focus {
	outline: 2px solid #0073aa;
	outline-offset: 2px;
}

.tts-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.tts-converter[data-theme="dark"] .tts-btn {
	background: #2d2d2d;
	border-color: #555;
	color: #e0e0e0;
}

.tts-converter[data-theme="dark"] .tts-btn:hover:not(:disabled) {
	background: #3d3d3d;
	border-color: #666;
}

.tts-converter[data-theme="dark"] .tts-btn:active:not(:disabled) {
	background: #4d4d4d;
}

/* Voice Selector */
.tts-voice-wrapper {
	display: flex;
	align-items: center;
	gap: 0.5em;
	flex-wrap: wrap;
}

.tts-label {
	font-weight: 500;
	font-size: 0.9375em;
	margin: 0;
}

.tts-voice-select {
	padding: 0.5em;
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #fff;
	color: #333;
	font-size: 0.9375em;
	flex: 1;
	min-width: 200px;
	cursor: pointer;
}

.tts-voice-select:focus {
	outline: none;
	border-color: #0073aa;
	box-shadow: 0 0 0 1px #0073aa;
}

.tts-converter[data-theme="dark"] .tts-voice-select {
	background: #2d2d2d;
	border-color: #555;
	color: #e0e0e0;
}

/* Advanced Options */
.tts-advanced {
	display: flex;
	flex-direction: column;
	gap: 1em;
	padding-top: 1em;
	border-top: 1px solid #eee;
}

.tts-converter[data-theme="dark"] .tts-advanced {
	border-top-color: #444;
}

/* Sliders */
.tts-slider-wrapper {
	display: flex;
	flex-direction: column;
	gap: 0.5em;
}

.tts-slider-wrapper .tts-label {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.tts-value {
	font-weight: normal;
	color: #0073aa;
	font-size: 0.9em;
	min-width: 3em;
	text-align: right;
}

.tts-converter[data-theme="dark"] .tts-value {
	color: #4fc3f7;
}

.tts-slider {
	width: 100%;
	height: 6px;
	border-radius: 3px;
	background: #ddd;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.tts-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #0073aa;
	cursor: pointer;
	transition: background 0.2s ease;
}

.tts-slider::-webkit-slider-thumb:hover {
	background: #005a87;
}

.tts-slider::-moz-range-thumb {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #0073aa;
	cursor: pointer;
	border: none;
	transition: background 0.2s ease;
}

.tts-slider::-moz-range-thumb:hover {
	background: #005a87;
}

.tts-slider:focus {
	outline: none;
}

.tts-slider:focus::-webkit-slider-thumb {
	box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.2);
}

.tts-converter[data-theme="dark"] .tts-slider {
	background: #555;
}

.tts-converter[data-theme="dark"] .tts-slider::-webkit-slider-thumb {
	background: #4fc3f7;
}

.tts-converter[data-theme="dark"] .tts-slider::-webkit-slider-thumb:hover {
	background: #29b6f6;
}

.tts-converter[data-theme="dark"] .tts-slider::-moz-range-thumb {
	background: #4fc3f7;
}

.tts-converter[data-theme="dark"] .tts-slider::-moz-range-thumb:hover {
	background: #29b6f6;
}

/* Toggle */
.tts-toggle-wrapper {
	margin-top: 0.5em;
}

.tts-toggle-label {
	display: flex;
	align-items: center;
	gap: 0.5em;
	cursor: pointer;
	font-size: 0.9375em;
}

.tts-toggle {
	width: auto;
	cursor: pointer;
}

/* Message */
.tts-message {
	margin-top: 1em;
	padding: 0.75em 1em;
	border-radius: 4px;
	font-size: 0.9375em;
	min-height: 1.5em;
}

.tts-message.tts-message-error {
	background: #fef7f7;
	border: 1px solid #d63638;
	color: #d63638;
}

.tts-message.tts-message-success {
	background: #f0f9ff;
	border: 1px solid #00a32a;
	color: #00a32a;
}

.tts-message.tts-message-info {
	background: #f0f6fc;
	border: 1px solid #0073aa;
	color: #0073aa;
}

.tts-converter[data-theme="dark"] .tts-message.tts-message-error {
	background: #3d1f1f;
	border-color: #ff6b6b;
	color: #ff6b6b;
}

.tts-converter[data-theme="dark"] .tts-message.tts-message-success {
	background: #1f3d1f;
	border-color: #4caf50;
	color: #4caf50;
}

.tts-converter[data-theme="dark"] .tts-message.tts-message-info {
	background: #1f2937;
	border-color: #4fc3f7;
	color: #4fc3f7;
}

/* Responsive */
@media (max-width: 600px) {
	.tts-converter-container {
		padding: 1em;
	}

	.tts-buttons {
		flex-direction: column;
	}

	.tts-btn {
		width: 100%;
	}

	.tts-voice-wrapper {
		flex-direction: column;
		align-items: flex-start;
	}

	.tts-voice-select {
		width: 100%;
		min-width: unset;
	}
}


