/*
 * The knowledge base (/docs/) on the theme's tokens. Loaded only on its pages, after Echo
 * Knowledge Base's own CSS (inc/knowledge-base.php).
 *
 * Echo KB prints fixed colours three ways: stylesheets, an inline <style> block keyed by
 * IDs (some with !important), and style="" attributes on the main page's elements. The
 * rules below repeat Echo KB's selectors so they win by coming later. Where Echo KB uses
 * !important or a style="" attribute, only !important can win, and those are the only
 * places it is used here.
 */

/* ---------- frame: no fixed panels; text and links from the theme ---------- */

#epkb-modular-main-page-container,
#eckb-archive-page-container,
#eckb-article-page-container-v2 {
	color: var(--color-text);
	font-family: var(--font-body);
}

#eckb-article-page-container-v2 #eckb-article-left-sidebar,
#eckb-article-page-container-v2 #eckb-article-content,
#eckb-article-page-container-v2 #eckb-article-right-sidebar,
#eckb-archive-page-container #eckb-archive-left-sidebar,
#eckb-archive-page-container #eckb-archive-content,
#eckb-archive-page-container #eckb-archive-right-sidebar {
	background-color: transparent;
}

#eckb-article-page-container-v2 #eckb-article-body,
#eckb-archive-page-container #eckb-archive-body {
	max-width: var(--container-max);
	margin-inline: auto;
}

/* ---------- search band (main page and categories) ---------- */

#epkb-modular-main-page-container #epkb-ml__module-search,
#eckb-archive-page-container #eckb-archive-header #epkb-ml__module-search {
	background-color: var(--color-surface) !important;
	border-bottom: 1px solid var(--color-divider);
}

#epkb-ml__module-search .epkb-ml-search-title {
	color: var(--color-text);
	font-family: var(--font-heading);
	font-weight: var(--font-heading-weight);
	letter-spacing: -0.015em;
}

#epkb-modular-main-page-container #epkb-ml__module-search .epkb-ml-search-title {
	font-size: clamp(34px, 4vw, 52px);
}

#eckb-archive-page-container #epkb-ml__module-search .epkb-ml-search-title {
	font-size: 20px;
}

#epkb-ml__module-search #epkb-ml-search-classic-layout #epkb-ml-search-form #epkb-ml-search-box {
	background-color: var(--color-divider) !important;
	border-radius: var(--radius-md);
}

#epkb-ml__module-search #epkb-ml-search-classic-layout .epkb-ml-search-box__input {
	background-color: var(--color-bg) !important;
	color: var(--color-text);
}

#epkb-ml__module-search #epkb-ml-search-classic-layout .epkb-ml-search-box__input::placeholder {
	color: var(--color-neutral-400);
}

#epkb-ml__module-search #epkb-ml-search-classic-layout .epkb-ml-search-box__btn {
	background-color: var(--color-accent-fill) !important;
	color: var(--color-on-accent);
}

#epkb-ml__module-search #epkb-ml-search-classic-layout .epkb-ml-search-box__btn:hover {
	background-color: var(--color-accent-fill-hover) !important;
}

#epkb-ml__module-search #epkb-ml-search-results {
	background-color: var(--color-surface);
	color: var(--color-text);
	border-color: var(--color-divider);
}

/* ---------- main page: one card per plugin (style="" attributes, hence !important) ---------- */

#epkb-modular-main-page-container .epkb-top-category-box {
	background-color: var(--color-surface) !important;
	border-color: var(--color-divider) !important;
	border-radius: var(--radius-lg) !important;
}

#epkb-modular-main-page-container .epkb-top-category-box .section-head {
	background-color: transparent !important;
	border-bottom-color: var(--color-divider) !important;
	border-bottom-width: 1px !important;
}

#epkb-modular-main-page-container .epkb-category-level-1,
#epkb-modular-main-page-container .epkb-cat-name {
	color: var(--color-text) !important;
	font-family: var(--font-heading);
	font-weight: var(--font-heading-weight);
	font-size: 20px;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

#epkb-modular-main-page-container .epkb-category-level-2-3__cat-name,
#epkb-modular-main-page-container .epkb-category-level-2-3__cat-icon {
	color: var(--color-text) !important;
}

#epkb-modular-main-page-container .eckb-article-title {
	color: var(--color-text) !important;
}

#epkb-modular-main-page-container .eckb-article-title__icon {
	color: var(--color-accent) !important;
}

#epkb-modular-main-page-container .epkb-mp-article:hover .eckb-article-title__text,
#epkb-modular-main-page-container .epkb-category-level-2-3:hover .epkb-category-level-2-3__cat-name {
	color: var(--color-accent);
}

/* ---------- category pages ---------- */

