/**
 * Tokutei Vocabulary V2 - Table View Styles
 *
 * @package TokuteiVocabulary
 * @since 2.0.0
 */

/* Table Container */
.tvoc2-table-view,
.tvoc2-vocab-table-wrapper {
	overflow-x: auto;
	margin: 1rem 0;
}

/* Table */
.tvoc2-vocab-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
	background: var(--tvoc2-bg);
	border-radius: var(--tvoc2-radius);
	overflow: hidden;
	box-shadow: var(--tvoc2-shadow);
}

.tvoc2-vocab-table thead {
	background: var(--tvoc2-bg-alt);
}

.tvoc2-vocab-table th {
	padding: 0.875rem 1rem;
	text-align: left;
	font-weight: 600;
	color: var(--tvoc2-text);
	border-bottom: 2px solid var(--tvoc2-border);
	white-space: nowrap;
}

.tvoc2-vocab-table td {
	padding: 0.875rem 1rem;
	border-bottom: 1px solid var(--tvoc2-border);
	vertical-align: top;
}

.tvoc2-vocab-table tbody tr:hover {
	background: var(--tvoc2-bg-alt);
}

.tvoc2-vocab-table tbody tr:last-child td {
	border-bottom: none;
}

/* Column: Number */
.tvoc2-vocab-table td:first-child {
	text-align: center;
	color: var(--tvoc2-text-light);
	font-weight: 500;
	width: 50px;
}

/* Column: Word */
.tvoc2-vocab-table .tvoc2-col-word {
	font-size: 1.125rem;
	font-weight: 600;
}

/* Column: Reading */
.tvoc2-vocab-table .tvoc2-col-reading {
	color: var(--tvoc2-text-light);
}

/* Column: Han Viet */
.tvoc2-vocab-table .tvoc2-col-hanviet {
	color: var(--tvoc2-primary);
}

.tvoc2-vocab-table .tvoc2-col-hanviet:empty::after {
	content: "-";
	color: var(--tvoc2-text-light);
	opacity: 0.5;
}

/* Column: Meaning */
.tvoc2-vocab-table .tvoc2-col-meaning {
	max-width: 250px;
}

/* Column: Examples */
.tvoc2-vocab-table .tvoc2-col-examples {
	min-width: 100px;
}

.tvoc2-btn-expand {
	padding: 0.375rem 0.625rem;
	font-size: 0.8125rem;
}

/* Examples Row (expanded) */
.tvoc2-vocab-table .tvoc2-examples-row td {
	padding: 0;
	background: var(--tvoc2-bg-alt);
}

.tvoc2-vocab-table .tvoc2-examples-row .tvoc2-examples-content {
	padding: 1rem;
	padding-left: 3.5rem;
}

.tvoc2-vocab-table .tvoc2-examples-row .tvoc2-example {
	margin: 0.5rem 0;
	padding: 0.75rem;
	background: var(--tvoc2-bg);
}

/* Column: Audio */
.tvoc2-vocab-table .tvoc2-col-audio {
	text-align: center;
	width: 60px;
}

.tvoc2-btn-play {
	padding: 0.375rem;
	min-width: auto;
	font-size: 1.125rem;
}

/* Part of Speech Badge */
.tvoc2-pos-badge {
	display: inline-block;
	padding: 0.125rem 0.5rem;
	font-size: 0.75rem;
	background: var(--tvoc2-bg-alt);
	color: var(--tvoc2-text-light);
	border-radius: 9999px;
	margin-left: 0.5rem;
}

/* URL-based page styles */
.tvoc2-vocab-table__col--num {
	width: 50px;
	text-align: center;
}

.tvoc2-vocab-table__col--word {
	font-size: 1.125rem;
	font-weight: 600;
}

.tvoc2-vocab-table__col--word .tvoc2-word {
	display: block;
}

.tvoc2-vocab-table__col--word .tvoc2-furigana {
	display: block;
	font-size: 0.75rem;
	font-weight: normal;
	color: var(--tvoc2-text-light);
	margin-top: 0.25rem;
}

.tvoc2-vocab-table__col--reading {
	color: var(--tvoc2-text-light);
}

.tvoc2-vocab-table__col--hanviet {
	color: var(--tvoc2-primary);
}

.tvoc2-vocab-table__col--meaning {
	max-width: 300px;
}

.tvoc2-vocab-table__col--audio {
	width: 60px;
	text-align: center;
}

/* Audio button in URL-based pages - White background with primary icon */
.tvoc2-btn-audio {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 2px solid var(--tvoc2-primary);
	background: #fff;
	color: var(--tvoc2-primary);
	border-radius: 50%;
	cursor: pointer;
	transition: all 0.2s ease;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.tvoc2-btn-audio:hover {
	transform: scale(1.05);
	background: var(--tvoc2-primary-bg, #D5F5E3);
	border-color: var(--tvoc2-primary-dark);
	color: var(--tvoc2-primary-dark);
}

.tvoc2-btn-audio.is-playing {
	animation: pulse-audio 1s ease-in-out infinite;
	background: var(--tvoc2-primary-bg, #D5F5E3);
}

.tvoc2-btn-audio .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

@keyframes pulse-audio {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.08); }
}

@keyframes pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.15); }
}

/* Examples in table */
.tvoc2-vocab-row .tvoc2-examples {
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px dashed var(--tvoc2-border);
	display: none;
}

