:root {
	--site-bg: #323741;
	--site-gold: #a59669;
	--site-gold-light: #d7cd96;
	--site-footer-bg: #f0f0f5;
	--site-notice-bg: #d9efff;
	--site-notice-border: #79bce8;
	--site-notice-text: #163c57;
}

html,
body {
	min-height: 100%;
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	color: #fff;
	background: var(--site-bg);
	font-family: Meiryo, "Hiragino Kaku Gothic ProN", sans-serif;
}

.site-header {
	color: #fff;
	background-color: var(--site-gold);
	border-bottom: 2px solid var(--site-gold-light);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22);
}

.site-title {
	text-shadow: 0 1px 3px rgba(50, 55, 65, 0.55);
}

.site-description {
	color: rgba(255, 255, 255, 0.9);
}

.search-toolbar {
	position: sticky;
	top: 0;
	z-index: 1020;
	background: rgba(50, 55, 65, 0.96);
	backdrop-filter: blur(8px);
}

/* 投票ルールと終了日時をまとめた案内。暗い背景上でも明るい青で判別しやすくする。 */
.vote-notice {
	color: var(--site-notice-text);
	background-color: var(--site-notice-bg);
	border-color: var(--site-notice-border);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16);
}

.vote-card {
	height: 100%;
	overflow: hidden;
	color: var(--bs-body-color);
	background-color: rgba(255, 255, 255, 0.96);
	border-color: rgba(165, 150, 105, 0.65);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.vote-card:hover {
	border-color: var(--site-gold-light);
	box-shadow: 0 0 0 2px rgba(215, 205, 150, 0.18), var(--bs-box-shadow-sm);
}

.vote-image {
	width: 96px;
	height: 96px;
	flex: 0 0 96px;
	object-fit: contain;
	background: var(--site-footer-bg);
	border-radius: var(--bs-border-radius);
}

.btn-primary {
	--bs-btn-color: #111;
	--bs-btn-bg: var(--site-gold-light);
	--bs-btn-border-color: var(--site-gold-light);
	--bs-btn-hover-color: #111;
	--bs-btn-hover-bg: #fff;
	--bs-btn-hover-border-color: var(--site-gold);
	--bs-btn-active-color: #111;
	--bs-btn-active-bg: var(--site-gold);
	--bs-btn-active-border-color: var(--site-gold);
	--bs-btn-disabled-color: #555;
	--bs-btn-disabled-bg: #c8c0a0;
	--bs-btn-disabled-border-color: #c8c0a0;
}

.nav-tabs .nav-link {
	color: #f7f2d7;
}

.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus {
	color: #fff;
}

.nav-tabs .nav-link.active {
	color: var(--bs-body-color);
}

/* 項目数が多い表示設定画面でも、現在位置からすぐ保存できるようにする。 */
.admin-settings-actions {
	background: var(--site-bg);
}

.site-footer {
	margin-top: auto;
	padding: 12px 1rem 9px;
	color: #555;
	text-align: center;
	background-color: var(--site-footer-bg);
	border-top: 1px solid #d4d4d9;
}

.site-footer a {
	display: inline-block;
	opacity: 0.78;
	transition: opacity 0.15s ease;
}

.site-footer a:hover,
.site-footer a:focus {
	opacity: 1;
}

.site-footer img {
	width: 64px;
	height: auto;
	margin-bottom: 1px;
}

.site-footer p {
	font-size: 0.68rem;
}

/* 管理画面では、入力時の改行を保ったままコメントを折り返して表示する。 */
.vote-comment {
	min-width: 20rem;
	white-space: pre-wrap;
	word-break: break-word;
}

[data-item-card][hidden] {
	display: none !important;
}

@media (max-width: 575.98px) {
	.site-title {
		font-size: 1.35rem;
	}

	.vote-image {
		width: 80px;
		height: 80px;
		flex-basis: 80px;
	}
}
