@charset "UTF-8";
/**
 * vis-admin.css — 后台管理专属样式
 * 层级：vis.css（框架） → vis-legacy.css（兼容） → vis-admin.css（后台域）
 * 仅在后台页面通过 head_admin.php 加载。
 */


/* ================================================================
   Admin Body Override
   ================================================================ */
body.admin-body {
	background: #0a0a0a;
}

/* 后台链接基准：禁止下划线，hover 靠颜色区分 */
.admin-body a {
	text-decoration: none;
}
.admin-body a:hover {
	text-decoration: none;
}


/* ================================================================
   Admin Layout
   ================================================================ */

/* ── 手机端顶部栏 ── */
.admin-topbar {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 50;
	background: #111;
	border-bottom: 1px solid #374151;
	height: 48px;
	display: none;
	align-items: center;
	padding: 0 1rem;
}

/* ── Overlay 遮罩 ── */
.admin-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.6);
	z-index: 40;
	display: none;
}
.admin-overlay.is-visible {
	display: block;
}

/* ── 侧边栏 ── */
.admin-sidebar {
	position: fixed;
	top: 0; left: 0; bottom: 0;
	width: 200px;
	background: #111;
	border-right: 1px solid #374151;
	z-index: 50;
	display: flex;
	flex-direction: column;
	transform: translateX(-100%);
	transition: transform 0.2s;
}
.admin-sidebar.is-open {
	transform: translateX(0);
}

/* ── Logo（顶部） ── */
.admin-sidebar-logo {
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 1rem;
	border-bottom: 1px solid #1f2937;
}
.admin-sidebar-logo a {
	color: var(--gray-light);
	font-size: 1rem;
	font-weight: 600;
	font-family: var(--font-mono);
	letter-spacing: 0.05em;
	text-decoration: none;
	transition: color 0.3s, text-shadow 0.3s;
}
.admin-sidebar-logo a:hover {
	color: #fff;
	text-shadow: 0 0 8px rgba(234,179,8,0.4), 0 0 20px rgba(234,179,8,0.15);
}

/* ── Footer（底部，与 Logo 对称） ── */
.admin-sidebar-footer {
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 1rem;
	border-top: 1px solid #1f2937;
}
.admin-footer-logout {
	color: var(--gray-medium);
	font-size: 0.875rem;
	font-family: var(--font-mono);
	letter-spacing: 0.05em;
	text-decoration: none;
	transition: color 0.15s;
}
.admin-footer-logout:hover {
	color: var(--accent-red);
}

/* ── 快捷操作栏（Logo 下方） ── */
.admin-sidebar-actions {
	display: flex;
	align-items: center;
	padding: 0.375rem 1rem;
	border-bottom: 1px solid #1f2937;
}
.admin-action-link {
	font-size: 0.75rem;
	color: var(--gray-dark);
	text-decoration: none;
	transition: color 0.15s;
}
.admin-action-link:hover {
	color: var(--gray-light);
}

/* ── 主区域 ── */
.admin-main {
	min-height: 100vh;
}
.admin-content {
	max-width: 64rem;
	margin: 0 auto;
	padding: 1.5rem 1rem 3rem;
}


/* ================================================================
   Admin Nav
   ================================================================ */
.admin-nav {
	flex: 1;
	padding: 0.75rem 0;
	overflow-y: auto;
}
.admin-nav-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	font-size: 0.875rem;
	color: var(--gray-medium);
	text-decoration: none;
	transition: color 0.15s, background-color 0.15s;
}
.admin-nav-item:hover {
	color: var(--gray-light);
	background: rgba(255,255,255,0.05);
}
.admin-nav-item.is-active {
	color: var(--accent-yellow);
	background: rgba(234,179,8,0.1);
	border-right: 2px solid var(--accent-yellow);
}
.admin-nav-icon {
	font-size: 0.625rem;
	opacity: 0.2;
	display: inline-block;
	width: 1rem;
	text-align: center;
}
.admin-nav-toggle {
	font-size: 0.8125rem;
	opacity: 0.5;
}

/* ── 二级菜单 ── */
.admin-nav-parent {
	cursor: pointer;
	user-select: none;
}
.admin-nav-sub {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.2s ease;
}
.admin-nav-group.is-open .admin-nav-sub {
	max-height: 200px;
}
.admin-nav-child {
	padding-left: 3rem;
	font-size: 0.8125rem;
}
.admin-nav-group.is-open .admin-nav-parent {
	color: var(--gray-light);
}


/* ================================================================
   Admin Status Bar（右下角固定）
   ================================================================ */