.tvoc2-vocab-row .tvoc2-examples.is-expanded {
	display: block;
}

.tvoc2-vocab-row .tvoc2-example {
	margin: 0.5rem 0;
	padding: 0.5rem;
	background: var(--tvoc2-bg-alt);
	border-radius: var(--tvoc2-radius-sm);
}

.tvoc2-vocab-row .tvoc2-example__jp {
	display: block;
	font-weight: 500;
	margin-bottom: 0.25rem;
}

.tvoc2-vocab-row .tvoc2-example__vi {
	display: block;
	font-size: 0.875rem;
	color: var(--tvoc2-text-light);
}

.tvoc2-vocab-row .tvoc2-example__vi::before {
	content: "→ ";
}

/* Responsive - Tablet */
@media (max-width: 900px) {
	.tvoc2-vocab-table {
		font-size: 0.875rem;
	}

	.tvoc2-vocab-table th,
	.tvoc2-vocab-table td {
		padding: 0.75rem;
	}

	.tvoc2-vocab-table .tvoc2-col-meaning,
	.tvoc2-vocab-table__col--meaning {
		max-width: 200px;
	}
}

/* Responsive - Mobile */
@media (max-width: 768px) {
	.tvoc2-vocab-table {
		font-size: 0.8125rem;
	}

	.tvoc2-vocab-table th,
	.tvoc2-vocab-table td {
		padding: 0.625rem 0.5rem;
	}

	.tvoc2-vocab-table .tvoc2-col-word,
	.tvoc2-vocab-table__col--word {
		font-size: 1rem;
	}

	/* Hide Han Viet column on mobile */
	.tvoc2-vocab-table th:nth-child(4),
	.tvoc2-vocab-table td:nth-child(4),
	.tvoc2-vocab-table__col--hanviet {
		display: none;
	}

	.tvoc2-vocab-table .tvoc2-col-meaning,
	.tvoc2-vocab-table__col--meaning {
		max-width: 150px;
	}
}

/* Responsive - Small Mobile */
@media (max-width: 480px) {
	.tvoc2-table-view,
	.tvoc2-vocab-table-wrapper {
		margin: 0.5rem 0;
		border-radius: 8px;
	}

	.tvoc2-vocab-table {
		font-size: 0.75rem;
	}

	.tvoc2-vocab-table th,
	.tvoc2-vocab-table td {
		padding: 0.5rem 0.375rem;
	}

	/* Hide Number column on very small screens */
	.tvoc2-vocab-table td:first-child,
	.tvoc2-vocab-table th:first-child {
		display: none;
	}

	.tvoc2-vocab-table .tvoc2-col-word,
	.tvoc2-vocab-table__col--word {
		font-size: 0.9375rem;
	}

	.tvoc2-vocab-table__col--word .tvoc2-furigana {
		font-size: 0.625rem;
	}

	.tvoc2-vocab-table .tvoc2-col-meaning,
	.tvoc2-vocab-table__col--meaning {
		max-width: 120px;
		font-size: 0.75rem;
	}

	/* Audio button smaller */
	.tvoc2-btn-audio {
		width: 30px;
		height: 30px;
	}

	.tvoc2-btn-audio .dashicons {
		font-size: 14px;
		width: 14px;
		height: 14px;
	}

	/* Column widths */
	.tvoc2-vocab-table .tvoc2-col-audio,
	.tvoc2-vocab-table__col--audio {
		width: 40px;
	}

	/* Examples compact */
	.tvoc2-vocab-row .tvoc2-example {
		padding: 0.375rem;
		margin: 0.25rem 0;
	}

	.tvoc2-vocab-row .tvoc2-example__jp {
		font-size: 0.8125rem;
	}

	.tvoc2-vocab-row .tvoc2-example__vi {
		font-size: 0.75rem;
	}
}

/* Card-style table for very small screens */
@media (max-width: 360px) {
	.tvoc2-vocab-table,
	.tvoc2-vocab-table thead,
	.tvoc2-vocab-table tbody,
	.tvoc2-vocab-table th,
	.tvoc2-vocab-table td,
	.tvoc2-vocab-table tr {
		display: block;
	}

	.tvoc2-vocab-table thead {
		display: none;
	}

	.tvoc2-vocab-table tr {
		margin-bottom: 0.75rem;
		border: 1px solid var(--tvoc2-border);
		border-radius: 8px;
		overflow: hidden;
	}

	.tvoc2-vocab-table td {
		padding: 0.5rem 0.75rem;
		border-bottom: 1px solid var(--tvoc2-border-light);
		position: relative;
		text-align: left !important;
	}

	.tvoc2-vocab-table td:last-child {
		border-bottom: none;
	}

	/* Show all columns in card mode */
	.tvoc2-vocab-table td:first-child,
	.tvoc2-vocab-table th:first-child {
		display: block;
		background: var(--tvoc2-bg-subtle);
		font-weight: 600;
	}

	.tvoc2-vocab-table .tvoc2-col-word,
	.tvoc2-vocab-table__col--word {
		font-size: 1.125rem;
		background: var(--tvoc2-primary-bg);
	}

	.tvoc2-vocab-table .tvoc2-col-meaning,
	.tvoc2-vocab-table__col--meaning {
		max-width: none;
	}

	.tvoc2-vocab-table .tvoc2-col-audio,
	.tvoc2-vocab-table__col--audio {
		text-align: left !important;
		width: auto;
	}
}
