/*
Theme Name: Fault Code Database
Theme URI: https://faultcodedatabase.com/
Author: Fault Code Database
Description: Custom block theme for faultcodedatabase.com — a cross-brand appliance error/fault-code lookup database. Diagnostic-instrument design: dark instrument-panel chrome, monospaced code readouts, amber signal accent, safety-first callouts, trust-first entry mastheads. System fonts only, no page builders, no external assets. Light + dark aware.
Version: 2.1.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: faultcodedb
*/

/* ============================================================
   Fault Code Database — theme v2  (marker: fcdb-v2-instrument)
   Semantic tokens are remapped for dark mode by overriding the
   WP preset custom properties, so content, template, and block
   colors all flip together (design-system §1.7 / §6.1).
   ============================================================ */

:root {
	--fc-shadow: 0 1px 2px rgba(18, 34, 46, 0.06), 0 6px 20px rgba(18, 34, 46, 0.06);
	--fc-shadow-hover: 0 2px 6px rgba(18, 34, 46, 0.10), 0 14px 34px rgba(18, 34, 46, 0.12);
	--fc-radius: 12px;
	--fc-radius-sm: 6px;
	--fc-ink-soft: #5a6b78;
	--fc-safety-wash: #fdf3f2;
	--fc-signal-wash: #fef6e6;
	--fc-panel-line: #33505f;
	--fc-header-fg: #eef4f7;
}

@media (prefers-color-scheme: dark) {
	:root {
		/* Remap presets: keep hue, lift luminance to AA on dark. */
		--wp--preset--color--muted: #0d1a22;   /* app background */
		--wp--preset--color--surface: #14252f;  /* cards */
		--wp--preset--color--ink: #e8eef2;       /* body text */
		--wp--preset--color--border: #2a4150;
		--wp--preset--color--panel: #0a1620;
		--wp--preset--color--brand: #57bcd6;     /* teal, AA on dark surfaces */
		--wp--preset--color--signal: #f7b23e;
		--wp--preset--color--danger: #f0685f;

		--fc-ink-soft: #9db0bc;
		--fc-safety-wash: #2a1b1a;
		--fc-signal-wash: #2a2113;
		--fc-panel-line: #24404f;
		--fc-header-fg: #eef4f7;
		--fc-shadow: 0 1px 2px rgba(0,0,0,0.4), 0 8px 24px rgba(0,0,0,0.35);
		--fc-shadow-hover: 0 2px 6px rgba(0,0,0,0.5), 0 16px 40px rgba(0,0,0,0.45);
	}
}

/* ---- Base rhythm ---- */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

:where(.wp-block-group, main) { }

/* Link underline-grow micro-interaction (body links only) */
main a:where(:not(.wp-block-button__link):not(.fcdb-card-link)) {
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1px;
	transition: text-decoration-color 0.15s ease;
}

/* Visible focus ring everywhere (accessibility / trust) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
summary:focus-visible,
.wp-block-search__input:focus-visible {
	outline: 3px solid var(--wp--preset--color--signal);
	outline-offset: 2px;
	border-radius: 3px;
}

/* ============================================================
   Instrument-panel header
   ============================================================ */
