/**
 * CN Engine — Article experience styles.
 *
 * Used by the article modules: consent banner, key points, reactions,
 * listen (TTS) bar, article badges, inline related/newsletter.
 *
 * Brand variables with safe fallbacks so the theme's own values win when
 * defined; dark overrides are applied via html[data-theme="dark"].
 */

/* ---------- Consent banner ---------- */
.cn-consent-banner {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 99990;
	background: var(--cn-card, #ffffff);
	color: var(--cn-text, #1f2937);
	border-top: 1px solid var(--cn-border, #e5e7eb);

	padding: 14px 18px;
}
.cn-consent-banner__inner {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}
.cn-consent-banner__text {
	flex: 1 1 280px;
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--cn-muted, #6b7280);
}
.cn-consent-banner__text a {
	color: var(--cn-primary, #ea580c);
	text-decoration: underline;
}
.cn-consent-banner__actions {
	display: flex;
	gap: 10px;
	flex-shrink: 0;
}
.cn-consent-banner__btn {
	border: 1px solid var(--cn-border, #e5e7eb);
	border-radius: var(--cn-radius, 8px);
	padding: 9px 20px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	background: var(--cn-card, #ffffff);
	color: var(--cn-text, #1f2937);
}
.cn-consent-banner__btn--accept {
	background: var(--cn-primary, #ea580c);
	border-color: var(--cn-primary, #ea580c);
	color: #ffffff;
}
.cn-consent-banner__btn:hover {
	opacity: 0.9;
}

/* ---------- Key points ---------- */
.cn-key-points {
	background: var(--cn-card, #ffffff);
	border: 1px solid var(--cn-border, #e5e7eb);
	border-left: 4px solid var(--cn-primary, #ea580c);
	border-radius: var(--cn-radius, 8px);
	padding: 16px 20px;
	margin: 0 0 20px;
}
.cn-key-points__title {
	margin: 0 0 10px;
	font-size: 16px;
	font-weight: 700;
	color: var(--cn-text, #1f2937);
}
.cn-key-points ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.cn-key-points li {
	position: relative;
	padding-left: 22px;
	margin: 0 0 8px;
	font-size: 15px;
	line-height: 1.55;
	color: var(--cn-text, #1f2937);
}
.cn-key-points li:last-child {
	margin-bottom: 0;
}
.cn-key-points li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 8px;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--cn-primary, #ea580c);
}

/* ---------- Reactions ---------- */
.cn-reactions {
	border-top: 1px solid var(--cn-border, #e5e7eb);
	border-bottom: 1px solid var(--cn-border, #e5e7eb);
	padding: 16px 0;
	margin: 24px 0;
}
.cn-reactions__title {
	margin: 0 0 12px;
	font-size: 15px;
	font-weight: 700;
	color: var(--cn-text, #1f2937);
}
.cn-reactions__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.cn-reaction {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	border: 1px solid var(--cn-border, #e5e7eb);
	border-radius: 999px;
	background: var(--cn-card, #ffffff);
	color: var(--cn-text, #1f2937);
	padding: 8px 14px;
	font-size: 14px;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.cn-reaction:hover {
	border-color: var(--cn-primary, #ea580c);
}
.cn-reaction__emoji {
	font-size: 18px;
	line-height: 1;
}
.cn-reaction__count {
	font-weight: 700;
	min-width: 18px;
	text-align: center;
}
.cn-reactions.is-voted .cn-reaction {
	cursor: default;
	opacity: 0.75;
}
.cn-reactions.is-voted .cn-reaction:hover {
	border-color: var(--cn-border, #e5e7eb);
}
.cn-reactions__msg {
	margin: 10px 0 0;
	font-size: 13px;
	color: var(--cn-muted, #6b7280);
}

/* ---------- Listen (TTS) bar ---------- */
.cn-tts {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	background: var(--cn-card, #ffffff);
	border: 1px solid var(--cn-border, #e5e7eb);
	border-radius: var(--cn-radius, 8px);
	padding: 10px 14px;
	margin: 0 0 20px;
}
.cn-tts__label {
	font-size: 14px;
	font-weight: 700;
	color: var(--cn-text, #1f2937);
	margin-right: 2px;
}
.cn-tts__btn {
	border: 1px solid var(--cn-border, #e5e7eb);
	border-radius: var(--cn-radius, 8px);
	background: var(--cn-bg, #f9fafb);
	color: var(--cn-text, #1f2937);
	padding: 7px 14px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}
.cn-tts__btn--play {
	background: var(--cn-primary, #ea580c);
	border-color: var(--cn-primary, #ea580c);
	color: #ffffff;
}
.cn-tts__btn:hover {
	opacity: 0.9;
}
.cn-tts__btn:disabled {
	opacity: 0.5;
	cursor: default;
}
.cn-tts__rate {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--cn-muted, #6b7280);
}
.cn-tts__rate select {
	border: 1px solid var(--cn-border, #e5e7eb);
	border-radius: var(--cn-radius, 8px);
	background: var(--cn-card, #ffffff);
	color: var(--cn-text, #1f2937);
	padding: 6px 8px;
	font-size: 13px;
}
.cn-tts__status {
	width: 100%;
	font-size: 12px;
	color: var(--cn-muted, #6b7280);
}

/* ---------- Article badges ---------- */
.cn-verified-badge,
.cn-sponsored-badge {
	display: inline-block;
	vertical-align: middle;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	padding: 5px 10px;
	border-radius: 999px;
	margin-left: 10px;
	white-space: nowrap;
}
.cn-verified-badge.is-verified {
	background: #16a34a;
	color: #ffffff;
}
.cn-verified-badge.is-in-review {
	background: var(--cn-accent, #f97316);
	color: #ffffff;
}
.cn-sponsored-badge {
	background: var(--cn-muted, #6b7280);
	color: #ffffff;
}
.cn-dateline {
	margin: 0 0 14px;
	font-size: 15px;
	color: var(--cn-text, #1f2937);
}
.cn-correction-box {
	background: var(--cn-bg, #f9fafb);
	border: 1px dashed var(--cn-border, #e5e7eb);
	border-radius: var(--cn-radius, 8px);
	padding: 12px 16px;
	margin: 24px 0 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--cn-muted, #6b7280);
}
.cn-correction-box strong {
	color: var(--cn-text, #1f2937);
}

/* ---------- Inline blocks ---------- */
.cn-inline-related {
	margin: 22px 0;
	padding: 0;
	border: none;
	background: none;
}
.cn-inline-related__label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cn-primary, #ea580c);
	margin-bottom: 8px;
}
.cn-inline-related ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.cn-inline-related li {
	margin: 0 0 6px;
}
.cn-inline-related li:last-child {
	margin-bottom: 0;
}
.cn-inline-related a {
	color: var(--cn-text, #1f2937);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	line-height: 1.5;
}
.cn-inline-related a::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: 8px;
	vertical-align: -1px;
	background-color: var(--cn-primary, #ea580c);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.5 4.5L21 12l-7.5 7.5-1.8-1.8 4.4-4.4H4v-2.6h12.1l-4.4-4.4z'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.5 4.5L21 12l-7.5 7.5-1.8-1.8 4.4-4.4H4v-2.6h12.1l-4.4-4.4z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.cn-inline-related a:hover {
	color: var(--cn-primary, #ea580c);
	text-decoration: underline;
}
.cn-inline-newsletter {
	margin: 20px 0;
}

/* ---------- Dark theme overrides ---------- */
html[data-theme="dark"] {
	--cn-card: #1e1e1e;
	--cn-bg: #141414;
	--cn-text: #e8e8e8;
	--cn-muted: #a8a8a8;
	--cn-border: #333333;
}
html[data-theme="dark"] .cn-consent-banner {

}
html[data-theme="dark"] .cn-key-points li::before {
	background: var(--cn-primary, #ea580c);
}

/* ===== MODERN TTS + REACTIONS (2026-10-18) ===== */
.cn-tts{display:flex;align-items:center;flex-wrap:wrap;gap:12px;background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1px solid #fed7aa;border-radius:16px;padding:16px 20px;margin:0 0 24px;box-shadow:0 2px 12px rgba(234,88,12,.08)}
.cn-tts__label{font-size:15px;font-weight:800;color:#9a3412;display:flex;align-items:center;gap:8px}
.cn-tts__label::before{content:"";width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#EA580C,#f97316);display:inline-block;box-shadow:0 2px 8px rgba(234,88,12,.3)}
.cn-tts__btn{border:1.5px solid #fed7aa;border-radius:24px;background:#fff;color:#9a3412;padding:9px 18px;font-size:13.5px;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.cn-tts__btn:hover{border-color:#EA580C;color:#EA580C;transform:translateY(-1px);box-shadow:0 2px 8px rgba(234,88,12,.2)}
.cn-tts__btn--play{background:linear-gradient(135deg,#EA580C,#f97316);border-color:transparent;color:#fff;box-shadow:0 2px 12px rgba(234,88,12,.3)}
.cn-tts__btn--play:hover{color:#fff;box-shadow:0 4px 16px rgba(234,88,12,.4)}
.cn-reactions{background:#fff;border:1px solid #e8e8e8;border-radius:16px;padding:24px;margin:28px 0;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.cn-reactions__title{margin:0 0 16px;font-size:16px;font-weight:800;color:#111;display:flex;align-items:center;gap:8px}
.cn-reactions__title::before{content:"";width:8px;height:8px;border-radius:50%;background:#EA580C;display:inline-block}
.cn-reactions__buttons{display:flex;flex-wrap:wrap;gap:10px}
.cn-reaction{display:inline-flex;align-items:center;gap:8px;border:1.5px solid #e8e8e8;border-radius:24px;background:#fafafa;color:#333;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}
.cn-reaction:hover{border-color:#EA580C;background:#fff7ed;transform:translateY(-2px);box-shadow:0 4px 12px rgba(234,88,12,.15)}
.cn-reaction__emoji{font-size:20px;line-height:1}
.cn-reaction__count{font-weight:800;min-width:20px;text-align:center;background:#f0f0f0;border-radius:12px;padding:2px 8px;font-size:12px}

/* TTS: professional SVG icons with clear colors */
.cn-tts__btn{display:inline-flex;align-items:center;gap:8px}
.cn-tts__btn svg{width:16px;height:16px;fill:currentColor;flex-shrink:0}
.cn-tts__btn--play svg{fill:#fff}
.cn-tts__btn:not(.cn-tts__btn--play) svg{fill:#9a3412}
.cn-tts__btn:disabled{opacity:.45}
.cn-tts__btn:disabled svg{fill:#999}
/* Reactions: modern professional, no hover shadow */
.cn-reaction:hover{box-shadow:none !important;transform:none !important}
.cn-reaction{box-shadow:0 1px 3px rgba(0,0,0,.06)}
.cn-reaction__emoji{font-size:20px}

/* Reactions: SVG icon styling */
.cn-reaction__icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}
.cn-reaction__icon svg{width:20px;height:20px;fill:#EA580C}
.cn-reaction__emoji{display:none}

/* Bookmark: modern SVG icon */
.cn-bookmark__icon{display:inline-flex;align-items:center;justify-content:center}
.cn-bookmark__icon svg{width:16px;height:16px;fill:currentColor}

/* ===== MOBILE: TTS bar no overflow ===== */
@media(max-width:768px){
.cn-tts{padding:14px 16px;gap:8px}
.cn-tts__label{font-size:14px;width:100%;margin-bottom:4px}
.cn-tts__btn{padding:8px 14px;font-size:12.5px;flex:1;justify-content:center;min-width:0}
.cn-tts__btn svg{width:14px;height:14px}
.cn-tts__rate{margin-left:0;width:100%;justify-content:flex-start;margin-top:4px}
}

/* ===== FIX: Mobile overflow (2026-10-18) ===== */
@media(max-width:768px){
.cn-reactions{padding:18px 16px;margin:20px 0;overflow:hidden}
.cn-reactions__buttons{gap:8px}
.cn-reaction{padding:8px 12px;font-size:13px}
.cn-reaction__icon{width:18px;height:18px}
.cn-reaction__icon svg{width:16px;height:16px}
.cn-tts{overflow:hidden;max-width:100%}
}

/* ===== TTS improvements (2026-10-18) ===== */
/* Speaker icon inside the orange circle (was empty/dummy) */
.cn-tts__label::before{display:none !important}
.cn-tts__icon{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#EA580C,#f97316);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(234,88,12,.3);flex-shrink:0}
.cn-tts__icon svg{width:20px;height:20px;fill:#fff}
/* Voice selector */
.cn-tts__voice{font-size:13px;font-weight:700;color:#9a3412;display:flex;align-items:center;gap:6px}
.cn-tts__voice select{border:1.5px solid #fed7aa;border-radius:20px;background:#fff;color:#9a3412;padding:7px 12px;font-size:13px;font-weight:600;cursor:pointer;max-width:160px}

/* ===== Post-sidebar widgets (2026-10-18 / 2026-10-20) ===== */
/* Sticky on/off lives in each widget's settings; it only applies when the
   widget is the LAST one in the sidebar (checked in PHP), so widgets can
   never overlap each other. The .cn-sticky rule itself lives in the theme
   (article-v2.css) because the sidebar layout is the theme's domain. */
/* Reading Companion card */
.cn-rc{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:20px}
.cn-rc__kicker{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:1.5px;color:#65a30d;text-transform:uppercase;margin-bottom:8px}
.cn-rc__kicker svg{width:16px;height:16px;fill:#65a30d}
.cn-rc__title{font-size:17px;font-weight:800;color:#0f172a;margin-bottom:12px}
.cn-rc__meta{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.cn-rc__pct{font-size:22px;font-weight:800;color:#0f172a}
.cn-rc__time{font-size:12.5px;color:#94a3b8}
.cn-rc__bar{height:6px;background:#f1f5f9;border-radius:3px;overflow:hidden;margin-bottom:16px}
.cn-rc__bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,#65a30d,#84cc16);border-radius:3px;transition:width .2s}
.cn-rc__comfort{font-size:13px;color:#64748b;margin-bottom:10px}
.cn-rc__sizes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:10px}
.cn-rc__sizes button{border:1.5px solid #e2e8f0;border-radius:10px;background:#fff;padding:10px;font-weight:800;color:#334155;cursor:pointer;font-size:15px;transition:all .15s}
.cn-rc__sizes button.is-active{border-color:#65a30d;background:#f7fee7;color:#3f6212;box-shadow:0 0 0 2px rgba(101,163,13,.15)}
.cn-rc__mark{width:100%;border:1.5px solid #e2e8f0;border-radius:10px;background:#fff;padding:12px;font-weight:700;color:#334155;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;transition:all .15s}
.cn-rc__mark svg{width:18px;height:18px;fill:#64748b}
.cn-rc__mark.is-done{border-color:#65a30d;background:#f7fee7;color:#3f6212}
.cn-rc__mark.is-done svg{fill:#65a30d}
/* Share widget card */
.cn-share-widget{background:#fff;border:1px solid #f1f5f9;border-radius:16px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.cn-share-widget__kicker{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:1.5px;color:#65a30d;text-transform:uppercase;margin-bottom:8px}
.cn-share-widget__kicker svg{width:16px;height:16px;color:#65a30d}
.cn-share-widget__title{font-size:17px;font-weight:800;color:#0f172a;margin-bottom:14px}
.cn-share-widget__btns{display:flex;gap:10px;flex-wrap:wrap}
.cn-share-widget__btn{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:transform .15s;flex-shrink:0}
.cn-share-widget__btn:hover{transform:scale(1.1)}
.cn-share-widget__btn svg{width:20px;height:20px;fill:#fff}

/* Volume control in TTS bar (2026-10-18) */
.cn-tts__vol{font-size:13px;font-weight:700;color:#9a3412;display:flex;align-items:center;gap:6px}
.cn-tts__vol input[type="range"]{width:80px;accent-color:#EA580C;cursor:pointer}
@media(max-width:768px){
.cn-tts__vol input[type="range"]{width:60px}
.cn-tts__voice select{max-width:120px}
}

/* ===== TTS compact single-row: NEVER wraps (2026-10-18) ===== */
.cn-tts--compact{display:flex !important;align-items:center !important;gap:8px !important;flex-wrap:nowrap !important;overflow-x:auto !important;overflow-y:hidden !important;padding:10px 14px !important;scrollbar-width:none}
.cn-tts--compact::-webkit-scrollbar{display:none}
.cn-tts--compact > *{flex-shrink:0 !important}
.cn-tts__title{font-size:13.5px;font-weight:800;color:#9a3412;white-space:nowrap}
.cn-tts--compact .cn-tts__icon{width:30px;height:30px}
.cn-tts--compact .cn-tts__icon svg{width:17px;height:17px}
.cn-tts--compact .cn-tts__btn{width:34px;height:34px;border-radius:50%;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid #fed7aa;background:#fff;cursor:pointer}
.cn-tts--compact .cn-tts__btn svg{width:15px;height:15px}
.cn-tts--compact .cn-tts__btn--play{background:linear-gradient(135deg,#EA580C,#f97316);border-color:transparent}
.cn-tts--compact .cn-tts__btn--play svg{fill:#fff}
/* Stop state: red gradient when playing (2026-10-18 Play/Stop toggle) */
.cn-tts--compact .cn-tts__btn--stop{background:linear-gradient(135deg,#dc2626,#ef4444)!important;border-color:transparent!important}
.cn-tts--compact .cn-tts__btn--stop svg{fill:#fff!important}
.cn-tts--compact .cn-tts__btn--stop:hover{box-shadow:0 4px 16px rgba(220,38,38,.4)}
.cn-tts__sel{border:1.5px solid #fed7aa;border-radius:16px;background:#fff;color:#9a3412;padding:6px 8px;font-size:12px;font-weight:700;cursor:pointer;max-width:280px;min-width:180px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.cn-tts__sel--sm{max-width:64px;min-width:0}
.cn-tts--compact .cn-tts__vol{width:70px;accent-color:#EA580C}
.cn-tts__status{font-size:12px;color:#9a3412;white-space:nowrap}
.cn-tts__highlight{display:none}
/* Speaking highlight: line being read glows (2026-10-18) */
.cn-speaking{position:relative}
.cn-speaking::after{content:"";position:absolute;left:-8px;right:-8px;top:-4px;bottom:-4px;background:rgba(234,88,12,.08);border-left:3px solid #EA580C;border-radius:4px;pointer-events:none;animation:cn-speak-pulse 1.2s ease-in-out infinite}
@keyframes cn-speak-pulse{0%,100%{opacity:.6}50%{opacity:1}}
/* Word-by-word highlight synced with voice (2026-10-19): the exact word being spoken glows */
.cn-word{border-radius:3px;padding:0 1px;transition:background .15s ease,color .15s ease}
.cn-word-active{background:#EA580C!important;color:#fff!important;box-shadow:0 1px 6px rgba(234,88,12,.45)}

/* ===== CAAW Table of Contents widget (2026-10-20) ===== */
.cn-tocw{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:18px}
.cn-tocw__title{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#0f172a;margin-bottom:12px}
.cn-tocw__list{list-style:none;margin:0;padding:0}
.cn-tocw__item a{display:flex;gap:10px;align-items:baseline;text-decoration:none;color:#334155;font-size:14px;font-weight:500;padding:8px 10px;border-radius:8px;border-left:3px solid transparent}
.cn-tocw__item a:hover{background:#fff7ed}
.cn-tocw__item a.is-active{background:#fff7ed;border-left-color:#EA580C;color:#0f172a;font-weight:700}
.cn-tocw__item--h3 a{padding-left:22px}
.cn-tocw__num{font-size:12px;font-weight:800;color:#EA580C;flex:none}
.cn-tocw__text{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* ===== CAAW Related Stories widget (2026-10-20) — sticky, place last ===== */
.cn-relw{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:18px}
.cn-relw__title{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#0f172a;margin-bottom:14px}
.cn-relw__item{display:flex;gap:12px;text-decoration:none;margin-bottom:14px;align-items:flex-start}
.cn-relw__item:last-child{margin-bottom:0}
.cn-relw__thumb{width:96px;height:68px;flex:none;border-radius:8px;overflow:hidden;background:#f1f5f9;border:1px solid #e8e8e8}
.cn-relw__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.cn-relw__thumb--empty{background:linear-gradient(135deg,#ffedd5,#fed7aa)}
.cn-relw__text{min-width:0;display:flex;flex-direction:column}
.cn-relw__cat{font-size:10px;font-weight:800;letter-spacing:.05em;color:#EA580C;text-transform:uppercase;margin-bottom:4px}
.cn-relw__t{font-size:14px;font-weight:700;line-height:1.4;color:#0f172a;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.cn-relw__item:hover .cn-relw__t{color:#EA580C}

/* ===== TOC widget collapse: N by default, arrow expands (2026-10-20) ===== */
.cn-tocw[data-cn-toc-collapsed="1"] .cn-tocw__item--extra{display:none}
.cn-tocw__item--toggle{display:flex;align-items:center;gap:4px}
.cn-tocw__item--toggle a{flex:1;min-width:0}
.cn-tocw__toggle{flex:none;width:28px;height:28px;border-radius:50%;border:1px solid #e8e8e8;background:#fff;color:#64748b;cursor:pointer;display:grid;place-items:center;padding:0}
.cn-tocw__toggle:hover{border-color:#EA580C;color:#EA580C}
.cn-tocw__toggle svg{width:14px;height:14px;transition:transform .2s}
.cn-tocw[data-cn-toc-collapsed="0"] .cn-tocw__toggle svg{transform:rotate(180deg)}