#eckb-archive-page-container .eckb-category-archive-title-container,
#eckb-archive-page-container .eckb-category-archive-title-container h1 {
	color: var(--color-text);
	font-family: var(--font-heading);
	font-weight: var(--font-heading-weight);
	letter-spacing: -0.015em;
}

#eckb-archive-page-container .eckb-category-archive-title-icon {
	display: none;
}

#eckb-archive-page-container .eckb-category-archive-description,
#eckb-archive-page-container .eckb-sub-category-description,
#eckb-archive-page-container .eckb-sub-category-article-count {
	color: var(--color-neutral-400);
}

#eckb-archive-page-container .eckb-sub-category-container {
	background-color: var(--color-surface);
	border-color: var(--color-divider);
	border-radius: var(--radius-lg);
}

#eckb-archive-page-container .eckb-sub-category-title,
#eckb-archive-page-container .eckb-category-archive-articles-list-title {
	color: var(--color-text);
	font-family: var(--font-heading);
	font-weight: var(--font-heading-weight);
}

#eckb-archive-page-container .eckb-article-title,
#eckb-archive-page-container .epkb-article__text {
	color: var(--color-text);
}

#eckb-archive-page-container .eckb-category-archive-arrow,
#eckb-archive-page-container .eckb-article-title__icon,
#eckb-archive-page-container .epkb-article__icon,
#eckb-archive-page-container .eckb-sub-category-show-all-link {
	color: var(--color-accent);
}

/* Echo KB colours this link with a 2-ID, 4-class selector; the same selector, later, wins. */
#eckb-archive-page-container #eckb-archive-content .eckb-sub-category-list-container .eckb-sub-category-container .eckb-sub-category-footer .eckb-sub-category-show-all-link {
	color: var(--color-accent);
}

/* ---------- navigation sidebar (categories and articles) ---------- */

#epkb-sidebar-container-v2 {
	background-color: var(--color-surface);
	border-color: var(--color-divider);
	border-radius: var(--radius-lg);
	box-shadow: none;
}

#epkb-sidebar-container-v2 .epkb-sidebar__cat__top-cat__heading-container {
	background-color: transparent;
	border-bottom-color: var(--color-divider);
}

#epkb-sidebar-container-v2 .epkb-sidebar__heading__inner .epkb-sidebar__heading__inner__name,
#epkb-sidebar-container-v2 .epkb-sidebar__heading__inner .epkb-sidebar__heading__inner__cat-name {
	color: var(--color-text);
	font-weight: 600;
}

#epkb-sidebar-container-v2 .epkb-category-level-2-3 .epkb-category-level-2-3__cat-name,
#epkb-sidebar-container-v2 .epkb_sidebar_expand_category_icon {
	color: var(--color-neutral-400) !important;
}

#epkb-sidebar-container-v2 .epkb-sidebar__cat__top-cat__body-container .epkb-articles .eckb-article-title {
	color: var(--color-text) !important;
}

#epkb-sidebar-container-v2 .epkb-sidebar__cat__top-cat__body-container .epkb-articles .active {
	background-color: var(--color-accent-soft);
	border-radius: var(--radius-sm);
}

#epkb-sidebar-container-v2 .epkb-sidebar__cat__top-cat__body-container .epkb-articles .active .eckb-article-title {
	color: var(--color-accent) !important;
}

#epkb-sidebar-container-v2 .eckb-article-title__icon {
	color: var(--color-neutral-400);
}

/* ---------- article header: breadcrumb, tools, meta ---------- */

#eckb-article-page-container-v2 .eckb-breadcrumb-link,
#eckb-archive-page-container .eckb-breadcrumb-link {
	color: var(--color-neutral-400);
}

#eckb-article-page-container-v2 .eckb-breadcrumb-link:hover,
#eckb-archive-page-container .eckb-breadcrumb-link:hover {
	color: var(--color-accent);
}

/* The breadcrumb's text sits in a span with style="color: #000000". */
#eckb-article-page-container-v2 .eckb-breadcrumb-link span,
#eckb-archive-page-container .eckb-breadcrumb-link span {
	color: inherit !important;
}

#eckb-article-page-container-v2 .eckb-breadcrumb-nav,
#eckb-archive-page-container .eckb-breadcrumb-nav {
	color: var(--color-text);
}

#eckb-article-page-container-v2 .eckb-article-content-toolbar-button-container {
	background-color: transparent;
	border-color: transparent;
}

#eckb-article-page-container-v2 .eckb-article-content-toolbar-button-container .eckb-toolbar-button-text,
#eckb-article-page-container-v2 .eckb-article-content-toolbar-button-container .eckb-toolbar-button-icon {
	color: var(--color-neutral-400);
}

#eckb-article-page-container-v2 .eckb-article-content-toolbar-button-container:hover .eckb-toolbar-button-text,
#eckb-article-page-container-v2 .eckb-article-content-toolbar-button-container:hover .eckb-toolbar-button-icon {
	color: var(--color-accent);
}