.fcdb-panel {
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
header.fcdb-panel {
	position: sticky;
	top: 0;
	z-index: 50;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
}
.fcdb-panel a { color: #cfe6ef; }
.fcdb-panel a:hover { color: #fff; }

/* Real wordmark / logo (marker element for verification) */
.fcdb-logo {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	text-decoration: none !important;
	color: var(--fc-header-fg) !important;
	font-weight: 750;
	font-size: 1.32rem;
	letter-spacing: -0.02em;
	line-height: 1;
}
.fcdb-logo:hover { color: #fff !important; }
.fcdb-logo svg { display: block; flex: none; }
.fcdb-logo .fcdb-mark { color: var(--wp--preset--color--signal); }
.fcdb-tagline {
	color: var(--wp--preset--color--signal);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	margin: 0.15rem 0 0;
	opacity: 0.92;
}

/* Header nav */
.fcdb-panel .wp-block-navigation {
	font-size: 0.95rem;
	font-weight: 550;
}
.fcdb-panel .wp-block-navigation a { text-decoration: none; }
.fcdb-panel .wp-block-navigation a:hover { text-decoration: underline; text-underline-offset: 0.25em; }

/* Header (secondary) search — compact, always reachable */
.fcdb-header-search .wp-block-search__inside-wrapper {
	border: 1px solid var(--fc-panel-line);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.05);
	overflow: hidden;
}
.fcdb-header-search .wp-block-search__input {
	background: transparent;
	border: 0;
	color: var(--fc-header-fg);
	padding: 0.4rem 0.5rem 0.4rem 0.9rem;
	font-size: 0.9rem;
	min-height: 40px;
}
.fcdb-header-search .wp-block-search__input::placeholder { color: #8fb0bd; }
.fcdb-header-search .wp-block-search__button {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--signal);
	padding: 0 0.9rem;
	font-weight: 700;
	cursor: pointer;
	min-height: 40px;
}

/* ============================================================
   Search-first hero
   ============================================================ */
.fcdb-hero {
	background:
		radial-gradient(1200px 340px at 50% -140px, rgba(27, 111, 139, 0.35), transparent 70%),
		var(--wp--preset--color--panel);
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.fcdb-hero, .fcdb-hero :where(h1, h2, p) { color: var(--fc-header-fg); }
.fcdb-hero .fcdb-kicker {
	display: inline-block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--signal);
	border: 1px solid var(--fc-panel-line);
	border-radius: 999px;
	padding: 0.28em 0.9em;
	margin-bottom: 0.4rem;
}
.fcdb-hero h1 { letter-spacing: -0.02em; }
.fcdb-hero .fcdb-subhead { color: #c8dbe4; font-size: 1.08rem; }

/* Oversized hero search box — the largest interactive element */
.fcdb-search .wp-block-search__inside-wrapper {
	border-radius: var(--fc-radius-sm);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
}
.fcdb-search .wp-block-search__input {
	border: 1px solid var(--fc-panel-line);
	border-right: 0;
	border-radius: var(--fc-radius-sm) 0 0 var(--fc-radius-sm);
	padding: 0.95rem 1.1rem;
	font-size: 1.08rem;
	background: #fff;
	color: #16202a;
	min-height: 56px;
	font-family: var(--wp--preset--font-family--mono);
}
.fcdb-search .wp-block-search__input::placeholder { color: #7c8b96; font-family: var(--wp--preset--font-family--mono); }
.fcdb-search .wp-block-search__button {
	background: var(--wp--preset--color--signal);
	color: #16202a;
	border: 0;
	border-radius: 0 var(--fc-radius-sm) var(--fc-radius-sm) 0;
	font-weight: 750;
	padding: 0 1.6rem;
	font-size: 1.02rem;
	cursor: pointer;
	transition: filter 0.15s ease;
}
.fcdb-search .wp-block-search__button:hover { filter: brightness(1.06); }

/* Hero trust micro-stats */
.fcdb-stats { color: #c8dbe4 !important; }
.fcdb-stat {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	padding: 0.2rem 0;
}
.fcdb-stat p { margin: 0; }
.fcdb-stat b {
	display: block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 1.2rem;
	color: #fff;
	font-weight: 700;
	letter-spacing: -0.01em;
	margin-bottom: 0.2rem;
}
.fcdb-stat span { display: block; font-size: 0.85rem; color: #9fbccb; line-height: 1.45; }

/* ============================================================
   Code readout chips (the site signature element)
   ============================================================ */
.fcdb-code,
.wp-block-code {
	font-family: var(--wp--preset--font-family--mono);
}
.fcdb-code {
	display: inline-block;
	background: #12222e;
	color: #f5a623;
	border: 1px solid #274050;
	border-radius: 5px;
	padding: 0.06em 0.5em;
	font-weight: 600;
	font-size: 0.94em;
	letter-spacing: 0.02em;
	line-height: 1.5;
	white-space: nowrap;
}

/* ============================================================
   Data tables — sticky header, zebra, mono values
   ============================================================ */
.fcdb-table { overflow-x: auto; }
.fcdb-table table {
	border-collapse: collapse;
	width: 100%;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fc-radius-sm);
	overflow: hidden;
	font-size: 0.97rem;
}
.fcdb-table th,
.fcdb-table td {
	border: 1px solid var(--wp--preset--color--border);
	padding: 0.7rem 0.85rem;
	text-align: left;
	vertical-align: top;
}
.fcdb-table thead th {
	position: sticky;
	top: 0;
	background: var(--wp--preset--color--panel);
	color: var(--fc-header-fg);
	font-size: 0.82rem;
	font-weight: 650;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	z-index: 1;
}
.fcdb-table tbody tr:nth-child(odd) td { background: var(--wp--preset--color--muted); }
.fcdb-table tbody tr:hover td { background: var(--fc-signal-wash); }
/* First column of code tables reads as instrument values */
.fcdb-table tbody td:first-child {
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	white-space: nowrap;
}

/* ============================================================
   Safety callout — reserved for genuine hazards only
   ============================================================ */
.fcdb-safety {
	border: 1px solid var(--wp--preset--color--danger);
	border-left-width: 5px;
	background: var(--fc-safety-wash);
	border-radius: var(--fc-radius-sm);
	padding: 1rem 1.15rem;
}
.fcdb-safety p { margin: 0; }
.fcdb-safety strong { color: var(--wp--preset--color--danger); }

/* ============================================================
   Entry / brand cards
   ============================================================ */
.fcdb-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fc-radius);
	padding: 1.15rem 1.2rem;
	height: 100%;
	box-shadow: var(--fc-shadow);
	transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}
.fcdb-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--fc-shadow-hover);
	border-color: var(--wp--preset--color--brand);
}
.fcdb-card h3 { margin-top: 0; margin-bottom: 0.35rem; }
.fcdb-card h3 a { text-decoration: none; }
.fcdb-card h3 a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.fcdb-card p { color: var(--fc-ink-soft); margin: 0; }
/* Amber index tab on brand cards — the "readout" motif */
.fcdb-card::before {
	content: "";
	display: block;
	width: 30px;
	height: 3px;
	border-radius: 3px;
	background: var(--wp--preset--color--signal);
	margin-bottom: 0.7rem;
}

/* Post cards (query loop) get a status dot */
.fcdb-postcard h3::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--brand);
	margin-right: 0.5rem;
	vertical-align: middle;
}

