/**
 * Falcon West CRM — dark standalone face (0.1.64).
 * Dark shell is black/charcoal only (no navy chrome fills). Sky Accent C.
 * Light face is in fwcrm-light-tokens.css under html[data-fwcrm-theme="light"].
 * 0.1.19 type lock: Inter for every UI surface; Raleway on brand titles.
 */

.fwcrm-app {
	/* 0.1.25: a dark document — without this the browser paints native <select>
	   internals and dropdown popups with the light UA theme. */
	color-scheme: dark;
	--fwcrm-rust-800: #8a4d25;
	--fwcrm-rust-700: #a85f2e;
	--fwcrm-rust-100: #3d2a1c;
	--fwcrm-sky-800: #266690;
	--fwcrm-sky-700: #7eb6d8;
	--fwcrm-sky-600: #2d78ad;
	--fwcrm-sky-100: rgba(45, 120, 173, 0.22);
	--fwcrm-ink: #ffffff;
	--fwcrm-text: #ffffff;
	--fwcrm-text-medium: rgba(255, 255, 255, 0.68);
	--fwcrm-text-disabled: rgba(255, 255, 255, 0.38);
	--fwcrm-line-300: #6a6a6a;
	--fwcrm-line-200: #3a3a3a;
	--fwcrm-line-100: #2a2a2a;
	--fwcrm-paper: #121212;
	--fwcrm-surface: #1c1c1c;
	--fwcrm-sidebar: #1a1a1a;
	--fwcrm-white: #1c1c1c;
	--fwcrm-warning: #e0b15a;
	--fwcrm-danger: #e07a6a;
	--fwcrm-warning-bg: #3d3420;
	--fwcrm-danger-bg: #3d2420;
	/* 0.1.78: Core's error token (Material --md-error) — invalid value text. */
	--md-error: #f2b8b5;
	/* 0.1.78: amber for an Unverified phone / email value — 7.0:1 on the #3a3a3a input. */
	--md-warn: #f5c46b;
	--fwcrm-shape: 4px;
	--fwcrm-space-1: 4px;
	--fwcrm-space-2: 8px;
	--fwcrm-space-3: 16px;
	--fwcrm-space-4: 32px;
	--fwcrm-font: "Inter", system-ui, sans-serif;
	--fwcrm-font-display: "Raleway", sans-serif;
	--fwcrm-row-line: rgba(255, 255, 255, 0.06);
	--fwcrm-row-hover: rgba(45, 120, 173, 0.12);
	--fwcrm-elev-1: 0 2px 1px -1px rgba(0, 0, 0, 0.40), 0 1px 1px 0 rgba(0, 0, 0, 0.28);
	--fwcrm-elev-2: 0 3px 1px -2px rgba(0, 0, 0, 0.40), 0 2px 2px 0 rgba(0, 0, 0, 0.28);
	--fwcrm-motion: cubic-bezier(0.4, 0, 0.2, 1);
	--fwcrm-presence-active: #3ddc84;
	--fwcrm-presence-recent: #f5c542;
	--fwcrm-presence-away: #8a8a8a;
	box-sizing: border-box;
	font-family: var(--fwcrm-font);
	font-size: 14px;
	color: var(--fwcrm-text);
	background: var(--fwcrm-paper);
	padding: 8px 0 24px;
	min-height: 480px;
}

.fwcrm-app *,
.fwcrm-app *::before,
.fwcrm-app *::after {
	box-sizing: border-box;
}

.fwcrm-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.fwcrm-btn[hidden] {
	display: none !important;
}

.fwcrm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 64px;
	min-height: 36px;
	padding: 0 16px;
	border-radius: var(--fwcrm-shape);
	border: 0;
	font-family: var(--fwcrm-font);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 1.25px;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	text-decoration: none;
}

.fwcrm-btn--contained {
	background: var(--fwcrm-sky-600);
	color: #ffffff;
	box-shadow: var(--fwcrm-elev-2);
}

.fwcrm-btn--contained:hover {
	background: var(--fwcrm-sky-800);
}

.fwcrm-btn--outlined {
	background: transparent;
	color: #ffffff;
	border: 1px solid var(--fwcrm-sky-600);
	padding: 0 15px;
}

.fwcrm-btn--outlined:hover {
	background: rgba(45, 120, 173, 0.16);
}

.fwcrm-btn--text {
	background: transparent;
	color: #7eb6d8;
	padding: 0 8px;
	font-size: 13px;
}

.fwcrm-btn--text:hover {
	background: rgba(45, 120, 173, 0.16);
}

.fwcrm-btn:focus-visible,
.fwcrm-card:focus-visible,
.fwcrm-nav-btn:focus-visible,
.fwcrm-input:focus-visible,
.fwcrm-select:focus-visible {
	outline: 2px solid var(--fwcrm-sky-600);
	outline-offset: 2px;
}

