/* GearChamber PC Builder: /pc-builder/ only (enqueued by the plugin on that
   route). Palette vars only, square corners, no glow, hover only for fine
   pointers. Class prefix pcb- (theme FX code grabs .card/.row/.tile/.chip). */
.gc-pcb {
	--pcb-bg: var( --wp--preset--color--bg );
	--pcb-surface: var( --wp--preset--color--surface );
	--pcb-surface-2: var( --wp--preset--color--surface-2 );
	--pcb-line: var( --wp--preset--color--line );
	--pcb-line-2: color-mix( in srgb, var( --wp--preset--color--muted ) 45%, var( --wp--preset--color--line ) );
	--pcb-text: var( --wp--preset--color--text );
	--pcb-muted: var( --wp--preset--color--muted );
	--pcb-accent: var( --wp--preset--color--accent );
	--pcb-accent-text: var( --wp--preset--color--accent-text );
	--pcb-fill: var( --gc-accent-fill, #CF440D );
	--pcb-err: var( --wp--preset--color--bad );
	--pcb-warn: var( --wp--preset--color--mid );
	--pcb-ok: var( --wp--preset--color--good );
	--pcb-err-bg: color-mix( in srgb, var( --wp--preset--color--bad ) 9%, var( --wp--preset--color--surface ) );
	--pcb-warn-bg: color-mix( in srgb, var( --wp--preset--color--mid ) 9%, var( --wp--preset--color--surface ) );
	--pcb-sans: var( --wp--preset--font-family--ibm-plex-sans );
	--pcb-mono: var( --wp--preset--font-family--ibm-plex-mono );
	--pcb-head: var( --wp--preset--font-family--sora );
	display: block;
	color: var( --pcb-text );
	font-family: var( --pcb-sans );
	padding-bottom: 48px;
	-webkit-tap-highlight-color: transparent;
}
.gc-pcb *, .gc-pcb *::before, .gc-pcb *::after { border-radius: 0 !important; box-sizing: border-box; }
.gc-pcb h1, .gc-pcb h2, .gc-pcb h3 { text-transform: none; letter-spacing: 0; margin: 0; color: var( --pcb-text ); }
.gc-pcb button { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; -webkit-appearance: none; appearance: none; }
.gc-pcb a { color: var( --pcb-accent-text ); }
.pcb-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect( 0 0 0 0 ); white-space: nowrap; border: 0; }
.pcb-wrap { max-width: 1180px; margin: 0 auto; padding: 0 var( --gut, 20px ); }

/* page head */
.pcb-head { background: var( --pcb-surface ); border-bottom: 1px solid var( --pcb-line ); }
.pcb-head .pcb-wrap { padding-top: 22px; padding-bottom: 18px; }
.pcb-crumb { font: 500 12px/1.5 var( --pcb-mono ); letter-spacing: .08em; text-transform: uppercase; color: var( --pcb-muted ); }
.gc-pcb .pcb-crumb a { display: inline-block; padding: 6px 0; color: var( --pcb-muted ); text-decoration: none; }
.pcb-crumb [aria-current] { color: var( --pcb-accent-text ); }
.pcb-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px 24px; flex-wrap: wrap; margin-top: 4px; }
.pcb-title-tx { min-width: 0; flex: 1 1 420px; }
.gc-pcb .pcb-title h1 { font: 800 32px/1.15 var( --pcb-head ); margin: 2px 0 6px; }
.pcb-dek { font: 400 15.5px/1.5 var( --pcb-sans ); color: var( --pcb-muted ); margin: 0; max-width: 680px; }
.pcb-tools { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; align-items: center; }
.pcb-tools:empty { display: none; }
.pcb-confirm { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; font: 500 14px var( --pcb-sans ); }

