/**
 * KA Wishlist - front-end stylesheet. Single file, no @import. Built by hand
 * so the plugin works the moment it's activated, before any npm build.
 *
 * @package KA_Wishlist
 */

/* ---------- Wishlist button ---------- */
.ka_wishlist_button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	border: 1px solid currentColor;
	background: transparent;
	color: inherit;
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	border-radius: 6px;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
	-webkit-appearance: none;
	appearance: none;
}

.ka_wishlist_button:hover,
.ka_wishlist_button:focus-visible {
	background: rgba(0, 0, 0, 0.04);
}

/* v0.8.2 (B5): saved/hover/focus colors are driven by CSS variables whose
   fallbacks are the original literals, so a bare install is byte-identical. A
   store can brand-match the primary CTA via the admin color field / Site Tokens
   (PHP emits a :root override) with no code and no Visual-Builder change. */
.ka_wishlist_button.is-in-list {
	background: var(--ka-wishlist-saved-bg, #b32424);
	color: var(--ka-wishlist-saved-fg, #fff);
	border-color: var(--ka-wishlist-saved-border, #b32424);
}

.ka_wishlist_button.is-in-list:hover,
.ka_wishlist_button.is-in-list:focus-visible {
	background: var(--ka-wishlist-saved-hover-bg, #931d1d);
	border-color: var(--ka-wishlist-saved-hover-border, #931d1d);
}

/* Distinct keyboard-focus ring on the saved state (was sharing the :hover rule,
   so focus looked identical to hover — WCAG 2.4.7 / Standing Rule #42). */
.ka_wishlist_button.is-in-list:focus-visible {
	outline: 2px solid var(--ka-wishlist-saved-focus-ring, #b32424);
	outline-offset: 2px;
}

.ka_wishlist_button.is-busy {
	opacity: 0.55;
	cursor: progress;
}

.ka_wishlist_button__icon {
	display: inline-flex;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.ka_wishlist_button__icon svg {
	width: 100%;
	height: 100%;
}

.ka_wishlist_button--icon-only {
	padding: 8px;
	border-radius: 50%;
	width: 38px;
	height: 38px;
	justify-content: center;
}

/* ---------- Wishlist counter ---------- */
.ka_wishlist_counter {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font: inherit;
	text-decoration: none;
	color: inherit;
}

.ka_wishlist_counter__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.6em;
	padding: 0 0.4em;
	height: 1.6em;
	border-radius: 999px;
	background: currentColor;
	color: #fff;
	font-weight: 700;
	font-size: 0.85em;
}

.ka_wishlist_counter__count {
	background: #1c1d23;
}

.ka_wishlist_counter.is-empty .ka_wishlist_counter__count {
	background: #999;
}

/* ---------- Wishlist grid ---------- */
.ka_wishlist_grid {
	display: grid;
	grid-template-columns: repeat(var(--ka-wishlist-cols, 4), minmax(0, 1fr));
	gap: 24px;
}

.ka_wishlist_grid--cols-1 { --ka-wishlist-cols: 1; }
.ka_wishlist_grid--cols-2 { --ka-wishlist-cols: 2; }
.ka_wishlist_grid--cols-3 { --ka-wishlist-cols: 3; }
.ka_wishlist_grid--cols-4 { --ka-wishlist-cols: 4; }
.ka_wishlist_grid--cols-5 { --ka-wishlist-cols: 5; }
.ka_wishlist_grid--cols-6 { --ka-wishlist-cols: 6; }

@media (max-width: 980px) {
	.ka_wishlist_grid {
		--ka-wishlist-cols: 2;
	}
}

@media (max-width: 600px) {
	.ka_wishlist_grid {
		--ka-wishlist-cols: 1;
	}
}

.ka_wishlist_grid__card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px;
	border: 1px solid #e6e6e6;
	border-radius: 8px;
	background: #fff;
	position: relative; /* anchor for the absolutely-positioned "move to list" menu */
}

/* Priority flag (P2): a star toggle top-right; high-priority cards get a gold rail. */
.ka_wishlist_grid__priority {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 5;
	padding: 2px 4px;
	border: 0;
	background: none;
	cursor: pointer;
	font-size: 18px;
	line-height: 1;
	color: #c9a227;
}
.ka_wishlist_grid__priority[data-state="normal"] { color: #b7b7b7; }
.ka_wishlist_grid__priority:focus-visible {
	outline: 2px solid var(--ka-wishlist-saved-focus-ring, #b32424);
	outline-offset: 2px;
}
.ka_wishlist_grid__card--priority {
	border-color: #c9a227;
	box-shadow: inset 3px 0 0 #c9a227;
}

/* --- P2.8: client-side sort + filter bar --- */
.ka_wishlist_grid__sortbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin: 0 0 12px;
}
.ka_wishlist_grid__sortbar--collapsed { display: none; }
.ka_wishlist_grid__sortlabel {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.9em;
	color: #4a4a4a;
}
.ka_wishlist_grid__sortselect,
.ka_wishlist_grid__filterselect {
	padding: 4px 8px;
	border: 1px solid #cfcfcf;
	border-radius: 4px;
	background: #fff;
	font: inherit;
	color: #1c1d23;
}
.ka_wishlist_grid__sortselect:focus-visible,
.ka_wishlist_grid__filterselect:focus-visible {
	outline: 2px solid var(--ka-wishlist-saved-focus-ring, #b32424);
	outline-offset: 2px;
}
.ka_wishlist_grid__filtercount {
	font-size: 0.85em;
	color: #6b6b6b;
}
/* Filtered-out cards keep their DOM node (so a later re-sort still sees them)
   but are visually removed. */
.ka_wishlist_grid__card--filtered { display: none !important; }

/* --- P2.9: drag + keyboard reorder ("My order" mode) --- */
/* Hidden by default — a bare `display:flex` would beat the UA [hidden] rule
   (equal specificity, author origin wins) and leave the move buttons visible +
   tabbable in every sort mode. Reveal ONLY when the grid is in reorder mode. */
.ka_wishlist_grid__reorder { display: none; }
.ka_wishlist_grid--reorderable .ka_wishlist_grid__reorder {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-bottom: 6px;
}
.ka_wishlist_grid--reorderable .ka_wishlist_grid__card { cursor: grab; }
.ka_wishlist_grid--reorderable .ka_wishlist_grid__card--dragging {
	opacity: 0.55;
	cursor: grabbing;
	outline: 2px dashed #c9a227;
	outline-offset: 2px;
}
.ka_wishlist_grid__draghandle {
	cursor: grab;
	color: #8a8a8a;
	font-size: 1.1em;
	line-height: 1;
	user-select: none;
}
.ka_wishlist_grid__moveup,
.ka_wishlist_grid__movedn {
	border: 1px solid #cfcfcf;
	background: #fff;
	border-radius: 4px;
	width: 26px;
	height: 26px;
	line-height: 1;
	cursor: pointer;
	color: #1c1d23;
	font-size: 0.7em;
}
.ka_wishlist_grid__moveup:hover,
.ka_wishlist_grid__movedn:hover { background: #f3f3f3; }
.ka_wishlist_grid__moveup:focus-visible,
.ka_wishlist_grid__movedn:focus-visible {
	outline: 2px solid var(--ka-wishlist-saved-focus-ring, #b32424);
	outline-offset: 2px;
}

/* --- P2.11: per-item stock-status pill --- */
.ka_wishlist_grid__stock {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 4px 0;
	padding: 2px 9px;
	border-radius: 999px;
	font-size: 0.78em;
	font-weight: 600;
	line-height: 1.5;
}
.ka_wishlist_grid__stock-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	flex: 0 0 auto;
}
.ka_wishlist_grid__stock--instock { background: #e7f4ea; color: #1f7a37; }
.ka_wishlist_grid__stock--onbackorder { background: #fcf3e3; color: #8a5a00; }
.ka_wishlist_grid__stock--outofstock { background: #f6e9e9; color: #9a2a2a; }
.ka_wishlist_grid__stock--unknown { background: #ededed; color: #555555; }

.ka_wishlist_grid__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.ka_wishlist_grid__image {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
}

.ka_wishlist_grid__title {
	margin: 0;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.3;
}

.ka_wishlist_grid__sku {
	font-size: 0.85em;
	color: #777;
}

.ka_wishlist_grid__price {
	font-weight: 700;
	font-size: 1.05em;
}

/* "Price change since added" (P2): green when cheaper now, red when dearer.
   Used per-item (.ka_wishlist_grid__since) and on the totals footer
   (.ka_wishlist_grid__totals-delta). */
.ka_wishlist_grid__since,
.ka_wishlist_grid__totals-delta {
	font-size: 0.82em;
	font-weight: 600;
}
.ka_wishlist_grid__since {
	display: inline-block;
	margin-top: -4px;
}
.ka_wishlist_grid__totals-delta {
	margin-left: 8px;
}
.ka_wishlist_grid__since.is-down,
.ka_wishlist_grid__totals-delta.is-down {
	color: #1a7f37; /* cheaper now */
}
.ka_wishlist_grid__since.is-up,
.ka_wishlist_grid__totals-delta.is-up {
	color: #b32424; /* dearer now */
}

/* Quick Order Pad (P2): SKU + qty bulk entry. */
.ka_wishlist_quickorder {
	max-width: 520px;
	padding: 16px;
	border: 1px solid #e6e6e6;
	border-radius: 8px;
	background: #fff;
}
.ka_wishlist_quickorder__title { margin: 0 0 4px; font-size: 1.1em; }
.ka_wishlist_quickorder__hint { margin: 0 0 12px; color: #6b6b6b; font-size: 0.9em; }
.ka_wishlist_quickorder__row { display: flex; gap: 8px; margin-bottom: 6px; }
.ka_wishlist_quickorder__sku { flex: 1 1 auto; }
.ka_wishlist_quickorder__qty { width: 72px; flex: 0 0 auto; }
.ka_wishlist_quickorder__sku,
.ka_wishlist_quickorder__qty,
.ka_wishlist_quickorder__pastebox {
	padding: 8px 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font: inherit;
	box-sizing: border-box;
}
.ka_wishlist_quickorder__pastebox { width: 100%; margin-top: 6px; }
.ka_wishlist_quickorder__addrow {
	margin: 2px 0 12px;
	padding: 0;
	border: 0;
	background: none;
	color: #1c1d23;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	text-decoration: underline;
}
.ka_wishlist_quickorder__paste { margin-bottom: 12px; }
.ka_wishlist_quickorder__paste summary { cursor: pointer; color: #1c1d23; font-size: 0.9em; }
.ka_wishlist_quickorder__submit { margin-top: 4px; }
.ka_wishlist_quickorder__result { margin-top: 10px; font-weight: 600; }
.ka_wishlist_quickorder__addrow:focus-visible,
.ka_wishlist_quickorder__submit:focus-visible,
.ka_wishlist_quickorder__sku:focus-visible,
.ka_wishlist_quickorder__qty:focus-visible,
.ka_wishlist_quickorder__pastebox:focus-visible {
	outline: 2px solid var(--ka-wishlist-saved-focus-ring, #b32424);
	outline-offset: 2px;
}

/* v0.8.1: per-item note input — present in vb-bundle.css for the VB; mirrored
   here so non-Divi / raw-shortcode front-ends style the note editor too. */
.ka_wishlist_grid__note {
	width: 100%;
	padding: 6px 8px;
	margin: 8px 0;
	border: 1px solid #e4d9c4;
	border-radius: 4px;
	font-size: 13px;
	box-sizing: border-box;
}
.ka_wishlist_grid__note:focus-visible {
	outline: 2px solid var(--ka-wishlist-note-ring, #b32424);
	outline-offset: 1px;
}

/* Visible keyboard focus for every grid/toolbar/qty/switcher control + the
   counter link (WCAG 2.4.7). Broad `.ka_wishlist_grid button` so newly-added
   action buttons inherit the ring automatically. The Save button + note input
   carry their own focus rules above. */
.ka_wishlist_grid button:focus-visible,
.ka_wishlist_grid a:focus-visible,
.ka_wishlist_grid__switcher button:focus-visible,
.ka_wishlist_save_later:focus-visible,
a.ka_wishlist_counter:focus-visible {
	outline: 2px solid var(--ka-wishlist-saved-focus-ring, #b32424);
	outline-offset: 2px;
}

/* --- P2.12: front-end list management (create / rename / delete) --- */
.ka_wishlist_grid__tabwrap {
	display: inline-flex;
	align-items: center;
	gap: 2px;
}
.ka_wishlist_grid__tabrename,
.ka_wishlist_grid__tabdelete {
	border: 0;
	background: transparent;
	cursor: pointer;
	/* >= 24x24 CSS px hit area (Standing Rule #42 / WCAG 2.5.8). */
	min-width: 24px;
	min-height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 4px;
	line-height: 1;
	font-size: 0.85em;
	color: #8a8a8a;
	border-radius: 4px;
}
.ka_wishlist_grid__tabrename:hover { color: #1c1d23; background: rgba(0, 0, 0, 0.06); }
.ka_wishlist_grid__tabdelete:hover { color: #9a2a2a; background: rgba(154, 42, 42, 0.08); }
.ka_wishlist_grid__newlist {
	border: 1px dashed #b7b7b7;
	background: transparent;
	cursor: pointer;
	padding: 4px 12px;
	border-radius: 999px;
	font: inherit;
	font-size: 0.85em;
	color: #1c1d23;
}
.ka_wishlist_grid__newlist:hover { border-color: #1c1d23; background: rgba(0, 0, 0, 0.04); }

/* --- P3.3: a list shared TO the current user (grantee view) --- the switcher
   renders no rename/delete controls for these; this marker + the "Shared with
   you (<role>)" title make the "shared with me, not mine" state legible. The
   dot color is a CSS var so a brand build can recolor it. */
.ka_wishlist_grid__tab--shared { font-style: italic; }
.ka_wishlist_grid__tab--shared::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 6px;
	border-radius: 50%;
	background: var(--ka-wishlist-shared-dot, #2f7d4f);
	vertical-align: middle;
}

/* P3.21: company-owned list tab — a distinct (blue) dot so a company list reads
   differently from a personal share (green dot) at a glance; role/company is in
   the tab title + accessible name. */
.ka_wishlist_grid__tab--company::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 6px;
	border-radius: 2px;
	background: var(--ka-wishlist-company-dot, #2456a6);
	vertical-align: middle;
}

/* --- P3.4: owner-side "Share a list" control + modal --- */
.ka_wishlist_grid__tabshare {
	border: 0;
	background: transparent;
	cursor: pointer;
	/* >= 24x24 CSS px hit area (Standing Rule #42 / WCAG 2.5.8). */
	min-width: 24px;
	min-height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 4px;
	line-height: 1;
	font-size: 0.85em;
	color: #8a8a8a;
	border-radius: 4px;
}
.ka_wishlist_grid__tabshare:hover { color: #1c1d23; background: rgba(0, 0, 0, 0.06); }

/* P3.8: a grantee's "Leave" control on a SHARED tab. Deliberately NOT the owner's
   red delete tint — leaving only drops the caller's own access; the owner keeps
   the list. Neutral/amber so it doesn't read as "delete the list". */
.ka_wishlist_grid__tableave {
	border: 0;
	background: transparent;
	cursor: pointer;
	min-width: 24px;
	min-height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 4px;
	line-height: 1;
	font-size: 0.85em;
	color: #8a8a8a;
	border-radius: 4px;
}
.ka_wishlist_grid__tableave:hover { color: #8a5a1c; background: rgba(138, 90, 28, 0.08); }

.ka_wishlist_sharemodal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ka_wishlist_sharemodal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}
.ka_wishlist_sharemodal__panel {
	position: relative;
	z-index: 1;
	width: min(440px, calc(100vw - 32px));
	max-height: calc(100vh - 48px);
	overflow: auto;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
	padding: 20px 22px;
	box-sizing: border-box;
}
.ka_wishlist_sharemodal__close {
	position: absolute;
	top: 8px;
	right: 8px;
	min-width: 32px;
	min-height: 32px;
	border: 0;
	background: transparent;
	cursor: pointer;
	font-size: 1em;
	color: #6a6a6a;
	border-radius: 4px;
}
.ka_wishlist_sharemodal__close:hover { color: #1c1d23; background: rgba(0, 0, 0, 0.06); }
.ka_wishlist_sharemodal__title {
	margin: 0 28px 14px 0;
	font-size: 1.1em;
}
.ka_wishlist_sharemodal__grantees {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
}
.ka_wishlist_sharemodal__grantee {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 7px 0;
	border-bottom: 1px solid #eee;
}
.ka_wishlist_sharemodal__who { font-size: 0.95em; }
.ka_wishlist_sharemodal__empty {
	padding: 7px 0;
	color: #777;
	font-style: italic;
}
.ka_wishlist_sharemodal__remove {
	border: 1px solid #d9c4c4;
	background: transparent;
	cursor: pointer;
	padding: 4px 10px;
	border-radius: 4px;
	font: inherit;
	font-size: 0.85em;
	color: #9a2a2a;
	min-height: 28px;
}
.ka_wishlist_sharemodal__remove:hover { background: rgba(154, 42, 42, 0.08); }
.ka_wishlist_sharemodal__add {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.ka_wishlist_sharemodal__id {
	flex: 1 1 180px;
	padding: 7px 9px;
	border: 1px solid #d8d8d8;
	border-radius: 4px;
	font: inherit;
	box-sizing: border-box;
}
.ka_wishlist_sharemodal__role {
	padding: 7px 9px;
	border: 1px solid #d8d8d8;
	border-radius: 4px;
	font: inherit;
}
.ka_wishlist_sharemodal__addbtn {
	padding: 7px 16px;
	border: 0;
	border-radius: 4px;
	background: #1c1d23;
	color: #fff;
	cursor: pointer;
	font: inherit;
	min-height: 34px;
}
.ka_wishlist_sharemodal__addbtn:hover { background: #34363f; }
.ka_wishlist_sharemodal__addbtn:disabled { opacity: 0.6; cursor: default; }
.ka_wishlist_sharemodal :focus-visible {
	outline: 2px solid var(--ka-wishlist-saved-focus-ring, #b32424);
	outline-offset: 2px;
}

/* A3: company-admin "Manage company" tab control + modal (mirrors the share modal). */
.ka_wishlist_grid__tabmanageco {
	border: 0;
	background: transparent;
	cursor: pointer;
	min-width: 24px;
	min-height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 4px;
	line-height: 1;
	font-size: 0.85em;
	color: #8a8a8a;
	border-radius: 4px;
}
.ka_wishlist_grid__tabmanageco:hover { color: #1c1d23; background: rgba(0, 0, 0, 0.06); }

/* B1: requisition-approval state chip + submit/approve/reject actions on a company tab. */
.ka_wishlist_grid__apstate {
	display: inline-flex;
	align-items: center;
	min-height: 20px;
	padding: 1px 8px;
	margin-left: 4px;
	font-size: 0.72em;
	font-weight: 600;
	letter-spacing: 0.02em;
	border-radius: 999px;
	white-space: nowrap;
}
.ka_wishlist_grid__apstate--pending_approval { color: #8a6d1a; background: #fdf3d6; }
.ka_wishlist_grid__apstate--approved { color: #276a43; background: #e6f2ea; }
.ka_wishlist_grid__apstate--rejected { color: #a3261f; background: #fbeaea; }
.ka_wishlist_grid__apsubmit,
.ka_wishlist_grid__apapprove,
.ka_wishlist_grid__apreject {
	border: 0;
	cursor: pointer;
	min-height: 24px;
	padding: 3px 10px;
	margin-left: 4px;
	font-size: 0.76em;
	font-weight: 600;
	line-height: 1;
	border-radius: 4px;
	color: #fff;
}
.ka_wishlist_grid__apsubmit { background: #1c4f8a; }
.ka_wishlist_grid__apsubmit:hover { background: #16406f; }
.ka_wishlist_grid__apapprove { background: #2f7d4f; }
.ka_wishlist_grid__apapprove:hover { background: #276a43; }
.ka_wishlist_grid__apreject { background: transparent; color: #a3261f; border: 1px solid #d8a6a2; }
.ka_wishlist_grid__apreject:hover { background: #fbeaea; }
.ka_wishlist_grid__apsubmit:disabled,
.ka_wishlist_grid__apapprove:disabled,
.ka_wishlist_grid__apreject:disabled { opacity: 0.6; cursor: default; }

.ka_wishlist_companymodal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ka_wishlist_companymodal__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.45); }
.ka_wishlist_companymodal__panel {
	position: relative;
	z-index: 1;
	width: min(520px, calc(100vw - 32px));
	max-height: calc(100vh - 48px);
	overflow: auto;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
	padding: 20px 22px;
	box-sizing: border-box;
}
.ka_wishlist_companymodal__close {
	position: absolute;
	top: 8px;
	right: 8px;
	min-width: 32px;
	min-height: 32px;
	border: 0;
	background: transparent;
	cursor: pointer;
	font-size: 1em;
	color: #6a6a6a;
	border-radius: 4px;
}
.ka_wishlist_companymodal__close:hover { color: #1c1d23; background: rgba(0, 0, 0, 0.06); }
.ka_wishlist_companymodal__title { margin: 0 28px 14px 0; font-size: 1.1em; }
.ka_wishlist_companymodal__members { list-style: none; margin: 0 0 16px; padding: 0; }
.ka_wishlist_companymodal__member {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	padding: 8px 0;
	border-bottom: 1px solid #eee;
}
.ka_wishlist_companymodal__member--pending { background: rgba(212, 162, 78, 0.07); }
.ka_wishlist_companymodal__who { flex: 1 1 160px; font-size: 0.95em; }
.ka_wishlist_companymodal__empty { padding: 7px 0; color: #777; font-style: italic; }
.ka_wishlist_companymodal__memberrole {
	padding: 5px 8px;
	border: 1px solid #d8d8d8;
	border-radius: 4px;
	font: inherit;
	font-size: 0.85em;
}
.ka_wishlist_companymodal__remove,
.ka_wishlist_companymodal__reject {
	border: 1px solid #d9c4c4;
	background: transparent;
	cursor: pointer;
	padding: 4px 10px;
	border-radius: 4px;
	font: inherit;
	font-size: 0.85em;
	color: #9a2a2a;
	min-height: 28px;
}
.ka_wishlist_companymodal__remove:hover,
.ka_wishlist_companymodal__reject:hover { background: rgba(154, 42, 42, 0.08); }
.ka_wishlist_companymodal__approve {
	border: 1px solid #b9d4be;
	background: transparent;
	cursor: pointer;
	padding: 4px 10px;
	border-radius: 4px;
	font: inherit;
	font-size: 0.85em;
	color: #2f7d4f;
	min-height: 28px;
}
.ka_wishlist_companymodal__approve:hover { background: rgba(47, 125, 79, 0.08); }
.ka_wishlist_companymodal__invite {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	border-top: 1px solid #eee;
	padding-top: 14px;
}
.ka_wishlist_companymodal__id {
	flex: 1 1 180px;
	padding: 7px 9px;
	border: 1px solid #d8d8d8;
	border-radius: 4px;
	font: inherit;
	box-sizing: border-box;
}
.ka_wishlist_companymodal__role {
	padding: 7px 9px;
	border: 1px solid #d8d8d8;
	border-radius: 4px;
	font: inherit;
}
.ka_wishlist_companymodal__addbtn {
	padding: 7px 16px;
	border: 0;
	border-radius: 4px;
	background: #1c1d23;
	color: #fff;
	cursor: pointer;
	font: inherit;
	min-height: 34px;
}
.ka_wishlist_companymodal__addbtn:hover { background: #34363f; }
.ka_wishlist_companymodal__addbtn:disabled { opacity: 0.6; cursor: default; }
.ka_wishlist_companymodal :focus-visible {
	outline: 2px solid var(--ka-wishlist-saved-focus-ring, #b32424);
	outline-offset: 2px;
}

/* B2: company pricing-visibility config panel inside the manage-company modal. */
.ka_wishlist_companymodal__pricing {
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid #eee;
}
.ka_wishlist_companymodal__pricetitle { margin: 0 0 8px; font-size: 1em; }
.ka_wishlist_companymodal__pricerow {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 5px 0;
}
.ka_wishlist_companymodal__pricelab { font-size: 0.92em; }
.ka_wishlist_companymodal__pricemode {
	padding: 5px 8px;
	border: 1px solid #d8d8d8;
	border-radius: 4px;
	font: inherit;
	font-size: 0.85em;
}
.ka_wishlist_companymodal__pricenote { margin: 8px 0 0; color: #777; font-size: 0.85em; }

/* A4: invitee "you've been invited" banner above the switcher tabs. */
.ka_wishlist_grid__invite {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	margin: 0 0 10px;
	background: rgba(212, 162, 78, 0.10);
	border: 1px solid rgba(212, 162, 78, 0.45);
	border-radius: 6px;
}
.ka_wishlist_grid__invitemsg { flex: 1 1 200px; font-size: 0.95em; }
.ka_wishlist_grid__inviteaccept {
	border: 0;
	border-radius: 4px;
	background: #2f7d4f;
	color: #fff;
	cursor: pointer;
	padding: 5px 14px;
	font: inherit;
	min-height: 30px;
}
.ka_wishlist_grid__inviteaccept:hover { background: #276a43; }
.ka_wishlist_grid__inviteaccept:disabled { opacity: 0.6; cursor: default; }
.ka_wishlist_grid__invitedecline {
	border: 1px solid #d9c4c4;
	background: transparent;
	color: #9a2a2a;
	cursor: pointer;
	padding: 5px 12px;
	border-radius: 4px;
	font: inherit;
	min-height: 30px;
}
.ka_wishlist_grid__invitedecline:hover { background: rgba(154, 42, 42, 0.08); }

/* B3: public token-link accept-invite page ([ka_wishlist_accept_invite]). */
.ka_wishlist_acceptinvite {
	max-width: 520px;
	margin: 24px auto;
	padding: 22px 24px;
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	background: #fff;
}
.ka_wishlist_acceptinvite__msg { font-size: 1.05em; margin: 0 0 16px; }
.ka_wishlist_acceptinvite__ok { font-size: 1.05em; margin: 0; }
.ka_wishlist_acceptinvite__form { display: flex; gap: 10px; flex-wrap: wrap; }
.ka_wishlist_acceptinvite__accept {
	border: 0;
	border-radius: 4px;
	background: #2f7d4f;
	color: #fff;
	cursor: pointer;
	padding: 9px 20px;
	font: inherit;
	min-height: 38px;
}
.ka_wishlist_acceptinvite__accept:hover { background: #276a43; }
.ka_wishlist_acceptinvite__decline {
	border: 1px solid #d9c4c4;
	background: transparent;
	color: #9a2a2a;
	cursor: pointer;
	padding: 9px 18px;
	border-radius: 4px;
	font: inherit;
	min-height: 38px;
}
.ka_wishlist_acceptinvite__decline:hover { background: rgba(154, 42, 42, 0.08); }

/* "Save for later" is a real <button> (action semantics) styled as an inline
   text link so it reads identically in the cart. */
.ka_wishlist_save_later {
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	color: inherit;
	text-decoration: underline;
	cursor: pointer;
}

.ka_wishlist_grid__actions {
	display: flex;
	gap: 8px;
	margin-top: auto;
	flex-wrap: wrap;
}

.ka_wishlist_grid__cart-btn,
.ka_wishlist_grid__remove,
.ka_wishlist_grid__movelist,
.ka_wishlist_grid__quote-btn,
.ka_wishlist_grid__empty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 14px;
	border-radius: 6px;
	border: 1px solid #1c1d23;
	background: #1c1d23;
	color: #fff;
	font: inherit;
	font-weight: 600;
	font-size: 0.9em;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.ka_wishlist_grid__remove,
.ka_wishlist_grid__movelist,
.ka_wishlist_grid__empty-btn {
	background: transparent;
	color: #1c1d23;
}

/* "Move to list…" inline picker (#8). Anchored to the card (position:relative). */
.ka_wishlist_grid__movemenu {
	position: absolute;
	z-index: 30;
	right: 16px;
	bottom: 56px;
	min-width: 180px;
	max-width: 240px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 8px;
	background: #fff;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	box-shadow: var(--ka-wishlist-movemenu-shadow, 0 8px 24px rgba(0, 0, 0, 0.16));
}
.ka_wishlist_grid__movemenu-copy {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.85em;
	padding: 4px 6px 6px;
	border-bottom: 1px solid #eee;
	margin-bottom: 4px;
}
.ka_wishlist_grid__moveto {
	text-align: left;
	padding: 7px 9px;
	border: 0;
	background: none;
	border-radius: 6px;
	cursor: pointer;
	font: inherit;
	color: #1c1d23;
}
.ka_wishlist_grid__moveto:hover {
	background: rgba(0, 0, 0, 0.06);
}
.ka_wishlist_grid__movemenu-empty {
	font-size: 0.85em;
	color: #666;
	margin: 4px 6px;
}

.ka_wishlist_grid__cart-btn:hover,
.ka_wishlist_grid__quote-btn:hover {
	background: #333;
}

.ka_wishlist_grid__remove:hover,
.ka_wishlist_grid__empty-btn:hover {
	background: rgba(0, 0, 0, 0.06);
}

.ka_wishlist_grid--empty {
	padding: 36px 18px;
	text-align: center;
}

.ka_wishlist_grid__empty {
	margin: 0;
	color: #666;
	font-size: 1.05em;
}

.ka_wishlist_grid__cta {
	grid-column: 1 / -1;
	display: flex;
	gap: 12px;
	margin-top: 18px;
	justify-content: flex-end;
	flex-wrap: wrap;
}

/* ---------- Toast ---------- */
.ka_wishlist_toast {
	position: fixed;
	left: 50%;
	bottom: 28px;
	transform: translate(-50%, 8px);
	padding: 12px 22px;
	border-radius: 999px;
	background: #1c1d23;
	color: #fff;
	font-weight: 600;
	font-size: 0.9em;
	letter-spacing: 0.02em;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
	opacity: 0;
	pointer-events: none;
	transition: transform 0.2s ease, opacity 0.2s ease;
	z-index: 99999;
}

.ka_wishlist_toast.is-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}

.ka_wishlist_toast.is-error {
	background: #a83333;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

/* (Removed the dead v0.2.0 ".ka_wishlist_grid__stock/__meta/__date/.is-out" block:
   its classes had no emitters and its base .ka_wishlist_grid__stock rule + ::before
   dot collided with the live P2.11 pill above — forcing every pill green and adding
   a duplicate dot. The P2.11 block is now the sole owner of .ka_wishlist_grid__stock.) */

/* New CTA + card buttons inherit the grid button look. */
.ka_wishlist_grid__addall-btn,
.ka_wishlist_grid__share-btn,
.ka_wishlist_grid__options-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 8px 14px;
	border-radius: 6px;
	border: 1px solid #1c1d23;
	background: #1c1d23;
	color: #fff;
	font: inherit;
	font-weight: 600;
	font-size: 0.9em;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.ka_wishlist_grid__share-btn,
.ka_wishlist_grid__options-btn {
	background: transparent;
	color: #1c1d23;
}
.ka_wishlist_grid__addall-btn:hover { background: #333; }
.ka_wishlist_grid__share-btn:hover,
.ka_wishlist_grid__options-btn:hover { background: rgba(0, 0, 0, 0.06); }
.ka_wishlist_grid__options-btn { width: 100%; }

/* Shared (read-only) wishlist banner. */
.ka_wishlist_grid__shared-banner {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 18px;
	margin-bottom: 4px;
	border-radius: 8px;
	background: #f4ead1;
	color: #7a5a25;
	font-weight: 600;
	font-size: 0.92em;
}

/* ---------- v0.2.0: icon-only Save heart on shop/category loop cards ---------- */
.ka_wishlist_loop_btn {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 3;
}
li.product { position: relative; }
.ka_wishlist_loop_btn .ka_wishlist_button {
	width: 42px;
	height: 42px;
	padding: 0;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.14);
}
.ka_wishlist_loop_btn .ka_wishlist_button:not(.is-in-list) {
	color: var(--ka-wishlist-loop-fg, #b32424);
}

/* ---------- v0.8.0: "notify me" control (PDP, out-of-stock) ---------- */
.ka_wishlist_notify {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 14px 0;
	padding: 14px 16px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 8px;
	background: rgba(0, 0, 0, 0.02);
}
.ka_wishlist_notify.is-busy {
	opacity: 0.6;
	cursor: progress;
}
.ka_wishlist_notify__email {
	flex: 1 1 220px;
	min-width: 0;
	padding: 10px 12px;
	border: 1px solid rgba(0, 0, 0, 0.2);
	border-radius: 6px;
	font: inherit;
	line-height: 1.2;
}
.ka_wishlist_notify__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	border: 1px solid currentColor;
	background: transparent;
	color: inherit;
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	border-radius: 6px;
	cursor: pointer;
	transition: background-color 0.2s ease, opacity 0.2s ease;
	-webkit-appearance: none;
	appearance: none;
}
.ka_wishlist_notify__btn:hover,
.ka_wishlist_notify__btn:focus-visible {
	background: rgba(0, 0, 0, 0.04);
}
.ka_wishlist_notify__btn:disabled {
	cursor: default;
	opacity: 0.55;
}
.ka_wishlist_notify__hint {
	flex: 1 1 100%;
	margin: 0;
	font-size: 0.82em;
	opacity: 0.7;
}
.ka_wishlist_notify__login {
	font-weight: 600;
}
.ka_wishlist_notify.is-pending,
.ka_wishlist_notify.is-subscribed {
	border-color: #2e7d32;
	background: rgba(46, 125, 50, 0.06);
}
.ka_wishlist_notify.is-pending .ka_wishlist_notify__email,
.ka_wishlist_notify.is-subscribed .ka_wishlist_notify__email {
	display: none;
}
