/* 대시보드 레이아웃·사이드바·카드·표 기본
   (admin.css 165–344 행에서 분리. CSS 는 순서가 우선순위라 로드 순서를 지켜야 한다) */

.dashboard {
	min-height: 100vh;
	display: grid;
	grid-template-columns: 270px minmax(0, 1fr);
}
.sidebar {
	position: sticky;
	top: 0;
	height: 100vh;
	display: flex;
	flex-direction: column;
	gap: 28px;
	padding: 28px;
	border-right: 1px solid var(--line);
	background: rgba(255, 250, 245, 0.72);
	backdrop-filter: blur(18px);
}
.brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.brand-mark {
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	border-radius: 50%;
	color: #fffaf5;
	background: linear-gradient(135deg, var(--wine), #b15748);
	font:
		700 24px / 1 "Gowun Batang",
		serif;
}
.brand strong,
.brand small {
	display: block;
}
.brand small {
	color: var(--muted);
	font-size: 12px;
	letter-spacing: 0.12em;
}
.sidebar nav {
	display: grid;
	gap: 8px;
}
.sidebar nav a {
	border-radius: 16px;
	color: var(--muted);
	font-weight: 800;
	padding: 14px 16px;
}
.sidebar nav a.active,
.sidebar nav a:hover {
	color: var(--wine);
	background: rgba(127, 31, 46, 0.08);
}
.logout-button {
	margin-top: auto;
}

.workspace {
	padding: clamp(22px, 4vw, 48px);
}
.workspace-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
}
.date-chip {
	min-width: 180px;
	padding: 18px 20px;
	border: 1px solid var(--line);
	border-radius: 24px;
	background: var(--card);
	text-align: right;
	box-shadow: 0 18px 46px rgba(61, 34, 24, 0.08);
}
.date-chip span,
.date-chip strong {
	display: block;
}
.date-chip span {
	color: var(--muted);
	font-weight: 700;
}
.date-chip strong {
	margin-top: 4px;
	color: var(--wine);
	font-size: 20px;
}
.notice-card,
.stats-grid article,
.schedule-card,
.utility-card {
	border: 1px solid var(--line);
	border-radius: 28px;
	background: var(--card);
	box-shadow: 0 18px 55px rgba(61, 34, 24, 0.08);
}
.notice-card {
	margin-top: 28px;
	padding: 20px 24px;
}
.notice-card p {
	margin: 6px 0 0;
}
.stats-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
	margin-top: 18px;
}
.stats-grid article {
	padding: 22px;
}
.stats-grid span,
.stats-grid small {
	color: var(--muted);
	font-weight: 700;
}
.stats-grid strong {
	display: block;
	margin: 10px 0;
	color: var(--wine);
	font-size: 42px;
	line-height: 1;
}

.schedule-grid {
	display: grid;
	gap: 18px;
	margin-top: 18px;
}
.schedule-card {
	padding: 22px;
	overflow: hidden;
}
.card-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 16px;
}
.table-wrap {
	overflow-x: auto;
}
table {
	width: 100%;
	min-width: 860px;
	border-collapse: collapse;
}
th,
td {
	padding: 14px 12px;
	border-bottom: 1px solid var(--line);
	text-align: left;
	white-space: nowrap;
}
th {
	color: var(--muted);
	font-size: 13px;
}
td {
	font-weight: 600;
}
.badge {
	display: inline-flex;
	border-radius: 999px;
	padding: 5px 10px;
	color: var(--wine);
	background: rgba(127, 31, 46, 0.08);
	font-size: 12px;
}

.utility-grid {
