/** PCS & KEYS custom SVG icon foundation. */
.pk-icon {
	width: var(--pk-icon-size-compact);
	height: var(--pk-icon-size-compact);
	overflow: visible;
}

.pk-icon__outline {
	fill: none;
	stroke: var(--pk-color-text);
	stroke-width: var(--pk-icon-stroke-width);
	stroke-linecap: round;
	stroke-linejoin: round;
}

.pk-icon__fill {
	fill: transparent;
	transition: fill var(--pk-motion-duration) ease;
}

.pk-icon-action {
	padding: 0;
	border: 0;
	outline: 0;
	background: transparent;
	box-shadow: none;
	cursor: pointer;
}

.pk-icon-action:hover .pk-icon__fill,
.pk-icon-action[aria-pressed="true"] .pk-icon__fill {
	fill: var(--pk-color-action);
}

.pk-icon-action[aria-pressed="true"]:hover .pk-icon__fill {
	fill: var(--pk-color-action-hover);
}

.pk-icon-informational .pk-icon__outline,
.pk-icon-informational .pk-icon__fill {
	fill: var(--pk-color-text);
	stroke: none;
}

/* Shared Lucide-based masters. Existing icons retain their original sizing. */
svg.pk-icon.pk-shared-icon {
	display: inline-block;
	flex: 0 0 auto;
	fill: none;
	stroke: none;
	vertical-align: middle;
	pointer-events: none;
}

svg.pk-icon.pk-shared-icon.pk-icon--compact { width: 16px; height: 16px; }
svg.pk-icon.pk-shared-icon.pk-icon--standard { width: 20px; height: 20px; }
svg.pk-icon.pk-shared-icon.pk-icon--large { width: 24px; height: 24px; }

