/* ==========================================================================
   Code Highlight (.sentio-sh)
   ==========================================================================
   Extracted from frontend.css during the Batch 8 mechanical extraction
   (2026-04-18). Behavior-preserving.

   Uses Prism.js (vendor handles: prism-core, prism-autoloader,
   prism-line-numbers, prism-line-highlight) registered by Elementor
   core. get_style_depends() and get_script_depends() preserve those
   vendor handles per authoring-guide §4 Custom-deps case.
   ========================================================================== */


/* One Dark (default) */
.sentio-sh--theme-one-dark .sentio-sh,
.sentio-sh .sentio-sh { /* fallback */
	--sentio-sh-bg: #282c34;
	--sentio-sh-fg: #abb2bf;
	--sentio-sh-comment: #5c6370;
	--sentio-sh-keyword: #c678dd;
	--sentio-sh-string: #98c379;
	--sentio-sh-number: #d19a66;
	--sentio-sh-function: #61afef;
	--sentio-sh-operator: #56b6c2;
	--sentio-sh-tag: #e06c75;
	--sentio-sh-attr: #d19a66;
	--sentio-sh-selector: #e06c75;
	--sentio-sh-property: #61afef;
	--sentio-sh-punctuation: #abb2bf;
	--sentio-sh-line-num: #636d83;
	--sentio-sh-header-bg: #21252b;
	--sentio-sh-header-fg: #9da5b4;
	--sentio-sh-hl-bg: rgba(99,109,131,0.2);
	--sentio-sh-hl-border: #528bff;
	--sentio-sh-scrollbar: #4b5263;
	--sentio-sh-selection: rgba(62,68,81,0.7);
}

/* Monokai */
.sentio-sh--theme-monokai .sentio-sh {
	--sentio-sh-bg: #272822;
	--sentio-sh-fg: #f8f8f2;
	--sentio-sh-comment: #75715e;
	--sentio-sh-keyword: #f92672;
	--sentio-sh-string: #e6db74;
	--sentio-sh-number: #ae81ff;
	--sentio-sh-function: #a6e22e;
	--sentio-sh-operator: #f92672;
	--sentio-sh-tag: #f92672;
	--sentio-sh-attr: #a6e22e;
	--sentio-sh-selector: #a6e22e;
	--sentio-sh-property: #66d9ef;
	--sentio-sh-punctuation: #f8f8f2;
	--sentio-sh-line-num: #90908a;
	--sentio-sh-header-bg: #1e1f1c;
	--sentio-sh-header-fg: #a59f85;
	--sentio-sh-hl-bg: rgba(117,113,94,0.2);
	--sentio-sh-hl-border: #f92672;
	--sentio-sh-scrollbar: #49483e;
	--sentio-sh-selection: rgba(73,72,62,0.7);
}

/* Dracula */
.sentio-sh--theme-dracula .sentio-sh {
	--sentio-sh-bg: #282a36;
	--sentio-sh-fg: #f8f8f2;
	--sentio-sh-comment: #6272a4;
	--sentio-sh-keyword: #ff79c6;
	--sentio-sh-string: #f1fa8c;
	--sentio-sh-number: #bd93f9;
	--sentio-sh-function: #50fa7b;
	--sentio-sh-operator: #ff79c6;
	--sentio-sh-tag: #ff79c6;
	--sentio-sh-attr: #50fa7b;
	--sentio-sh-selector: #50fa7b;
	--sentio-sh-property: #8be9fd;
	--sentio-sh-punctuation: #f8f8f2;
	--sentio-sh-line-num: #6272a4;
	--sentio-sh-header-bg: #21222c;
	--sentio-sh-header-fg: #6272a4;
	--sentio-sh-hl-bg: rgba(98,114,164,0.2);
	--sentio-sh-hl-border: #bd93f9;
	--sentio-sh-scrollbar: #44475a;
	--sentio-sh-selection: rgba(68,71,90,0.7);
}