#eckb-article-page-container-v2 .eckb-article-content-last-updated-date-container,
#eckb-article-page-container-v2 .eckb-article-content-created-date-container {
	color: var(--color-neutral-400);
}

#eckb-article-page-container-v2 #eckb-article-content-title-container h1,
#eckb-article-page-container-v2 .eckb-article-title h1 {
	color: var(--color-text);
	font-size: clamp(30px, 3.2vw, 42px);
	line-height: 1.15;
	margin-bottom: 8px;
}

/* ---------- table of contents ----------
 * Echo KB prints these colours in a <style> inside the page body, after this file, so
 * equal specificity would lose: the extra container ID wins regardless of order. */

#eckb-article-page-container-v2 #eckb-article-body .eckb-article-toc__inner {
	background-color: var(--color-surface);
	border-color: var(--color-divider);
	border-radius: var(--radius-md);
}

#eckb-article-page-container-v2 #eckb-article-body .eckb-article-toc__title {
	color: var(--color-text);
	font-weight: 600;
}

#eckb-article-page-container-v2 #eckb-article-body .eckb-article-toc__inner a {
	color: var(--color-neutral-400);
	border-radius: var(--radius-sm);
}

#eckb-article-page-container-v2 #eckb-article-body .eckb-article-toc ul a:hover {
	background-color: var(--color-accent-soft);
	color: var(--color-accent);
}

#eckb-article-page-container-v2 #eckb-article-body .eckb-article-toc ul a.active {
	background-color: var(--color-accent-soft);
	color: var(--color-accent);
}

/* ---------- article text: what bin/docs.sh publishes (AUTHORING.md's Markdown) ---------- */

#eckb-article-content-body {
	color: var(--color-text);
	font-size: 16px;
	line-height: 1.7;
	max-width: 72ch;
}

#eckb-article-content-body > * + * {
	margin-top: 1em;
}

#eckb-article-content-body p,
#eckb-article-content-body ul,
#eckb-article-content-body ol {
	margin-bottom: 0;
}

#eckb-article-content-body h2 {
	font-size: 24px;
	line-height: 1.25;
	margin-top: 2em;
	margin-bottom: 0;
}

#eckb-article-content-body h3 {
	font-size: 19px;
	line-height: 1.3;
	margin-top: 1.6em;
	margin-bottom: 0;
}

#eckb-article-content-body h4 {
	font-size: 16px;
	margin-top: 1.4em;
	margin-bottom: 0;
}

#eckb-article-content-body > h2:first-child,
#eckb-article-content-body > h3:first-child {
	margin-top: 0;
}

#eckb-article-content-body a {
	color: var(--color-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

#eckb-article-content-body ul,
#eckb-article-content-body ol {
	padding-left: 1.4em;
}

#eckb-article-content-body li + li {
	margin-top: 0.4em;
}

/* A "- " line under a numbered step: a note belonging to that step. */
#eckb-article-content-body li .sub {
	display: inline-block;
	margin-top: 0.2em;
	color: var(--color-neutral-400);
	font-size: 15px;
}

#eckb-article-content-body code {
	font: 0.88em ui-monospace, SFMono-Regular, Menlo, monospace;
	padding: 1px 6px;
	border-radius: 4px;
	background: var(--color-accent-soft);
	color: var(--color-text);
}

#eckb-article-content-body pre {
	padding: 14px 16px;
	overflow-x: auto;
	background: var(--color-surface);
	border: 1px solid var(--color-divider);
	border-radius: var(--radius-md);
	font-size: 14px;
	line-height: 1.55;
}

#eckb-article-content-body pre code {
	padding: 0;
	background: none;
	font-size: inherit;
}

#eckb-article-content-body table {
	display: block;
	width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 1.5;
}

#eckb-article-content-body th,
#eckb-article-content-body td {
	padding: 10px 12px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--color-divider);
}

#eckb-article-content-body th {
	font-weight: 600;
	background: var(--color-surface);
	white-space: nowrap;
}

/* Callouts: "> **Note:**" and "> **Warning:**". */
#eckb-article-content-body blockquote {
	margin-left: 0;
	margin-right: 0;
	padding: 12px 16px;
	border-left: 3px solid var(--color-accent);
	border-radius: 0 var(--radius-md) var(--radius-md) 0;
	background: var(--color-accent-soft);
}

#eckb-article-content-body blockquote p {
	margin: 0;
}

#eckb-article-content-body .hp-doc-figure {
	margin: 1.6em 0;
}

#eckb-article-content-body .hp-doc-figure img {
	display: block;
	max-width: 100%;
	height: auto;
	border: 1px solid var(--color-divider);
	border-radius: var(--radius-md);
}