/* buttons + links */
.gc-pcb .pcb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid var( --pcb-line-2 ); background: var( --pcb-surface ); color: var( --pcb-text ); font: 700 12px/1.2 var( --pcb-head ); letter-spacing: .06em; text-transform: uppercase; text-align: center; }
.gc-pcb .pcb-btn-pri { background: var( --pcb-fill ); border-color: var( --pcb-fill ); color: #fff; }
.gc-pcb .pcb-btn-ghost { background: transparent; }
.gc-pcb .pcb-lnk { display: inline-flex; align-items: center; min-height: 32px; font: 600 13.5px var( --pcb-sans ); color: var( --pcb-accent-text ); text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; }
.gc-pcb .pcb-lnk.pcb-mute { color: var( --pcb-muted ); }

/* body */
.pcb-body { padding-top: 20px; }
.pcb-empty { border: 1px solid var( --pcb-line ); border-left: 4px solid var( --pcb-accent ); background: var( --pcb-surface ); padding: 16px 18px; margin-bottom: 18px; }
.gc-pcb .pcb-empty h2 { font: 700 18px/1.3 var( --pcb-head ); margin-bottom: 6px; }
.pcb-empty p { margin: 0 0 6px; font: 400 15px/1.55 var( --pcb-sans ); color: var( --pcb-muted ); max-width: 760px; }
.pcb-empty p:last-child { margin-bottom: 0; }
.pcb-noscript { padding: 12px 14px; border: 1px solid var( --pcb-line ); background: var( --pcb-surface ); }
.pcb-needs { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; padding: 12px 14px; margin-bottom: 16px; border: 1px solid var( --pcb-line ); border-left: 4px solid var( --pcb-accent ); background: var( --pcb-surface ); font: 400 15px/1.5 var( --pcb-sans ); }
.pcb-needs b { font-weight: 600; }
.pcb-grid { display: grid; grid-template-columns: minmax( 0, 1fr ) 340px; gap: 24px; align-items: start; }
.pcb-main, .pcb-side { min-width: 0; }
.pcb-side { display: flex; flex-direction: column; gap: 16px; }

/* starting-build wizard */
.pcb-wiz { border: 1px solid var( --pcb-line ); background: var( --pcb-surface ); margin-bottom: 20px; }
.pcb-wiz-top { padding: 14px 16px; display: grid; grid-template-columns: minmax( 0, 1fr ); gap: 12px; }
.gc-pcb .pcb-wiz h2 { font: 700 18px/1.3 var( --pcb-head ); }
.pcb-wiz-tx p { margin: 3px 0 0; font: 400 14px/1.5 var( --pcb-sans ); color: var( --pcb-muted ); }
.pcb-lv { display: grid; grid-template-columns: repeat( 4, minmax( 0, 1fr ) ); gap: 8px; }
.gc-pcb .pcb-lv-b { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-height: 64px; padding: 10px 12px; border: 1px solid var( --pcb-line-2 ); background: var( --pcb-bg ); text-align: left; min-width: 0; }
.pcb-lv-t { font: 700 13px/1.25 var( --pcb-head ); letter-spacing: .05em; text-transform: uppercase; }
.pcb-lv-b small { font: 400 12.5px/1.4 var( --pcb-sans ); color: var( --pcb-muted ); }
.gc-pcb .pcb-lv-b[aria-pressed="true"] { background: var( --pcb-fill ); border-color: var( --pcb-fill ); color: #fff; }
.gc-pcb .pcb-lv-b[aria-pressed="true"] small { color: #fff; }
.pcb-wiz-res { border-top: 1px solid var( --pcb-line ); padding: 14px 16px 16px; }
.pcb-wiz-res:focus { outline: none; }
.gc-pcb .pcb-wiz-res h3 { font: 700 16px/1.3 var( --pcb-head ); margin-bottom: 8px; }
.pcb-wl-list { list-style: none; margin: 0 0 8px; padding: 0; }
.pcb-wl-list li { display: grid; grid-template-columns: 130px minmax( 0, 1fr ); gap: 10px; padding: 7px 0; border-bottom: 1px solid var( --pcb-line ); font: 500 14.5px/1.45 var( --pcb-sans ); overflow-wrap: anywhere; }
.pcb-wl-list li:last-child { border-bottom: 0; }
.pcb-wl-list i { font-style: normal; color: var( --pcb-muted ); }
.pcb-wl { font: 600 11px/1.9 var( --pcb-mono ); letter-spacing: .1em; text-transform: uppercase; color: var( --pcb-accent-text ); }
.pcb-wiz-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.pcb-wiz-empty { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; }
.pcb-wiz-empty p { margin: 0; flex: 1 1 300px; font: 400 14.5px/1.55 var( --pcb-sans ); }
.pcb-wiz-empty b { font-weight: 600; }

/* checks panel */
.pcb-cp { border: 1px solid var( --pcb-line ); border-left: 4px solid var( --pcb-line-2 ); background: var( --pcb-surface ); margin-bottom: 20px; scroll-margin-top: 90px; }
.pcb-cp:focus { outline: none; }
.pcb-cp.is-ok { border-left-color: var( --pcb-ok ); }
.pcb-cp.is-warning { border-left-color: var( --pcb-warn ); }
.pcb-cp.is-error { border-left-color: var( --pcb-err ); }
.pcb-cp-h { display: flex; align-items: center; gap: 12px; padding: 14px 16px; }
.pcb-cp-ic { width: 28px; height: 28px; flex: none; display: grid; place-items: center; border: 2px solid var( --pcb-line-2 ); }
.pcb-cp.is-ok .pcb-cp-ic { border-color: var( --pcb-ok ); }
.pcb-cp.is-ok .pcb-cp-ic::after { content: ""; width: 6px; height: 12px; border: solid var( --pcb-ok ); border-width: 0 2.5px 2.5px 0; transform: translateY( -2px ) rotate( 45deg ); }
.pcb-cp.is-warning .pcb-cp-ic, .pcb-cp.is-error .pcb-cp-ic { border-color: var( --pcb-err ); }
.pcb-cp.is-warning .pcb-cp-ic { border-color: var( --pcb-warn ); }
.pcb-cp.is-warning .pcb-cp-ic::after, .pcb-cp.is-error .pcb-cp-ic::after { content: "!"; font: 700 16px/1 var( --pcb-mono ); color: var( --pcb-err ); }
.pcb-cp.is-warning .pcb-cp-ic::after { color: var( --pcb-warn ); }
.pcb-cp.is-idle .pcb-cp-ic::after { content: "?"; font: 700 15px/1 var( --pcb-mono ); color: var( --pcb-muted ); }
.pcb-cp-tx { flex: 1 1 200px; min-width: 0; }
.gc-pcb .pcb-cp-tx h2 { font: 700 18px/1.3 var( --pcb-head ); }
.pcb-cp-tx p { margin: 3px 0 0; font: 400 13px/1.45 var( --pcb-mono ); color: var( --pcb-muted ); }
.pcb-cl { list-style: none; margin: 0; padding: 0 16px 6px; }
.pcb-ci { display: grid; grid-template-columns: 22px minmax( 0, 1fr ); gap: 10px; padding: 12px 12px 12px 10px; margin: 0 0 10px; border: 1px solid var( --pcb-line ); border-left: 3px solid var( --pcb-line-2 ); background: var( --pcb-surface-2 ); }
.pcb-ci.is-error { border-left-color: var( --pcb-err ); background: var( --pcb-err-bg ); }
.pcb-ci.is-warning { border-left-color: var( --pcb-warn ); background: var( --pcb-warn-bg ); }
.pcb-ci.is-note { border-left-color: var( --pcb-accent ); background: var( --pcb-surface ); }
.pcb-ci-ic { width: 20px; height: 20px; display: grid; place-items: center; margin-top: 1px; border: 1.5px solid var( --pcb-line-2 ); }
.pcb-ci-ic::after { content: "?"; font: 700 12px/1 var( --pcb-mono ); color: var( --pcb-text ); }
.pcb-ci.is-error .pcb-ci-ic { border-color: var( --pcb-err ); }
.pcb-ci.is-error .pcb-ci-ic::after { content: "×"; color: var( --pcb-err ); font-size: 15px; }
.pcb-ci.is-warning .pcb-ci-ic { border-color: var( --pcb-warn ); }
.pcb-ci.is-warning .pcb-ci-ic::after { content: "!"; color: var( --pcb-warn ); }
.pcb-ci.is-note .pcb-ci-ic { border-color: var( --pcb-accent ); }
.pcb-ci.is-note .pcb-ci-ic::after { content: "i"; color: var( --pcb-accent-text ); }
.pcb-ci-t { min-width: 0; }
.pcb-ci-h { margin: 0; font: 600 15px/1.35 var( --pcb-sans ); }
.pcb-sev { display: inline-block; margin-right: 4px; font: 600 10.5px/1.6 var( --pcb-mono ); letter-spacing: .1em; text-transform: uppercase; color: var( --pcb-muted ); }
.pcb-ci.is-error .pcb-sev { color: var( --pcb-err ); }
.pcb-ci.is-warning .pcb-sev { color: var( --pcb-warn ); }
.pcb-ci.is-note .pcb-sev { color: var( --pcb-accent-text ); }
.pcb-ci-m { margin: 4px 0 0; font: 400 14.5px/1.55 var( --pcb-sans ); overflow-wrap: anywhere; }
.pcb-why { margin-top: 6px; }
.pcb-why summary, .pcb-oks summary { cursor: pointer; display: inline-flex; align-items: center; min-height: 32px; font: 600 12px var( --pcb-mono ); letter-spacing: .04em; color: var( --pcb-accent-text ); }
.pcb-vals { display: grid; grid-template-columns: repeat( auto-fit, minmax( 180px, 1fr ) ); gap: 6px; margin: 6px 0 0; }
.pcb-vals div { border: 1px solid var( --pcb-line ); background: var( --pcb-surface ); padding: 6px 10px; min-width: 0; }
.pcb-vals dt { font: 500 11px/1.4 var( --pcb-mono ); color: var( --pcb-muted ); }
.pcb-vals dd { margin: 0; font: 600 14px/1.4 var( --pcb-sans ); overflow-wrap: anywhere; }
.pcb-oks { border-top: 1px solid var( --pcb-line ); padding: 4px 16px 10px; }
.pcb-notes > .pcb-cl { padding: 0; }
.pcb-ok-list { list-style: none; margin: 0; padding: 0; }
.pcb-ok-list li { display: grid; grid-template-columns: 18px minmax( 0, 1fr ); gap: 10px; padding: 8px 0; border-bottom: 1px solid var( --pcb-line ); font: 400 13.5px/1.5 var( --pcb-sans ); color: var( --pcb-muted ); }
.pcb-ok-list li:last-child { border-bottom: 0; }
.pcb-ok-list b { color: var( --pcb-text ); font-weight: 600; margin-right: 4px; }
.pcb-ok-ic { width: 8px; height: 13px; margin: 2px 0 0 4px; border: solid var( --pcb-ok ); border-width: 0 2px 2px 0; transform: rotate( 45deg ); }

/* parts list */
.pcb-parts { border: 1px solid var( --pcb-line ); background: var( --pcb-surface ); }
.pcb-pl-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 14px 16px 10px; flex-wrap: wrap; border-bottom: 1px solid var( --pcb-line ); }
.gc-pcb .pcb-pl-h h2 { font: 700 18px/1.3 var( --pcb-head ); }
.pcb-pl-h small { font: 500 12px var( --pcb-mono ); color: var( --pcb-muted ); margin-left: 6px; }
/* Store region toggle (fx 141): ZA flag + globe, square, subtle selected outline. */
.pcb-pl-h { align-items: center; }
.pcb-rg { display: inline-flex; gap: 6px; }
.gc-pcb .pcb-rg-b { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 30px; padding: 0; border: 1px solid var( --pcb-line-2 ); background: transparent; color: var( --pcb-muted ); border-radius: 0; box-shadow: none; }
.pcb-rg-ic { display: block; }
.gc-pcb .pcb-rg-b[aria-pressed="false"] .pcb-rg-ic { opacity: .5; }
.gc-pcb .pcb-rg-b[aria-pressed="true"] { border-color: var( --pcb-text ); color: var( --pcb-text ); background: var( --pcb-surface-2 ); }
.pcb-rg-b svg:not( .pcb-rg-globe ) { outline: 1px solid rgba( 0, 0, 0, .18 ); }
.gc-pcb .pcb-rg-b:focus-visible { outline: 2px solid var( --pcb-text ); outline-offset: 2px; }
.pcb-pl { list-style: none; margin: 0; padding: 0; }
.pcb-row { display: grid; grid-template-columns: 128px minmax( 0, 1fr ) 236px; gap: 8px 16px; padding: 14px 16px; border-bottom: 1px solid var( --pcb-line ); align-items: start; }
.pcb-row:last-child { border-bottom: 0; }
.pcb-row.is-error { box-shadow: inset 3px 0 0 var( --pcb-err ); }
.pcb-row.is-warning { box-shadow: inset 3px 0 0 var( --pcb-warn ); }
.pcb-row-ram, .pcb-row-storage { grid-template-columns: 128px minmax( 0, 1fr ); }
.pcb-row-ram .pcb-prices { grid-column: 2; }
.pcb-cat { font: 600 11px/1.5 var( --pcb-mono ); letter-spacing: .1em; text-transform: uppercase; color: var( --pcb-accent-text ); padding-top: 3px; overflow-wrap: anywhere; }
.pcb-cat:focus { outline: none; }
.pcb-cat small { display: block; font: 500 10.5px/1.4 var( --pcb-mono ); letter-spacing: .06em; text-transform: none; color: var( --pcb-muted ); }
.pcb-part { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.pcb-pn { font: 600 15.5px/1.35 var( --pcb-sans ); overflow-wrap: anywhere; }
.pcb-specs { font: 400 13px/1.5 var( --pcb-sans ); color: var( --pcb-muted ); }
.pcb-specs i { font-style: normal; }
.pcb-mpn { display: block; font: 500 11.5px/1.45 var( --pcb-mono ); color: var( --pcb-muted ); overflow-wrap: anywhere; }
.pcb-load { margin: 0; padding: 16px; border: 1px solid var( --pcb-line ); background: var( --pcb-surface ); font: 400 14.5px/1.5 var( --pcb-sans ); color: var( --pcb-muted ); }
.pcb-load.is-err { color: inherit; }
.pcb-load.is-err p { margin: 0 0 10px; }
.pcb-dlg-in > .pcb-load { margin: 16px; }
.pcb-none { font: 500 14.5px/1.5 var( --pcb-sans ); color: var( --pcb-muted ); }
.pcb-flag { display: inline-flex; align-items: center; padding: 2px 8px; font: 600 11.5px/1.4 var( --pcb-mono ); border: 1px solid var( --pcb-err ); color: var( --pcb-err ); }
.pcb-flag.is-warning { border-color: var( --pcb-warn ); color: var( --pcb-warn ); }
.pcb-acts { display: flex; gap: 16px; flex-wrap: wrap; }
.pcb-credit { display: block; font: 400 11.5px/1.45 var( --pcb-sans ); color: var( --pcb-muted ); overflow-wrap: anywhere; }
.pcb-credit a { display: inline-block; padding: 4px 0; color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.pcb-add { display: flex; justify-content: flex-end; }
.pcb-bytag { display: inline-flex; align-items: center; padding: 1px 7px; border: 1px dashed var( --pcb-line-2 ); font: 500 11px/1.5 var( --pcb-mono ); color: var( --pcb-muted ); }
.pcb-sels { display: flex; flex-wrap: wrap; gap: 8px 10px; width: 100%; }
.pcb-sel { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1 1 140px; max-width: 220px; }
.pcb-sel-l { font: 600 10.5px/1.4 var( --pcb-mono ); letter-spacing: .1em; text-transform: uppercase; color: var( --pcb-muted ); }
.pcb-sel-w { position: relative; display: block; }
.pcb-sel-w::after { content: ""; position: absolute; right: 12px; top: 50%; width: 7px; height: 7px; margin-top: -6px; border: solid var( --pcb-muted ); border-width: 0 1.5px 1.5px 0; transform: rotate( 45deg ); pointer-events: none; }
.gc-pcb select { -webkit-appearance: none; appearance: none; width: 100%; min-height: 44px; padding: 0 32px 0 10px; border: 1px solid var( --pcb-line-2 ); background: var( --pcb-bg ); color: var( --pcb-text ); font: 500 15px/1.3 var( --pcb-sans ); }
.gc-pcb select:disabled { color: var( --pcb-muted ); opacity: .75; }
.pcb-drives { list-style: none; margin: 4px 0 6px; padding: 0; width: 100%; display: flex; flex-direction: column; gap: 10px; }
.pcb-drive { border: 1px solid var( --pcb-line ); background: var( --pcb-bg ); padding: 10px 12px; min-width: 0; }
.pcb-drive-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.pcb-drive-n { font: 600 12px var( --pcb-mono ); letter-spacing: .06em; text-transform: uppercase; }
.pcb-drive .pcb-prices { margin-top: 10px; }
.pcb-drive.is-named { display: flex; flex-direction: column; gap: 4px; }
.pcb-drive.is-named .pcb-drive-h { margin-bottom: 2px; }
/* "or choose by name" under the spec selects (named memory kits / drives) */
.pcb-or { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 6px 0 0; font: 500 12px var( --pcb-mono ); color: var( --pcb-muted ); }
.pcb-or > span { text-transform: uppercase; letter-spacing: .06em; }
.pcb-add-row { display: flex; gap: 10px; flex-wrap: wrap; }

/* check price */
.pcb-prices { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pcb-prices-l { font: 600 10.5px var( --pcb-mono ); letter-spacing: .1em; text-transform: uppercase; color: var( --pcb-muted ); }
.pcb-stores { display: flex; flex-wrap: wrap; gap: 6px; }
.gc-pcb .pcb-store { display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; flex: 1 1 100px; min-height: 40px; padding: 0 10px; border: 1px solid var( --pcb-line-2 ); background: var( --pcb-surface ); color: var( --pcb-text ); font: 600 13px/1.25 var( --pcb-sans ); text-decoration: none; overflow-wrap: anywhere; }
.pcb-store .pcb-ext { color: var( --pcb-accent-text ); flex: none; }
.pcb-row:not( .pcb-row-ram ):not( .pcb-row-storage ) .pcb-stores { flex-direction: column; }
.pcb-row:not( .pcb-row-ram ):not( .pcb-row-storage ) .pcb-store { flex: 0 0 auto; }

/* side cards */
.pcb-card { border: 1px solid var( --pcb-line ); background: var( --pcb-surface ); padding: 16px; }
.gc-pcb .pcb-ch { font: 700 16px/1.3 var( --pcb-head ); margin: 0 0 10px; }
.pcb-wt-big { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 0 0 8px; }
.pcb-wt-big span { font: 400 13.5px var( --pcb-sans ); color: var( --pcb-muted ); }
.pcb-wt-big b { font: 700 22px/1.2 var( --pcb-head ); }
.pcb-bar { height: 10px; background: var( --pcb-surface-2 ); border: 1px solid var( --pcb-line ); margin-bottom: 10px; }
.pcb-bar i { display: block; height: 100%; background: var( --pcb-fill ); }
.pcb-wt-row { display: flex; justify-content: space-between; gap: 10px; margin: 0 0 6px; font: 400 13.5px/1.4 var( --pcb-sans ); }
.pcb-wt-row span { color: var( --pcb-muted ); flex: none; }
.pcb-wt-row b { font-weight: 600; text-align: right; min-width: 0; }
.pcb-wt-row b.is-ok { color: var( --pcb-ok ); }
.pcb-wt-row b.is-warn { color: var( --pcb-warn ); }
.pcb-wt-row b.is-bad { color: var( --pcb-err ); }
.pcb-fine { margin: 10px 0 0; font: 400 12.5px/1.55 var( --pcb-sans ); color: var( --pcb-muted ); }
.pcb-fine-t { margin: 0 0 6px; font: 400 13.5px/1.5 var( --pcb-sans ); color: var( --pcb-muted ); }
.pcb-cbb ul { margin: 0; padding-left: 18px; font: 400 13.5px/1.55 var( --pcb-sans ); }
.pcb-cbb li { margin-bottom: 5px; }
.pcb-mbar { display: none; }

/* picker dialog */
html.pcb-lock, html.pcb-lock body { overflow: hidden; }
.pcb-dlg-back { position: fixed; inset: 0; z-index: 9990; background: color-mix( in srgb, var( --wp--preset--color--bg ) 70%, transparent ); }
.pcb-dlg { position: fixed; z-index: 9991; top: 0; right: 0; bottom: 0; width: min( 640px, 100% ); background: var( --pcb-bg ); border-left: 1px solid var( --pcb-line ); display: flex; flex-direction: column; color: var( --pcb-text ); }
.pcb-dlg-in { display: flex; flex-direction: column; min-height: 0; height: 100%; }
.pcb-dlg-h { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px 12px; border-bottom: 2px solid var( --pcb-accent ); background: var( --pcb-surface ); }
.gc-pcb .pcb-dlg-h h2 { font: 700 19px/1.3 var( --pcb-head ); }
.gc-pcb .pcb-x { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var( --pcb-line-2 ); color: var( --pcb-text ); flex: none; }
.pcb-dlg-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 12px 16px 4px; }
.pcb-search { position: relative; display: block; flex: 1 1 220px; min-width: 0; }
.pcb-search svg { position: absolute; left: 12px; top: 50%; transform: translateY( -50% ); color: var( --pcb-muted ); }
.gc-pcb .pcb-search input { -webkit-appearance: none; appearance: none; width: 100%; min-height: 44px; padding: 0 12px 0 40px; border: 1px solid var( --pcb-line-2 ); background: var( --pcb-surface ); color: var( --pcb-text ); font: 400 16px var( --pcb-sans ); }
.gc-pcb .pcb-switch { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 12px 0 8px; border: 1px solid var( --pcb-line-2 ); font: 600 13.5px var( --pcb-sans ); color: var( --pcb-text ); }
.pcb-switch-k { position: relative; width: 36px; height: 20px; border: 1.5px solid var( --pcb-line-2 ); background: var( --pcb-surface-2 ); flex: none; }
.pcb-switch-k::after { content: ""; position: absolute; top: 2px; left: 2px; width: 13px; height: 13px; background: var( --pcb-muted ); }
.pcb-switch[aria-checked="true"] .pcb-switch-k { background: var( --pcb-fill ); border-color: var( --pcb-fill ); }
.pcb-switch[aria-checked="true"] .pcb-switch-k::after { left: 18px; background: #fff; }
.pcb-sws { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.pcb-pk-body { display: contents; }
.pcb-pk-n { flex: 0 0 auto; margin: 6px 16px 8px; font: 500 12.5px/1.45 var( --pcb-mono ); color: var( --pcb-muted ); min-height: 18px; }
.pcb-pk { list-style: none; margin: 0; padding: 0 16px 24px; overflow-y: auto; flex: 1 1 auto; overscroll-behavior: contain; }
.pcb-pk-empty { padding: 16px; border: 1px solid var( --pcb-line ); background: var( --pcb-surface ); font: 400 14.5px/1.5 var( --pcb-sans ); color: var( --pcb-muted ); }
.pcb-pk-r { display: grid; grid-template-columns: minmax( 0, 1fr ) auto; gap: 10px 14px; padding: 14px; margin-bottom: 8px; border: 1px solid var( --pcb-line ); background: var( --pcb-surface ); align-items: center; }
.pcb-pk-r.is-cur { box-shadow: inset 3px 0 0 var( --pcb-accent ); }
.pcb-pk-r.is-nofit { background: var( --pcb-bg ); border-style: dashed; }
.pcb-pk-r.is-nofit .pcb-pn { color: var( --pcb-muted ); }
.pcb-pk-m { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.pcb-fit { display: flex; gap: 8px; align-items: flex-start; margin: 4px 0 0; font: 400 13.5px/1.5 var( --pcb-sans ); }
.pcb-fit b { font-weight: 600; }
.pcb-fit.is-error b { color: var( --pcb-err ); }
.pcb-fit.is-warning b { color: var( --pcb-warn ); }
.pcb-fit.is-ok { color: var( --pcb-ok ); font-weight: 500; }
.pcb-fit-ic { flex: none; display: grid; place-items: center; width: 18px; height: 18px; margin-top: 1px; border: 1.5px solid currentColor; font: 700 11px/1 var( --pcb-mono ); }
.pcb-fit.is-error .pcb-fit-ic { color: var( --pcb-err ); }
.pcb-fit.is-warning .pcb-fit-ic { color: var( --pcb-warn ); }
.pcb-cur { font: 600 11px var( --pcb-mono ); letter-spacing: .06em; text-transform: uppercase; color: var( --pcb-accent-text ); }

/* Part families (fx 151): one picker row per product line, variant options under its name. */
.pcb-fam-n { margin-top: 1px; }
.pcb-fo { display: flex; flex-direction: column; gap: 8px; margin: 6px 0 4px; min-width: 0; }
.pcb-fg { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.pcb-fg-l { flex: 0 0 100%; font: 600 10.5px/1.4 var( --pcb-mono ); letter-spacing: .1em; text-transform: uppercase; color: var( --pcb-muted ); }
.gc-pcb .pcb-fc { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; max-width: 100%; padding: 0 12px; border: 1px solid var( --pcb-line-2 ); background: var( --pcb-bg ); color: var( --pcb-text ); font: 600 13px/1.25 var( --pcb-sans ); text-align: center; overflow-wrap: anywhere; }
.gc-pcb .pcb-fc[aria-pressed="true"] { background: var( --pcb-fill ); border-color: var( --pcb-fill ); color: #fff; }
.gc-pcb .pcb-fc.is-alt { border-style: dashed; }
.gc-pcb .pcb-fc:disabled { opacity: .45; border-style: dashed; cursor: not-allowed; }
.gc-pcb .pcb-fc:focus-visible { outline: 2px solid var( --pcb-text ); outline-offset: 2px; }
.pcb-fo .pcb-fsel { flex: 0 1 auto; width: 100%; max-width: 320px; }

/* responsive */
/* Part thumbnails (fx 133): our stored Icecat copy, or the category icon. Fixed size, square. */
.pcb-part.has-th, .pcb-pk-m.has-th { position: relative; padding-left: 68px; min-height: 56px; }
.pcb-th { position: absolute; left: 0; top: 0; width: 56px; height: 56px; display: block; overflow: hidden; border: 1px solid var( --pcb-line ); background: #fff; }
.pcb-th img { display: block; width: 100%; height: 100%; object-fit: contain; }
.pcb-th.pcb-ic { background: #fff; }
/* No photo: the same white tile as a photo, with the category icon in a neutral dark grey (both themes). */
.pcb-th.pcb-ic::after { content: ""; position: absolute; inset: 8px; background: #5c6570; -webkit-mask: var( --pcb-ic ) center / contain no-repeat; mask: var( --pcb-ic ) center / contain no-repeat; }
.pcb-ic-cpu { --pcb-ic: url( ../img/icons/cpu.svg ); }
.pcb-ic-cooler { --pcb-ic: url( ../img/icons/cooler.svg ); }
.pcb-ic-mb { --pcb-ic: url( ../img/icons/mb.svg ); }
.pcb-ic-gpu { --pcb-ic: url( ../img/icons/gpu.svg ); }
.pcb-ic-ram { --pcb-ic: url( ../img/icons/ram.svg ); }
.pcb-ic-storage { --pcb-ic: url( ../img/icons/storage.svg ); }
.pcb-ic-psu { --pcb-ic: url( ../img/icons/psu.svg ); }
.pcb-ic-case { --pcb-ic: url( ../img/icons/case.svg ); }
.pcb-src-credit { margin: 18px 0 0; font: 400 12px/1.5 var( --pcb-sans ); color: var( --pcb-muted ); }
.pcb-src-credit a { display: inline-block; padding: 4px 0; color: inherit; text-decoration: underline; text-underline-offset: 2px; }
@media ( max-width: 1100px ) {
	.pcb-grid { grid-template-columns: minmax( 0, 1fr ) 300px; }
	.pcb-row { grid-template-columns: 110px minmax( 0, 1fr ) 200px; }
	.pcb-row-ram, .pcb-row-storage { grid-template-columns: 110px minmax( 0, 1fr ); }
}
@media ( max-width: 960px ) {
	.pcb-grid { grid-template-columns: minmax( 0, 1fr ); }
	.pcb-side { display: grid; grid-template-columns: repeat( auto-fit, minmax( 280px, 1fr ) ); align-items: start; }
}
@media ( max-width: 900px ) {
	.pcb-lv { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}
@media ( max-width: 700px ) {
	.pcb-row, .pcb-row-ram, .pcb-row-storage { grid-template-columns: minmax( 0, 1fr ); gap: 8px; padding: 14px; }
	.pcb-row-ram .pcb-prices { grid-column: 1; }
	.pcb-row:not( .pcb-row-ram ):not( .pcb-row-storage ) .pcb-stores { flex-direction: row; }
	.pcb-row:not( .pcb-row-ram ):not( .pcb-row-storage ) .pcb-store { flex: 1 1 100px; }
	.pcb-add { justify-content: stretch; }
	.pcb-add .pcb-btn { width: 100%; }
	.pcb-add-row .pcb-btn { width: 100%; }
	.pcb-sel { max-width: none; }
	.pcb-side { display: flex; }
	.pcb-mbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px calc( 10px + env( safe-area-inset-bottom ) ); background: var( --pcb-surface ); border-top: 2px solid var( --pcb-accent ); }
	.gc-pcb { padding-bottom: 96px; }
	.pcb-mb-t { display: flex; flex-direction: column; min-width: 0; }
	.pcb-mb-t b { font: 700 16px/1.2 var( --pcb-head ); }
	.pcb-mb-t span { font: 400 12px var( --pcb-mono ); color: var( --pcb-muted ); }
	.pcb-dlg { width: 100%; border-left: 0; }
	.pcb-pk-r { grid-template-columns: minmax( 0, 1fr ); }
	.pcb-pk-a .pcb-btn { width: 100%; }
}
@media ( max-width: 600px ) {
	.pcb-part.has-th, .pcb-pk-m.has-th { padding-left: 56px; min-height: 44px; }
	.pcb-th { width: 44px; height: 44px; }
	.pcb-th.pcb-ic::after { inset: 6px; }
	.pcb-head .pcb-wrap { padding-top: 16px; padding-bottom: 14px; }
	.gc-pcb .pcb-title h1 { font-size: 26px; }
	.pcb-dek { font-size: 15px; }
	.pcb-title-tx { flex-basis: 100%; }
	.pcb-tools .pcb-btn { flex: 1 1 calc( 50% - 4px ); padding: 0 10px; }
	.pcb-confirm { width: 100%; }
	.pcb-confirm > span { flex-basis: 100%; }
	.pcb-cp-h { padding: 12px 14px; }
	.pcb-cl { padding: 0 12px 4px; }
	.pcb-oks { padding: 4px 12px 10px; }
	.pcb-pl-h { padding: 12px 14px 10px; }
	/* The switches share one row (two in the graphics-card picker), each a full-width row when alone. */
	.pcb-sws { width: 100%; gap: 8px; }
	.pcb-dlg-tools .pcb-switch { flex: 1 1 calc( 50% - 4px ); min-width: 0; gap: 8px; padding: 0 8px 0 6px; font-size: 13px; line-height: 1.25; text-align: left; }
	.pcb-fo .pcb-fsel { max-width: none; }
	/* One select per line on phones so option text is never cut off. */
	.pcb-sel { flex: 1 1 100%; }
	.pcb-drive { padding: 10px; }
	.pcb-wiz-top, .pcb-wiz-res { padding-left: 14px; padding-right: 14px; }
	.pcb-wl-list li { grid-template-columns: minmax( 0, 1fr ); gap: 0; }
	.pcb-wiz-acts .pcb-btn { flex: 1 1 100%; }
}
@media ( hover: hover ) and ( pointer: fine ) {
	.gc-pcb .pcb-crumb a:hover { color: var( --pcb-accent-text ); text-decoration: underline; }
	.gc-pcb .pcb-rg-b[aria-pressed="false"]:hover { border-color: var( --pcb-accent ); color: var( --pcb-accent-text ); }
	.gc-pcb .pcb-rg-b[aria-pressed="false"]:hover .pcb-rg-ic { opacity: 1; }
	.gc-pcb .pcb-lv-b[aria-pressed="false"]:hover { border-color: var( --pcb-accent ); }
	.gc-pcb .pcb-btn:hover { border-color: var( --pcb-accent ); color: var( --pcb-accent-text ); }
	.gc-pcb .pcb-btn-pri:hover { color: #fff; border-color: var( --pcb-text ); }
	.gc-pcb .pcb-lnk:hover { text-decoration-thickness: 2px; }
	.gc-pcb .pcb-store:hover { border-color: var( --pcb-accent ); color: var( --pcb-accent-text ); }
	.gc-pcb .pcb-x:hover, .gc-pcb .pcb-switch:hover { border-color: var( --pcb-accent ); }
	.gc-pcb .pcb-fc[aria-pressed="false"]:not( :disabled ):hover { border-color: var( --pcb-accent ); color: var( --pcb-accent-text ); }
	.pcb-why summary:hover, .pcb-oks summary:hover { text-decoration: underline; }
	.gc-pcb .pcb-credit a:hover, .gc-pcb .pcb-src-credit a:hover { color: var( --pcb-accent-text ); }
}
@media ( hover: none ), ( pointer: coarse ) {
	/* Keep theme a:hover colours from sticking after a tap. */
	.gc-pcb .pcb-store:hover { color: var( --pcb-text ); }
	.gc-pcb .pcb-btn:hover { color: var( --pcb-text ); }
	.gc-pcb .pcb-btn-pri:hover { color: #fff; }
	.gc-pcb .pcb-credit a:hover, .gc-pcb .pcb-src-credit a:hover { color: inherit; }
}

/* fx 144: "Upgrading instead?" link under the builder intro */
.gc-pcb .pcb-up-link { margin: 4px 0 0; }

/* fx 328: How to use + FAQ */
.gc-pcb .pcb-htu { margin: 10px 0 14px; }
.gc-pcb .pcb-htu .pcb-htu-btn { width: auto; min-height: 36px; }
.gc-pcb .pcb-htu-q { display: inline-grid; place-items: center; width: 18px; height: 18px; flex: none; border: 1px solid var( --pcb-accent ); border-radius: 50%; color: var( --pcb-accent ); font: 700 11px/1 var( --pcb-sans ); }
.gc-pcb .pcb-htu-panel { margin-top: 10px; max-width: 640px; background: var( --pcb-surface-2 ); border: 1px solid var( --pcb-line-2 ); border-top: 3px solid var( --pcb-fill ); padding: 16px 18px; }
.gc-pcb .pcb-htu-panel[hidden] { display: none; }
.gc-pcb .pcb-htu-h { margin: 0 0 12px; font: 700 13px/1.3 var( --pcb-head ); letter-spacing: .06em; text-transform: uppercase; }
.pcb-htu-steps { list-style: none; counter-reset: pcb-htu; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.pcb-htu-steps li { display: flex; gap: 12px; counter-increment: pcb-htu; font: 400 14px/1.45 var( --pcb-sans ); color: var( --pcb-muted ); }
.pcb-htu-steps li::before { content: counter( pcb-htu ); flex: none; display: grid; place-items: center; width: 24px; height: 24px; background: var( --pcb-fill ); color: white; font: 700 12px/1 var( --pcb-head ); }
.pcb-htu-steps li > span { min-width: 0; overflow-wrap: anywhere; }
.pcb-htu-steps strong { color: var( --pcb-text ); }
.pcb-faq { margin: 48px auto 56px; }
.gc-pcb .pcb-faq-h { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; font: 800 26px/1.2 var( --pcb-head ); }
.pcb-faq-h::before { content: ""; flex: none; width: 6px; height: 22px; background: var( --pcb-fill ); }
.pcb-faq-i { background: var( --pcb-surface ); border: 1px solid var( --pcb-line-2 ); margin-bottom: 10px; }
.pcb-faq-q { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; cursor: pointer; list-style: none; font: 700 16px/1.3 var( --pcb-head ); color: var( --pcb-text ); }
.pcb-faq-q::-webkit-details-marker { display: none; }
.pcb-faq-q::after { content: "+"; flex: none; color: var( --pcb-accent ); font-size: 20px; line-height: 1; }
.pcb-faq-i[open] > .pcb-faq-q::after { content: "–"; }
.pcb-faq-q:focus-visible { outline: 2px solid var( --pcb-accent ); outline-offset: -2px; }
.pcb-faq-a { margin: 0; padding: 0 20px 16px; max-width: 860px; font: 400 15px/1.55 var( --pcb-sans ); color: var( --pcb-muted ); overflow-wrap: anywhere; }