/* GitHub Light */
.sentio-sh--theme-github-light .sentio-sh {
	--sentio-sh-bg: #ffffff;
	--sentio-sh-fg: #24292e;
	--sentio-sh-comment: #6a737d;
	--sentio-sh-keyword: #d73a49;
	--sentio-sh-string: #032f62;
	--sentio-sh-number: #005cc5;
	--sentio-sh-function: #6f42c1;
	--sentio-sh-operator: #d73a49;
	--sentio-sh-tag: #22863a;
	--sentio-sh-attr: #6f42c1;
	--sentio-sh-selector: #22863a;
	--sentio-sh-property: #005cc5;
	--sentio-sh-punctuation: #24292e;
	--sentio-sh-line-num: #babbbd;
	--sentio-sh-header-bg: #f6f8fa;
	--sentio-sh-header-fg: #586069;
	--sentio-sh-hl-bg: rgba(255,235,59,0.15);
	--sentio-sh-hl-border: #f9826c;
	--sentio-sh-scrollbar: #d1d5da;
	--sentio-sh-selection: rgba(3,47,98,0.1);
}

/* Solarized Light */
.sentio-sh--theme-solarized-light .sentio-sh {
	--sentio-sh-bg: #fdf6e3;
	--sentio-sh-fg: #657b83;
	--sentio-sh-comment: #93a1a1;
	--sentio-sh-keyword: #859900;
	--sentio-sh-string: #2aa198;
	--sentio-sh-number: #d33682;
	--sentio-sh-function: #268bd2;
	--sentio-sh-operator: #859900;
	--sentio-sh-tag: #268bd2;
	--sentio-sh-attr: #b58900;
	--sentio-sh-selector: #859900;
	--sentio-sh-property: #268bd2;
	--sentio-sh-punctuation: #657b83;
	--sentio-sh-line-num: #b4c4c4;
	--sentio-sh-header-bg: #eee8d5;
	--sentio-sh-header-fg: #93a1a1;
	--sentio-sh-hl-bg: rgba(181,137,0,0.1);
	--sentio-sh-hl-border: #b58900;
	--sentio-sh-scrollbar: #d3cbb7;
	--sentio-sh-selection: rgba(7,54,66,0.08);
}

/* Nord */
.sentio-sh--theme-nord .sentio-sh {
	--sentio-sh-bg: #2e3440;
	--sentio-sh-fg: #d8dee9;
	--sentio-sh-comment: #616e88;
	--sentio-sh-keyword: #81a1c1;
	--sentio-sh-string: #a3be8c;
	--sentio-sh-number: #b48ead;
	--sentio-sh-function: #88c0d0;
	--sentio-sh-operator: #81a1c1;
	--sentio-sh-tag: #81a1c1;
	--sentio-sh-attr: #8fbcbb;
	--sentio-sh-selector: #a3be8c;
	--sentio-sh-property: #88c0d0;
	--sentio-sh-punctuation: #eceff4;
	--sentio-sh-line-num: #4c566a;
	--sentio-sh-header-bg: #272c36;
	--sentio-sh-header-fg: #616e88;
	--sentio-sh-hl-bg: rgba(76,86,106,0.25);
	--sentio-sh-hl-border: #88c0d0;
	--sentio-sh-scrollbar: #4c566a;
	--sentio-sh-selection: rgba(76,86,106,0.5);
}