/* ============================================================
   Breadcrumbs
   ============================================================ */
.fcdb-crumbs { font-size: 0.85rem; color: var(--fc-ink-soft); }
.fcdb-crumbs a { color: var(--fc-ink-soft); }

/* ============================================================
   Trust masthead (byline + published/verified dates)
   ============================================================ */
.fcdb-masthead {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.9rem;
	padding: 0.7rem 0;
	margin: 0.4rem 0 0.2rem;
	border-top: 1px solid var(--wp--preset--color--border);
	border-bottom: 1px solid var(--wp--preset--color--border);
	font-size: 0.86rem;
	color: var(--fc-ink-soft);
}
.fcdb-masthead p { margin: 0; }
.fcdb-masthead .fcdb-byline { font-weight: 600; color: var(--wp--preset--color--ink); }
.fcdb-masthead .fcdb-meta-item { display: inline-flex; align-items: center; gap: 0.35rem; }
.fcdb-masthead .fcdb-dot { color: var(--wp--preset--color--border); }
.fcdb-masthead time,
.fcdb-masthead .wp-block-post-date time {
	font-family: var(--wp--preset--font-family--mono);
	color: var(--wp--preset--color--ink);
	font-weight: 600;
}
.fcdb-masthead a { color: var(--wp--preset--color--brand); }

/* ============================================================
   Verdict / answer block (above-the-fold answer badge)
   ============================================================ */
