:root {
	--zhuce-gap: 1.25rem;
	--zhuce-border: rgba(255, 255, 255, 0.16);
	--zhuce-bg: rgba(0, 0, 0, 0.12);
	--zhuce-bg-2: rgba(0, 0, 0, 0.18);
	--zhuce-shadow: 0 18px 40px rgba(0, 0, 0, 0.25);
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.zhuce-header h2 {
	margin-bottom: 0.25rem;
}

.zhuce-header p {
	margin: 0;
	opacity: 0.85;
}

.zhuce-layout {
	margin-top: 1.5rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--zhuce-gap);
	align-items: start;
}

.zhuce-list {
	display: flex;
	flex-direction: column;
	height: auto;
}

.zhuce-toolbar {
	display: grid;
	gap: 0.2rem;
	padding: 0.9rem 1rem;
	border: 1px solid var(--zhuce-border);
	border-radius: 12px;
	background: rgba(0, 0, 0, 0.18);
	box-shadow: var(--zhuce-shadow);
}

.zhuce-meta {
	display: grid;
	gap: 0.35rem;
}

.zhuce-title {
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.1;
}

.zhuce-summary {
	font-weight: 700;
	letter-spacing: 0.02em;
}

.zhuce-hint {
	font-size: 0.9em;
	opacity: 0.8;
}

.server-grid {
	margin-top: 0.75rem;
	flex: 0 0 auto;
}

.server-card,
.server-table-wrap {
	background: var(--zhuce-bg-2);
	border: 1px solid var(--zhuce-border);
	border-radius: 12px;
	box-shadow: var(--zhuce-shadow);
}

.server-card {
	padding: 1rem;
}

.server-table-wrap {
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	height: 100%;
}

.server-table {
	width: 100%;
	min-width: 0;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: fixed;
}

.server-table thead th {
	position: sticky;
	top: 0;
	z-index: 1;
	background: rgba(0, 0, 0, 0.28);
	backdrop-filter: blur(6px);
	border-bottom: 1px solid var(--zhuce-border);
	padding: 0.7rem 0.55rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	white-space: normal;
}

.server-table tbody td {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	padding: 0.6rem 0.55rem;
	vertical-align: middle;
	white-space: normal;
	word-break: break-word;
}

.server-table thead th:nth-child(1),
.server-table tbody td:nth-child(1) {
	width: 22%;
}

.server-table thead th:nth-child(2),
.server-table tbody td:nth-child(2) {
	width: 12%;
}

.server-table thead th:nth-child(3),
.server-table tbody td:nth-child(3) {
	width: 24%;
}

.server-table thead th:nth-child(4),
.server-table tbody td:nth-child(4) {
	width: 42%;
}

.server-table thead th:nth-child(3),
.server-table thead th:nth-child(4),
.server-table tbody td:nth-child(3),
.server-table tbody td:nth-child(4) {
	white-space: nowrap;
	word-break: normal;
}

.server-table tbody tr:last-child td {
	border-bottom: 0;
}

.server-name-cell {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	flex-wrap: wrap;
}

.server-name-link {
	color: inherit;
	text-decoration: none;
	font-weight: 700;
}

.server-name-link:hover {
	text-decoration: underline;
}

.server-tag {
	font-size: 0.85em;
	opacity: 0.85;
	border: 1px solid var(--zhuce-border);
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	white-space: nowrap;
}

.server-btns {
	display: flex;
	gap: 0.35rem;
	flex-wrap: wrap;
}

.server-table .button {
	margin: 0;
	padding: 0 0.5rem;
	line-height: 2em;
	font-size: 0.84em;
}

.zhuce-viewer {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	height: auto;
	background: transparent;
	border: 0;
	border-radius: 0;
	overflow: visible;
	box-shadow: none;
	scroll-margin-top: 1rem;
}

.viewer-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.9rem 1rem;
	border: 1px solid var(--zhuce-border);
	border-radius: 12px;
	background: rgba(0, 0, 0, 0.18);
	box-shadow: var(--zhuce-shadow);
}

.viewer-body {
	flex: 0 0 auto;
	background: var(--zhuce-bg-2);
	border: 1px solid var(--zhuce-border);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: var(--zhuce-shadow);
}

.viewer-kicker {
	font-size: 0.8em;
	opacity: 0.8;
	margin-bottom: 0.1rem;
}

.viewer-main {
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.1;
}

.viewer-actions {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.viewer-actions .button {
	margin: 0;
}

.viewer-actions .button.disabled {
	pointer-events: none;
	opacity: 0.55;
}

.viewer-empty {
	padding: 1.25rem 1rem;
	opacity: 0.8;
}

.viewer-empty p {
	margin: 0;
}

.viewer-frame {
	width: 100%;
	height: 520px;
	min-height: 0;
	flex: 0 0 auto;
	border: 0;
	display: block;
	background: var(--zhuce-bg-2);
}

@media (min-width: 1080px) {
	.zhuce-layout {
		grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	}
}

@media (max-width: 420px) {
	.viewer-frame {
		height: auto;
		min-height: 0;
	}
}
