/* CultiWise components: button, tag, pills, search, stat, icon tile, dot. Page-agnostic. */

.cw-icon { display: block; flex: none; }

/* Button (CWButton) */
.cw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	height: 48px;
	padding: 0 28px;
	border: 0;
	border-radius: var(--cw-radius-pill);
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	white-space: nowrap;
	text-decoration: none;
	cursor: pointer;
}
.cw-btn:focus-visible { outline: 3px solid var(--cw-focus); outline-offset: 2px; }
.cw-btn--dark { background: var(--cw-ink); color: var(--cw-white); box-shadow: 0 4px 14px rgba(20, 32, 31, .2); }
.cw-btn--dark:hover { background: var(--cw-ink-deep); }
.cw-btn--icon { padding: 0 8px 0 28px; }
.cw-btn__icon {
	width: 34px; height: 34px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .14);
	color: var(--cw-lime);
	display: flex; align-items: center; justify-content: center;
}
.cw-btn--outline { height: 46px; background: transparent; color: var(--cw-ink); box-shadow: inset 0 0 0 1.5px var(--cw-ink); }
.cw-btn--outline:hover { background: var(--cw-surface); }
.cw-btn--white { height: 52px; padding: 0 34px; background: var(--cw-white); color: var(--cw-ink); letter-spacing: .04em; }
.cw-btn--white:hover { background: var(--cw-surface); color: var(--cw-ink); }

/* Tag (CWTag) */
.cw-tag {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border-radius: var(--cw-radius-pill);
	background: var(--cw-white);
	box-shadow: inset 0 0 0 1px var(--cw-line);
	color: var(--cw-ink);
	font-size: 12px;
	font-weight: 700;
	line-height: 18px;
	white-space: nowrap;
}

/* Pill tabs (CWTabBarPill) */
.cw-pills { display: flex; gap: 6px; padding: 5px; border-radius: var(--cw-radius-pill); background: var(--cw-surface); }
.cw-pill {
	height: 36px;
	padding: 0 20px;
	border: 0;
	border-radius: var(--cw-radius-pill);
	background: transparent;
	color: var(--cw-ink);
	font-size: 13px;
	font-weight: 800;
}
.cw-pill.is-active { background: var(--cw-ink); color: var(--cw-white); }

/* Search input */
.cw-search { position: relative; }
.cw-search__icon { position: absolute; left: 18px; top: 14px; color: var(--cw-muted); pointer-events: none; }
.cw-page input[type="text"].cw-search__input {
	width: 100%;
	height: 44px;
	padding: 0 22px 0 46px;
	border: 0;
	border-radius: var(--cw-radius-pill);
	background: var(--cw-white);
	color: var(--cw-ink);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	box-shadow: var(--cw-shadow-float);
}
.cw-page input[type="text"].cw-search__input:focus { outline: none; box-shadow: 0 0 0 3px var(--cw-focus); }

/* Stat block (CWComponentStatBlock) */
.cw-stat {
	width: 160px;
	padding: 20px;
	border-radius: var(--cw-radius-sm);
	background: var(--cw-lime);
	box-shadow: inset 0 0 0 1px var(--cw-lime-hover);
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.cw-stat__num { font-size: 40px; line-height: 52px; font-weight: 900; color: var(--cw-ink); }
.cw-stat__label { font-size: 16px; line-height: 24px; color: var(--cw-muted); }

/* Icon tile */
.cw-icon-tile {
	flex: none;
	width: 48px; height: 48px;
	border-radius: 10px;
	background: var(--cw-lime);
	color: var(--cw-ink);
	display: flex; align-items: center; justify-content: center;
}

/* Legend dot */
.cw-dot { flex: none; display: block; width: 11px; height: 11px; border-radius: 50%; }
.cw-dot--partner { background: var(--cw-lime); border: 1.5px solid var(--cw-ink-deep); }
.cw-dot--contractor { background: var(--cw-ink-deep); }
