/* CODWarzone Core: calculators, feitenblokken, cookiebanner.
   Gebruikt de variabelen van het thema, met vaste terugvalwaarden. */

.calc [hidden] { display: none !important; }

.calc__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	gap: var(--space-5, 1.25rem);
	margin-block-end: var(--space-5, 1.25rem);
}

.calc__field { min-width: 0; }

.calc__result p {
	margin: var(--space-2, 0.5rem) 0 0;
	color: var(--cw-muted, #9b9ba3);
}

.calc__note {
	font-size: 0.85rem;
	color: var(--cw-muted, #9b9ba3);
}

.calc__table { margin-block-start: var(--space-8, 2rem); overflow-x: auto; }
.calc__table h3 { margin: 0 0 var(--space-4, 1rem); }
.calc__table tr.is-current { background: var(--cw-surface-2, #1c1c1f); }
.calc__table tr.is-current td:first-child { box-shadow: inset 3px 0 0 var(--cw-accent, #e10613); }
.calc__table td a { color: var(--cw-ink, #f2f1ed); }

/* Feitenblok op wapen-, loadout- en gearpagina's */
.cw-facts {
	background: var(--cw-surface, #131315);
	border: 1px solid var(--cw-line, #2a2a2e);
	border-radius: var(--radius-md, 6px);
	padding: var(--space-6, 1.5rem);
	margin-block: var(--space-6, 1.5rem);
}

.cw-facts table { margin-block: var(--space-4, 1rem); }
.cw-facts th { width: 40%; }
.cw-facts__src { font-size: 0.85rem; color: var(--cw-muted, #9b9ba3); }
.cw-muted { color: var(--cw-muted, #9b9ba3); font-size: 0.9rem; }

.cw-verified {
	display: inline-block;
	margin: 0;
	padding: 0.3rem 0.7rem;
	border: 1px solid var(--cw-signal, #c6ff3d);
	border-radius: var(--radius-sm, 2px);
	font-size: 0.8rem;
	color: var(--cw-signal, #c6ff3d);
}

.cw-verified--missing {
	border-color: var(--cw-accent, #e10613);
	color: var(--cw-accent, #e10613);
}

.cw-gear-list {
	list-style: none;
	padding: 0;
	display: grid;
	gap: var(--space-3, 0.75rem);
}

.cw-gear-list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4, 1rem);
	flex-wrap: wrap;
	background: var(--cw-surface, #131315);
	border: 1px solid var(--cw-line, #2a2a2e);
	border-radius: var(--radius-md, 6px);
	padding: var(--space-4, 1rem) var(--space-5, 1.25rem);
}

.cw-pros-cons {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	gap: var(--space-6, 1.5rem);
	margin-block: var(--space-4, 1rem);
}

.cw-pros-cons h3 { font-size: 0.9rem; letter-spacing: 0.08em; }
.cw-pros-cons ul { margin: 0; padding-inline-start: 1.2rem; }

/* Cookiebanner */
.cw-consent {
	position: fixed;
	inset-inline: var(--space-4, 1rem);
	inset-block-end: var(--space-4, 1rem);
	max-width: 44rem;
	margin-inline: auto;
	z-index: 1000;
	background: var(--cw-surface, #131315);
	border: 1px solid var(--cw-line, #2a2a2e);
	border-radius: var(--radius-md, 6px);
	padding: var(--space-5, 1.25rem);
	box-shadow: 0 20px 50px -20px #000;
	font-size: 0.9rem;
}

.cw-consent p { margin: 0 0 var(--space-4, 1rem); }
.cw-consent a { color: var(--cw-ink, #f2f1ed); }

.cw-consent__row { display: flex; gap: var(--space-3, 0.75rem); flex-wrap: wrap; }

.cw-consent__btn {
	flex: 1 1 10rem;
	cursor: pointer;
	background: transparent;
	color: var(--cw-ink, #f2f1ed);
	border: 1px solid var(--cw-ink, #f2f1ed);
	border-radius: var(--radius-sm, 2px);
	padding: 0.75rem 1rem;
	font: inherit;
	font-weight: 600;
}

.cw-consent__btn:hover { background: var(--cw-ink, #f2f1ed); color: var(--cw-bg, #0a0a0b); }

/* Gear-vergelijkingstabel */
.cw-gear-table { overflow-x: auto; margin-block: var(--space-6, 1.5rem); }
.cw-gear-table table { min-width: 36rem; }
.cw-gear-table td:nth-child(2) { font-family: var(--font-heading, inherit); color: var(--cw-signal, #c6ff3d); white-space: nowrap; }
.cw-gear-table a { color: var(--cw-ink, #f2f1ed); }
.cw-gear-table td:last-child a { color: var(--cw-accent, #e10613); font-weight: 600; white-space: nowrap; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Filterknoppen op overzichtspagina's */
.cw-filter { display: flex; flex-wrap: wrap; gap: var(--space-2, 0.5rem); margin-block: var(--space-6, 1.5rem) var(--space-8, 2rem); }
.cw-filter a { text-decoration: none; padding: 0.45rem 0.9rem; border: 1px solid var(--cw-line, #2a2a2e); border-radius: var(--radius-sm, 2px); font-size: 0.85rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--cw-ink, #f2f1ed); }
.cw-filter a:hover { border-color: var(--cw-ink, #f2f1ed); }
.cw-filter a[aria-current="page"] { background: var(--cw-accent, #e10613); border-color: var(--cw-accent, #e10613); }

/* Samenvatting bovenaan nieuws */
.cw-tldr { border-inline-start: 3px solid var(--cw-signal, #c6ff3d); background: var(--cw-surface, #131315); padding: var(--space-4, 1rem) var(--space-5, 1.25rem); border-radius: 0 var(--radius-md, 6px) var(--radius-md, 6px) 0; font-size: 1.05rem; line-height: 1.5; }

/* Spelersgrafiek */
.cw-players__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: var(--space-5, 1.25rem); margin-block: var(--space-6, 1.5rem); }
.cw-players__stats > div { background: var(--cw-surface, #131315); border: 1px solid var(--cw-line, #2a2a2e); border-radius: var(--radius-md, 6px); padding: var(--space-5, 1.25rem); display: grid; gap: 0.15rem; }
.cw-players__stats strong { font-family: var(--font-heading, inherit); font-weight: 400; font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem); line-height: 1.05; color: var(--cw-signal, #c6ff3d); }
.cw-chart { margin: var(--space-6, 1.5rem) 0; background: var(--cw-surface, #131315); border: 1px solid var(--cw-line, #2a2a2e); border-radius: var(--radius-md, 6px); padding: var(--space-4, 1rem); }
.cw-chart__svg { width: 100%; height: auto; display: block; }
.cw-chart__grid { stroke: var(--cw-line, #2a2a2e); stroke-width: 1; }
.cw-chart__lbl { fill: var(--cw-muted, #9b9ba3); font-size: 12px; font-family: var(--font-body, sans-serif); }
.cw-chart__line { fill: none; stroke: var(--cw-signal, #c6ff3d); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.cw-chart__area { fill: color-mix(in srgb, var(--cw-signal, #c6ff3d) 14%, transparent); stroke: none; }
.cw-chart__dot { fill: var(--cw-signal, #c6ff3d); }
.cw-players__table { margin-block: var(--space-4, 1rem); }
.cw-players__table summary { cursor: pointer; color: var(--cw-muted, #9b9ba3); }

/* Patchnotes-tijdlijn */
.cw-timeline { list-style: none; margin: var(--space-8, 2rem) 0; padding: 0; border-inline-start: 2px solid var(--cw-line, #2a2a2e); }
.cw-timeline li { position: relative; padding: 0 0 var(--space-8, 2rem) var(--space-6, 1.5rem); }
.cw-timeline li::before { content: ''; position: absolute; inset-inline-start: -7px; top: 0.35rem; width: 12px; height: 12px; border-radius: 50%; background: var(--cw-accent, #e10613); }
.cw-timeline time { font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cw-signal, #c6ff3d); font-weight: 700; }
.cw-timeline h3 { margin: 0.25rem 0 0.5rem; }
.cw-timeline h3 a { text-decoration: none; }
.cw-timeline p { margin: 0 0 0.35rem; color: var(--cw-muted, #9b9ba3); }

/* Contrast */
.cw-gear-table td:last-child a, .cw-verified--missing { color: var(--cw-accent-text, #ff5a63); }