.admin-status-bar {
	position: fixed;
	bottom: 0; right: 0;
	z-index: 30;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.375rem 0.75rem;
	background: rgba(10,10,10,0.85);
	border-top: 1px solid #1f2937;
	border-left: 1px solid #1f2937;
	border-radius: 0.25rem 0 0 0;
}
.admin-lang-switch {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.6875rem;
	font-family: var(--font-mono);
}
.admin-lang-current {
	color: var(--accent-yellow);
	font-weight: 600;
}
.admin-lang-link {
	color: var(--gray-dark);
	text-decoration: none;
	transition: color 0.15s;
}
.admin-lang-link:hover {
	color: var(--gray-medium);
}
.admin-page-time {
	font-size: 0.625rem;
	color: var(--gray-dark);
	font-family: var(--font-mono);
}


/* ================================================================
   Admin Prose（后台 Markdown 渲染，比前台 .markdown-rendered 更紧凑）
   ================================================================ */
.prose {
	line-height: 1.7;
	color: #D3D3D3;
}
.prose h1 {
	font-size: 1.5rem; font-weight: 700;
	margin: 1.5rem 0 0.75rem;
	color: var(--gray-light);
}
.prose h2 {
	font-size: 1.25rem; font-weight: 600;
	margin: 1.25rem 0 0.5rem;
	color: var(--gray-light);
	border-bottom: 1px solid #374151;
	padding-bottom: 0.25rem;
}
.prose h3 {
	font-size: 1.1rem; font-weight: 600;
	margin: 1rem 0 20px;
	color: #d1d5db;
}
.prose h4 {
	font-size: 1rem; font-weight: 600;
	margin: 0.75rem 0 15px;
	color: #d1d5db;
}
.prose p {
	margin: 0.5rem 0;
	color: #D3D3D3;
}
.prose ul, .prose ol {
	margin: 0.5rem 0;
	padding-left: 1.5rem;
	color: #D3D3D3;
}
.prose ul > li { list-style-type: disc; }
.prose ol > li { list-style-type: decimal; }
.prose ul ul > li { list-style-type: circle; }
.prose ul ul ul > li { list-style-type: square; }
.prose li {
	margin: 0.25rem 0;
}
.prose code {
	background: #1f2937;
	padding: 0.125rem 0.375rem;
	font-size: 0.875rem;
	font-family: var(--font-mono);
	color: #f59e0b;
}
.prose pre {
	background: #111827;
	border: 1px solid #374151;
	padding: 0.75rem;
	overflow-x: auto;
	margin: 0.75rem 0;
}
.prose pre code {
	background: none;
	padding: 0;
	color: #d1d5db;
	font-family: var(--font-mono);
}
.prose table {
	width: 100%;
	border-collapse: collapse;
	margin: 0.75rem 0;
	font-size: 0.875rem;
}
.prose th, .prose td {
	border: 1px solid #374151;
	padding: 0.375rem 0.75rem;
	text-align: left;
}
.prose th {
	background: #1f2937;
	color: var(--gray-light);
}
.prose td {
	color: #D3D3D3;
}
.prose blockquote {
	border-left: 3px solid var(--gray-dark);
	padding-left: 0.75rem;
	margin: 0.75rem 0;
	color: var(--gray-dark);
}
.prose strong {
	color: var(--gray-light);
}
.prose a {
	color: #60a5fa;
}
.prose hr {
	border-color: #374151;
	margin: 1rem 0;
}


/* ================================================================
   Admin Sortable Table Header（可排序表头，sort.php 配套）
   ================================================================ */
.sort-link {
	color: inherit;
	white-space: nowrap;
}
.sort-arrows {
	display: inline-flex;
	flex-direction: column;
	line-height: 0.6;
	font-size: 0.5rem;
	vertical-align: middle;
	margin-left: 3px;
}
.sort-arrow {
	opacity: 0.25;
}
.sort-arrow.is-active {
	opacity: 1;
	color: var(--accent-yellow);
}


/* ================================================================
   Admin Sub-sidebar（二级侧边栏，可复用）
   ================================================================ */
.vis-sub-sidebar {
	position: fixed;
	top: 0; bottom: 0; left: 200px;
	width: 220px;
	background: #0d0d0d;
	border-right: 1px solid #1f2937;
	overflow-y: auto;
	z-index: 30;
	padding: 12px 0;
}
.vis-sub-content {
	margin-left: 220px;
}


/* ================================================================
   Responsive
   ================================================================ */
@media (min-width: 768px) {
	.admin-sidebar {
		transform: translateX(0);
	}
	.admin-main {
		margin-left: 200px;
	}
	.admin-overlay {
		display: none !important;
	}
}

@media (max-width: 767px) {
	.admin-topbar {
		display: flex;
	}
	.admin-main {
		padding-top: 48px;
	}
	.admin-status-bar {
		left: 0;
		border-left: none;
		border-radius: 0;
		justify-content: center;
	}
	.vis-sub-sidebar {
		position: relative;
		left: auto; width: 100%; bottom: auto;
		border-right: none;
		border-bottom: 1px solid #1f2937;
		padding: 8px 0;
	}
	.vis-sub-content {
		margin-left: 0;
	}
}
