/* ============================================================
   読書設定 — Aa アイコン＋ドロップダウンパネル
   ============================================================ */

.novel-head__inner {
	position: relative;
}
.novel-head__inner > .reading-trigger {
	position: absolute;
	bottom: 0;
	right: 0;
	z-index: 2;
}
.reading-trigger__inner {
	position: relative;
}

.reading-trigger__top {
	display: none;
}

/* --- Aa ボタン --- */
.reading-trigger__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 4px 6px;
	border: 0;
	background: transparent;
	color: var(--portal-muted, rgba(26,26,26,0.55));
	cursor: pointer;
	font-size: 15px;
	font-weight: 700;
	font-family: "Quicksand", sans-serif;
	letter-spacing: 0;
	line-height: 1;
	transition: color 0.15s;
}
.reading-trigger__btn:hover {
	color: var(--portal-text, #1a1a1a);
}

/* --- パネル --- */
.reading-panel {
	position: absolute;
	right: 0;
	top: 100%;
	z-index: 100;
	min-width: 220px;
	background: var(--portal-bg, #fff);
	border: 1px solid var(--portal-border, #e0e0e0);
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(0,0,0,0.1);
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.reading-panel[hidden] {
	display: none;
}

.reading-panel__section {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.reading-panel__label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--portal-muted, rgba(26,26,26,0.6));
}

/* --- テキストボタン（フォント・サイズ） --- */
.reading-panel__options {
	display: flex;
	gap: 0;
}
.reading-panel__opt {
	flex: 1;
	padding: 5px 10px;
	border: 1px solid var(--portal-border, #e0e0e0);
	background: transparent;
	color: var(--portal-text, #1a1a1a);
	cursor: pointer;
	font-size: 12px;
	line-height: 1.4;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
	text-align: center;
}
.reading-panel__opt:first-child {
	border-radius: 4px 0 0 4px;
}
.reading-panel__opt:last-child {
	border-radius: 0 4px 4px 0;
}
.reading-panel__opt:not(:first-child) {
	margin-left: -1px;
}
.reading-panel__opt:hover {
	border-color: var(--portal-text, #1a1a1a);
	z-index: 1;
	position: relative;
}
.reading-panel__opt.is-active {
	border-color: var(--portal-accent, #1a1a1a);
	background: var(--portal-accent, #1a1a1a);
	color: var(--portal-accent-text, #fff);
	z-index: 1;
	position: relative;
}

/* --- 背景スウォッチ --- */
.reading-panel__swatches {
	display: flex;
	gap: 8px;
}
.reading-panel__swatch-btn {
	padding: 3px;
	border: 2px solid transparent;
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
	transition: border-color 0.15s;
}
.reading-panel__swatch-btn:hover {
	border-color: var(--portal-muted, rgba(26,26,26,0.3));
}
.reading-panel__swatch-btn.is-active {
	border-color: var(--portal-accent, #1a1a1a);
}
.reading-panel__swatch {
	display: block;
	width: 22px;
	height: 22px;
	border-radius: 50%;
}

/* ============================================================
   Reading modes — body classes applied by JS
   ============================================================ */

/* Font size override via CSS custom property — !important to beat post-single rule */
.novel-prose,
.novel-prose p,
.novel-prose li,
.post-single .novel-prose,
.post-single .novel-prose p,
.post-single .novel-prose li {
	font-size: var(--rs-font-size, inherit) !important;
	letter-spacing: var(--rs-letter-spacing, inherit);
}

/* Light mode — respect Customizer background */
body.rs-bg-light {
	background-color: var(--portal-bg, #ffffff);
}

/* Sepia mode */
body.rs-bg-sepia {
	background-color: #e8e2d6;
}
body.rs-bg-sepia .novel-head,
body.rs-bg-sepia .novel-body,
body.rs-bg-sepia .novel-nav,
body.rs-bg-sepia .novel-series,
body.rs-bg-sepia .novel-actions,
body.rs-bg-sepia .reading-trigger {
	background-color: #e8e2d6;
}
body.rs-bg-sepia .novel-body {
	border-color: #d0cac0;
}
body.rs-bg-sepia .reading-panel {
	background-color: #e0dace;
	border-color: #d0cac0;
}

/* Blue mode */
body.rs-bg-blue {
	background-color: #d6e5ec;
}
body.rs-bg-blue .novel-head,
body.rs-bg-blue .novel-body,
body.rs-bg-blue .novel-nav,
body.rs-bg-blue .novel-series,
body.rs-bg-blue .novel-actions,
body.rs-bg-blue .reading-trigger {
	background-color: #d6e5ec;
}
body.rs-bg-blue .novel-body {
	border-color: #bdd0da;
}
body.rs-bg-blue .reading-panel {
	background-color: #cddce4;
	border-color: #bdd0da;
}

/* Dark mode */
body.rs-bg-dark {
	background-color: #1a1a1a;
	color: #d4d4d4;
}
body.rs-bg-dark .novel-head,
body.rs-bg-dark .novel-body,
body.rs-bg-dark .novel-nav,
body.rs-bg-dark .novel-series,
body.rs-bg-dark .novel-actions,
body.rs-bg-dark .reading-trigger {
	background-color: #1a1a1a;
	color: #d4d4d4;
}
body.rs-bg-dark .novel-head__title,
body.rs-bg-dark .novel-head__lede,
body.rs-bg-dark .novel-head__eyebrow {
	color: #e0e0e0;
}
body.rs-bg-dark .novel-prose,
body.rs-bg-dark .novel-prose p,
body.rs-bg-dark .novel-prose h2,
body.rs-bg-dark .novel-prose h3,
body.rs-bg-dark .novel-prose li,
body.rs-bg-dark .novel-prose blockquote,
body.rs-bg-dark .novel-section p {
	color: #d4d4d4;
}
body.rs-bg-dark .novel-body {
	border-color: #333;
}
body.rs-bg-dark .novel-chapters__title,
body.rs-bg-dark .novel-chapters__num {
	color: #d4d4d4;
}
body.rs-bg-dark .novel-chapters li {
	border-bottom-color: #333;
}
body.rs-bg-dark .novel-nav a {
	color: #d4d4d4;
}
body.rs-bg-dark .novel-series {
	border-color: #333;
}
body.rs-bg-dark .novel-series__heading {
	color: #e0e0e0;
}
body.rs-bg-dark .novel-series__item a {
	color: #d4d4d4;
}
body.rs-bg-dark .tag-pill {
	color: #d4d4d4;
	background: #1a1a1a;
	border-color: #555;
}
body.rs-bg-dark a.tag-pill:hover,
body.rs-bg-dark a.tag-pill:focus-visible {
	background: #555;
	color: #fff;
}
body.rs-bg-dark .novel-head__reading-meta {
	color: #999;
}
body.rs-bg-dark .novel-card__status-badge {
	color: #d4d4d4;
}
body.rs-bg-dark .novel-prose a {
	color: #8ab4f8;
}
body.rs-bg-dark .back-to-top {
	background: #2a2a2a;
	border-color: #555;
	color: #d4d4d4;
}
body.rs-bg-dark .novel-free .novel-prose blockquote {
	border-left-color: #555;
	color: #bbb;
}
body.rs-bg-dark .hm-progress-bar {
	background: #333;
}
body.rs-bg-dark .novel-chapters__date,
body.rs-bg-dark .novel-chapters__badge {
	color: #999;
}

/* Dark panel overrides */
body.rs-bg-dark .reading-trigger__btn {
	color: #999;
}
body.rs-bg-dark .reading-trigger__btn:hover {
	color: #d4d4d4;
}
body.rs-bg-dark .reading-panel {
	background: #2a2a2a;
	border-color: #444;
	box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}
body.rs-bg-dark .reading-panel__label {
	color: #999;
}
body.rs-bg-dark .reading-panel__opt {
	border-color: #444;
	color: #d4d4d4;
}

/* --- Responsive --- */
@media (max-width: 640px) {
	.novel-head__inner > .reading-trigger {
		position: fixed;
		right: 12px;
		bottom: calc(64px + env(safe-area-inset-bottom, 0));
		z-index: 920;
		margin: 0;
		background: transparent;
		transition: transform 0.22s ease, opacity 0.22s ease;
	}
	body.hm-bottom-nav-hidden .novel-head__inner > .reading-trigger {
		transform: translateY(calc(72px + env(safe-area-inset-bottom, 0)));
		opacity: 0;
		pointer-events: none;
	}
	.reading-trigger__inner {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 6px;
	}
	.reading-trigger__top,
	.reading-trigger__btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 38px;
		height: 38px;
		padding: 0;
		border: 1px solid var(--portal-border, #e0e0e0);
		border-radius: 999px;
		background: var(--portal-bg, #fff);
		box-shadow: 0 8px 22px rgba(0,0,0,0.12);
		color: var(--portal-text, #1a1a1a);
		text-decoration: none;
	}
	.reading-trigger__btn {
		order: 1;
		font-size: 14px;
	}
	.reading-trigger__top {
		order: 2;
	}
	.reading-trigger__top .material-symbols-outlined {
		font-size: 18px;
	}
	.reading-panel {
		position: fixed;
		left: 12px;
		right: 12px;
		top: auto;
		bottom: calc(150px + env(safe-area-inset-bottom, 0));
		z-index: 960;
		width: auto;
		min-width: 190px;
		max-height: calc(100dvh - 170px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 12px;
		gap: 10px;
	}
	.reading-panel__opt {
		font-size: 13px;
		padding: 6px 10px;
		min-height: 44px;
	}
	body.rs-bg-sepia .reading-trigger__top,
	body.rs-bg-sepia .reading-trigger__btn {
		background: #e0dace;
		border-color: #d0cac0;
	}
	body.rs-bg-blue .reading-trigger__top,
	body.rs-bg-blue .reading-trigger__btn {
		background: #cddce4;
		border-color: #bdd0da;
	}
	body.rs-bg-dark .reading-trigger__top,
	body.rs-bg-dark .reading-trigger__btn {
		background: #2a2a2a;
		border-color: #555;
		color: #d4d4d4;
	}
	@media (prefers-reduced-motion: reduce) {
		.novel-head__inner > .reading-trigger {
			transition: none;
		}
	}
}
