/* Word Counter — furniture beyond the shared .ftb-tool block in core.css. */

.ftb-tool-word-counter textarea{min-height:240px;font-family:var(--ftb-font);
	font-size:var(--ftb-text-base);line-height:1.6}

/* Stat tiles. The two leads (words, characters) get more weight because they
   are what the page is for; the rest are supporting. */
.ftb-tool-word-counter .ftb-wc-stats{display:grid;
	grid-template-columns:repeat(2,1fr);gap:var(--ftb-space-3);
	margin:var(--ftb-space-5) 0}
@media (min-width:480px){.ftb-tool-word-counter .ftb-wc-stats{grid-template-columns:repeat(4,1fr)}}
@media (min-width:1024px){.ftb-tool-word-counter .ftb-wc-stats{grid-template-columns:repeat(8,1fr)}}

.ftb-tool-word-counter .ftb-wc-stat{display:flex;flex-direction:column;
	gap:var(--ftb-space-1);padding:var(--ftb-space-4) var(--ftb-space-3);
	background:var(--ftb-surface);border:1px solid var(--ftb-border);
	border-radius:var(--ftb-radius);text-align:center;
	/* Reserved so the numbers appearing never shift the page (§10 CLS). */
	min-height:84px;justify-content:center}
.ftb-tool-word-counter .ftb-wc-num{font-size:var(--ftb-text-xl);
	font-weight:var(--ftb-fw-bold);color:var(--ftb-text);
	font-variant-numeric:tabular-nums;line-height:1.15;word-break:break-word}
.ftb-tool-word-counter .ftb-wc-stat--lead .ftb-wc-num{color:var(--ftb-primary)}
.ftb-tool-word-counter .ftb-wc-lab{font-size:var(--ftb-text-xs);
	color:var(--ftb-text-muted);font-weight:var(--ftb-fw-semi);
	letter-spacing:.01em}

.ftb-tool-word-counter .ftb-wc-optlab{font-size:var(--ftb-text-sm);
	font-weight:var(--ftb-fw-semi);color:var(--ftb-text-muted);
	align-self:center}

/* Limits strip */
.ftb-tool-word-counter .ftb-wc-limits{margin:var(--ftb-space-5) 0}
.ftb-tool-word-counter .ftb-wc-h{font-size:var(--ftb-text-sm);
	font-weight:var(--ftb-fw-semi);color:var(--ftb-text-muted);
	margin:0 0 var(--ftb-space-3)}
.ftb-tool-word-counter .ftb-wc-limits ul{list-style:none;margin:0;padding:0;
	display:flex;flex-wrap:wrap;gap:var(--ftb-space-2)}
.ftb-tool-word-counter .ftb-wc-limits li{display:flex;align-items:baseline;
	gap:var(--ftb-space-2);padding:var(--ftb-space-2) var(--ftb-space-3);
	border:1px solid var(--ftb-border);border-radius:var(--ftb-radius);
	font-size:var(--ftb-text-sm)}
.ftb-tool-word-counter .ftb-wc-limname{font-weight:var(--ftb-fw-semi)}
.ftb-tool-word-counter .ftb-wc-limmax{color:var(--ftb-text-subtle);
	font-size:var(--ftb-text-xs)}
/* Over-limit is marked by text AND colour, never colour alone (§9). */
.ftb-tool-word-counter .ftb-wc-over{border-color:var(--ftb-warning)}
.ftb-tool-word-counter .ftb-wc-over .ftb-wc-limval{color:var(--ftb-warning);
	font-weight:var(--ftb-fw-semi)}
.ftb-tool-word-counter .ftb-wc-under .ftb-wc-limval{color:var(--ftb-text-muted)}

/* Frequency panel */
.ftb-tool-word-counter .ftb-wc-density{margin:var(--ftb-space-5) 0;
	border:1px solid var(--ftb-border);border-radius:var(--ftb-radius);
	padding:var(--ftb-space-3) var(--ftb-space-4)}
.ftb-tool-word-counter .ftb-wc-density summary{cursor:pointer;
	font-weight:var(--ftb-fw-semi);font-size:var(--ftb-text-sm);
	padding:var(--ftb-space-2) 0;min-height:24px}
.ftb-tool-word-counter .ftb-wc-freq{list-style:none;margin:var(--ftb-space-3) 0 0;
	padding:0;display:grid;gap:var(--ftb-space-1)}
.ftb-tool-word-counter .ftb-wc-freq li{display:grid;
	grid-template-columns:1fr auto auto;gap:var(--ftb-space-3);
	align-items:baseline;font-size:var(--ftb-text-sm);
	padding:var(--ftb-space-2) 0;border-bottom:1px solid var(--ftb-border)}
.ftb-tool-word-counter .ftb-wc-freq li:last-child{border-bottom:0}
.ftb-tool-word-counter .ftb-wc-freq-w{font-family:var(--ftb-mono);
	overflow-wrap:anywhere}
.ftb-tool-word-counter .ftb-wc-freq-n,
.ftb-tool-word-counter .ftb-wc-freq-p{color:var(--ftb-text-muted);
	font-variant-numeric:tabular-nums}
.ftb-tool-word-counter .ftb-wc-freq-empty{color:var(--ftb-text-muted);
	border-bottom:0}