.fcdb-verdict {
	display: flex;
	gap: 0.9rem;
	align-items: flex-start;
	background: var(--fc-signal-wash);
	border: 1px solid var(--wp--preset--color--signal);
	border-left-width: 5px;
	border-radius: var(--fc-radius-sm);
	padding: 1rem 1.15rem;
}
.fcdb-verdict .fcdb-verdict-badge {
	flex: none;
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 700;
	font-size: 0.8rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	background: var(--wp--preset--color--signal);
	color: #16202a;
	border-radius: 4px;
	padding: 0.3em 0.7em;
}
.fcdb-verdict p { margin: 0; }

/* ============================================================
   Sources — visibly styled, numbered primary-source list
   ============================================================ */
.fcdb-sources {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fc-radius);
	padding: 1.1rem 1.3rem;
}
.fcdb-sources h2, .fcdb-sources h3 { margin-top: 0; font-size: 1.05rem; }
.fcdb-sources ol { margin: 0; padding-left: 1.3rem; }
.fcdb-sources li { margin-bottom: 0.4rem; font-size: 0.92rem; color: var(--fc-ink-soft); }
.fcdb-sources li a { color: var(--wp--preset--color--brand); }

/* ============================================================
   Schema step list + FAQ (native details)
   ============================================================ */
.fcdb-steps ol { padding-left: 1.3rem; }
.fcdb-steps li { margin-bottom: 0.55rem; }

.fcdb-faq details,
.wp-block-details {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fc-radius-sm);
	background: var(--wp--preset--color--surface);
	padding: 0.2rem 1rem;
	margin-bottom: 0.7rem;
}
.wp-block-details summary { font-weight: 620; cursor: pointer; padding: 0.65rem 0; }

/* ============================================================
   Content surface + disclaimer strip
   ============================================================ */
.fcdb-surface {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fc-radius);
	box-shadow: var(--fc-shadow);
}
.fcdb-disclaimer {
	font-size: 0.83rem;
	color: var(--fc-ink-soft);
	border-top: 1px solid var(--wp--preset--color--border);
	padding-top: 0.9rem;
}
.fcdb-disclaimer strong { color: var(--wp--preset--color--ink); }

/* ============================================================
   Footer (top-tier trust surface)
   ============================================================ */
footer.fcdb-panel { border-bottom: 0; }
.fcdb-footer-cols a { text-decoration: none; }
.fcdb-footer-cols a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.fcdb-footer-cols h3 {
	color: #fff;
	font-size: 0.78rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 0.6rem;
}
.fcdb-footer-cols p, .fcdb-footer-cols li { font-size: 0.9rem; }
.fcdb-foot-note { color: #9fbccb !important; }

/* ============================================================
   Section headings with an amber tick
   ============================================================ */
.fcdb-section-title {
	position: relative;
	padding-left: 0.8rem;
}
.fcdb-section-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.12em;
	bottom: 0.12em;
	width: 4px;
	border-radius: 4px;
	background: var(--wp--preset--color--signal);
}

/* ============================================================
   Buttons
   ============================================================ */
.wp-block-button__link {
	background: var(--wp--preset--color--brand);
	color: #fff;
	border-radius: var(--fc-radius-sm);
	font-weight: 640;
}

/* ============================================================
   ARCHITECTURE v2 — ANSWER-CONSOLE homepage
   The code-entry bar owns the fold; below it a live-filtered
   index of brand tiles + guide rows. Degrades to site search.
   ============================================================ */
