/**
 * KSK AI Engine — フロント側の最小限のスタイル。
 * テーマの見た目を上書きしないよう、注入したブロックだけに当てます。
 */

.ksk-disclosure {
	border-left: 3px solid #c9a85c;
	background: #faf9f6;
	padding: 0.9em 1.1em;
	margin: 0 0 1.6em;
	font-size: 0.92em;
	line-height: 1.8;
}

.ksk-disclosure__text {
	margin: 0;
	color: #333;
}

.ksk-source-block {
	border: 1px solid #e6e1d6;
	background: #fdfcfa;
	padding: 1em 1.2em;
	margin: 0 0 1.8em;
	border-radius: 3px;
}

.ksk-source-block__label {
	margin: 0 0 0.6em;
	font-weight: 700;
	font-size: 0.9em;
	letter-spacing: 0.04em;
	color: #6b5c33;
}

.ksk-source-block__list {
	margin: 0;
	padding: 0 0 0 1.2em;
}

.ksk-source-block__item {
	margin: 0 0 0.7em;
	line-height: 1.8;
}

.ksk-source-block__publisher,
.ksk-source-block__date {
	font-size: 0.85em;
	color: #666;
}

.ksk-source-block__quote {
	margin: 0.4em 0 0;
	padding: 0.4em 0 0.4em 0.9em;
	border-left: 2px solid #d8d2c4;
	font-size: 0.9em;
	color: #444;
}

.ksk-source-list {
	margin: 2.4em 0 1.6em;
	padding: 1.2em 1.4em;
	background: #faf9f6;
	border-radius: 3px;
}

.ksk-source-list__heading {
	margin: 0 0 0.7em;
	font-size: 1.05em;
}

.ksk-source-list ul {
	margin: 0;
	padding: 0 0 0 1.2em;
}

.ksk-source-list li {
	margin: 0 0 0.5em;
	line-height: 1.8;
	word-break: break-word;
}

.ksk-author-box {
	margin: 2.4em 0;
	padding: 1.3em 1.5em;
	border: 1px solid #e6e1d6;
	border-radius: 3px;
	background: #fff;
}

.ksk-author-box__head {
	display: flex;
	align-items: center;
	gap: 1em;
	margin-bottom: 0.9em;
}

.ksk-author-box__photo {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	object-fit: cover;
}

.ksk-author-box__badge {
	display: inline-block;
	padding: 0.15em 0.6em;
	background: #1a1a1a;
	color: #fff;
	font-size: 0.72em;
	letter-spacing: 0.08em;
	border-radius: 2px;
}

.ksk-author-box__name {
	margin: 0.3em 0 0;
	font-size: 1.15em;
	font-weight: 700;
}

.ksk-author-box__title {
	margin: 0.1em 0 0;
	font-size: 0.88em;
	color: #666;
}

.ksk-author-box__bio p {
	margin: 0 0 0.4em;
	font-size: 0.92em;
	line-height: 1.85;
}

.ksk-author-box__notice {
	margin: 0.9em 0 0;
	padding-top: 0.8em;
	border-top: 1px dashed #ddd6c6;
	font-size: 0.85em;
	color: #666;
	line-height: 1.8;
}

.ksk-breadcrumbs {
	font-size: 0.85em;
	color: #666;
	margin: 0 0 1.2em;
}

.ksk-signature {
	margin-top: 2em;
	text-align: right;
	color: #6b5c33;
	font-size: 0.92em;
}

/* 承認ページ（テーマに依存しません）。 */

.ksk-approve-body {
	margin: 0;
	background: #f4f2ed;
	font-family: system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;
	color: #1a1a1a;
	line-height: 1.8;
}

.ksk-approve {
	max-width: 720px;
	margin: 0 auto;
	padding: 2rem 1.2rem 4rem;
}

.ksk-approve__title {
	font-size: 1.5rem;
	border-bottom: 2px solid #c9a85c;
	padding-bottom: 0.5rem;
}

.ksk-approve__card {
	background: #fff;
	border-radius: 4px;
	padding: 1.2rem 1.4rem;
	margin: 1.2rem 0;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.ksk-approve__warn {
	background: #fdf3f2;
	border-left: 3px solid #b23b3b;
	padding: 0.9rem 1.1rem;
	margin: 1rem 0;
}

.ksk-approve__ok {
	background: #f2f8f4;
	border-left: 3px solid #2f6f4f;
	padding: 0.9rem 1.1rem;
	margin: 1rem 0;
}

.ksk-approve__preview {
	max-height: 460px;
	overflow-y: auto;
	border: 1px solid #e6e1d6;
	padding: 1rem 1.2rem;
	background: #fff;
	font-size: 0.94rem;
}

.ksk-approve__preview img {
	max-width: 100%;
	height: auto;
}

.ksk-approve__field {
	margin: 1rem 0;
}

.ksk-approve__field label {
	display: block;
	font-weight: 700;
	margin-bottom: 0.3rem;
	font-size: 0.92rem;
}

.ksk-approve__field textarea,
.ksk-approve__field input[type="text"],
.ksk-approve__field input[type="password"] {
	width: 100%;
	box-sizing: border-box;
	padding: 0.6rem;
	border: 1px solid #ccc5b4;
	border-radius: 3px;
	font-family: inherit;
	font-size: 0.95rem;
}

.ksk-approve__button {
	display: inline-block;
	padding: 0.75rem 1.6rem;
	border: 0;
	border-radius: 3px;
	background: #1a1a1a;
	color: #fff;
	font-size: 1rem;
	cursor: pointer;
}

.ksk-approve__button--primary {
	background: #c9a85c;
	color: #1a1a1a;
	font-weight: 700;
}

.ksk-approve__button[disabled] {
	opacity: 0.4;
	cursor: not-allowed;
}

.ksk-approve__footer {
	margin-top: 3rem;
	padding-top: 1rem;
	border-top: 1px solid #ddd6c6;
	font-size: 0.82rem;
	color: #666;
}

.ksk-approve__meta {
	font-size: 0.88rem;
	color: #555;
}

.ksk-approve__meta strong {
	color: #1a1a1a;
}
