/**
 * 5. Exact three-column application shell from the source template.
 */
.site-shell {
	display: grid;
	grid-template-columns: 216px minmax(0, 1fr) 296px;
	min-height: 100vh;
	background: var(--color-bg);
}

.site-header {
	position: sticky;
	top: 0;
	display: flex;
	height: 100vh;
	flex-direction: column;
	gap: 4px;
	padding: 22px 16px;
	border-right: 1px solid var(--color-divider);
	background: var(--color-bg);
}

.admin-bar .site-header {
	top: 32px;
	height: calc(100vh - 32px);
}

.site-brand {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 28px;
	padding: 0 6px;
}

.site-brand__mark,
.custom-logo-link {
	display: flex;
	width: 32px;
	height: 32px;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border: 1px solid var(--color-accent);
	border-radius: var(--radius-md);
	background: color-mix(in srgb, var(--color-accent) 22%, var(--color-surface));
	color: var(--color-accent);
	font-size: 15px;
	font-weight: 600;
}

.custom-logo { width: 100%; height: 100%; object-fit: cover; }
.site-brand__name { overflow: hidden; color: var(--color-text); font-size: 17px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }

.site-nav {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.site-nav a {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 9px 10px;
	border-radius: var(--radius-md);
	color: var(--color-neutral-400);
	font-size: 14px;
	font-weight: 500;
}

.site-nav a:hover,
.site-nav a.is-active {
	background: var(--color-surface);
	color: var(--color-text);
}

.site-nav .ph { width: 17px; flex-shrink: 0; font-size: 17px; text-align: center; }
.site-header__cta { margin-top: 14px; white-space: nowrap; }

.site-content { display: contents; }

.main-content {
	grid-column: 2;
	width: 100%;
	max-width: 740px;
	min-width: 0;
	padding: 24px 30px 60px;
}

.right-sidebar {
	grid-column: 3;
	min-width: 0;
	padding: 22px 18px;
	border-left: 1px solid var(--color-divider);
}

.widget {
	margin-bottom: 14px;
}

.widget__title {
	font-size: 14.5px;
}