.fcdb-console {
	background:
		radial-gradient(1100px 320px at 50% -120px, rgba(27, 111, 139, 0.38), transparent 70%),
		var(--wp--preset--color--panel);
	border-bottom: 1px solid rgba(255, 255, 255, 0.07);
	padding: clamp(2.2rem, 1.4rem + 3vw, 3.6rem) var(--wp--preset--spacing--40) clamp(1.8rem, 1.2rem + 2vw, 2.6rem);
	text-align: center;
}
.fcdb-console .fcdb-kicker {
	display: inline-block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.76rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--signal);
	border: 1px solid var(--fc-panel-line);
	border-radius: 999px;
	padding: 0.3em 0.95em;
	margin: 0 0 0.9rem;
}
.fcdb-console-h1 {
	color: var(--fc-header-fg);
	font-size: clamp(2rem, 1.5rem + 2.5vw, 2.9rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	font-weight: 700;
	margin: 0 auto;
	max-width: 18ch;
}
.fcdb-console .fcdb-subhead {
	color: #c8dbe4;
	font-size: 1.05rem;
	line-height: 1.55;
	margin: 0.8rem auto 0;
	max-width: 60ch;
}

/* The command bar — the largest interactive element on the page */
.fcdb-cmd {
	position: relative;
	display: flex;
	align-items: stretch;
	margin: 1.5rem auto 0;
	max-width: 640px;
	background: #fff;
	border-radius: var(--fc-radius-sm);
	box-shadow: 0 12px 34px rgba(0, 0, 0, 0.30);
	overflow: hidden;
}
.fcdb-cmd-glyph {
	display: flex;
	align-items: center;
	padding-left: 1.05rem;
	color: #6a7c88;
	flex: none;
}
.fcdb-cmd-input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	color: #16202a;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 1.12rem;
	font-weight: 600;
	padding: 1rem 0.9rem;
	min-height: 58px;
}
.fcdb-cmd-input::placeholder { color: #8593a0; font-weight: 500; }
.fcdb-cmd-input:focus { outline: none; }
.fcdb-cmd:focus-within { box-shadow: 0 0 0 3px var(--wp--preset--color--signal), 0 12px 34px rgba(0, 0, 0, 0.30); }
.fcdb-cmd-btn {
	flex: none;
	border: 0;
	background: var(--wp--preset--color--signal);
	color: #16202a;
	font-weight: 750;
	font-size: 1.0rem;
	padding: 0 1.5rem;
	cursor: pointer;
	transition: filter 0.15s ease;
}
.fcdb-cmd-btn:hover { filter: brightness(1.06); }

.fcdb-cmd-hint {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	justify-content: center;
	margin: 1rem auto 0;
	font-size: 0.9rem;
	color: #9fbccb;
}
.fcdb-try {
	font-family: var(--wp--preset--font-family--mono);
	background: rgba(255, 255, 255, 0.08);
	color: #dceaf1;
	border: 1px solid var(--fc-panel-line);
	border-radius: 999px;
	padding: 0.3rem 0.75rem;
	font-size: 0.84rem;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.fcdb-try:hover { background: rgba(255, 255, 255, 0.16); border-color: var(--wp--preset--color--signal); }

/* Stat band (B-calibration: N entries · brands · last reviewed) */
.fcdb-statband-wrap { padding: 0 var(--wp--preset--spacing--40); }
.fcdb-statband {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.4rem 1.6rem;
	margin: -1.4rem auto 0;
	position: relative;
	z-index: 2;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fc-radius);
	box-shadow: var(--fc-shadow);
	padding: 0.9rem 1.4rem;
	max-width: 760px;
}
.fcdb-statb-item { display: flex; align-items: baseline; gap: 0.4rem; }
.fcdb-statb-v {
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 700;
	font-size: 1.02rem;
	color: var(--wp--preset--color--ink);
}
.fcdb-statb-l { font-size: 0.86rem; color: var(--fc-ink-soft); }
.fcdb-statb-sep { width: 1px; height: 1.2rem; background: var(--wp--preset--color--border); }

/* Brand index tiles */
.fcdb-brand-index { margin-bottom: var(--wp--preset--spacing--60); }
.fcdb-brand-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 0.8rem;
	margin-top: var(--wp--preset--spacing--40);
}
.fcdb-btile {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fc-radius);
	padding: 0.9rem 1rem;
	text-decoration: none !important;
	box-shadow: var(--fc-shadow);
	border-left: 3px solid var(--wp--preset--color--signal);
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.fcdb-btile:hover { transform: translateY(-2px); box-shadow: var(--fc-shadow-hover); }
.fcdb-btile-name { font-weight: 680; color: var(--wp--preset--color--ink); font-size: 1.02rem; }
.fcdb-btile-sub { font-size: 0.8rem; color: var(--fc-ink-soft); }
.fcdb-btile-all { border-left-color: var(--wp--preset--color--brand); }