/* ─── Base ─── */
.sentio-sh {
	position: relative;
	background-color: var(--sentio-sh-bg, #282c34);
	color: var(--sentio-sh-fg, #abb2bf);
	overflow: hidden;
	border-radius: 8px;
	font-family: 'SF Mono', 'Fira Code', 'Fira Mono', 'Roboto Mono', 'Consolas', 'Monaco', 'Andale Mono', monospace;
}

.sentio-sh__pre {
	margin: 0;
	padding: 16px 20px;
	overflow: auto;
	background: transparent !important;
	color: inherit;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.6;
	tab-size: 4;
	-moz-tab-size: 4;
}

.sentio-sh__pre::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}
.sentio-sh__pre::-webkit-scrollbar-track {
	background: transparent;
}
.sentio-sh__pre::-webkit-scrollbar-thumb {
	background: var(--sentio-sh-scrollbar, #4b5263);
	border-radius: 4px;
}
.sentio-sh__pre::-webkit-scrollbar-thumb:hover {
	background: var(--sentio-sh-fg, #abb2bf);
}

.sentio-sh__code {
	display: block;
	white-space: pre;
	background: none !important;
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	text-shadow: none !important;
	transition: opacity 0.3s ease;
}

.sentio-sh code[class*="language-"],
.sentio-sh pre[class*="language-"] {
	background: none !important;
	color: var(--sentio-sh-fg) !important;
	text-shadow: none !important;
	font-family: inherit;
}

/* Word Wrap */
.sentio-sh--wrap .sentio-sh__code {
	white-space: pre-wrap;
	word-break: break-word;
}

/* ─── Prism Token Overrides (use CSS vars) ─── */
.sentio-sh .token.comment,
.sentio-sh .token.prolog,
.sentio-sh .token.doctype,
.sentio-sh .token.cdata {
	color: var(--sentio-sh-comment);
}

.sentio-sh .token.punctuation {
	color: var(--sentio-sh-punctuation);
}

.sentio-sh .token.property,
.sentio-sh .token.constant,
.sentio-sh .token.symbol,
.sentio-sh .token.deleted {
	color: var(--sentio-sh-property);
}

.sentio-sh .token.boolean,
.sentio-sh .token.number {
	color: var(--sentio-sh-number);
}

.sentio-sh .token.selector,
.sentio-sh .token.attr-name,
.sentio-sh .token.char,
.sentio-sh .token.builtin,
.sentio-sh .token.inserted {
	color: var(--sentio-sh-attr);
}

.sentio-sh .token.string,
.sentio-sh .token.attr-value {
	color: var(--sentio-sh-string);
}

.sentio-sh .token.operator,
.sentio-sh .token.entity,
.sentio-sh .token.url,
.sentio-sh .language-css .token.string,
.sentio-sh .style .token.string {
	color: var(--sentio-sh-operator);
}

.sentio-sh .token.atrule,
.sentio-sh .token.keyword {
	color: var(--sentio-sh-keyword);
}

.sentio-sh .token.function,
.sentio-sh .token.class-name {
	color: var(--sentio-sh-function);
}

.sentio-sh .token.tag {
	color: var(--sentio-sh-tag);
}

.sentio-sh .token.regex,
.sentio-sh .token.important,
.sentio-sh .token.variable {
	color: var(--sentio-sh-number);
}

.sentio-sh .token.important,
.sentio-sh .token.bold {
	font-weight: bold;
}

.sentio-sh .token.italic {
	font-style: italic;
}

.sentio-sh ::selection {
	background: var(--sentio-sh-selection);
}

/* ─── Line Numbers (override Prism plugin) ─── */
.sentio-sh .line-numbers .line-numbers-rows {
	border-right: 1px solid var(--sentio-sh-hl-bg, rgba(99,109,131,0.2));
	padding: 16px 0;
	top: 0;
}
.sentio-sh .line-numbers .line-numbers-rows > span:before {
	color: var(--sentio-sh-line-num, #636d83);
}
.sentio-sh .line-numbers-rows {
	left: -3.5em;
}
.sentio-sh pre.line-numbers {
	padding-left: 3.8em;
}

/* ─── Line Highlight (override Prism plugin) ─── */
.sentio-sh .line-highlight {
	background: var(--sentio-sh-hl-bg) !important;
	margin-top: 16px;
}

/* Highlight Style: Background (default) — handled above */

/* Highlight Style: Left Border (Diff #3) */
.sentio-sh--hl-border .sentio-sh .line-highlight {
	background: transparent !important;
	border-left: 3px solid var(--sentio-sh-hl-border);
}

/* Highlight Style: Glow (Diff #3) */
.sentio-sh--hl-glow .sentio-sh .line-highlight {
	background: var(--sentio-sh-hl-bg) !important;
	box-shadow: 0 0 12px var(--sentio-sh-hl-bg), 0 0 24px var(--sentio-sh-hl-bg);
}

/* ─── Focus Mode (Diff #4) — per-line dimming ─── */
.sentio-sh__line {
	display: inline;
}
.sentio-sh--focus .sentio-sh__line--dim {
	opacity: 0.3;
	transition: opacity 0.3s ease;
}
.sentio-sh--focus .sentio-sh__line--dim:hover {
	opacity: 0.7;
}

/* ─── Header (Diff #2) ─── */
.sentio-sh__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 16px;
	background-color: var(--sentio-sh-header-bg, #21252b);
	color: var(--sentio-sh-header-fg, #9da5b4);
	font-size: 12px;
	line-height: 1;
	border-bottom: 1px solid var(--sentio-sh-hl-bg, rgba(99,109,131,0.2));
	user-select: none;
}

.sentio-sh__header-left,
.sentio-sh__header-right {
	display: flex;
	align-items: center;
	gap: 10px;
}

/* Mac dots */
.sentio-sh__dots {
	display: flex;
	gap: 6px;
	align-items: center;
}
.sentio-sh__dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
}
.sentio-sh__dot--red    { background: #ff5f56; }
.sentio-sh__dot--yellow { background: #ffbd2e; }
.sentio-sh__dot--green  { background: #27c93f; }

/* Filename */
.sentio-sh__filename {
	font-size: 12px;
	opacity: 0.85;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 200px;
}

/* Language badge */
.sentio-sh__lang-badge {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 2px 8px;
	border-radius: 3px;
	background: var(--sentio-sh-hl-bg, rgba(99,109,131,0.2));
	color: var(--sentio-sh-header-fg, #9da5b4);
	font-weight: 600;
}

/* Plain header */
.sentio-sh__header--plain {
	padding: 10px 16px;
}

/* Minimal header */
.sentio-sh__header--minimal {
	padding: 6px 12px;
	justify-content: flex-end;
	background: transparent;
	position: absolute;
	top: 0;
	right: 0;
	left: auto;
	border: none;
	z-index: 2;
}

/* ─── Copy Button ─── */
.sentio-sh__copy {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: none;
	border-radius: 4px;
	background: transparent;
	color: var(--sentio-sh-header-fg, #9da5b4);
	cursor: pointer;
	transition: background 0.2s, color 0.2s, transform 0.15s;
	padding: 0;
	flex-shrink: 0;
}
.sentio-sh__copy:hover {
	background: var(--sentio-sh-hl-bg);
	color: var(--sentio-sh-fg, #abb2bf);
}
.sentio-sh__copy:active {
	transform: scale(0.92);
}
.sentio-sh__copy svg {
	width: 16px;
	height: 16px;
	pointer-events: none;
}

/* Floating copy (when no header) */
.sentio-sh__copy--float {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 3;
	opacity: 0;
	transition: opacity 0.2s, background 0.2s, color 0.2s;
}
.sentio-sh:hover .sentio-sh__copy--float {
	opacity: 1;
}

/* Copy success state */
.sentio-sh__copy--copied {
	color: #27c93f !important;
}

/* ─── Editor Placeholder ─── */
.sentio-sh__placeholder {
	padding: 30px 20px;
	text-align: center;
	color: #94a3b8;
	font-size: 13px;
	background: #f8fafc;
	border: 1px dashed #cbd5e1;
	border-radius: 6px;
}

/* ─── Responsive ─── */
@media (max-width: 767px) {
	.sentio-sh__pre {
		font-size: 12px;
		padding: 12px 14px;
	}
	.sentio-sh__header {
		padding: 6px 12px;
	}
	.sentio-sh__filename {
		max-width: 120px;
	}
}
