
/* Iteration 04 — Interactive affordances. Visual foundation is unchanged.
   Terms: primary entity != related entity != inline text link != selected state. */
html#shellDemo[data-interaction-roles="v1"]{
  --ir-link:var(--c-content-action-ink,#006D7C);
  --ir-link-hover:var(--c-action-pressed,#005E6C);
}
/* Primary entity trigger: the object represented by the card/row.
   Default is normal ink. Hover/focus may shift to marine, never underline. */
html#shellDemo[data-interaction-roles="v1"] :is(
  .v8-developer-identity,
  .ex-title button,
  .card-title .link-button,
  .table-object .link-button,
  .ps-title-link:not(.ps-developer-link),
  [data-interaction-role="primary-entity"]
){
  color:var(--c-text)!important;
  text-decoration:none!important;
  text-underline-offset:0!important;
  cursor:pointer;
}
html#shellDemo[data-interaction-roles="v1"] :is(
  .v8-developer-identity:hover .v8-developer-title,
  .v8-developer-identity:focus-visible .v8-developer-title,
  .ex-title button:hover,
  .ex-title button:focus-visible,
  .card-title .link-button:hover,
  .card-title .link-button:focus-visible,
  .table-object .link-button:hover,
  .table-object .link-button:focus-visible,
  .ps-title-link:not(.ps-developer-link):hover,
  .ps-title-link:not(.ps-developer-link):focus-visible,
  [data-interaction-role="primary-entity"]:hover,
  [data-interaction-role="primary-entity"]:focus-visible
){
  color:var(--ir-link)!important;
  text-decoration:none!important;
}
/* Related entity: a different entity referenced inside the current object.
   Marine at rest; underline is introduced only on hover/focus. */
html#shellDemo[data-interaction-roles="v1"] :is(
  .ps-developer-link,
  .ex-developer,
  .v6-link[data-v6-building],
  .v6-link[data-v6-developer],
  [data-interaction-role="related-entity"]
){
  color:var(--ir-link)!important;
  text-decoration:none!important;
  text-decoration-thickness:1px!important;
  text-underline-offset:3px!important;
  cursor:pointer;
}
html#shellDemo[data-interaction-roles="v1"] :is(
  .ps-developer-link,
  .ex-developer,
  .v6-link[data-v6-building],
  .v6-link[data-v6-developer],
  [data-interaction-role="related-entity"]
):is(:hover,:focus-visible){
  color:var(--ir-link-hover)!important;
  text-decoration:underline!important;
}
/* Inline content links are links first: underline is persistent. */
html#shellDemo[data-interaction-roles="v1"] :is(
  .v6-agent-terms a.v6-link[href],
  .v6-phone,
  [data-interaction-role="inline-link"]
){
  color:var(--ir-link)!important;
  text-decoration:underline!important;
  text-decoration-thickness:1px!important;
  text-underline-offset:3px!important;
}
html#shellDemo[data-interaction-roles="v1"] :is(
  .v6-agent-terms a.v6-link[href],
  .v6-phone,
  [data-interaction-role="inline-link"]
):hover{color:var(--ir-link-hover)!important}
/* Navigation/breadcrumbs are neither inline links nor entity links. */
html#shellDemo[data-interaction-roles="v1"] :is(.sh-breadcrumbs a,.v6-section-nav a){text-decoration:none!important}
html#shellDemo[data-interaction-roles="v1"] :is(.sh-breadcrumbs a,.v6-section-nav a):hover{color:var(--ir-link)!important;text-decoration:none!important}
/* Cards with several distinct actions remain neutral surfaces. */
html#shellDemo[data-interaction-roles="v1"][data-v7="after"] #listScreen :is(.ex-favorite-developer-card,.ex-favorite-flat-card){cursor:default!important}
html#shellDemo[data-interaction-roles="v1"][data-v7="after"] #listScreen :is(.ex-favorite-developer-card,.ex-favorite-flat-card):hover{
  border-color:var(--c-border)!important;background:var(--c-surface)!important;
  box-shadow:0 1px 2px rgba(32,45,54,.035),0 5px 14px rgba(32,45,54,.035)!important;
}
/* Don't let an old generic link rule reintroduce underlines on primary titles. */
html#shellDemo[data-interaction-roles="v1"] .link-button:hover{text-decoration:none}