svg.pk-icon.pk-shared-icon .pk-icon__outline,
svg.pk-icon.pk-shared-icon .pk-icon__outline > * {
	fill: none;
	stroke: var(--pk-color-text, #AFB2B1);
	stroke-width: 1.75;
	stroke-linecap: round;
	stroke-linejoin: round;
}


svg.pk-icon.pk-shared-icon .pk-icon__message-count {
	fill: var(--pk-shared-icon-count, var(--pk-color-text, #AFB2B1));
	stroke: none;
	font-family: Montserrat, sans-serif;
	font-size: 7px;
	font-weight: 600;
}

svg.pk-icon.pk-shared-icon .pk-icon__symbol,
svg.pk-icon.pk-shared-icon .pk-icon__symbol > * {
	fill: none;
	stroke: var(--pk-shared-icon-symbol, var(--pk-color-text, #AFB2B1));
	stroke-width: 1.75;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: stroke var(--pk-motion-duration, 0.25s) ease;
}

svg.pk-icon.pk-shared-icon .pk-icon__permanent-fill,
svg.pk-icon.pk-shared-icon .pk-icon__permanent-fill > * {
	fill: var(--pk-color-text, #AFB2B1);
	stroke: var(--pk-color-text, #AFB2B1);
	stroke-width: 1.75;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Match legacy pressed-hover specificity so shared disabled/active state wins. */
svg.pk-icon.pk-shared-icon[data-pk-icon] .pk-icon__fill,
svg.pk-icon.pk-shared-icon[data-pk-icon] .pk-icon__fill > * {
	fill: var(--pk-shared-icon-fill, transparent);
	stroke: none;
	transition: fill var(--pk-motion-duration, 0.25s) ease;
}


#menu-trigger svg.pk-shared-icon[data-pk-icon="square-menu"] .pk-icon__symbol > * {
	stroke: var(--pk-shared-icon-symbol, var(--pk-color-text, #AFB2B1)) !important;
}
:is(#menu-trigger svg.pk-shared-icon[data-pk-icon="square-menu"], #pcs-menu-cart-open svg.pk-shared-icon[data-pk-icon="shopping-cart"]) .pk-icon__fill > *,
:is(#menu-trigger svg.pk-shared-icon[data-pk-icon="square-menu"], #pcs-menu-cart-open svg.pk-shared-icon[data-pk-icon="shopping-cart"]) mask > rect {
	stroke: none !important;
}
:is(#menu-trigger svg.pk-shared-icon[data-pk-icon="square-menu"], #pcs-menu-cart-open svg.pk-shared-icon[data-pk-icon="shopping-cart"]) mask > g > * {
	stroke: #000 !important;
	stroke-width: 3.75 !important;
}

/* Line-only Lucide icons have no fillable enclosure. Their narrow state core
   follows the original strokes; open paths always retain fill:none. */
svg.pk-icon.pk-shared-icon .pk-icon__line-core,
svg.pk-icon.pk-shared-icon .pk-icon__line-core > * {
	fill: none;
	stroke: var(--pk-shared-icon-fill, transparent);
	stroke-width: 0.55;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: stroke var(--pk-motion-duration, 0.25s) ease;
}

:where(a, button, summary, [role="button"], .pk-icon-action):is(:hover, :focus-visible, :active) .pk-shared-icon,
:is([aria-pressed="true"], [aria-current="page"], [aria-selected="true"], .is-active, .is-current) .pk-shared-icon,
.pk-shared-icon:is([aria-pressed="true"], [aria-current="page"], [aria-selected="true"], .is-active, .is-current),
:is([aria-expanded="true"], [data-pk-engagement-active="true"]) .pk-shared-icon,
details[open] > summary .pk-shared-icon {
	--pk-shared-icon-fill: var(--pk-color-action, #6BC8CC);
	--pk-shared-icon-symbol: #121212;
	--pk-shared-icon-count: #121212;
}

:where(a, button, summary, [role="button"], .pk-icon-action):is(:hover, :focus-visible, :active) .pk-shared-icon[data-pk-icon="tag"] :is(.pk-icon__permanent-fill, .pk-icon__permanent-fill > *),
:is([aria-pressed="true"], [aria-current="page"], [aria-selected="true"], .is-active, .is-current) .pk-shared-icon[data-pk-icon="tag"] :is(.pk-icon__permanent-fill, .pk-icon__permanent-fill > *),
:is([aria-expanded="true"], [data-pk-engagement-active="true"]) .pk-shared-icon[data-pk-icon="tag"] :is(.pk-icon__permanent-fill, .pk-icon__permanent-fill > *),
details[open] > summary .pk-shared-icon[data-pk-icon="tag"] :is(.pk-icon__permanent-fill, .pk-icon__permanent-fill > *) {
	fill: #121212;
	stroke: #121212;
}

.pk-icon-action:focus-visible {
	outline: 2px solid var(--pk-color-action, #6BC8CC);
	outline-offset: 3px;
}

:where(a, button, summary, [role="button"], .pk-icon-action):focus-visible .pk-shared-icon {
	outline: 2px solid var(--pk-color-action, #6BC8CC);
	outline-offset: 2px;
	border-radius: var(--pk-radius-button, 3px);
}

/* A disabled ancestor wins over hover, focus, and active presentation. */
:is(:disabled, [aria-disabled="true"], .is-disabled, .is-unavailable) .pk-shared-icon,
.pk-shared-icon:is([aria-disabled="true"], .is-disabled, .is-unavailable) {
	--pk-shared-icon-fill: transparent;
	opacity: 0.65;
	outline: none;
}

/* Information is permanently gray and cannot inherit a parent's hover state. */
svg.pk-icon.pk-shared-icon.pk-icon--solid {
	--pk-shared-icon-fill: var(--pk-color-text, #AFB2B1);
	cursor: default;
}
svg.pk-icon.pk-shared-icon .pk-icon__solid,
svg.pk-icon.pk-shared-icon .pk-icon__solid > * {
	fill: var(--pk-color-text, #AFB2B1);
	color: var(--pk-color-text, #AFB2B1);
	stroke: none;
}

/* Notification totals remain real text, outside the standardized bell artwork. */
.pk-community__nav-count { margin-inline-start: auto; }

/* Preserve the existing dictation control's contextual 18px artwork. */
.pk-creator__icon-button svg.pk-icon.pk-shared-icon,
.pk-profile-identity__icon-button svg.pk-icon.pk-shared-icon { width: 18px; height: 18px; }

/* Shared replacement for legacy dropdown artwork, preserving its small context. */
.pk-lucide-indicator { display: inline-flex; flex: 0 0 9px; align-items: center; justify-content: center; width: 9px; height: 9px; }
.pk-lucide-indicator--8 { flex-basis: 8px; width: 8px; height: 8px; }
.pk-lucide-indicator svg.pk-icon.pk-shared-icon[data-pk-icon] { width: 100%; height: 100%; flex: 0 0 100%; }
.pk-editor-color-icon svg.pk-icon.pk-shared-icon { width: 14px; height: 14px; }

@media (prefers-reduced-motion: reduce) {
	svg.pk-icon.pk-shared-icon .pk-icon__symbol,
	svg.pk-icon.pk-shared-icon .pk-icon__symbol > * { transition: none; }
	svg.pk-icon.pk-shared-icon[data-pk-icon] .pk-icon__fill,
	svg.pk-icon.pk-shared-icon .pk-icon__line-core { transition: none; }
}
