.sss-gpb {
	--gpb-bg: #fafafa;
	--gpb-prompt-bg: #fff;
	--gpb-text: #222;
	--gpb-muted: #666;
	--gpb-border: #dedede;
	--gpb-button-bg: #111;
	--gpb-button-color: #fff;
	--gpb-font-size: 14px;
	--gpb-line-height: 1.55em;
	--gpb-padding: 7px;
	--gpb-radius: 10px;
	--gpb-button-size: 13px;

	margin: 18px 0;
	border: 1px solid var(--gpb-border);
	border-radius: var(--gpb-radius);
	background: var(--gpb-bg);
	overflow: hidden;
	color: var(--gpb-text);
	font-size: var(--gpb-font-size);
	line-height: var(--gpb-line-height);
}

.sss-gpb[data-border="0"] {
	border-width: 0;
}

.sss-gpb--dark {
	--gpb-bg: #171717;
	--gpb-prompt-bg: #202020;
	--gpb-text: #f2f2f2;
	--gpb-muted: #bdbdbd;
	--gpb-border: #383838;
	--gpb-button-bg: #fff;
	--gpb-button-color: #111;
}

.sss-gpb--soft {
	--gpb-bg: #f3f4f6;
	--gpb-prompt-bg: #ffffff;
	--gpb-text: #242424;
	--gpb-muted: #666;
	--gpb-border: #e2e4e8;
	--gpb-button-bg: #2b2b2b;
	--gpb-button-color: #fff;
}

.sss-gpb__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 12px;
	background: var(--gpb-bg);
	border-bottom: 1px solid var(--gpb-border);
}

.sss-gpb__title {
	font-size: calc(var(--gpb-font-size) + 1px);
	font-weight: 700;
	line-height: 1.25;
}

.sss-gpb__copy {
	border: 0;
	border-radius: 6px;
	background: var(--gpb-button-bg);
	color: var(--gpb-button-color);
	padding: 8px 12px;
	font-size: var(--gpb-button-size);
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: opacity .15s ease;
}

.sss-gpb__copy:hover {
	opacity: .88;
}

.sss-gpb__copy:focus-visible,
.sss-gpb summary:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.sss-gpb__preview {
	box-sizing: border-box;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 5;
	padding: var(--gpb-padding) 12px !important;
	margin: 0 !important;
	background: var(--gpb-prompt-bg);
	white-space: pre-wrap;
	overflow-wrap: anywhere;
	text-align: left !important;
	text-align-last: left !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	min-height: 0 !important;
	max-height: none !important;
	overflow: hidden;
}

.sss-gpb__details {
	border-top: 1px solid var(--gpb-border);
	background: var(--gpb-prompt-bg);
}

.sss-gpb summary {
	list-style: none;
	cursor: pointer;
	padding: 8px 12px;
	text-align: center;
	font-size: calc(var(--gpb-font-size) - 1px);
	line-height: 1.3;
	font-weight: 600;
	color: var(--gpb-muted);
	user-select: none;
}

.sss-gpb summary::-webkit-details-marker {
	display: none;
}

.sss-gpb summary::after {
	content: " ↓";
}

.sss-gpb details[open] summary::after {
	content: " ↑";
}

.sss-gpb__full {
	box-sizing: border-box;
	max-height: 320px;
	overflow-y: auto;
	padding: 10px 12px;
	border-top: 1px solid var(--gpb-border);
	background: var(--gpb-prompt-bg);
	color: var(--gpb-text);
	white-space: pre-wrap;
	overflow-wrap: anywhere;
	text-align: left;
	scrollbar-width: thin;
}

.sss-gpb-placeholder {
	padding: 12px;
	border: 1px dashed #bbb;
	border-radius: 8px;
	color: #666;
}

@media (max-width: 600px) {
	.sss-gpb {
		margin: 14px 0;
	}

	.sss-gpb__header {
		padding: 9px 10px;
		gap: 8px;
	}

	.sss-gpb__copy {
		padding: 8px 10px;
	}

	.sss-gpb__preview {
		padding-left: 10px;
		padding-right: 10px;
	}

	.sss-gpb__full {
		max-height: 280px;
		padding-left: 10px;
		padding-right: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sss-gpb * {
		transition: none !important;
	}
}


/* V2.4: strict five-line preview. */
.sss-gpb .sss-gpb__preview,
.elementor .sss-gpb .sss-gpb__preview,
.elementor-widget .sss-gpb .sss-gpb__preview {
 box-sizing: border-box !important;
 display: -webkit-box !important;
 -webkit-box-orient: vertical !important;
 -webkit-line-clamp: 5;
 overflow: hidden !important;
 max-height: calc((var(--gpb-font-size) * var(--gpb-line-height) * 5) + (var(--gpb-padding) * 2)) !important;
 min-height: 0 !important;
 margin: 0 !important;
 padding: var(--gpb-padding) 12px !important;
 text-align: left !important;
 text-align-last: left !important;
 text-indent: 0 !important;
 direction: ltr !important;
 unicode-bidi: plaintext !important;
 font-style: normal !important;
 font-weight: 400 !important;
 letter-spacing: normal !important;
 white-space: pre-wrap !important;
 overflow-wrap: anywhere !important;
}

.sss-gpb .sss-gpb__full,
.elementor .sss-gpb .sss-gpb__full,
.elementor-widget .sss-gpb .sss-gpb__full {
 box-sizing: border-box !important;
 display: block !important;
 width: 100% !important;
 margin: 0 !important;
 text-align: left !important;
 text-align-last: left !important;
 text-indent: 0 !important;
 direction: ltr !important;
 unicode-bidi: plaintext !important;
 white-space: pre-wrap !important;
 overflow-wrap: anywhere !important;
}

.sss-gpb.sss-gpb--expanded .sss-gpb__preview { display: none !important; }
.sss-gpb:has(.sss-gpb__details[open]) .sss-gpb__preview { display: none !important; }

.sss-gpb .sss-gpb__preview p,
.sss-gpb .sss-gpb__full p {
 text-align: left !important;
 text-align-last: left !important;
 margin: 0 !important;
}

@media (max-width: 600px) {
 .sss-gpb .sss-gpb__preview { padding-left: 10px !important; padding-right: 10px !important; }
}