/* Result bar + live count */
.fcdb-resbar {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin-bottom: var(--wp--preset--spacing--40);
}
.fcdb-count {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.82rem;
	color: var(--fc-ink-soft);
	letter-spacing: 0.03em;
}

/* Guide rows (the live-filtered list) */
.fcdb-guide-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.fcdb-grow {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fc-radius);
	border-left: 3px solid var(--wp--preset--color--brand);
	box-shadow: var(--fc-shadow);
	transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
}
.fcdb-grow:hover { transform: translateX(2px); box-shadow: var(--fc-shadow-hover); }
.fcdb-grow.is-top {
	border-left-color: var(--wp--preset--color--signal);
	border-left-width: 5px;
	background: var(--fc-signal-wash);
}
.fcdb-grow-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	padding: 0.85rem 1.1rem;
	text-decoration: none !important;
}
.fcdb-grow-head { display: inline-flex; align-items: center; gap: 0.7rem; min-width: 0; }
.fcdb-grow-code { flex: none; }
.fcdb-grow-title { font-weight: 640; color: var(--wp--preset--color--ink); line-height: 1.35; }
.fcdb-grow-meta { display: inline-flex; align-items: center; gap: 0.9rem; flex: none; }
.fcdb-grow-tag { font-size: 0.82rem; color: var(--fc-ink-soft); }
.fcdb-grow-date { font-family: var(--wp--preset--font-family--mono); font-size: 0.74rem; color: var(--fc-ink-soft); white-space: nowrap; }
.fcdb-noresult { margin-top: 1rem; padding: 1.1rem 1.2rem; border: 1px dashed var(--wp--preset--color--border); border-radius: var(--fc-radius); color: var(--fc-ink-soft); background: var(--wp--preset--color--muted); }
.fcdb-noresult b { color: var(--wp--preset--color--ink); }

/* ============================================================
   ARCHITECTURE v2 — FIELD-WORKSHEET entry page
   Two-column worksheet: numbered fix procedure + sticky rail.
   ============================================================ */
.fcdb-worksheet {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: var(--wp--preset--spacing--60);
	align-items: start;
}
.fcdb-ws-main { min-width: 0; }
.fcdb-ws-main > * { max-width: 760px; }
.fcdb-ws-main .wp-block-post-content > * { max-width: 760px; }
.fcdb-ws-main .fcdb-table,
.fcdb-ws-main .wp-block-table { max-width: 100%; }

/* Numbered fix-procedure spine — every ordered list in the body reads as
   a worksheet with amber step chips (the site signature carried into steps) */
.fcdb-ws-main .wp-block-post-content ol {
	list-style: none;
	counter-reset: fcstep;
	padding-left: 0;
	margin-left: 0;
}
.fcdb-ws-main .wp-block-post-content ol > li {
	counter-increment: fcstep;
	position: relative;
	padding: 0.15rem 0 0.9rem 3.1rem;
	margin: 0 0 0.4rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
	min-height: 2.2rem;
}
.fcdb-ws-main .wp-block-post-content ol > li:last-child { border-bottom: 0; }
.fcdb-ws-main .wp-block-post-content ol > li::before {
	content: counter(fcstep);
	position: absolute;
	left: 0;
	top: 0;
	width: 2.1rem;
	height: 2.1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--signal);
	color: #16202a;
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 700;
	font-size: 0.95rem;
	border-radius: 7px;
}
/* Sub-lists (unordered) inside the body keep normal bullets */
.fcdb-ws-main .wp-block-post-content ol ul { list-style: disc; padding-left: 1.3rem; }

