/* Clear radial lighting adapts to the surface below; no opaque base colour. */
body.sf-system.jarvis-softform[data-palette] :is(.sf-button.sf-button--icon,.jarvis-chat-close,.jarvis-chat-send,.fullscreen-toggle,.nav-utility-action):where(:not(.node-port)) {
  --j-icon-rest-fill:radial-gradient(circle at 28% 22%,#ffffff24 0 8%,#ffffff0d 24%,#ffffff00 46%),
    radial-gradient(circle at 76% 80%,#00000007 0 6%,#00000002 22%,#00000000 42%);
  --j-icon-rest-shadow:4px 4px 10px var(--sf-well-shadow),
    -4px -4px 10px color-mix(in srgb,var(--sf-well-light) 72%,transparent);
  background:var(--j-icon-rest-fill);
  color:var(--sf-fg);
  box-shadow:var(--j-icon-rest-shadow);
  transition:box-shadow 260ms var(--j-motion-ease,var(--sf-ease)),
    background-color 260ms var(--j-motion-ease,var(--sf-ease)),
    color 220ms var(--j-motion-ease,var(--sf-ease)),
    opacity var(--j-motion-medium,240ms) var(--j-motion-ease,var(--sf-ease));
}
/* The rotating symbol has its own layer; its housing and light stay still. */
body.sf-system.jarvis-softform[data-palette] button.sf-button.sf-button--icon:has(>.connections-plus-icon.connections-icon) {
  transform:none;
  rotate:none;
  scale:none;
}
body.sf-system.jarvis-softform[data-palette] button.sf-button.sf-button--icon:has(>.connections-plus-icon.connections-icon):is(:hover,:focus-visible):where(:not(:active)) {
  background:var(--j-icon-rest-fill);
  box-shadow:var(--j-icon-rest-shadow);
  filter:none;
}
body.jarvis-softform .connections-plus-icon {
  background:transparent;
  box-shadow:none;
  filter:none;
}
body.sf-system.jarvis-softform[data-palette] :is(.jarvis-chat-close,.jarvis-chat-send) {
  position:relative;
}
/* A one-pixel, masked rim follows the source's directional light. */
body.sf-system.jarvis-softform[data-palette] :is(.sf-button.sf-button--icon,.jarvis-chat-close,.jarvis-chat-send,.fullscreen-toggle,.nav-utility-action):where(:not(.node-port):not(:disabled):not([aria-disabled="true"]))::before {
  content:"";
  position:absolute;
  inset:0;
  padding:1px;
  border-radius:inherit;
  background:linear-gradient(133deg,#ffffffbf 0%,#ffffff66 20%,#ffffff00 42%,#ffffff08 58%,#ffffff9e 82%,#ffffff12 100%);
  opacity:1;
  pointer-events:none;
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  mask-composite:exclude;
}
body.sf-system.jarvis-softform[data-palette] :is(.sf-button.sf-button--icon,.jarvis-chat-close,.jarvis-chat-send,.fullscreen-toggle,.nav-utility-action):where(:not(.node-port)):hover:where(:not(:disabled):not([aria-disabled="true"])) {
  background:radial-gradient(circle at 28% 22%,#ffffff29 0 8%,#ffffff0f 24%,#ffffff00 46%),
    radial-gradient(circle at 76% 80%,#00000009 0 6%,#00000003 22%,#00000000 42%);
  box-shadow:5px 5px 12px var(--sf-well-shadow),
    -5px -5px 12px color-mix(in srgb,var(--sf-well-light) 78%,transparent);
}
body.sf-system.jarvis-softform[data-palette] :is(.sf-button.sf-button--icon,.jarvis-chat-close,.jarvis-chat-send,.fullscreen-toggle,.nav-utility-action):where(:not(.node-port)):active:where(:not(:disabled):not([aria-disabled="true"])) {
  background:radial-gradient(circle at 28% 22%,#00000012 0 8%,#00000000 50%),
    radial-gradient(circle at 76% 80%,#ffffff14 0 10%,#ffffff00 52%);
  box-shadow:inset 4px 4px 8px var(--sf-well-shadow),
    inset -4px -4px 8px color-mix(in srgb,var(--sf-well-light) 72%,transparent);
}
body.sf-system.jarvis-softform[data-palette] .jarvis-chat-send:disabled {
  color:var(--sf-text-muted);
  background:transparent;
  box-shadow:none;
}
body.sf-system.jarvis-softform[data-palette] .connections-crm .connections-settings-action.sf-button {
  --sf-well-light:color-mix(in srgb,var(--j-primary) 10%,#ffffff20);
  --sf-well-shadow:color-mix(in srgb,var(--j-primary) 12%,#00000029);
  color:#fff;
}
@media(prefers-reduced-motion:reduce) {
  body.sf-system.jarvis-softform[data-palette] :is(.sf-button.sf-button--icon,.jarvis-chat-close,.jarvis-chat-send,.fullscreen-toggle,.nav-utility-action):where(:not(.node-port)) {
    transition:none!important;
  }
}