.fwcrm-select {
	appearance: none;
	height: 32px;
	min-width: 160px;
	padding: 0 36px 0 12px;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: var(--fwcrm-shape);
	background-color: #3a3a3a;
	background-image: linear-gradient(45deg, transparent 50%, #ffffff 50%), linear-gradient(135deg, #ffffff 50%, transparent 50%);
	background-position: calc(100% - 16px) 14px, calc(100% - 11px) 14px;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	font-family: var(--fwcrm-font);
	font-size: 14px;
	color: #ffffff;
}

.fwcrm-select--toolbar {
	height: 36px;
	min-width: 160px;
	padding-right: 36px;
	background-position: calc(100% - 16px) 16px, calc(100% - 11px) 16px;
	font-size: 14px;
}

.fwcrm-select:focus,
.fwcrm-input:focus,
.fwcrm-textarea:focus {
	outline: none;
	border: 2px solid var(--fwcrm-sky-600);
	padding-left: 11px;
}

.fwcrm-select--toolbar:focus {
	padding-left: 13px;
}

.fwcrm-mobile-stage {
	display: none;
	flex-direction: column;
	gap: 8px;
	padding: 0 4px 16px;
	font-size: 12px;
	letter-spacing: 0.4px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-board {
	display: flex;
	gap: 12px;
	overflow-x: auto;
	padding: 4px 4px 16px;
	min-height: 420px;
}

.fwcrm-column {
	flex: 0 0 300px;
	min-width: 280px;
	display: flex;
	flex-direction: column;
	background: #242424;
	border: 1px solid var(--fwcrm-line-200);
	border-radius: var(--fwcrm-shape);
	min-height: 400px;
	max-height: calc(100vh - 240px);
}

.fwcrm-column.is-drop,
.fwcrm-list-drop.is-drop {
	background: var(--fwcrm-sky-100);
	border-color: var(--fwcrm-sky-600);
}

/* 0.1.20: a rail pipeline button takes a dragged row (cross-pipeline move). */
.fwcrm-nav-btn.is-drop {
	outline: 2px dashed var(--fwcrm-sky-600);
	outline-offset: -2px;
}

.fwcrm-column-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 12px 16px;
	border-bottom: 1px solid var(--fwcrm-line-200);
}

.fwcrm-column-title,
.fwcrm-block-title {
	margin: 0 0 4px;
	font-family: var(--fwcrm-font);
	font-size: 13px;
	font-weight: 700;
	color: #ffffff;
}

.fwcrm-column-title {
	margin: 0;
}

.fwcrm-count {
	min-width: 24px;
	height: 20px;
	padding: 0 8px;
	border-radius: 999px;
	background: #444444;
	color: var(--fwcrm-text-medium);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.fwcrm-column-body {
	flex: 1;
	overflow-y: auto;
	padding: 8px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-height: 80px;
}

.fwcrm-card {
	background: #3a3a3a;
	border: 1px solid var(--fwcrm-line-200);
	border-radius: var(--fwcrm-shape);
	padding: 10px 12px;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 6px;
	box-sizing: border-box;
	height: 80px;
	min-height: 80px;
	max-height: 80px;
	overflow: hidden;
	text-align: left;
	font-family: var(--fwcrm-font);
	color: #ffffff;
}

.fwcrm-card:hover {
	background: #444444;
}

.fwcrm-card.is-dragging {
	box-shadow: var(--fwcrm-elev-1);
	opacity: 0.92;
}

.fwcrm-card--person {
	gap: 6px;
	padding: 10px 12px;
	height: 80px;
	min-height: 80px;
	max-height: 80px;
}

.fwcrm-card-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.fwcrm-chip,
.fwcrm-chip--personal,
.fwcrm-chip--academy,
.fwcrm-chip--commercial,
.fwcrm-chip--energy,
.fwcrm-chip--dup {
	display: none;
}

.fwcrm-card-line {
	margin: 0;
	font-size: 13px;
	line-height: 1.4;
	color: var(--fwcrm-text-medium);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.fwcrm-card-title {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: #ffffff;
	line-height: 1.3;
	min-width: 0;
	overflow: hidden;
}

.fwcrm-card-meta,
.fwcrm-card-note,
.fwcrm-card-people {
	margin: 0;
	font-size: 12px;
	line-height: 1.4;
	color: var(--fwcrm-text-medium);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.fwcrm-appears {
	margin: 0;
	font-size: 12px;
	color: var(--fwcrm-text-medium);
	white-space: normal;
}

.fwcrm-appears-link {
	border: 0;
	padding: 0;
	background: none;
	color: #7eb6d8;
	font: inherit;
	cursor: pointer;
	text-decoration: underline;
}

.fwcrm-add-list-btn {
	align-self: flex-start;
	min-height: 28px;
	padding: 0 4px;
	font-size: 11px;
	letter-spacing: 0.8px;
}

.fwcrm-exp--warning {
	color: var(--fwcrm-warning);
}

.fwcrm-exp--overdue {
	color: var(--fwcrm-danger);
}

/* 0.1.20: renewed in the current calendar year. */
.fwcrm-exp--renewed {
	/* 0.1.38: #3d9a54 on the #242424 table was 4.1:1 — #5cb870 clears AA at 14px. */
	color: #5cb870;
}

.fwcrm-drive {
	color: var(--fwcrm-sky-700);
	text-decoration: none;
	font-size: 12px;
}

.fwcrm-drive:hover {
	color: var(--fwcrm-sky-700);
	text-decoration: underline;
}

.fwcrm-list {
	padding: 4px;
	overflow-x: auto;
}

.fwcrm-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 10px 12px;
	margin: 0 0 16px;
	padding: 12px 4px 4px;
}

.fwcrm-filter-chips {
	display: flex;
	flex-wrap: nowrap;
	gap: 8px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
	padding-bottom: 2px;
}

.fwcrm-filter-chip {
	flex: 0 0 auto;
	min-height: 36px;
	padding: 0 12px;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: 999px;
	background: #3a3a3a;
	color: #ffffff;
	font: 500 13px/1 var(--fwcrm-font);
	cursor: pointer;
	white-space: nowrap;
}

.fwcrm-filter-chip.is-active {
	background: var(--fwcrm-sky-600);
	border-color: var(--fwcrm-sky-600);
}

/* 0.1.19: Last Updated — one dropdown, Recent / Quiet groups (the group label is the divider). */
.fwcrm-filter-updated {
	min-width: 110px;
}

.fwcrm-filter-updated optgroup {
	background: #2a2a2a;
	color: var(--fwcrm-text-medium);
	font-style: normal;
	font-weight: 600;
}

.fwcrm-filter-updated option {
	background: #2a2a2a;
	color: #ffffff;
	font-weight: 400;
}

/* 0.1.17: small red × on custom-list rows (removes from the list only). 0.1.21: far right. */
.fwcrm-list-remove {
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #ff5b5b;
	font: 700 14px/1 var(--fwcrm-font);
	cursor: pointer;
}

.fwcrm-list-remove:hover {
	background: rgba(255, 91, 91, 0.18);
}

.fwcrm-filter-state {
	appearance: none;
	-webkit-appearance: none;
	min-width: 88px;
	padding-right: 22px;
	/* 0.1.25: the resting fill is declared here too — never inherited from the
	   .fwcrm-filter-chip `background` shorthand, which a host rule can beat. */
	background-color: #3a3a3a;
	color: #ffffff;
	background-image: linear-gradient(45deg, transparent 50%, #fff 50%), linear-gradient(135deg, #fff 50%, transparent 50%);
	/* 0.1.25: `center` keeps the caret centred at the 44px mobile chip height. */
	background-position: calc(100% - 14px) center, calc(100% - 9px) center;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
}

/* 0.1.25: State and Stage get the dark dropdown list Last Updated already had. */
.fwcrm-filter-state optgroup {
	background: #2a2a2a;
	color: var(--fwcrm-text-medium);
	font-style: normal;
	font-weight: 600;
}

.fwcrm-filter-state option {
	background: #2a2a2a;
	color: #ffffff;
	font-weight: 400;
}

/* 0.1.26: no rust halo around an open dropdown. Two things were wrong: the rule
   used bare `:focus` (which a mouse click matches), and the 2px offset drew the
   ring OUTSIDE the capsule. :focus-visible alone does not fix it — Chrome matches
   :focus-visible on a <select> even for pointer focus, unlike a <button> — so the
   ring is also inset (negative offset) and takes the sky accent, which stays
   legible on both the #3a3a3a resting fill and the rust active fill. */
.fwcrm-filter-state:focus-visible {
	outline: 2px solid var(--fwcrm-sky-600);
	outline-offset: -2px;
}

/* 0.1.24: a chosen State / Last Updated / Stage fills rust like an active chip (the caret stays). */
.fwcrm-filter-state.is-active {
	background-color: var(--fwcrm-sky-600);
	border-color: var(--fwcrm-sky-600);
	background-image: linear-gradient(45deg, transparent 50%, #fff 50%), linear-gradient(135deg, #fff 50%, transparent 50%);
	/* 0.1.25: .fwcrm-filter-chip.is-active uses the `background` SHORTHAND, which
	   resets size / position / repeat to their initial values. Without these three
	   the caret gradients repaint at full element size — a white blob with a rust
	   triangle and an invisible label. Restore them, do not reorder the three above
	   (tests/run.php pins them). */
	background-position: calc(100% - 14px) center, calc(100% - 9px) center;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
}

.fwcrm-th-sort {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: 0;
	padding: 0;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	cursor: pointer;
}

.fwcrm-th-sort .fwcrm-sort-arrow {
	color: var(--fwcrm-text-medium);
	font-size: 11px;
	/* 0.1.20: reserve the caret's slot so an active Expiration header never pushes into Phone. */
	display: inline-block;
	min-width: 10px;
	text-align: center;
	white-space: nowrap;
}

.fwcrm-th-exp .fwcrm-th-sort .fwcrm-sort-arrow {
	min-width: 52px;
	font-size: 10px;
	letter-spacing: 0;
}

.fwcrm-th-sort.is-active {
	color: #ffffff;
}

.fwcrm-th-sort.is-active .fwcrm-sort-arrow {
	color: inherit;
}

.fwcrm-list-move {
	min-height: 28px;
	padding: 0 8px;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: 4px;
	background: #3a3a3a;
	color: #ffffff;
	font: 500 11px/1 var(--fwcrm-font);
	cursor: pointer;
}

.fwcrm-filter-clear {
	border-style: dashed;
	color: var(--fwcrm-text-medium);
}

.fwcrm-layout[hidden] {
	display: none !important;
}

.fwcrm-pill {
	display: inline-flex;
	align-items: center;
	min-height: 20px;
	padding: 0 8px;
	border-radius: 999px;
	background: #444444;
	color: var(--fwcrm-text-medium);
	font: 500 11px/1 var(--fwcrm-font);
	letter-spacing: 0.4px;
	white-space: nowrap;
}

/* 0.1.18: search-result book chip — unmistakable which book the hit lives in. */
.fwcrm-pill--pipe {
	background: var(--fwcrm-sky-100);
	border: 1px solid var(--fwcrm-sky-600);
	color: #ffffff;
	font-weight: 600;
}

.fwcrm-pill--client {
	background: rgba(61, 154, 84, 0.22);
	border: 1px solid #3d9a54;
	color: #ffffff;
}

.fwcrm-pill--danger {
	background: var(--fwcrm-danger-bg);
	color: var(--fwcrm-danger);
}

.fwcrm-pill--dupe {
	background: var(--fwcrm-warning-bg);
	color: var(--fwcrm-warning);
}

.fwcrm-pill--owner {
	background: #2a2a2a;
	border: 1px solid #5a5a5a;
	color: #ddd;
	font-weight: 500;
}

.fwcrm-btn--danger {
	color: var(--fwcrm-danger);
}

.fwcrm-routing {
	align-items: end;
}

.fwcrm-lock-strip--compact {
	min-height: 0;
	padding: 4px 8px;
}

.fwcrm-lock-strip {
	padding: 4px 8px;
}

.fwcrm-btn--quiet {
	/* 0.1.38: disabled-tone text (38% white) read 3.4:1 on the sheet — a quiet
	   button is still text people must read, so it takes the medium tone (AA). */
	color: var(--fwcrm-text-medium);
	font-size: 12px;
	letter-spacing: 0.8px;
	margin-left: auto;
}

.fwcrm-btn--quiet:hover {
	color: var(--fwcrm-danger);
	background: transparent;
}

.fwcrm-outcome-wrap {
	position: relative;
	display: inline-block;
}

.fwcrm-outcome-wrap .fwcrm-outcome-select {
	padding-right: 36px;
}

/* 0.1.18: heat rides the chevron (no dot over the text). */
.fwcrm-outcome-select.is-heat-green {
	background-image: linear-gradient(45deg, transparent 50%, #3d9a54 50%), linear-gradient(135deg, #3d9a54 50%, transparent 50%);
}

.fwcrm-outcome-select.is-heat-blue {
	background-image: linear-gradient(45deg, transparent 50%, #4aa3d9 50%), linear-gradient(135deg, #4aa3d9 50%, transparent 50%);
}

.fwcrm-outcome-select.is-heat-amber {
	background-image: linear-gradient(45deg, transparent 50%, #e39b2d 50%), linear-gradient(135deg, #e39b2d 50%, transparent 50%);
}

.fwcrm-outcome-select.is-heat-purple {
	background-image: linear-gradient(45deg, transparent 50%, #8b5cf6 50%), linear-gradient(135deg, #8b5cf6 50%, transparent 50%);
}

.fwcrm-outcome-select.is-heat-yellow {
	background-image: linear-gradient(45deg, transparent 50%, #e3c22d 50%), linear-gradient(135deg, #e3c22d 50%, transparent 50%);
}

.fwcrm-outcome-select.is-heat-gray {
	background-image: linear-gradient(45deg, transparent 50%, #6a6a6a 50%), linear-gradient(135deg, #6a6a6a 50%, transparent 50%);
}

.fwcrm-outcome-select.is-heat-black {
	background-image: linear-gradient(45deg, transparent 50%, #111111 50%), linear-gradient(135deg, #111111 50%, transparent 50%);
}

.fwcrm-outcome-select.is-heat-white {
	background-image: linear-gradient(45deg, transparent 50%, #ffffff 50%), linear-gradient(135deg, #ffffff 50%, transparent 50%);
}

.fwcrm-outcome-select.is-heat-red {
	background-image: linear-gradient(45deg, transparent 50%, #d64545 50%), linear-gradient(135deg, #d64545 50%, transparent 50%);
}

.fwcrm-outcome-select.is-heat-orange {
	background-image: linear-gradient(45deg, transparent 50%, #f08a24 50%), linear-gradient(135deg, #f08a24 50%, transparent 50%);
}

.fwcrm-import-sample {
	margin: 0 0 12px;
	padding: 8px 12px;
	border: 1px solid var(--fwcrm-line-200);
	border-radius: var(--fwcrm-shape);
	background: #333333;
	max-height: 320px;
	overflow-y: auto;
}

.fwcrm-import-sample summary {
	cursor: pointer;
	font-weight: 600;
	font-size: 13px;
}

.fwcrm-import-group {
	padding: 8px 0;
	border-top: 1px solid var(--fwcrm-line-200);
}

.fwcrm-import-group-head {
	margin: 0 0 4px;
	font-size: 13px;
	font-weight: 600;
}

.fwcrm-import-policies {
	margin: 0;
	padding-left: 18px;
	font-size: 12px;
	line-height: 1.5;
	color: var(--fwcrm-text-medium);
}

.fwcrm-export-links {
	display: flex;
	gap: 8px;
	margin-top: 8px;
}

.fwcrm-export-links .fwcrm-btn--quiet {
	margin-left: 0;
}

.fwcrm-table-empty td {
	padding: 10px;
	font-size: 13px;
	color: var(--fwcrm-text-medium);
}

/* 0.1.29: a long list paints 300 rows and offers the rest on a click. */
.fwcrm-table-more td.fwcrm-more-cell {
	padding: 8px 10px;
	font-size: 13px;
	color: var(--fwcrm-text-medium);
	white-space: nowrap;
}

.fwcrm-rows-more {
	margin-left: 4px;
	padding: 2px 8px;
	min-height: 0;
	font-size: 13px;
}

/* 0.1.29: "Loading 2 / 5…" beside the title while later pages arrive. */
.fwcrm-loading {
	margin-left: 8px;
	font-size: 12px;
	color: var(--fwcrm-text-medium);
	white-space: nowrap;
}

.fwcrm-loading[hidden] {
	display: none;
}

/* 0.1.29: staged import progress. */
.fwcrm-progress {
	width: 100%;
	height: 8px;
	margin: 8px 0 12px;
	background: #3a3a3a;
	border-radius: 4px;
	overflow: hidden;
}

.fwcrm-progress-bar {
	width: 0;
	height: 100%;
	background: var(--fwcrm-sky-600);
	transition: width 0.2s ease-out;
}

/* 0.1.30 / 0.1.59: presence is font colour only. Tokens apply to switcher + Leaderboard. */
.fwcrm-presence--active {
	color: var(--fwcrm-presence-active);
}

.fwcrm-presence--recent {
	color: var(--fwcrm-presence-recent);
}

.fwcrm-presence--away {
	color: var(--fwcrm-presence-away);
}

.fwcrm-book-select[data-presence="active"],
.fwcrm-book-select option.fwcrm-presence--active {
	color: var(--fwcrm-presence-active);
}

.fwcrm-book-select[data-presence="recent"],
.fwcrm-book-select option.fwcrm-presence--recent {
	color: var(--fwcrm-presence-recent);
}

.fwcrm-book-select[data-presence="away"],
.fwcrm-book-select option.fwcrm-presence--away {
	color: var(--fwcrm-presence-away);
}

.fwcrm-readonly-tell {
	display: inline-block;
	margin-left: 6px;
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #f5c542;
}

.fwcrm-book[hidden] .fwcrm-readonly-tell,
.fwcrm-readonly-tell[hidden] {
	display: none;
}

.fwcrm-stage-block .fwcrm-table--sheet thead th {
	position: static;
}

.fwcrm-sheet-status {
	flex: 1 1 auto;
	margin: 0;
	font-size: 13px;
	color: var(--fwcrm-text-medium);
	align-self: center;
}

.fwcrm-sheet-status.is-error {
	color: var(--fwcrm-danger);
}

.fwcrm-outcome-label {
	font-size: 12px;
	letter-spacing: 0.4px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-outcome-hint {
	flex: 1 1 100%;
	font-size: 12px;
	color: var(--fwcrm-text-disabled);
}

.fwcrm-outcome-heat {
	display: inline-flex;
	align-items: center;
	min-width: 18px;
}

.fwcrm-dupe-toggle {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	color: var(--fwcrm-warning);
	font: 700 14px/1.4 var(--fwcrm-font);
	text-align: left;
	cursor: pointer;
}

.fwcrm-dupe-toggle::before {
	content: "▸ ";
}

.fwcrm-dupe:not(.is-collapsed) .fwcrm-dupe-toggle::before {
	content: "▾ ";
}

.fwcrm-dupe.is-collapsed .fwcrm-dupe-list {
	display: none;
}

.fwcrm-dupe-list {
	margin-top: 8px;
}

.fwcrm-dialog .fwcrm-dialog-panel {
	max-height: min(92vh, 900px);
	overflow-y: auto;
}

.fwcrm-dialog .fwcrm-dialog-panel--wide {
	width: min(800px, 100%);
}

.fwcrm-sold-row .fwcrm-input {
	min-width: 0;
	width: 100%;
	padding: 0 8px;
	font-size: 14px;
}

.fwcrm-file {
	display: block;
	width: 100%;
	padding: 12px;
	border: 1px dashed var(--fwcrm-line-300);
	border-radius: var(--fwcrm-shape);
	background: #3a3a3a;
	color: #ffffff;
	font-family: var(--fwcrm-font);
}

.fwcrm-radios {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.fwcrm-radio {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px 12px;
	border: 1px solid var(--fwcrm-line-200);
	border-radius: var(--fwcrm-shape);
	background: #333333;
	font-size: 14px;
	line-height: 1.4;
	cursor: pointer;
}

.fwcrm-radio input {
	margin-top: 3px;
}

.fwcrm-radio:has(input:checked) {
	border-color: var(--fwcrm-sky-600);
	background: var(--fwcrm-sky-100);
}

.fwcrm-import-cols {
	margin: 0 0 8px;
	font-size: 13px;
	color: #ffffff;
}

.fwcrm-preview-scroll {
	overflow-x: auto;
	margin: 0 0 12px;
}

.fwcrm-preview-table th,
.fwcrm-preview-table td {
	padding: 4px 8px;
	font-size: 12px;
	white-space: nowrap;
	max-width: 160px;
	overflow: hidden;
	text-overflow: ellipsis;
}

.fwcrm-import-summary {
	margin: 0 0 12px;
	font-size: 16px;
}

.fwcrm-import-list {
	max-height: 220px;
	margin: 0 0 12px;
	padding: 8px 8px 8px 24px;
	overflow-y: auto;
	border: 1px solid var(--fwcrm-line-200);
	border-radius: var(--fwcrm-shape);
	background: #333333;
	font-size: 13px;
	line-height: 1.5;
}

.fwcrm-import-list--errors {
	border-color: var(--fwcrm-danger);
}

.fwcrm-import-errors-title {
	color: var(--fwcrm-danger);
}

.fwcrm-export-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 16px;
}

.fwcrm-sold-row--head {
	margin-bottom: 4px;
	font-size: 11px;
	letter-spacing: 0.4px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-stage-block {
	margin: 0 0 16px;
}

.fwcrm-stage-toggle {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 44px;
	margin: 0 0 8px;
	padding: 0 12px;
	border: 1px solid var(--fwcrm-line-200);
	border-radius: var(--fwcrm-shape);
	background: #1f1f1f;
	color: #ffffff;
	font: 600 14px/1 var(--fwcrm-font);
	text-align: left;
	cursor: pointer;
}

.fwcrm-stage-toggle::before {
	content: "▾";
	display: inline-block;
	margin-right: 8px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-stage-block.is-collapsed .fwcrm-stage-toggle::before {
	content: "▸";
}

.fwcrm-stage-block.is-collapsed .fwcrm-table {
	display: none;
}

.fwcrm-table {
	width: 100%;
	border-collapse: collapse;
	background: #242424;
	border: 0;
	border-radius: var(--fwcrm-shape);
	box-shadow: var(--fwcrm-elev-1);
	color: #ffffff;
}

.fwcrm-table th,
.fwcrm-table td {
	padding: 12px 16px;
	text-align: left;
	border-bottom: 1px solid var(--fwcrm-row-line);
	font-size: 14px;
}

.fwcrm-table--sheet {
	table-layout: fixed;
	width: 100%;
	/* 0.1.38: the fixed px columns add to ~910px; below that Quick note collapsed
	   to nothing on a tablet. A floor lets .fwcrm-list (overflow-x: auto) scroll
	   instead. The ≤767px block switches to percent widths and lifts the floor. */
	min-width: 1040px;
	border-collapse: separate;
	border-spacing: 0;
}

/* 0.1.16: one list type size (14px). Phone + Email sit closer.
   0.1.17: densify — slim gutters Name / Phone / Email / Outcome, shorter Outcome,
   freed width goes to Quick note; no Updated column on prospecting lists.
   0.1.18: Name / Phone / Email / Outcome / Expiration are fixed pixel widths sized to
   real content (a 40-character name fits on one line); Quick note has no width and
   takes every remaining pixel (table-layout: fixed). */
.fwcrm-col-name {
	width: 310px;
}

.fwcrm-name-cell {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	min-width: 0;
	font-size: 14px;
}

/* 0.1.33: company name → website. Inherit list colour; do not restyle as .fwcrm-drive. */
a.fwcrm-name-link {
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}

a.fwcrm-name-link:hover {
	text-decoration: underline;
}

.fwcrm-col-phone {
	/* 0.1.20: room for a formatted number plus an extension; the cell's title carries the full value. */
	width: 128px;
}

.fwcrm-col-email {
	width: 200px;
}

.fwcrm-col-outcome {
	width: 150px;
}

.fwcrm-col-note {
	width: auto;
}

.fwcrm-col-watch {
	width: 36px;
}

.fwcrm-watch-box {
	appearance: none;
	-webkit-appearance: none;
	width: 16px;
	height: 16px;
	margin: 0;
	border: 1.5px solid var(--fwcrm-text-medium);
	border-radius: 3px;
	background: transparent;
	cursor: pointer;
	vertical-align: middle;
}

.fwcrm-watch-box:checked {
	background: var(--fwcrm-sky-600);
	border-color: var(--fwcrm-sky-600);
	box-shadow: inset 0 0 0 2px var(--fwcrm-paper);
}

.fwcrm-col-exp {
	width: 84px;
}

.fwcrm-col-premium {
	width: 100px;
}

/* 0.1.18: Clients shows full expiration dates and a premium column — give Quick note the room back. */
.fwcrm-table--clients .fwcrm-col-name {
	width: 260px;
}

.fwcrm-table--clients .fwcrm-col-email {
	width: 160px;
}

.fwcrm-table--clients .fwcrm-col-exp {
	width: 84px;
}

.fwcrm-td-phone,
.fwcrm-td-email,
.fwcrm-td-exp,
.fwcrm-td-premium {
	overflow: hidden;
	text-overflow: ellipsis;
	vertical-align: middle;
}

.fwcrm-td-outcome,
.fwcrm-td-note {
	overflow: visible;
	vertical-align: middle;
}

.fwcrm-outcome-row,
.fwcrm-note-row {
	width: 100%;
	height: 28px;
	min-height: 28px;
	min-width: 0;
	padding: 0 8px;
	font-size: 14px;
}

.fwcrm-outcome-row {
	padding-right: 18px;
}

.fwcrm-note-row::placeholder {
	color: var(--fwcrm-text-medium);
	opacity: 1;
}

.fwcrm-table--sheet td.fwcrm-td-name,
.fwcrm-td-name {
	overflow: visible;
	white-space: normal;
	vertical-align: middle;
	font-size: 14px;
}

.fwcrm-table--sheet th,
.fwcrm-table--sheet td {
	padding: 6px 8px;
	font-size: 14px;
	line-height: 1.35;
	white-space: nowrap;
}

/* 0.1.19: Expiration sits right of Name — slim gutters keep the date scannable without crowding it. */
.fwcrm-table--sheet .fwcrm-col-exp,
.fwcrm-table--sheet .fwcrm-td-exp,
.fwcrm-table--sheet .fwcrm-th-exp {
	padding-left: 2px;
	padding-right: 2px;
}

.fwcrm-table--sheet .fwcrm-td-name {
	padding-right: 4px;
}

/* 0.1.18: the name never wraps in list view — the dot stays on the name's line, long names ellipsize, pills drop below. */
.fwcrm-table--sheet .fwcrm-name-cell .fwcrm-heat {
	margin-right: 0;
}

.fwcrm-table--sheet .fwcrm-name-cell .fwcrm-name-text {
	flex: 0 1 auto;
	min-width: 0;
	/* 0.1.19: clamp the basis so a long name ellipsizes beside its dot instead of wrapping under it. */
	max-width: calc(100% - 18px);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fwcrm-table--sheet .fwcrm-col-phone,
.fwcrm-table--sheet .fwcrm-td-phone,
.fwcrm-table--sheet .fwcrm-th-phone {
	padding-right: 2px;
}

.fwcrm-table--sheet .fwcrm-col-email,
.fwcrm-table--sheet .fwcrm-td-email,
.fwcrm-table--sheet .fwcrm-th-email {
	padding-left: 2px;
}

/* 0.1.20: mailto text sits at list size, flush under the Email header. */
.fwcrm-table--sheet .fwcrm-drive {
	font-size: 14px;
}

.fwcrm-table--sheet .fwcrm-td-phone {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fwcrm-table--sheet .fwcrm-td-email,
.fwcrm-table--sheet .fwcrm-td-outcome {
	padding-right: 2px;
}

.fwcrm-table--sheet .fwcrm-td-outcome,
.fwcrm-table--sheet .fwcrm-td-note {
	padding-left: 4px;
}

.fwcrm-table--sheet thead th {
	position: sticky;
	top: 0;
	z-index: 1;
	background: #1c1c1c;
	box-shadow: 0 1px 0 var(--fwcrm-row-line);
}

.fwcrm-table-row.is-dragging {
	opacity: 0.55;
}

/* 0.1.69: custom-list reorder — the row a drag will land before. */
.fwcrm-table-row.is-drop-before > td {
	box-shadow: inset 0 2px 0 var(--fwcrm-sky-600);
}

.fwcrm-stage-block.is-drop {
	outline: 2px dashed var(--fwcrm-sky-600);
}

.fwcrm-table th {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.4px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-table tbody tr {
	cursor: pointer;
}

.fwcrm-table tbody tr:hover {
	background: var(--fwcrm-row-hover);
}

.fwcrm-empty {
	margin: 8px 4px 0;
	font-size: 14px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-sheet {
	position: fixed;
	inset: 0;
	z-index: 40;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.fwcrm-sheet.is-switching .fwcrm-sheet-body,
.fwcrm-sheet.is-switching .fwcrm-sheet-outcomes,
.fwcrm-sheet.is-switching .fwcrm-sheet-tabs,
.fwcrm-sheet.is-switching .fwcrm-sheet-foot {
	visibility: hidden;
}

.fwcrm-sheet-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.64);
}

.fwcrm-sheet-panel {
	position: relative;
	z-index: 1;
	width: min(760px, 100%);
	height: min(90vh, 880px);
	max-height: min(90vh, 880px);
	background: #2a2a2a;
	color: #ffffff;
	display: flex;
	flex-direction: column;
	border-radius: 8px;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.56);
}

.fwcrm-modal-x {
	width: 40px;
	height: 40px;
	min-width: 40px;
	padding: 0;
	border: 0;
	border-radius: var(--fwcrm-shape);
	background: transparent;
	color: #ffffff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}

.fwcrm-modal-x:hover {
	background: rgba(255, 255, 255, 0.08);
}

.fwcrm-name-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.fwcrm-layout {
	display: inline-flex;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: var(--fwcrm-shape);
	overflow: hidden;
}

.fwcrm-layout-btn {
	min-height: 36px;
	padding: 0 14px;
	border: 0;
	background: #3a3a3a;
	color: #ffffff;
	font-family: var(--fwcrm-font);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 1.25px;
	text-transform: uppercase;
	cursor: pointer;
}

.fwcrm-layout-btn.is-active {
	background: var(--fwcrm-sky-600);
	color: #ffffff;
}

.fwcrm-layout-btn:not(.is-active):hover {
	background: #444444;
}

.fwcrm-sheet-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 6px 10px;
	border-bottom: 1px solid var(--fwcrm-line-200);
}

.fwcrm-sheet-title {
	margin: 0;
	font-family: var(--fwcrm-font);
	font-size: 16px;
	font-weight: 500;
}

/* 0.1.17: name links to LinkedIn; phone / SMS / email icons sit right of the name. */
.fwcrm-sheet-title-actions {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.fwcrm-sheet-title-sub,
.fwcrm-name-sub {
	font-size: 12px;
	color: var(--fwcrm-text-medium);
	white-space: nowrap;
}

.fwcrm-name-sub--inline {
	flex: 1 1 0;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

.fwcrm-title-link {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--fwcrm-sky-600);
	text-underline-offset: 3px;
}

.fwcrm-contact-icons {
	display: inline-flex;
	gap: 4px;
}

.fwcrm-icon-btn {
	display: inline-flex;
	width: 28px;
	height: 28px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	font-size: 15px;
	line-height: 1;
	text-decoration: none;
}

.fwcrm-icon-btn:hover {
	background: rgba(255, 255, 255, 0.08);
}

.fwcrm-sheet-body {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 10px 12px 12px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-height: 0;
}

.fwcrm-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* 0.1.15: locked card — same form face, read-only controls, tel:/mailto: twins. */
.fwcrm-form--locked .fwcrm-people > .fwcrm-btn,
.fwcrm-form--locked .fwcrm-address-suggest,
.fwcrm-form--locked .fwcrm-input--twin {
	display: none !important;
}

.fwcrm-form--locked .fwcrm-input[readonly],
.fwcrm-form--locked .fwcrm-textarea[readonly],
.fwcrm-form--locked .fwcrm-select:disabled {
	cursor: default;
	opacity: 1;
}

.fwcrm-lock-link,
a.fwcrm-lock-link,
.fwcrm-lock-link.fwcrm-tel,
.fwcrm-lock-link.fwcrm-drive {
	display: flex;
	align-items: center;
	width: 100%;
	height: 32px;
	min-height: 32px;
	padding: 0 10px;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: var(--fwcrm-shape);
	background: #3a3a3a;
	color: var(--fwcrm-sky-700);
	font-size: 14px;
	line-height: 1.2;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-decoration: none;
}

.fwcrm-lock-link:hover,
a.fwcrm-lock-link:hover,
.fwcrm-lock-link.fwcrm-tel:hover,
.fwcrm-lock-link.fwcrm-drive:hover {
	color: var(--fwcrm-sky-700);
	text-decoration: underline;
}

.fwcrm-sheet-outcomes {
	flex: 0 0 auto;
	padding: 2px 10px 0;
}

.fwcrm-sheet-tabs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 2px 8px;
	padding: 0 10px;
	border-bottom: 1px solid var(--fwcrm-line-200);
}

.fwcrm-tablist {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	min-width: 0;
}

.fwcrm-tab-chrome {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	margin-left: auto;
	flex: 0 0 auto;
	/* 0.1.18: sit clear of the tab row's bottom border. */
	align-self: flex-start;
	padding-bottom: 6px;
}

.fwcrm-tab-chrome .fwcrm-btn {
	min-height: 28px;
}

.fwcrm-tab {
	min-height: 28px;
	padding: 0 10px;
	border: 0;
	border-bottom: 2px solid transparent;
	background: transparent;
	color: var(--fwcrm-text-medium);
	font: 600 13px/1 var(--fwcrm-font);
	cursor: pointer;
}

.fwcrm-tab.is-active {
	color: #ffffff;
	border-bottom-color: var(--fwcrm-sky-600);
}

.fwcrm-tab-panel {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.fwcrm-tab-panel[hidden] {
	display: none !important;
}

.fwcrm-sheet-foot {
	flex: 0 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	padding: 6px 10px;
	border-top: 1px solid var(--fwcrm-line-200);
	background: #2a2a2a;
}

.fwcrm-sheet-foot .fwcrm-actions {
	flex: 1 1 auto;
}

.fwcrm-field {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.fwcrm-input,
.fwcrm-textarea {
	width: 100%;
	height: 32px;
	padding: 0 10px;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: var(--fwcrm-shape);
	background: #3a3a3a;
	font-family: var(--fwcrm-font);
	font-size: 14px;
	color: #ffffff;
}

.fwcrm-textarea {
	height: auto;
	min-height: 56px;
	padding: 6px 10px;
	resize: vertical;
}

/* 0.1.15: card fields read at 14px / 32px — 0.1.14's 13px / 26px was illegible. */
.fwcrm-sheet-panel .fwcrm-input,
.fwcrm-sheet-panel .fwcrm-select,
.fwcrm-sheet-panel .fwcrm-textarea {
	height: 32px;
	min-height: 32px;
	padding: 0 10px;
	font-size: 14px;
}

.fwcrm-sheet-panel .fwcrm-select {
	min-width: 0;
	padding-right: 28px;
	background-position: calc(100% - 12px) 14px, calc(100% - 7px) 14px;
}

.fwcrm-sheet-panel .fwcrm-select:focus,
.fwcrm-sheet-panel .fwcrm-input:focus,
.fwcrm-sheet-panel .fwcrm-textarea:focus {
	padding-left: 9px;
}

.fwcrm-sheet-panel .fwcrm-textarea {
	height: auto;
	min-height: 56px;
	padding: 6px 10px;
}

.fwcrm-sheet-panel .fwcrm-field:not(:has(textarea)) {
	min-height: 50px;
}

.fwcrm-field-head {
	display: flex;
	align-items: center;
	gap: 6px;
	height: 18px;
	min-height: 18px;
	min-width: 0;
}

.fwcrm-grid {
	display: grid;
	gap: 4px 8px;
	align-items: end;
}

.fwcrm-grid-2 {
	grid-template-columns: 1fr 1fr;
}

.fwcrm-grid-3 {
	grid-template-columns: 1fr 1fr 1fr;
}

.fwcrm-grid-4 {
	grid-template-columns: 1fr 1fr 1fr 1fr;
}

.fwcrm-grid .fwcrm-field[hidden] {
	display: none;
}

.fwcrm-field--action {
	display: flex;
	align-items: flex-end;
	padding-bottom: 0;
}

.fwcrm-grid .fwcrm-select {
	width: 100%;
	min-width: 0;
}

.fwcrm-input--search {
	height: 36px;
	min-width: 260px;
	font-size: 14px;
}

.fwcrm-input--inline {
	height: 32px;
	margin: 4px 8px;
	width: calc(100% - 16px);
	font-size: 13px;
}

.fwcrm-label {
	display: block;
	margin-bottom: 2px;
	font-family: var(--fwcrm-font);
	font-size: 12px;
	line-height: 1.2;
	letter-spacing: 0.2px;
	color: var(--fwcrm-text-medium);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.fwcrm-field-head .fwcrm-label {
	margin-bottom: 0;
	flex: 1 1 auto;
	min-width: 0;
}

.fwcrm-help {
	margin: 2px 0 0;
	font-size: 12px;
	letter-spacing: 0.4px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-help:empty {
	display: none;
}

.fwcrm-help.is-error {
	color: var(--fwcrm-danger);
}

.fwcrm-input.is-error,
.fwcrm-select.is-error,
.fwcrm-textarea.is-error {
	border-color: var(--fwcrm-danger);
}

.fwcrm-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	justify-content: flex-end;
	position: static;
	padding: 0;
	background: transparent;
}

.fwcrm-notes,
.fwcrm-people,
.fwcrm-policies {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.fwcrm-note,
.fwcrm-person,
.fwcrm-policy {
	padding: 6px 8px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	border: 1px solid var(--fwcrm-line-200);
	border-radius: var(--fwcrm-shape);
	background: #333333;
}

/* 0.1.17: contact summary line + drag-sort handle; primary sits on top. */
.fwcrm-person {
	position: relative;
}

.fwcrm-person.is-primary {
	border-color: var(--fwcrm-sky-600);
}

.fwcrm-person.is-drop {
	outline: 2px dashed var(--fwcrm-sky-600);
	outline-offset: 2px;
}

.fwcrm-person.is-highlight {
	outline: 2px solid var(--fwcrm-sky-600);
	outline-offset: 2px;
}

.fwcrm-person.is-dragging {
	opacity: 0.6;
}

.fwcrm-person-summary {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 28px;
	font-size: 13px;
}

.fwcrm-person-summary-text {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 500;
}

.fwcrm-person-summary-text:empty::before {
	content: "—";
	color: var(--fwcrm-text-disabled);
}

.fwcrm-person-handle {
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--fwcrm-text-medium);
	font-size: 14px;
	line-height: 1;
	cursor: grab;
}

.fwcrm-person-handle:active {
	cursor: grabbing;
}

.fwcrm-form--locked .fwcrm-person-handle,
.fwcrm-form--locked .fwcrm-person-remove {
	display: none;
}

/* 0.1.27: × on a contact's summary line removes it from the card (editing only). */
.fwcrm-person-remove {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	margin-left: auto;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--fwcrm-text-medium);
	font: 500 20px/1 var(--fwcrm-font);
	cursor: pointer;
}

.fwcrm-person-remove:hover,
.fwcrm-person-remove:focus-visible {
	background: rgba(214, 69, 69, 0.18);
	color: #ff7b7b;
	outline: none;
}

.fwcrm-pill--primary {
	border-color: var(--fwcrm-sky-600);
	color: #ffffff;
}

.fwcrm-note-meta {
	margin: 0 0 8px;
	padding-right: 60px;
	font-size: 12px;
	color: var(--fwcrm-text-medium);
}

/* 0.1.17: history notes edit for 24 hours — icon top-right of the note card. */
.fwcrm-note {
	position: relative;
}

.fwcrm-note-edit {
	position: absolute;
	top: 4px;
	right: 32px;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--fwcrm-text-medium);
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
}

/* 0.1.18: Delete sits right of Edit (order Edit, Delete) for the same 24h window. */
.fwcrm-note-delete {
	position: absolute;
	top: 4px;
	right: 4px;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--fwcrm-text-medium);
	font-size: 13px;
	line-height: 1;
	cursor: pointer;
}

.fwcrm-note-delete:hover {
	background: rgba(220, 80, 80, 0.28);
	color: #ffffff;
}

.fwcrm-note-edit:hover {
	background: rgba(45, 120, 173, 0.28);
	color: #ffffff;
}

.fwcrm-note-edit-actions {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
}

.fwcrm-note-body {
	margin: 0;
	font-size: 15px;
	white-space: pre-wrap;
}

.fwcrm-lock-strip {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 4px 8px;
	min-height: 0;
	background: #353535;
	border: 1px solid var(--fwcrm-line-200);
	border-radius: var(--fwcrm-shape);
}

.fwcrm-lock-text {
	margin: 0;
	font-size: 14px;
	color: #ffffff;
	line-height: 1.4;
}

.fwcrm-lock-edit {
	flex-shrink: 0;
}

.fwcrm-account-only[hidden],
.fwcrm-person-only[hidden],
.fwcrm-name-field[hidden],
.fwcrm-board[hidden],
.fwcrm-list[hidden],
.fwcrm-filters[hidden],
.fwcrm-filter-chip[hidden],
.fwcrm-sheet[hidden],
.fwcrm-mobile-stage[hidden],
.fwcrm-auth[hidden] {
	display: none !important;
}

html.fwcrm-face,
body.fwcrm-face {
	color-scheme: dark;
	margin: 0;
	height: 100%;
	overflow: hidden;
	background: #121212;
}

.fwcrm-app--standalone {
	display: flex;
	align-items: stretch;
	padding: 0;
	min-height: 100vh;
	min-height: 100dvh;
	height: 100%;
	background: #121212;
}

.fwcrm-sidebar {
	position: relative;
	flex: 0 0 186px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px 12px;
	background: var(--fwcrm-sidebar);
	color: #ffffff;
	min-height: 0;
	/* 0.1.17: the rail itself never clips — the edge toggle hangs half off it. */
	overflow: visible;
	z-index: 3;
}

.fwcrm-brand {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
	padding: 0 8px 8px;
	min-height: 40px;
	box-sizing: border-box;
}

.fwcrm-brand.has-book {
	min-height: 80px;
}

.fwcrm-brand-text {
	min-width: 0;
}

/* 0.1.65 A1: collapsed rail brand is the FW lettermark (quad stays favicon / apple-touch). */
.fwcrm-brand-mark {
	display: none;
	margin: 0;
	font-family: var(--fwcrm-font-display);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 1px;
	color: #ffffff;
	text-align: center;
}

/* 0.1.17: edge circle toggle — sky fill, sits half on the rail edge. 0.1.65 A2: no black outline. */
.fwcrm-sidebar-min {
	position: absolute;
	top: 28px;
	right: -14px;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--fwcrm-sky-600);
	color: #ffffff;
	font-family: var(--fwcrm-font);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	z-index: 4;
}

.fwcrm-sidebar-min:hover {
	background: var(--fwcrm-sky-800);
}

.fwcrm-sidebar-min:focus-visible {
	outline: 2px solid var(--fwcrm-sky-700);
	outline-offset: 2px;
}

.fwcrm-btn-ico {
	width: 18px;
	height: 18px;
	margin-right: 8px;
	flex: 0 0 auto;
	display: block;
	color: currentColor;
}

/* 0.1.65 F: header Add / Leaderboard / Settings are icon-only ≥40×40. */
.fwcrm-topbar-actions .fwcrm-btn.fwcrm-btn--icon {
	width: 40px;
	height: 40px;
	min-width: 40px;
	min-height: 40px;
	max-width: 40px;
	padding: 0;
	flex: 0 0 40px;
}

.fwcrm-topbar-actions .fwcrm-btn--icon .fwcrm-btn-ico {
	margin-right: 0;
}

.fwcrm-appearance {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.fwcrm-appearance-btn {
	min-width: 72px;
	min-height: 36px;
	padding: 0 12px;
	border: 1px solid var(--fwcrm-sky-600);
	border-radius: var(--fwcrm-shape);
	background: transparent;
	color: #ffffff;
	font-family: var(--fwcrm-font);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
}

.fwcrm-appearance-btn.is-active {
	background: var(--fwcrm-sky-600);
	color: #ffffff;
}

.fwcrm-brand-title {
	margin: 0;
	font-family: var(--fwcrm-font-display);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.15px;
	color: #ffffff;
}

.fwcrm-nav {
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
	overflow-y: auto;
}

.fwcrm-nav-section {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-bottom: 8px;
}

.fwcrm-nav-section[hidden] {
	display: none !important;
}

.fwcrm-nav-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 40px;
	padding: 0 12px;
	border: 0;
	border-radius: var(--fwcrm-shape);
	background: transparent;
	color: #ffffff;
	font-family: var(--fwcrm-font);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	text-align: left;
	cursor: pointer;
}

.fwcrm-nav-toggle::after {
	content: "▾";
	font-size: 12px;
	opacity: 0.7;
}

.fwcrm-nav-section:not(.is-open) .fwcrm-nav-toggle::after {
	content: "▸";
}

.fwcrm-nav-section:not(.is-open) .fwcrm-nav-items,
.fwcrm-nav-section:not(.is-open) .fwcrm-nav-add {
	display: none;
}

/* 0.1.17: collapsed rail (default). FW mark, emoji-only pipeline switch, then a
   divider + Functions icons, then a divider + custom list icons. No labels.
   0.1.65 A4: section-header slot stays in layout (visibility:hidden); dividers
   live in that slot so icon Y matches expanded. */
@media (min-width: 768px) {
	.fwcrm-app.is-sidebar-min .fwcrm-sidebar {
		flex: 0 0 56px;
		width: 56px;
		padding: 24px 8px;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-brand {
		justify-content: center;
		align-items: center;
		padding: 0 0 8px;
		min-height: 40px;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-brand.has-book {
		min-height: 80px;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-brand-text,
	.fwcrm-app.is-sidebar-min .fwcrm-nav-add,
	.fwcrm-app.is-sidebar-min .fwcrm-list-more,
	.fwcrm-app.is-sidebar-min [data-fwcrm-list-create] {
		display: none;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-nav-toggle {
		visibility: hidden;
		pointer-events: none;
		height: 40px;
		min-height: 40px;
		overflow: hidden;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-nav-section + .fwcrm-nav-section .fwcrm-nav-toggle {
		position: relative;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-nav-section + .fwcrm-nav-section .fwcrm-nav-toggle::before {
		content: "";
		visibility: visible;
		position: absolute;
		left: 8px;
		right: 8px;
		top: 50%;
		height: 1px;
		background: rgba(255, 255, 255, 0.18);
	}

	.fwcrm-app.is-sidebar-min .fwcrm-brand-mark {
		display: block;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-nav {
		overflow-x: hidden;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-nav-section {
		align-items: center;
	}

	/* Folded sections still show their icons while collapsed. */
	.fwcrm-app.is-sidebar-min .fwcrm-nav-section:not(.is-open) .fwcrm-nav-items,
	.fwcrm-app.is-sidebar-min .fwcrm-nav-items {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 2px;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-list-row {
		width: 40px;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-nav-btn {
		width: 40px;
		min-height: 36px;
		padding: 0;
		justify-content: center;
		font-size: 0;
		line-height: 0;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-nav-btn .fwcrm-glyph {
		display: block;
	}
}

.fwcrm-glyph {
	display: none;
	flex: 0 0 auto;
	color: currentColor;
}

.fwcrm-pill .fwcrm-glyph,
.fwcrm-prefs-emoji .fwcrm-glyph {
	display: block;
	width: 14px;
	height: 14px;
}

.fwcrm-nav-items {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.fwcrm-nav-btn,
.fwcrm-nav-add {
	display: flex;
	align-items: center;
	min-height: 36px;
	padding: 0 12px;
	border: 0;
	border-radius: var(--fwcrm-shape);
	background: transparent;
	color: rgba(255, 255, 255, 0.78);
	font-family: var(--fwcrm-font);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.2px;
	text-align: left;
	cursor: pointer;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fwcrm-nav-add {
	color: #7eb6d8;
	font-size: 13px;
}

.fwcrm-nav-btn:hover,
.fwcrm-nav-toggle:hover,
.fwcrm-nav-add:hover {
	background: rgba(255, 255, 255, 0.08);
	color: #ffffff;
}

.fwcrm-nav-btn.is-active {
	background: rgba(45, 120, 173, 0.28);
	color: #ffffff;
}

/* 0.1.27: `display: flex` above outranks the UA's [hidden] rule, so paintRail()'s
   btn.hidden never took — Academy (and, historically, Hiring / Local Energy before
   the 0.1.33 rail cut) stayed on a producer's rail. Hidden means gone. */
.fwcrm-nav-btn[hidden],
.fwcrm-list-row[hidden] {
	display: none !important;
}

.fwcrm-nav-import {
	margin: 0;
	cursor: pointer;
}

.fwcrm-list-row {
	position: relative;
	display: flex;
	align-items: center;
	gap: 2px;
}

.fwcrm-list-row .fwcrm-nav-btn {
	flex: 1;
	min-width: 0;
}

.fwcrm-list-more {
	flex: 0 0 28px;
	height: 28px;
	border: 0;
	border-radius: var(--fwcrm-shape);
	background: transparent;
	color: rgba(255, 255, 255, 0.6);
	cursor: pointer;
}

.fwcrm-list-more:hover {
	background: rgba(255, 255, 255, 0.08);
	color: #ffffff;
}

/* 0.1.75: drag grip re-sorts custom Lists in the rail (per signed-in user). */
/* 0.1.76: the grip floats over the button's left padding, so custom Lists sit
   flush with Clients / Marketing / Watchlist (no indent). Hit target stays 14px. */
.fwcrm-list-grip {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 14px;
	font-size: 11px;
	line-height: 1;
	letter-spacing: -2px;
	text-align: center;
	color: rgba(255, 255, 255, 0.35);
	cursor: grab;
	opacity: 0;
	user-select: none;
}

.fwcrm-list-row:hover .fwcrm-list-grip,
.fwcrm-list-row.is-dragging .fwcrm-list-grip {
	opacity: 1;
}

.fwcrm-list-grip:active {
	cursor: grabbing;
}

.fwcrm-list-row.is-dragging {
	opacity: 0.5;
}

.fwcrm-list-row.is-drop-before {
	box-shadow: inset 0 2px 0 var(--fwcrm-sky-600);
}

.fwcrm-list-row.is-drop-after {
	box-shadow: inset 0 -2px 0 var(--fwcrm-sky-600);
}

.fwcrm-main {
	flex: 1;
	min-width: 0;
	min-height: 0;
	display: flex;
	flex-direction: column;
	background: var(--fwcrm-paper);
	color: #ffffff;
}

.fwcrm-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-shrink: 0;
	padding: 16px 20px 12px;
	background: #080808;
}

.fwcrm-topbar-left {
	display: flex;
	align-items: center;
	gap: 16px;
	min-width: 0;
	flex: 1;
}

.fwcrm-topbar-title-wrap {
	display: flex;
	flex-direction: column;
	min-width: 0;
	gap: 2px;
}

.fwcrm-topbar-title {
	margin: 0;
	font-family: var(--fwcrm-font-display);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.15px;
	color: #ffffff;
	white-space: nowrap;
}

.fwcrm-topbar-sub {
	margin: 0;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--fwcrm-text-medium);
	white-space: nowrap;
}

.fwcrm-topbar-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
}

.fwcrm-search-label {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: var(--fwcrm-text-medium);
	font-size: 12px;
	letter-spacing: 0.4px;
}

.fwcrm-search-hint {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 40;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	min-width: 220px;
	padding: 10px 12px;
	background: var(--fwcrm-surface, #333);
	border: 1px solid var(--fwcrm-line, #555);
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
	color: var(--fwcrm-text, #f3f3f3);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
}

.fwcrm-search-hint[hidden] {
	display: none !important;
}

/* 0.1.31: display:flex outranks the UA [hidden] rule — search must vanish on Leaderboard. */
.fwcrm-search-label[hidden] {
	display: none !important;
}

.fwcrm-app--standalone .fwcrm-topbar .fwcrm-btn--contained {
	display: inline-flex;
}

.fwcrm-workspace {
	flex: 1;
	min-height: 0;
	overflow: auto;
	padding: 0 16px 24px;
}

.fwcrm-app--standalone .fwcrm-board {
	min-height: calc(100vh - 168px);
	padding-bottom: 8px;
}

.fwcrm-app--standalone .fwcrm-column {
	max-height: calc(100vh - 188px);
}

.fwcrm-auth {
	margin: 8px 4px 16px;
	padding: 16px;
	border: 1px solid var(--fwcrm-line-200);
	border-radius: var(--fwcrm-shape);
	background: #333333;
}

.fwcrm-admin-shell {
	margin-top: 16px;
	height: calc(100vh - 180px);
	min-height: 560px;
	background: #1a1a1a;
}

.fwcrm-admin-shell .fwcrm-app--standalone {
	min-height: 100%;
	height: 100%;
	border: 1px solid var(--fwcrm-line-200);
	border-radius: var(--fwcrm-shape);
	overflow: hidden;
}

.wrap.fwcrm-admin,
.fwcrm-admin h1 {
	color: inherit;
}

.fwcrm-menu {
	display: none;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: var(--fwcrm-shape);
	background: #3a3a3a;
	color: #ffffff;
	font-family: var(--fwcrm-font);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
}

.fwcrm-nav-backdrop {
	display: none;
}

.fwcrm-tel {
	color: #7eb6d8;
	text-decoration: none;
	font-weight: 500;
}

.fwcrm-tel:hover {
	text-decoration: underline;
}

.fwcrm-disq-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	color: var(--fwcrm-text-medium);
	font-size: 12px;
	white-space: nowrap;
}

.fwcrm-dupe {
	padding: 6px 8px;
	border: 1px solid var(--fwcrm-warning);
	border-radius: var(--fwcrm-shape);
	background: var(--fwcrm-warning-bg);
}

.fwcrm-dupe-title {
	margin: 0 0 8px;
	font-weight: 700;
}

.fwcrm-dupe-link {
	display: block;
	width: 100%;
	min-height: 36px;
	margin: 4px 0 0;
	padding: 0;
	border: 0;
	background: none;
	color: #7eb6d8;
	font: inherit;
	text-align: left;
	text-decoration: underline;
	cursor: pointer;
}

.fwcrm-dupe-foreign {
	display: block;
	width: 100%;
	min-height: 36px;
	margin: 4px 0 0;
	color: var(--fwcrm-text-medium);
	font: inherit;
	text-align: left;
}

.fwcrm-disq-reason,
.fwcrm-card-disq {
	color: var(--fwcrm-danger);
}

.fwcrm-card--disq {
	opacity: 0.82;
}

.fwcrm-dash {
	max-width: 960px;
}

/* 0.1.76 (A): in-page subnav + labelled groups (Intake / Tools-like clarity, own CSS). */
.fwcrm-admin-subnav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
	margin: 4px 0 16px;
	font-size: 13px;
}

.fwcrm-admin-subnav a {
	text-decoration: none;
}

.fwcrm-admin-group {
	margin: 0 0 28px;
	padding-top: 4px;
	border-top: 1px solid #dcdcde;
}

.fwcrm-admin-group-title {
	margin: 10px 0 0;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #646970;
}

.fwcrm-dash--activity {
	max-width: 1280px;
}

.fwcrm-dash--activity h2 {
	font-size: 16px;
	font-weight: 600;
	margin: 28px 0 6px;
	max-width: 1280px;
}

.fwcrm-dash--activity h2:first-of-type {
	margin-top: 18px;
}

.fwcrm-dash--activity .fwcrm-admin-desc {
	max-width: 1280px;
	font-size: 12px;
	color: #646970;
	margin: 0 0 12px;
}

.fwcrm-dash--activity .fwcrm-admin-panel h3 {
	margin: 0 0 4px;
	font-size: 14px;
	font-weight: 600;
}

.fwcrm-dash-table {
	margin: 0 0 24px;
}

.fwcrm-admin-desc {
	color: #50575e;
	margin: 0 0 10px;
	max-width: 720px;
	line-height: 1.45;
}

.fwcrm-admin-panel {
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 4px;
	padding: 14px 16px;
	max-width: 720px;
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
	margin-bottom: 4px;
}

.fwcrm-dash--activity .fwcrm-admin-panel {
	max-width: none;
	padding: 14px 16px 16px;
}

.fwcrm-admin-row {
	margin: 8px 0;
}

.fwcrm-admin-muted {
	color: #646970;
	font-size: 12px;
}

.fwcrm-admin-ok {
	color: #1e6b2e;
	font-weight: 500;
	margin: 0 0 6px;
}

.fwcrm-measure-result {
	margin-top: 10px;
	padding: 8px 10px;
	background: #f6f7f7;
	border-radius: 3px;
	font-variant-numeric: tabular-nums;
}

.fwcrm-act-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin: 0 0 14px;
	max-width: 1280px;
}

.fwcrm-act-seg {
	display: inline-flex;
	border: 1px solid #dcdcde;
	border-radius: 4px;
	overflow: hidden;
	background: #fff;
}

.fwcrm-act-seg-btn {
	display: inline-block;
	border: 0;
	background: transparent;
	padding: 6px 14px;
	font-size: 13px;
	text-decoration: none;
	color: #1d2327;
}

.fwcrm-act-seg-btn.is-active {
	background: #2271b1;
	color: #fff;
}

.fwcrm-act-hint {
	color: #646970;
	font-size: 12px;
}

.fwcrm-act-cards {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 16px;
	max-width: 1280px;
}

.fwcrm-act-stat {
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 4px;
	padding: 10px 12px;
}

.fwcrm-act-stat-label {
	color: #646970;
	font-size: 11px;
	margin-bottom: 4px;
}

.fwcrm-act-stat-value {
	font-size: 20px;
	font-weight: 600;
}

.fwcrm-act-stat-sub {
	color: #646970;
	font-size: 11px;
	margin-top: 4px;
}

.fwcrm-act-table-wrap {
	overflow-x: auto;
	max-width: 1280px;
	margin: 0 0 24px;
}

.fwcrm-act-table-wrap .fwcrm-dash-table {
	margin-bottom: 0;
}

.fwcrm-act-table {
	font-size: 12px;
	width: 100%;
	max-width: 1280px;
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
}

.fwcrm-act-table th,
.fwcrm-act-table td {
	white-space: nowrap;
	padding: 8px 10px;
}

.fwcrm-act-table tfoot th,
.fwcrm-act-table tfoot td {
	background: #f6f7f7;
	font-weight: 600;
	border-top: 1px solid #dcdcde;
}

.fwcrm-act-table .num {
	text-align: right;
	font-variant-numeric: tabular-nums;
	border-left: 1px solid #f0f0f1;
}

.fwcrm-act-col-group th {
	text-align: center;
	border-left: 1px solid #e2e4e7;
	background: #eef2f5;
	font-size: 10px;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: #50575e;
}

.fwcrm-act-col-group th:first-child {
	border-left: 0;
	text-align: left;
	background: #f6f7f7;
}

.fwcrm-act-who {
	font-weight: 500;
	font-size: 13px;
}

.fwcrm-act-email {
	color: #646970;
	font-size: 11px;
}

.fwcrm-act-pill {
	display: inline-block;
	font-size: 11px;
	padding: 2px 7px;
	border-radius: 10px;
	background: #f0f0f1;
	color: #646970;
}

.fwcrm-act-pill.is-active {
	background: #edf7ed;
	color: #1e6b2e;
}

.fwcrm-act-pill.is-recent {
	background: #fff8e5;
	color: #996800;
}

.fwcrm-act-charts {
	display: grid;
	grid-template-columns: 1fr 1.15fr;
	gap: 16px;
	align-items: start;
	margin-bottom: 18px;
	max-width: 1280px;
}

.fwcrm-act-meta {
	color: #646970;
	font-size: 11px;
	margin: 0 0 14px;
}

.fwcrm-act-bar {
	display: grid;
	grid-template-columns: 72px 1fr 52px;
	gap: 8px;
	align-items: center;
	margin-bottom: 7px;
}

.fwcrm-act-bar-name {
	font-weight: 500;
}

.fwcrm-act-bar-track {
	height: 14px;
	background: #f0f0f1;
	border-radius: 3px;
	overflow: hidden;
}

.fwcrm-act-bar-fill {
	height: 100%;
	background: #2d78ad;
	border-radius: 3px;
}

.fwcrm-act-bar-n {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.fwcrm-act-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 12px;
	font-size: 11px;
	color: #50575e;
}

.fwcrm-act-legend span::before {
	content: "";
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 2px;
	margin-right: 5px;
	vertical-align: -1px;
}

.fwcrm-act-legend .is-open::before {
	background: #2271b1;
}

.fwcrm-act-legend .is-sold::before {
	background: #b85c38;
}

.fwcrm-act-legend .is-def::before {
	background: #dba617;
}

.fwcrm-act-legend .is-dq::before {
	background: #8c8f94;
}

.fwcrm-act-stack-row {
	display: grid;
	grid-template-columns: 88px 1fr 44px;
	gap: 8px;
	align-items: center;
	margin-bottom: 8px;
}

.fwcrm-act-stack-name {
	font-weight: 500;
	font-size: 12px;
}

.fwcrm-act-stack {
	display: flex;
	height: 16px;
	border-radius: 3px;
	overflow: hidden;
	background: #f0f0f1;
}

.fwcrm-act-stack i {
	display: block;
	height: 100%;
}

.fwcrm-act-stack .is-open {
	background: #2271b1;
}

.fwcrm-act-stack .is-sold {
	background: #b85c38;
}

.fwcrm-act-stack .is-def {
	background: #dba617;
}

.fwcrm-act-stack .is-dq {
	background: #8c8f94;
}

.fwcrm-act-stack-n {
	text-align: right;
	font-variant-numeric: tabular-nums;
	font-size: 12px;
}

.fwcrm-act-stack-row.fwcrm-act-stack--all {
	margin-top: 12px;
	padding-top: 10px;
	border-top: 1px solid #f0f0f1;
}

@media (max-width: 1100px) {
	.fwcrm-act-cards,
	.fwcrm-act-charts {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 782px) {
	.fwcrm-act-cards,
	.fwcrm-act-charts {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.fwcrm-sidebar-min {
		display: none;
	}

	/* 0.1.38: percent columns below — no desktop floor. */
	.fwcrm-table--sheet {
		min-width: 0;
	}

	.fwcrm-app.is-sidebar-min .fwcrm-sidebar {
		flex-basis: auto;
		width: min(300px, 88vw);
	}

	.fwcrm-app.is-sidebar-min .fwcrm-brand-text,
	.fwcrm-app.is-sidebar-min .fwcrm-nav {
		display: block;
	}

	.fwcrm-menu {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.fwcrm-filter-chip,
	.fwcrm-filter-clear,
	.fwcrm-filter-field .fwcrm-input,
	.fwcrm-filter-field .fwcrm-select {
		min-height: 44px;
	}

	.fwcrm-filter-field {
		flex: 1 1 140px;
	}

	.fwcrm-mobile-stage {
		display: none;
	}

	.fwcrm-board {
		display: flex;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 24px;
	}

	.fwcrm-column {
		display: flex;
		flex: 0 0 84vw;
		width: 84vw;
		max-height: none;
		min-height: 240px;
	}

	.fwcrm-sheet {
		padding: 0;
	}

	.fwcrm-sheet-panel {
		width: 100%;
		max-height: 100%;
		height: 100%;
		border-radius: 0;
	}

	.fwcrm-modal-x {
		width: 44px;
		height: 44px;
		min-width: 44px;
		font-size: 32px;
	}

	.fwcrm-name-row {
		grid-template-columns: 1fr;
	}

	.fwcrm-sold-row {
		grid-template-columns: 1fr 1fr;
	}

	.fwcrm-grid-2,
	.fwcrm-grid-3,
	.fwcrm-grid-4 {
		grid-template-columns: 1fr;
	}

	.fwcrm-field--action {
		padding-bottom: 0;
	}

	.fwcrm-input,
	.fwcrm-select,
	.fwcrm-sheet-panel .fwcrm-input,
	.fwcrm-sheet-panel .fwcrm-select {
		height: 44px;
		min-height: 44px;
	}

	.fwcrm-sold-row--head {
		display: none;
	}

	/* Phones: keep Name / Phone / Email / Expiration; Outcome, Quick note, and Updated live on the card. */
	.fwcrm-th-outcome,
	.fwcrm-td-outcome,
	.fwcrm-th-note,
	.fwcrm-td-note,
	.fwcrm-th-premium,
	.fwcrm-td-premium,
	.fwcrm-th-watch,
	.fwcrm-td-watch,
	.fwcrm-col-outcome,
	.fwcrm-col-note,
	.fwcrm-col-premium,
	.fwcrm-col-watch {
		display: none;
	}

	.fwcrm-col-name {
		width: 40%;
	}

	.fwcrm-col-phone {
		width: 20%;
	}

	.fwcrm-col-email {
		width: 22%;
	}

	.fwcrm-col-exp {
		width: 18%;
	}

	.fwcrm-topbar-actions {
		flex-wrap: wrap;
		gap: 8px;
	}

	.fwcrm-topbar-actions .fwcrm-btn--outlined {
		padding: 0 10px;
		min-width: 0;
	}

	.fwcrm-topbar-actions .fwcrm-btn.fwcrm-btn--icon {
		padding: 0;
		min-width: 40px;
		min-height: 40px;
	}

	.fwcrm-layout-btn,
	.fwcrm-nav-btn,
	.fwcrm-btn {
		min-height: 44px;
	}

	.fwcrm-topbar-actions .fwcrm-btn.fwcrm-btn--icon {
		min-height: 40px;
	}

	.fwcrm-app--standalone {
		flex-direction: column;
		height: auto;
		min-height: 100vh;
		overflow: auto;
	}

	html.fwcrm-face,
	body.fwcrm-face {
		overflow: auto;
		height: auto;
	}

	.fwcrm-nav-backdrop {
		display: none;
		position: fixed;
		inset: 0;
		z-index: 30;
		border: 0;
		background: rgba(0, 0, 0, 0.56);
	}

	.fwcrm-app.is-nav-open .fwcrm-nav-backdrop {
		display: block;
	}

	.fwcrm-sidebar {
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		z-index: 31;
		width: min(300px, 88vw);
		transform: translateX(-105%);
		padding: 16px 12px;
	}

	.fwcrm-app.is-nav-open .fwcrm-sidebar {
		transform: translateX(0);
	}

	.fwcrm-topbar {
		flex-wrap: wrap;
		padding-top: 12px;
	}

	.fwcrm-topbar-left,
	.fwcrm-topbar-actions {
		width: 100%;
	}

	.fwcrm-input--search {
		min-width: 0;
		width: 100%;
	}

	.fwcrm-app--standalone .fwcrm-board {
		min-height: 0;
	}

	.fwcrm-app--standalone .fwcrm-column {
		max-height: none;
	}
}

.fwcrm-heat {
	display: inline-block;
	width: 10px;
	height: 10px;
	margin-right: 8px;
	border-radius: 50%;
	vertical-align: middle;
	flex: 0 0 10px;
}

/* 0.1.19: the locked cold → won scale. House: blank gray · No Answer / Follow Up
   yellow · Interested / Qualified blue · Next Renewal purple · Marketing / Quoted
   black · Client green. Academy: blank black · Supporter purple · Interested blue ·
   In Session / Hired green · Candidate yellow · Alum / Not Interested gray.
   .fwcrm-heat--none marks "no Outcome yet" and always pairs with a color class. */
.fwcrm-heat--none,
.fwcrm-heat--gray {
	background: #6a6a6a;
}

.fwcrm-heat--yellow {
	background: #e3c22d;
}

.fwcrm-heat--green {
	background: #3d9a54;
}

.fwcrm-heat--blue {
	background: #4aa3d9;
}

.fwcrm-heat--amber {
	background: #e39b2d;
}

.fwcrm-heat--purple {
	background: #8b5cf6;
}

.fwcrm-heat--black {
	background: #111111;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35);
}

/* 0.1.20: Client on a prospecting face (white, dark ring) · the reds. Local Energy Scheduled is removed history (0.1.33). */
.fwcrm-heat--white {
	background: #ffffff;
	box-shadow: 0 0 0 1px rgba(8, 8, 8, 0.6);
}

.fwcrm-heat--red {
	background: #d64545;
}

.fwcrm-heat--orange {
	background: #f08a24;
}

.fwcrm-card-title {
	display: flex;
	align-items: center;
	gap: 6px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}

.fwcrm-card .fwcrm-heat {
	flex: 0 0 auto;
}

.fwcrm-card .fwcrm-name-text {
	flex: 1 1 0;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fwcrm-card--heat-green {
	box-shadow: inset 3px 0 0 #3d9a54;
}

.fwcrm-card--heat-blue {
	box-shadow: inset 3px 0 0 #4aa3d9;
}

.fwcrm-card--heat-amber {
	box-shadow: inset 3px 0 0 #e39b2d;
}

.fwcrm-card--heat-purple {
	box-shadow: inset 3px 0 0 #8b5cf6;
}

.fwcrm-card--heat-yellow {
	box-shadow: inset 3px 0 0 #e3c22d;
}

.fwcrm-card--heat-gray {
	box-shadow: inset 3px 0 0 #6a6a6a;
}

.fwcrm-card--heat-black {
	box-shadow: inset 3px 0 0 #111111, inset 4px 0 0 rgba(255, 255, 255, 0.35);
}

.fwcrm-card-xdate {
	margin: 0;
	font-size: 12px;
	line-height: 1.3;
	color: var(--fwcrm-text-medium);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.fwcrm-outcomes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 4px 0 10px;
	align-items: center;
}

.fwcrm-outcome-select {
	min-height: 40px;
	min-width: 220px;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: 4px;
	background-color: #3a3a3a;
	color: #ffffff;
	font: 500 14px/1 var(--fwcrm-font);
}

/* 0.1.17: Source sits beside Outcome in the card header (new and existing cards). */
.fwcrm-source-wrap {
	position: relative;
	display: inline-block;
}

/* 0.1.28: NAICS / SIC pickers on the Company tab — the same drop-down, anchored to the field. */
.fwcrm-code-wrap {
	position: relative;
}

.fwcrm-code-wrap .fwcrm-typeahead {
	top: auto;
	left: auto;
	right: 0;
	min-width: 100%;
	width: max-content;
	max-width: 420px;
}

.fwcrm-code-wrap .fwcrm-typeahead-opt {
	white-space: normal;
}

/* 0.1.19: Source is a plain text field — matching Sources from other cards drop
   under it while typing (no chevron, no picker). */
.fwcrm-typeahead {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 6;
	min-width: 100%;
	max-height: 200px;
	margin: 2px 0 0;
	padding: var(--fwcrm-space-1) 0;
	list-style: none;
	overflow-y: auto;
	background: #2a2a2a;
	border-radius: var(--fwcrm-shape);
	box-shadow: var(--fwcrm-elev-2);
}

.fwcrm-typeahead[hidden] {
	display: none;
}

.fwcrm-typeahead-opt {
	padding: 6px 12px;
	font-size: 14px;
	white-space: nowrap;
	cursor: pointer;
}

.fwcrm-typeahead-opt:hover,
.fwcrm-typeahead-opt.is-active {
	background: var(--fwcrm-row-hover);
}

.fwcrm-sheet-panel .fwcrm-source-input {
	height: 40px;
	min-height: 40px;
	min-width: 180px;
	max-width: 260px;
	padding: 0 12px;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: 4px;
	background-color: #3a3a3a;
	color: #ffffff;
	font: 500 14px/1 var(--fwcrm-font);
}

.fwcrm-dialog {
	position: fixed;
	inset: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.fwcrm-dialog[hidden] {
	display: none !important;
}

.fwcrm-dialog-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.64);
}

.fwcrm-dialog-panel {
	position: relative;
	z-index: 1;
	width: min(520px, 100%);
	padding: 20px;
	background: #2a2a2a;
	border-radius: 8px;
	color: #ffffff;
}

.fwcrm-dialog-title {
	margin: 0 0 16px;
	font-family: var(--fwcrm-font-display);
	font-size: 18px;
	font-weight: 500;
}

.fwcrm-sold-row {
	display: grid;
	grid-template-columns: 1.2fr 1.2fr 1fr 1fr 0.8fr;
	gap: 8px;
	margin: 0 0 8px;
}

.fwcrm-sold-row .fwcrm-input {
	min-height: 36px;
	background: #3a3a3a;
	color: #ffffff;
	border: 1px solid var(--fwcrm-line-300);
}

.fwcrm-stage-lock {
	flex: 0 0 auto;
	font-size: 13px;
	line-height: 1;
}

.fwcrm-stage-count {
	flex: 0 0 auto;
	min-width: 64px;
	font-size: 12px;
	color: var(--fwcrm-text-medium);
	text-align: right;
}

.fwcrm-stage-move {
	min-width: 32px;
	padding: 0 6px;
}

.fwcrm-stage-move:disabled,
.fwcrm-stage-remove:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.fwcrm-dialog-actions {
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	margin-top: 16px;
}

.fwcrm-last-contacted {
	margin: 0;
	color: var(--fwcrm-text-medium);
	font-size: 12px;
}

.fwcrm-tasks {
	overflow: auto;
}

.fwcrm-task--done td {
	color: var(--fwcrm-text-medium);
	text-decoration: line-through;
}

.fwcrm-tasks input[type="checkbox"] {
	width: 20px;
	height: 20px;
	min-width: 20px;
	min-height: 20px;
}

@media (prefers-reduced-motion: reduce) {
	.fwcrm-app * {
		transition-duration: 1ms !important;
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* 0.1.11: full-card CSV preview, Drive file links, household people */
.fwcrm-import-pipes {
	margin: 8px 0 12px;
}
.fwcrm-import-pipes td:nth-child(n + 2),
.fwcrm-import-pipes th:nth-child(n + 2) {
	text-align: right;
	width: 90px;
}
.fwcrm-import-pipes-total td {
	font-weight: 600;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.fwcrm-file-list {
	list-style: none;
	margin: 0 0 12px;
	padding: 0;
}
.fwcrm-file-list li {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 10px;
	align-items: baseline;
	padding: 4px 0;
}
.fwcrm-file-list a {
	word-break: break-all;
}
.fwcrm-import-full-note {
	margin-top: 4px;
}

/* 0.1.57: Starting stage on the same baseline as its help, not a lower stacked block. */
.fwcrm-import-stage-field {
	grid-column: 1 / -1;
}

.fwcrm-import-stage-line {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	gap: 12px;
	min-width: 0;
}

.fwcrm-import-stage-control {
	flex: 0 1 220px;
	min-width: 160px;
}

.fwcrm-import-stage-line .fwcrm-help {
	margin: 0 0 6px;
	flex: 1 1 auto;
	min-width: 0;
}

.fwcrm-stage-page-foot {
	margin: 6px 4px 10px;
	font-size: 13px;
	letter-spacing: 0.2px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-stage-load-more {
	padding: 0;
	min-height: 0;
	font-weight: 600;
}
@media (min-width: 900px) {
	.fwcrm-person .fwcrm-grid-4 {
		grid-template-columns: 1fr 1fr 1fr 150px;
	}
}

/* 0.1.18: Mark Sold tracked form + soft warning */
.fwcrm-sold-primary {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 10px;
}

.fwcrm-help.is-warn {
	color: #e39b2d;
}

.fwcrm-help.is-warn[hidden] {
	display: none;
}

/* 0.1.14: toasts, address lookup, locked sheet tabs · 0.1.15: modifier-click select, locked cards, list inline edits */
/* 0.1.17: toasts sit bottom-right, house rust, auto-dismiss after 3s. */
.fwcrm-toasts {
	position: fixed;
	right: 16px;
	left: auto;
	bottom: 16px;
	z-index: 80;
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: min(360px, calc(100vw - 32px));
	pointer-events: none;
}

.fwcrm-toast {
	pointer-events: auto;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 6px;
	background: var(--fwcrm-sky-600);
	color: #ffffff;
	border: 1px solid rgba(255, 255, 255, 0.22);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.fwcrm-toast.is-error {
	background: var(--fwcrm-sky-800);
	border-color: rgba(220, 80, 80, 0.7);
}

.fwcrm-toast-text {
	margin: 0;
	font-size: 13px;
	line-height: 1.35;
	user-select: text;
}

.fwcrm-toast-x {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	border: 0;
	background: transparent;
	color: #ffffff;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
}

.fwcrm-bulk {
	display: flex;
	align-items: center;
	gap: var(--fwcrm-space-2);
	padding: var(--fwcrm-space-2) var(--fwcrm-space-3);
	margin: 0 0 var(--fwcrm-space-2);
	background: #242424;
	border: 0;
	border-radius: 6px;
	box-shadow: var(--fwcrm-elev-1);
}

.fwcrm-bulk[hidden] {
	display: none !important;
}

.fwcrm-bulk.is-busy {
	opacity: 0.7;
	pointer-events: none;
}

/* 0.1.18: Functions › Clients summary bar (Clients · Policies · Total Premium). */
.fwcrm-summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--fwcrm-space-2) var(--fwcrm-space-3);
	padding: var(--fwcrm-space-2) var(--fwcrm-space-3);
	margin: 0 0 var(--fwcrm-space-2);
	background: #242424;
	border: 0;
	border-radius: 6px;
	box-shadow: var(--fwcrm-elev-1);
	font-size: 13px;
	/* 0.1.70 B5: the strip is dark in every Appearance — labels never follow the Light text token. */
	color: rgba(255, 255, 255, 0.78);
}

.fwcrm-summary[hidden] {
	display: none !important;
}

.fwcrm-summary-stat strong {
	color: #ffffff;
	font-size: 15px;
	font-weight: 600;
}

.fwcrm-summary-dot {
	color: rgba(255, 255, 255, 0.4);
}

.fwcrm-bulk-count {
	font-size: 13px;
	margin-right: auto;
}

/* 0.1.15: Ctrl/⌘-click selection — no checkboxes. */
.fwcrm-card.is-selected {
	outline: 2px solid var(--fwcrm-sky-600);
	outline-offset: -2px;
	background: var(--fwcrm-sky-100);
}

.fwcrm-table-row.is-selected td {
	background: rgba(45, 120, 173, 0.22);
}

.fwcrm-table-row.is-selected td:first-child {
	box-shadow: inset 3px 0 0 var(--fwcrm-sky-600);
}

.fwcrm-bulk-hint {
	font-size: 12px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-card-top {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	min-width: 0;
}

.fwcrm-card-top .fwcrm-card-title {
	flex: 1 1 auto;
}

.fwcrm-places-hint {
	margin: 0 0 6px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-places-hint[hidden] {
	display: none;
}

/* 0.1.17: Places suggestions hang under the Street input. */
.fwcrm-street-field {
	position: relative;
}

.fwcrm-address-suggest {
	display: flex;
	flex-direction: column;
	margin-top: 4px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 4px;
	background: #222;
	max-height: 180px;
	overflow: auto;
}

.fwcrm-address-suggest[hidden] {
	display: none !important;
}

.fwcrm-address-opt {
	display: block;
	width: 100%;
	padding: 8px 10px;
	border: 0;
	background: transparent;
	color: #ffffff;
	font-size: 13px;
	text-align: left;
	cursor: pointer;
}

.fwcrm-address-opt:hover,
.fwcrm-address-opt:focus {
	background: rgba(45, 120, 173, 0.22);
}

/* 0.1.15: Open in Google Maps — a plain anchor, so it works on a locked card too. */
.fwcrm-address-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 2px 0 0;
	font-size: 13px;
}

.fwcrm-copy-address {
	padding: 0;
	min-height: 0;
	height: auto;
	font-size: 13px;
}

.fwcrm-maps-twin {
	gap: 6px;
}

/* 0.1.72 A: Clients strips stay dark in every Appearance — ink never follows Light tokens.
   (0,3,0) beats Light `html[data-fwcrm-theme="light"] .fwcrm-btn--outlined` (0,2,1) with no
   important flag. If Light later adds outlined :hover / :disabled at (0,3,1), reassess.
   CLEAR (--text) and DELETE (--contained) are not matched. Replaces the 0.1.70 B5 TRANSFER rule. */
.fwcrm-app .fwcrm-bulk,
.fwcrm-app .fwcrm-summary {
	color: rgba(255, 255, 255, 0.87);
}

.fwcrm-app .fwcrm-bulk .fwcrm-bulk-hint,
.fwcrm-app .fwcrm-summary .fwcrm-summary-dot {
	color: rgba(255, 255, 255, 0.6);
}

.fwcrm-app .fwcrm-bulk .fwcrm-btn--outlined,
.fwcrm-app .fwcrm-summary .fwcrm-btn--outlined {
	color: #ffffff;
	border: 1px solid rgba(255, 255, 255, 0.72);
	background: transparent;
}

.fwcrm-app .fwcrm-bulk .fwcrm-btn--outlined:hover,
.fwcrm-app .fwcrm-summary .fwcrm-btn--outlined:hover {
	background: rgba(255, 255, 255, 0.12);
}

.fwcrm-app .fwcrm-bulk .fwcrm-btn--outlined:disabled {
	color: rgba(255, 255, 255, 0.38);
	border-color: rgba(255, 255, 255, 0.24);
}

/* Summary TRANSFER keeps its gap from the last stat. */
.fwcrm-app .fwcrm-summary .fwcrm-summary-transfer {
	margin-left: 4px;
}

.fwcrm-maps-link[hidden] {
	display: none;
}

.pac-container {
	z-index: 90;
	background: #222;
	border: 1px solid rgba(255, 255, 255, 0.16);
	color: #ffffff;
	font-family: inherit;
}

.pac-item,
.pac-item-query {
	color: #ffffff;
}

.pac-item:hover,
.pac-item-selected {
	background: rgba(45, 120, 173, 0.22);
}

.fwcrm-dupe-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
}

.fwcrm-sheet-panel .fwcrm-input,
.fwcrm-sheet-panel .fwcrm-textarea,
.fwcrm-sheet-panel .fwcrm-select,
.fwcrm-sheet-panel .fwcrm-help,
.fwcrm-sheet-panel .fwcrm-lock-text {
	user-select: text;
	-webkit-user-select: text;
}

.fwcrm-tab-panel {
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* ---- 0.1.19 ------------------------------------------------------------- */

/* Company-name hover tip (Commercial / Energy company rows, after 3 s). */
.fwcrm-tip {
	position: absolute;
	z-index: 7;
	max-width: 260px;
	padding: var(--fwcrm-space-2) 12px;
	background: #1c1c1c;
	border-radius: 6px;
	box-shadow: var(--fwcrm-elev-2);
	font-size: 13px;
	line-height: 1.4;
	color: #ffffff;
	pointer-events: none;
}

.fwcrm-tip p {
	margin: 0;
}

.fwcrm-tip-name {
	font-weight: 600;
}

.fwcrm-tip-line {
	color: var(--fwcrm-text-medium);
}

.fwcrm-tip a {
	color: #7eb6d8;
	text-decoration: none;
}

/* Person | Company (Academy) and Personal | Commercial (Clients add). */
.fwcrm-type-toggle {
	display: inline-flex;
	align-self: flex-start;
	gap: 0;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: 999px;
	overflow: hidden;
}

.fwcrm-type-toggle-opt {
	position: relative;
	padding: 0 14px;
	min-height: 32px;
	display: inline-flex;
	align-items: center;
	font-size: 14px;
	cursor: pointer;
}

.fwcrm-type-toggle-opt input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.fwcrm-type-toggle-opt:has(input:checked) {
	background: var(--fwcrm-sky-600);
	color: #ffffff;
}

.fwcrm-type-toggle-opt:has(input:focus-visible) {
	outline: 2px solid var(--fwcrm-sky-600);
	outline-offset: -2px;
}

/* Notes tab compose (works on a locked card). */
.fwcrm-note-compose-actions {
	display: flex;
	justify-content: flex-end;
	margin: var(--fwcrm-space-2) 0 0;
}

.fwcrm-form--locked .fwcrm-note-compose {
	background-color: #3a3a3a;
	color: #ffffff;
}

/* Merge dialog: survivor pick + per-field conflicts. */
.fwcrm-merge-pick {
	display: flex;
	flex-direction: column;
	gap: var(--fwcrm-space-1);
	margin: 0 0 var(--fwcrm-space-3);
}

.fwcrm-merge-choice {
	display: flex;
	align-items: center;
	gap: var(--fwcrm-space-2);
	padding: 6px 10px;
	border-radius: var(--fwcrm-shape);
	font-size: 14px;
	cursor: pointer;
}

.fwcrm-merge-choice:hover {
	background: var(--fwcrm-row-hover);
}

.fwcrm-merge-choice:has(input:checked) {
	background: rgba(45, 120, 173, 0.22);
}

.fwcrm-merge-choice input {
	accent-color: var(--fwcrm-sky-600);
}

.fwcrm-merge-name {
	font-weight: 600;
}

.fwcrm-merge-meta {
	margin-left: auto;
	font-size: 12px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-merge-conflicts {
	max-height: 40vh;
	overflow-y: auto;
	margin: 0 0 var(--fwcrm-space-3);
}

.fwcrm-merge-row {
	display: grid;
	grid-template-columns: 120px 1fr 1fr;
	gap: var(--fwcrm-space-2);
	align-items: center;
	padding: var(--fwcrm-space-1) 0;
	border-bottom: 1px solid var(--fwcrm-row-line);
}

.fwcrm-merge-field {
	font-size: 12px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-merge-row .fwcrm-merge-choice span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (max-width: 720px) {
	.fwcrm-merge-row {
		grid-template-columns: 1fr;
	}
}

/* ---- 0.1.20 ------------------------------------------------------------- */

/* Outcome chip (dot + label) — replaces the row / header dropdown unless
   FWCRM_OUTCOME_DROPDOWN brings the select back. */
.fwcrm-outcome-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	max-width: 100%;
	height: 28px;
	min-height: 28px;
	padding: 0 10px 0 8px;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: 999px;
	background: #2e2e2e;
	color: #ffffff;
	font: 500 13px/1 var(--fwcrm-font);
	white-space: nowrap;
	cursor: pointer;
}

.fwcrm-outcome-chip:hover,
.fwcrm-outcome-chip[aria-expanded="true"] {
	background: var(--fwcrm-row-hover);
	border-color: var(--fwcrm-sky-600);
}

.fwcrm-outcome-chip.is-blank {
	color: var(--fwcrm-text-medium);
}

/* 0.1.65 H: desktop Outcome chips take the same categorical wash as the heat dot. */
.fwcrm-outcome-chip.is-heat-green {
	background: rgba(61, 154, 84, 0.22);
}
.fwcrm-outcome-chip.is-heat-blue {
	background: rgba(74, 163, 217, 0.22);
}
.fwcrm-outcome-chip.is-heat-amber {
	background: rgba(227, 155, 45, 0.22);
}
.fwcrm-outcome-chip.is-heat-purple {
	background: rgba(139, 92, 246, 0.22);
}
.fwcrm-outcome-chip.is-heat-yellow {
	background: rgba(227, 194, 45, 0.22);
}
.fwcrm-outcome-chip.is-heat-gray {
	background: rgba(106, 106, 106, 0.28);
}
.fwcrm-outcome-chip.is-heat-black {
	background: rgba(17, 17, 17, 0.55);
}
.fwcrm-outcome-chip.is-heat-white {
	background: rgba(255, 255, 255, 0.18);
}
.fwcrm-outcome-chip.is-heat-red {
	background: rgba(214, 69, 69, 0.22);
}
.fwcrm-outcome-chip.is-heat-orange {
	background: rgba(240, 138, 36, 0.22);
}
.fwcrm-outcome-chip.is-heat-green:hover,
.fwcrm-outcome-chip.is-heat-green[aria-expanded="true"] {
	background: rgba(61, 154, 84, 0.34);
}
.fwcrm-outcome-chip.is-heat-blue:hover,
.fwcrm-outcome-chip.is-heat-blue[aria-expanded="true"] {
	background: rgba(74, 163, 217, 0.34);
}
.fwcrm-outcome-chip.is-heat-amber:hover,
.fwcrm-outcome-chip.is-heat-amber[aria-expanded="true"] {
	background: rgba(227, 155, 45, 0.34);
}
.fwcrm-outcome-chip.is-heat-purple:hover,
.fwcrm-outcome-chip.is-heat-purple[aria-expanded="true"] {
	background: rgba(139, 92, 246, 0.34);
}
.fwcrm-outcome-chip.is-heat-yellow:hover,
.fwcrm-outcome-chip.is-heat-yellow[aria-expanded="true"] {
	background: rgba(227, 194, 45, 0.34);
}
.fwcrm-outcome-chip.is-heat-gray:hover,
.fwcrm-outcome-chip.is-heat-gray[aria-expanded="true"] {
	background: rgba(106, 106, 106, 0.40);
}
.fwcrm-outcome-chip.is-heat-black:hover,
.fwcrm-outcome-chip.is-heat-black[aria-expanded="true"] {
	background: rgba(17, 17, 17, 0.72);
}
.fwcrm-outcome-chip.is-heat-white:hover,
.fwcrm-outcome-chip.is-heat-white[aria-expanded="true"] {
	background: rgba(255, 255, 255, 0.28);
}
.fwcrm-outcome-chip.is-heat-red:hover,
.fwcrm-outcome-chip.is-heat-red[aria-expanded="true"] {
	background: rgba(214, 69, 69, 0.34);
}
.fwcrm-outcome-chip.is-heat-orange:hover,
.fwcrm-outcome-chip.is-heat-orange[aria-expanded="true"] {
	background: rgba(240, 138, 36, 0.34);
}

.fwcrm-outcome-chip .fwcrm-heat {
	margin: 0;
	flex: 0 0 10px;
}

.fwcrm-outcome-chip-label {
	overflow: hidden;
	text-overflow: ellipsis;
}

.fwcrm-outcome-chip--prior {
	white-space: normal;
	height: auto;
	min-height: 28px;
	line-height: 1.2;
	padding-top: 4px;
	padding-bottom: 4px;
	text-align: left;
}

.fwcrm-outcome-chip--prior .fwcrm-outcome-short {
	display: none;
}

.fwcrm-td-outcome {
	container-type: inline-size;
	container-name: fwcrm-outcome;
}

@container fwcrm-outcome (max-width: 148px) {
	.fwcrm-outcome-chip--prior .fwcrm-outcome-full {
		display: none;
	}
	.fwcrm-outcome-chip--prior .fwcrm-outcome-short {
		display: inline;
	}
}

.fwcrm-outcome-chip--sheet {
	height: 40px;
	min-height: 40px;
	padding: 0 14px 0 12px;
	font-size: 14px;
}

.fwcrm-outcome-pop {
	/* 0.1.24: fixed + above the card sheet (40) and dialogs (50) so the header chip's list is visible. */
	position: fixed;
	z-index: 60;
	min-width: 180px;
	max-height: 320px;
	padding: var(--fwcrm-space-1) 0;
	overflow-y: auto;
	background: #2a2a2a;
	border-radius: var(--fwcrm-shape);
	box-shadow: var(--fwcrm-elev-2);
}

.fwcrm-outcome-opt {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	min-height: 32px;
	padding: 0 12px;
	border: 0;
	background: transparent;
	color: #ffffff;
	font: 400 14px/1 var(--fwcrm-font);
	text-align: left;
	white-space: nowrap;
	cursor: pointer;
}

.fwcrm-outcome-opt:hover,
.fwcrm-outcome-opt:focus {
	background: var(--fwcrm-row-hover);
	outline: none;
}

.fwcrm-outcome-opt.is-current {
	font-weight: 600;
}

.fwcrm-outcome-opt .fwcrm-heat {
	margin: 0;
	flex: 0 0 10px;
}

.fwcrm-month-pop {
	min-width: 176px;
	max-height: 420px;
}

.fwcrm-month-opt {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	box-sizing: border-box;
}

.fwcrm-month-opt .fwcrm-outcome-opt-label {
	flex: 1 1 auto;
	text-align: left;
}

.fwcrm-month-check {
	flex: 0 0 auto;
	margin: 0;
	width: 16px;
	height: 16px;
}

.fwcrm-academy-group-wrap {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
}

.fwcrm-academy-group-label {
	flex: 0 0 auto;
	font-size: 13px;
	color: var(--fwcrm-text-medium);
	white-space: nowrap;
}

.fwcrm-academy-group {
	width: 72px;
	height: 40px;
	min-height: 40px;
	padding: 0 8px;
}

.fwcrm-name-group {
	margin-left: 6px;
	font-size: 12px;
	color: var(--fwcrm-text-medium);
	white-space: nowrap;
}

.fwcrm-table-row.is-cursor {
	outline: 1px solid var(--fwcrm-sky-600);
	outline-offset: -1px;
}

.fwcrm-filters--academy .fwcrm-filter-chips {
	gap: 6px;
}

.fwcrm-demo-actions {
	margin-top: 12px;
}

/* Board cards keep their heat stripe on the new colors (board is behind FWCRM_BOARD_ENABLED). */
.fwcrm-card--heat-white {
	box-shadow: inset 3px 0 0 #ffffff, inset 4px 0 0 rgba(8, 8, 8, 0.6);
}

.fwcrm-card--heat-red {
	box-shadow: inset 3px 0 0 #d64545;
}

.fwcrm-card--heat-orange {
	box-shadow: inset 3px 0 0 #f08a24;
}

/* ---- 0.1.21 ------------------------------------------------------------- */

/* Stage filter select sits right of Last Updated; hidden off prospecting / Clients faces. */
.fwcrm-filter-stage {
	min-width: 118px;
}

.fwcrm-filter-stage[hidden] {
	display: none;
}

.fwcrm-filter-pipeline {
	min-width: 128px;
}

.fwcrm-filter-pipeline[hidden] {
	display: none;
}

.fwcrm-client-pipeline {
	min-width: 128px;
	margin-left: 8px;
}

/* Custom-list remove × lives in its own far-right cell. */
.fwcrm-col-remove {
	width: 28px;
}

.fwcrm-table--sheet .fwcrm-td-remove,
.fwcrm-table--sheet .fwcrm-th-remove {
	padding-left: 2px;
	padding-right: 4px;
	text-align: right;
	white-space: nowrap;
}

.fwcrm-td-remove .fwcrm-list-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ---- 0.1.23: multi-user v1 — book switcher, footer stamp, Settings, Merge chips ---- */

/* Admin-only book switcher, upper-left under the wordmark. */
.fwcrm-book {
	display: block;
	margin: 8px 0 0;
}

.fwcrm-book[hidden] {
	display: none;
}

.fwcrm-book-select {
	width: 100%;
	min-height: 28px;
	padding: 2px 6px;
	font-size: 12px;
	background: #1a1a1a;
	color: #ffffff;
	border: 1px solid var(--fwcrm-line-300);
	border-radius: 4px;
}

.fwcrm-nav-btn[data-fwcrm-pipeline="intake"] {
	gap: 0.4em;
}

.fwcrm-nav-btn[data-fwcrm-pipeline="intake"] .fwcrm-intake-n {
	color: var(--fwcrm-sky-700);
	font-weight: 700;
	margin-left: 0.15em;
}

.fwcrm-contact-pair,
.fwcrm-academy-contact {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.fwcrm-contact-pair .fwcrm-grid-2,
.fwcrm-academy-contact .fwcrm-grid-2,
.fwcrm-policy-pair {
	align-items: stretch;
}

.fwcrm-xdate-override {
	align-items: end;
}

.fwcrm-xdate-override .fwcrm-date-override-row {
	margin-top: 0;
	min-height: 36px;
	align-self: end;
	padding-bottom: 2px;
}

.fwcrm-app.is-switched .fwcrm-book-select {
	border-color: var(--fwcrm-sky-600);
}

/* Footer stamp: bottom-right, small, muted — "email · CRM 0.1.25". 0.1.25: it
   reads the book's own address and is never rust-marked; the switcher carries
   the only visual tell that the Admin is switched. */
.fwcrm-stamp {
	position: fixed;
	right: 12px;
	bottom: 8px;
	z-index: 3;
	margin: 0;
	font-size: 11px;
	letter-spacing: 0.2px;
	color: var(--fwcrm-text-medium);
	opacity: 0.8;
	pointer-events: none;
	user-select: none;
}

/* Settings dialog (Users / Backup) with Unlock gates. */
.fwcrm-settings-tabs {
	display: flex;
	gap: 4px;
	margin: 0 0 12px;
	border-bottom: 1px solid var(--fwcrm-line-300);
}

/* 0.1.28: Settings › Pipelines — one row per toggleable pipeline. */
.fwcrm-prefs-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 12px 0 4px;
}

.fwcrm-prefs-row {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 36px;
	cursor: pointer;
}

.fwcrm-prefs-row input {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--fwcrm-sky-600);
}

.fwcrm-prefs-row input:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.fwcrm-prefs-label {
	font-weight: 500;
}

.fwcrm-prefs-sub {
	color: var(--fwcrm-text-medium);
	font-size: 13px;
}

/* 0.1.27: Settings › Data — Import / Export moved here from the top bar. */
.fwcrm-settings-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}

.fwcrm-lb-reset {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-top: 8px;
}

.fwcrm-lb-reset .fwcrm-select {
	min-width: 220px;
	flex: 1 1 auto;
}

.fwcrm-settings-section {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.fwcrm-settings-section[hidden] {
	display: none !important;
}

.fwcrm-unlock-row {
	display: flex;
	align-items: center;
	gap: 12px;
}

.fwcrm-unlock-help {
	margin: 0;
}

.fwcrm-settings-section.is-unlocked .fwcrm-unlock {
	background: var(--fwcrm-sky-600);
	color: #ffffff;
	border-color: var(--fwcrm-sky-600);
}

.fwcrm-settings-section [data-fwcrm-locked]:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.fwcrm-users-table th,
.fwcrm-users-table td {
	padding: 6px 8px;
	text-align: left;
	font-size: 13px;
}

.fwcrm-users-admin {
	font-size: 12px;
	color: var(--fwcrm-text-medium);
}

/* 0.1.76 (H): Toolbox links read like rail buttons; the section is hidden in the min rail (0.1.65 geometry). */
a.fwcrm-nav-btn.fwcrm-toolbox-link {
	text-decoration: none;
}

.fwcrm-app.is-sidebar-min [data-fwcrm-section="toolbox"] {
	display: none;
}

/* 0.1.76 (E): Summary tab — button, then the text for this view only (not the Clients .fwcrm-summary strip). */
.fwcrm-card-summary {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	padding: 8px 0;
}

.fwcrm-card-summary-out {
	max-width: 72ch;
	line-height: 1.5;
}

.fwcrm-card-summary-block {
	margin: 0 0 10px;
}

/* 0.1.78: one validity mechanism — the value text colour is the only indicator
   (no chip anywhere), in view (input + locked twin) and in Edit. Invalid phone /
   email / website / LinkedIn → red (--md-error, + aria-invalid); Unverified phone /
   email → amber (--md-warn); Verified → normal text (title only). A hidden note
   carries red / amber for assistive tech. Websites are never amber. */
.fwcrm-field--bad .fwcrm-input,
.fwcrm-field--bad .fwcrm-input[readonly],
.fwcrm-field--bad .fwcrm-lock-link,
.fwcrm-field--bad .fwcrm-lock-link:visited,
.fwcrm-field--bad .fwcrm-lock-link:hover {
	color: var(--md-error);
}

.fwcrm-field--warn .fwcrm-input,
.fwcrm-field--warn .fwcrm-input[readonly],
.fwcrm-field--warn .fwcrm-lock-link,
.fwcrm-field--warn .fwcrm-lock-link:visited,
.fwcrm-field--warn .fwcrm-lock-link:hover {
	color: var(--md-warn);
}

.fwcrm-users-add {
	display: flex;
	gap: 8px;
	align-items: center;
}

.fwcrm-users-add .fwcrm-input {
	flex: 1 1 auto;
	min-width: 0;
}

.fwcrm-backup-actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.fwcrm-backup-runs {
	display: flex;
	flex-direction: column;
	gap: 2px;
	max-height: 180px;
	overflow: auto;
}

.fwcrm-backup-run {
	margin: 0;
	font-size: 12px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-backup-run.is-error {
	color: var(--fwcrm-danger);
}

/* Merge: the master pick shows each card's book when it differs from the open book. */
.fwcrm-merge-chips {
	display: inline-flex;
	gap: 4px;
	align-items: center;
}

.fwcrm-pill--book {
	background: #3a3a3a;
	color: #ffffff;
}

/* Toasts sit above the stamp so the stamp never hides under one. */
.fwcrm-toasts {
	bottom: 32px;
}

/* ---- 0.1.27: mobile pass ------------------------------------------------ */

/* Phones: one column of content, nothing scrolls sideways but the chip rail,
   every control is a 44px target, inputs are 16px so iOS never zooms the sheet,
   dialogs rise from the bottom edge, and the list keeps Name / Phone / Expiration. */
@media (max-width: 767px) {
	.fwcrm-main {
		overflow-x: hidden;
	}

	.fwcrm-topbar {
		gap: 8px;
		padding: 10px 12px 8px;
	}

	.fwcrm-topbar-title {
		font-size: 20px;
	}

	.fwcrm-topbar-actions {
		flex-wrap: nowrap;
	}

	.fwcrm-topbar-actions .fwcrm-btn {
		flex: 1 1 auto;
	}

	.fwcrm-topbar-actions .fwcrm-btn.fwcrm-btn--icon {
		flex: 0 0 40px;
		width: 40px;
		min-width: 40px;
		max-width: 40px;
		height: 40px;
		min-height: 40px;
	}

	.fwcrm-filters {
		flex-wrap: nowrap;
		align-items: center;
		gap: 8px;
		margin: 0 0 8px;
		padding: 8px 4px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.fwcrm-filters::-webkit-scrollbar {
		display: none;
	}

	.fwcrm-filter-field {
		flex: 0 0 auto;
	}

	.fwcrm-list {
		padding: 0;
	}

	.fwcrm-input,
	.fwcrm-select,
	.fwcrm-textarea,
	.fwcrm-sheet-panel .fwcrm-input,
	.fwcrm-sheet-panel .fwcrm-select {
		font-size: 16px;
	}

	.fwcrm-sheet-tabs,
	.fwcrm-tablist {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.fwcrm-sheet-tabs::-webkit-scrollbar,
	.fwcrm-tablist::-webkit-scrollbar {
		display: none;
	}

	.fwcrm-sheet-body {
		padding: 8px 12px 16px;
	}

	.fwcrm-type-toggle-opt {
		min-height: 40px;
	}

	.fwcrm-dialog {
		align-items: flex-end;
		padding: 0;
	}

	.fwcrm-dialog .fwcrm-dialog-panel,
	.fwcrm-dialog .fwcrm-dialog-panel--wide {
		width: 100%;
		max-width: none;
		max-height: 92vh;
		border-radius: 12px 12px 0 0;
	}

	.fwcrm-toasts {
		left: 12px;
		right: 12px;
		bottom: 12px;
		width: auto;
	}

	.fwcrm-outcome-pop {
		max-width: calc(100vw - 24px);
	}

	.fwcrm-bulk {
		flex-wrap: wrap;
	}

	.fwcrm-stamp {
		position: static;
		padding: 8px 12px 12px;
		text-align: right;
	}
}

/* Narrow phones: Email leaves the row too (it stays on the card); Name takes the room. */
@media (max-width: 480px) {
	.fwcrm-th-email,
	.fwcrm-td-email,
	.fwcrm-col-email {
		display: none;
	}

	.fwcrm-col-name {
		width: 52%;
	}

	.fwcrm-col-phone {
		width: 28%;
	}

	.fwcrm-col-exp {
		width: 20%;
	}

	.fwcrm-th-watch,
	.fwcrm-td-watch,
	.fwcrm-col-watch {
		display: none;
	}
}

/* 0.1.30: view-only peer books. 0.1.31: Leaderboard face uses existing tokens. */
.fwcrm-app.is-readonly [data-fwcrm-add],
.fwcrm-app.is-readonly [data-fwcrm-new-list],
.fwcrm-app.is-readonly [data-fwcrm-bulk],
.fwcrm-app.is-readonly [data-fwcrm-section="list"] {
	display: none !important;
}

.fwcrm-leaderboard {
	padding: 20px;
	max-width: 1400px;
}

.fwcrm-pill--demo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 6px;
	background: #8b3a2a;
	color: #fff;
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	min-height: 20px;
	padding: 0 8px;
	line-height: 1;
	text-align: center;
}

.fwcrm-pill--demo[hidden] {
	display: none;
}

.fwcrm-date-override-row {
	margin-top: 10px;
}

.fwcrm-lb-log {
	background: var(--fwcrm-paper);
	border: 1px solid var(--fwcrm-line-200);
	border-radius: 6px;
	padding: 16px 18px;
	margin-bottom: 20px;
}

.fwcrm-lb-log-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 6px;
	flex-wrap: wrap;
}

.fwcrm-lb-log-title {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	display: flex;
	align-items: center;
	gap: 8px;
}

.fwcrm-lb-tag {
	font-size: 11px;
	color: var(--fwcrm-text-medium);
	border: 1px solid var(--fwcrm-line-200);
	border-radius: 3px;
	padding: 2px 6px;
	font-weight: 500;
}

.fwcrm-lb-day-pts {
	font-size: 13px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-lb-day-pts strong {
	color: var(--fwcrm-text);
	font-size: 20px;
	font-weight: 700;
}

.fwcrm-lb-week {
	margin: 0 0 12px;
	font-size: 12px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-lb-fields {
	display: grid;
	grid-template-columns: repeat(4, 1fr) auto;
	gap: 12px;
	align-items: end;
}

.fwcrm-lb-field label {
	display: block;
	font-size: 12px;
	color: var(--fwcrm-text-medium);
	margin-bottom: 6px;
}

.fwcrm-lb-chip {
	display: inline-block;
	margin-left: 6px;
	font-size: 10px;
	padding: 1px 5px;
	border-radius: 3px;
	background: var(--fwcrm-surface);
	color: var(--fwcrm-text-medium);
}

.fwcrm-lb-sub {
	display: block;
	height: 16px;
	line-height: 16px;
	font-size: 11px;
	color: var(--fwcrm-text-medium);
	font-weight: 400;
}

.fwcrm-lb-n {
	height: 48px;
	width: 100%;
	min-width: 0;
	font-size: 18px;
	font-weight: 600;
	text-align: center;
}

.fwcrm-other-books {
	margin: 18px 0 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--fwcrm-text-medium);
}

.fwcrm-client-verify {
	margin: 4px 0 0;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--fwcrm-text-medium);
	white-space: normal;
}

.fwcrm-search-empty {
	margin: 0 0 12px;
}

.fwcrm-backup-flash {
	margin-left: 8px;
	font-size: 13px;
	color: var(--fwcrm-text-medium);
}

.fwcrm-table-row--foreign {
	cursor: default;
	opacity: .92;
}

.fwcrm-table-row--foreign:hover {
	background: transparent;
}

.fwcrm-lb-save-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
	padding-bottom: 16px;
}

.fwcrm-lb-save-wrap .fwcrm-btn {
	height: 48px;
	padding: 0 22px;
}

.fwcrm-lb-table-wrap {
	background: var(--fwcrm-paper);
	border: 1px solid var(--fwcrm-line-200);
	border-radius: 6px;
	overflow: hidden;
}

.fwcrm-leaderboard-table {
	width: 100%;
	border-collapse: collapse;
}

.fwcrm-leaderboard-table th,
.fwcrm-leaderboard-table td {
	padding: 12px 14px;
	text-align: left;
	border-bottom: 1px solid var(--fwcrm-line-200);
	vertical-align: middle;
}

.fwcrm-leaderboard-table th {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--fwcrm-text-medium);
	font-weight: 600;
	background: #1e1e1e;
}

.fwcrm-lb-num {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.fwcrm-lb-self {
	background: rgba(45, 120, 173, 0.14);
	box-shadow: inset 3px 0 0 var(--fwcrm-sky-600);
}

.fwcrm-lb-rank {
	display: inline-flex;
	width: 26px;
	height: 26px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 700;
	background: #333;
	color: #ddd;
}

.fwcrm-lb-rank--g {
	background: #e0a06e;
	color: #111;
}

.fwcrm-lb-rank--s {
	background: #8a8a8a;
	color: #111;
}

.fwcrm-lb-rank--b {
	background: #6b4423;
	color: #fff;
}

.fwcrm-lb-user {
	display: inline-block;
	margin-left: 8px;
	font-weight: 500;
}

.fwcrm-lb-you {
	display: inline-block;
	margin-left: 8px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .06em;
	padding: 2px 6px;
	border-radius: 3px;
	background: var(--fwcrm-sky-600);
	color: #fff;
}

.fwcrm-lb-week-pts {
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
}

.fwcrm-lb-tm {
	font-size: 12px;
	color: var(--fwcrm-text-medium);
	margin-top: 4px;
}

.fwcrm-lb-act {
	font-size: 13px;
	color: #ddd;
	margin-bottom: 8px;
}

.fwcrm-lb-mix {
	display: flex;
	height: 4px;
	border-radius: 2px;
	overflow: hidden;
	background: #333;
	max-width: 220px;
}

.fwcrm-lb-mix i {
	display: block;
	height: 100%;
}

.fwcrm-lb-mix-c { background: #3ddc84; }
.fwcrm-lb-mix-e { background: #5b9fd4; }
.fwcrm-lb-mix-d { background: #f5c542; }
.fwcrm-lb-mix-m { background: #c084fc; }

.fwcrm-lb-mkt {
	font-size: 13px;
}

@media (max-width: 900px) {
	.fwcrm-lb-fields {
		grid-template-columns: 1fr 1fr;
	}
	.fwcrm-lb-save-wrap {
		grid-column: 1 / -1;
		align-items: stretch;
		padding-bottom: 0;
	}
	.fwcrm-lb-save-wrap .fwcrm-btn {
		width: 100%;
	}
}

/* 0.1.71: Hiring shell (/hiring/) — Sales chrome never paints: no Functions, Lists,
   book switcher, Demo pill, Inbound count or Transfer (Leaderboard / Settings are not rendered). */
.fwcrm-app--hiring [data-fwcrm-section="functions"],
.fwcrm-app--hiring [data-fwcrm-section="list"],
.fwcrm-app--hiring [data-fwcrm-book-wrap],
.fwcrm-app--hiring [data-fwcrm-demo-pill],
.fwcrm-app--hiring [data-fwcrm-intake-n],
.fwcrm-app--hiring [data-fwcrm-bulk-transfer] {
	display: none !important;
}