/* Sticky rail */
.fcdb-ws-rail { position: sticky; top: 84px; }
.fcdb-jobcard {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fc-radius);
	box-shadow: var(--fc-shadow);
	padding: 1.1rem 1.2rem;
	font-size: 0.9rem;
}
.fcdb-jobcard-title {
	font-family: var(--wp--preset--font-family--mono);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.72rem;
	color: var(--fc-ink-soft);
	margin: 0 0 0.8rem;
	padding-bottom: 0.6rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.fcdb-job-stats { display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 0.9rem; }
.fcdb-job-stat { display: flex; align-items: baseline; justify-content: space-between; gap: 0.8rem; }
.fcdb-job-k { color: var(--fc-ink-soft); }
.fcdb-job-v { font-family: var(--wp--preset--font-family--mono); font-weight: 640; color: var(--wp--preset--color--ink); text-align: right; }
.fcdb-rail-safety {
	background: var(--fc-safety-wash);
	border: 1px solid var(--wp--preset--color--danger);
	border-left-width: 4px;
	border-radius: var(--fc-radius-sm);
	padding: 0.7rem 0.85rem;
	margin-bottom: 0.9rem;
}
.fcdb-rail-safety p { margin: 0 0 0.35rem; font-size: 0.85rem; line-height: 1.45; }
.fcdb-rail-safety p:last-child { margin-bottom: 0; }
.fcdb-rail-safety strong { color: var(--wp--preset--color--danger); }
.fcdb-rail-k {
	display: block;
	font-family: var(--wp--preset--font-family--mono);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.68rem;
	color: var(--fc-ink-soft);
	margin-bottom: 0.25rem;
}
.fcdb-rail-verify { padding-bottom: 0.9rem; margin-bottom: 0.9rem; border-bottom: 1px solid var(--wp--preset--color--border); }
.fcdb-rail-verify .fcdb-rail-v,
.fcdb-rail-verify .fcdb-rail-v time {
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 640;
	color: var(--wp--preset--color--ink);
}
.fcdb-rail-verify .fcdb-rail-v { display: block; }
.fcdb-rail-link { display: inline-block; margin-top: 0.5rem; font-size: 0.85rem; }
.fcdb-rail-jump { margin-bottom: 0.9rem; padding-bottom: 0.9rem; border-bottom: 1px solid var(--wp--preset--color--border); }
.fcdb-jump-list { list-style: none; margin: 0; padding: 0; counter-reset: jump; }
.fcdb-jump-list li { margin: 0.15rem 0; }
.fcdb-jump-list a { font-size: 0.88rem; text-decoration: none; }
.fcdb-jump-list a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.fcdb-rail-browse a { font-size: 0.9rem; text-decoration: none; }
.fcdb-rail-browse a:hover { text-decoration: underline; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 900px) {
	.fcdb-worksheet { grid-template-columns: 1fr; }
	.fcdb-ws-rail { position: static; top: auto; margin-top: var(--wp--preset--spacing--50); }
	.fcdb-ws-main > *,
	.fcdb-ws-main .wp-block-post-content > * { max-width: none; }
}
@media (max-width: 781px) {
	.fcdb-logo { font-size: 1.18rem; }
	.fcdb-search .wp-block-search__input { font-size: 1rem; min-height: 52px; }
	.fcdb-stat b { font-size: 1.1rem; }
	/* Header search can drop below the logo/nav row gracefully */
	.fcdb-header-search { width: 100%; }
	.fcdb-cmd-input { font-size: 1rem; }
	.fcdb-grow-link { align-items: flex-start; }
	.fcdb-grow-meta { width: 100%; justify-content: space-between; }
	.fcdb-statb-sep { display: none; }
}

/* Tap targets */
.wp-block-navigation a,
.wp-block-search__button,
.fcdb-card h3 a { min-height: 44px; }
.wp-block-navigation .wp-block-navigation-item__content { display: inline-flex; align-items: center; min-height: 44px; }

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
