/* One motion rhythm, with the original Softform materials and focus states intact. */
body.jarvis-softform {
  --j-motion-fast: 200ms;
  --j-motion-medium: 240ms;
  --j-motion-slow: 360ms;
  --j-motion-control: 320ms;
  --j-motion-widget-enter: 440ms;
  --sf-duration: 240ms;
  --j-motion-ease: cubic-bezier(.2,.7,.25,1);
  --sf-ease: var(--j-motion-ease);
  --j-motion-press: cubic-bezier(.2,.65,.3,1);
}

/* Only JS-started effects use this hint; the HTML is always visible without JS. */
body.jarvis-softform .is-widget-entering {
  will-change: opacity,filter;
}

/* The existing selected paint becomes one shared, inaccessible presentation layer. */
body.sf-system.jarvis-softform .sf-segmented.has-sliding-indicator {
  position: relative;
  isolation: isolate;
}
body.sf-system.jarvis-softform .sf-segmented.has-sliding-indicator>.sf-segment {
  position: relative;
  z-index: 1;
}
body.sf-system.jarvis-softform .sf-segmented.is-measuring-segments>.sf-segment {
  transition: none !important;
  animation: none !important;
}
body.sf-system.jarvis-softform .sf-segmented.has-sliding-indicator>.sf-segment:is([aria-pressed="true"],[aria-selected="true"],.active,.is-active) {
  background: transparent !important;
  box-shadow: none !important;
}
body.sf-system.jarvis-softform .jarvis-segment-indicator {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
  user-select: none;
  border: 0;
  transition: none;
}
body.sf-system.jarvis-softform .jarvis-segment-indicator.is-sliding {
  will-change: transform,width,height;
}

/* The final value reserves width, while assistive technology reads a stable value. */
body.jarvis-softform .jarvis-count {
  position: relative;
  display: inline-grid;
  vertical-align: baseline;
  font: inherit;
  letter-spacing: inherit;
  font-variant-numeric: tabular-nums;
}
body.jarvis-softform .jarvis-count > :is(.jarvis-count-value,.jarvis-count-target) {
  grid-area: 1 / 1;
  font: inherit;
  letter-spacing: inherit;
  margin: 0;
  padding: 0;
}
body.jarvis-softform .jarvis-count-target { visibility: hidden; }
body.jarvis-softform .jarvis-count-label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
body.jarvis-softform :is(.scene-mode-toggle button,.graph-arrange,.graph-undo,.graph-controls .zoom-label) { font-size: 11px; }
body.jarvis-softform .dashboard-ring-progress { stroke-dashoffset: var(--ring-offset); }
body.jarvis-softform .dashboard-assignment:has(.jarvis-count.is-counting) .dashboard-ring-progress {
  animation: jarvis-ring-reveal 850ms var(--j-motion-ease) both;
}
body.jarvis-softform .dashboard-approvals:has(.jarvis-count.is-counting) .dashboard-bar-track > span {
  transform-origin: left center;
  animation: jarvis-bar-reveal 800ms var(--j-motion-ease) both;
}
@keyframes jarvis-ring-reveal { from { stroke-dashoffset: var(--ring-length); } to { stroke-dashoffset: var(--ring-offset); } }
@keyframes jarvis-bar-reveal { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Scene nodes and their ports own their projection transforms. */
body.jarvis-softform :is(button,a,summary,[role="button"]):not(.node):not(.node *):not(.graph-svg *) {
  transition: translate var(--j-motion-fast) var(--j-motion-ease),
    box-shadow var(--j-motion-medium) var(--j-motion-ease),
    background-color var(--j-motion-medium) var(--j-motion-ease),
    color var(--j-motion-fast) var(--j-motion-ease),
    filter var(--j-motion-fast) var(--j-motion-ease),
    opacity var(--j-motion-fast) var(--j-motion-ease),
    outline-color var(--j-motion-fast) var(--j-motion-ease);
}
body.jarvis-softform :is(.sf-button,.button,.sf-segment,.sf-tab):where(:not(.node *,.provider-choice,.dock-item)) {
  border-radius: var(--sf-radius-pill);
}
body.jarvis-softform :is(input,select,textarea,.graph-search,.wf-search) {
  transition: box-shadow var(--j-motion-medium) var(--j-motion-ease),
    background-color var(--j-motion-medium) var(--j-motion-ease),
    border-color var(--j-motion-fast) var(--j-motion-ease),
    outline-color var(--j-motion-fast) var(--j-motion-ease);
}
body.jarvis-softform :is(.sf-toggle-track,.toggle) {
  transition: background-color var(--j-motion-medium) var(--j-motion-ease),
    box-shadow var(--j-motion-medium) var(--j-motion-ease),
    filter var(--j-motion-fast) var(--j-motion-ease);
}
body.jarvis-softform :is(.sf-toggle-track,.toggle)::after {
  transition: transform var(--j-motion-control) var(--j-motion-ease),
    box-shadow var(--j-motion-medium) var(--j-motion-ease),
    background-color var(--j-motion-medium) var(--j-motion-ease);
}
/* Panels receive this class only when they are the nearest hovered panel. */
body.jarvis-softform :is(.sf-surface,.sf-lens,.sf-glass):not(.node):not(.node *):not(.graph-shell):not(.connections-services--glass):not(.dock):not(.topbar):not(.modal) {
  transition: translate var(--j-motion-medium) var(--j-motion-ease),
    box-shadow var(--j-motion-medium) var(--j-motion-ease),
    filter var(--j-motion-medium) var(--j-motion-ease),
    background-color var(--j-motion-medium) var(--j-motion-ease);
}
body.jarvis-softform :is(.graph-shell,.connections-services--glass) {
  transition: box-shadow var(--j-motion-medium) var(--j-motion-ease),
    filter var(--j-motion-medium) var(--j-motion-ease);
}
body.jarvis-softform :is(.connections-metric-top>.connections-icon,.connections-service-head>.sf-logo>svg,.sf-widget-head>svg,.utility-title>svg,.wf-panel-head>svg) {
  transform-origin: center;
  transition: transform var(--j-motion-medium) var(--j-motion-ease),
    filter var(--j-motion-medium) var(--j-motion-ease);
}
body.jarvis-softform :is(.contact-table tbody tr,.wf-queue-row,.detail-relation,.search-result,.provider-choice,.connections-account,.connections-calendar-row) {
  transition: background-color var(--j-motion-medium) var(--j-motion-ease),
    box-shadow var(--j-motion-medium) var(--j-motion-ease),
    color var(--j-motion-fast) var(--j-motion-ease),
    filter var(--j-motion-fast) var(--j-motion-ease);
}
body.jarvis-softform .node {
  transition: opacity var(--j-motion-fast) var(--j-motion-ease),
    box-shadow var(--j-motion-medium) var(--j-motion-ease),
    background-color var(--j-motion-medium) var(--j-motion-ease),
    filter var(--j-motion-fast) var(--j-motion-ease);
}
body.jarvis-softform .node .node-port {
  transition: opacity var(--j-motion-fast) var(--j-motion-ease),
    box-shadow var(--j-motion-fast) var(--j-motion-ease),
    background-color var(--j-motion-fast) var(--j-motion-ease);
}
body.jarvis-softform :is(.graph-search,.wf-search):focus-within {
  box-shadow: inset 2px 3px 6px var(--sf-well-shadow), inset -2px -2px 5px var(--sf-well-light),
    0 0 0 3px color-mix(in srgb,var(--sf-focus) 11%,transparent);
}

/* Row feedback has breathing room without changing any content geometry. */
body.jarvis-softform :is(.connections-account,.connections-calendar-row) {
  position: relative;
  isolation: isolate;
  background: transparent;
}
body.jarvis-softform :is(.connections-account,.connections-calendar-row)::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 5px -12px;
  border-radius: 16px;
  background: var(--sf-selected-fill, #ffffff20);
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--j-motion-fast) var(--j-motion-ease);
}
body.jarvis-softform :is(.connections-account,.connections-calendar-row):is(:hover,:focus-within) {
  background: transparent;
}
body.jarvis-softform :is(.connections-account,.connections-calendar-row):focus-within::before {
  opacity: 1;
}
@media (max-width:700px) {
  body.jarvis-softform :is(.connections-account,.connections-calendar-row)::before {
    inset: 5px -10px;
    border-radius: 14px;
  }
}

/* Feedback stays in place: light, colour and a single shadow change. */
body.jarvis-softform :is(button,a,summary,[role="button"]):not(.node):not(.node *):not(.graph-svg *),
body.jarvis-softform :is(.sf-surface,.sf-lens,.sf-glass).is-motion-hover:not(.node):not(.node *):not(.graph-shell):not(.dock):not(.modal){translate:none}
body.jarvis-softform :is(.sf-button,.button,.company-overview-card):not(.node *):active{transform:none}
body.jarvis-softform :is(.sf-border-glow,.is-motion-hover):not(.node):not(.node *){filter:none}
body.jarvis-softform .sf-border-glow>.sf-border-glow-edge{transition:opacity var(--j-motion-medium) var(--j-motion-ease)}
body.jarvis-softform .sf-border-glow.is-glow-active>.sf-border-glow-edge{opacity:calc(var(--sf-glow-power,.75) * .35);transition-duration:var(--j-motion-medium)}
body.jarvis-softform .graph-svg .edge-selected path:not(.edge-hit){animation:none}
body.jarvis-softform .node .node-port:hover{scale:1}
body.jarvis-softform .graph-svg path:not(.edge-hit):not(.proposal-hit){transition:opacity var(--j-motion-medium) var(--j-motion-ease),stroke var(--j-motion-medium) var(--j-motion-ease),stroke-width var(--j-motion-medium) var(--j-motion-ease)}
body.jarvis-softform .overlay{animation:fadeIn var(--j-motion-medium) var(--j-motion-ease)}
body.jarvis-softform .modal{animation:jarvis-dialog-in var(--j-motion-medium) var(--j-motion-ease)}
body.jarvis-softform #toast{transition:opacity var(--j-motion-medium) var(--j-motion-ease),transform var(--j-motion-medium) var(--j-motion-ease)}
@keyframes jarvis-dialog-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media (hover:hover) and (pointer:fine) {
  body.jarvis-softform :is(.connections-account,.connections-calendar-row):hover::before{opacity:1}
  body.jarvis-softform :is(button,a,summary,[role="button"]):not(.node):not(.node *):not(.graph-svg *):not(:disabled):not([aria-disabled="true"]):hover{filter:brightness(1.015)}
  body.jarvis-softform .sf-surface.is-motion-hover:not(.node):not(.graph-shell):not(.dock):not(.modal){box-shadow:var(--sf-surface-shadow),0 8px 24px -18px color-mix(in srgb,var(--sf-fg) 12%,transparent)}
  body.jarvis-softform :is(.contact-table tbody tr[data-action],.wf-queue-row,.detail-relation[data-action],.search-result,.provider-choice):hover{background-color:var(--j-primary-soft)}
  body.jarvis-softform .node .node-port:hover{opacity:1;box-shadow:0 0 0 3px color-mix(in srgb,var(--sf-focus) 10%,transparent)}
}

@media (prefers-reduced-motion:reduce) {
  body.jarvis-softform .is-widget-entering {
    opacity: 1 !important;
    filter: none !important;
    will-change: auto;
  }
  body.jarvis-softform :is(.connections-account,.connections-calendar-row)::before {
    transition: none !important;
    animation: none !important;
  }
  body.jarvis-softform :is(.dashboard-ring-progress,.dashboard-bar-track > span) { animation: none !important; transition: none !important; }
  body.jarvis-softform {
    --j-motion-fast: 0ms;
    --j-motion-medium: 0ms;
    --j-motion-slow: 0ms;
    --j-motion-control: 0ms;
  }
  body.jarvis-softform :is(button,a,summary,[role="button"],input,select,textarea,.sf-surface,.sf-lens,.sf-glass,.contact-table tr,.wf-queue-row,.sf-toggle-track,.toggle):not(.node):not(.node *):not(.graph-svg *) {
    transition: none !important;
    animation: none !important;
  }
  body.jarvis-softform :is(button,a,[role="button"]):not(.node):not(.node *):not(.graph-svg *),
  body.jarvis-softform :is(.sf-surface,.sf-lens,.sf-glass).is-motion-hover:not(.node):not(.node *):not(.graph-shell):not(.connections-services--glass):not(.dock):not(.topbar):not(.modal) {
    translate: none !important;
    transform: none !important;
    scale: none !important;
  }
  body.jarvis-softform :is(.dock-item,.sf-nav-icon)>svg,
  body.jarvis-softform :is(.dock-item,.sf-nav-icon)>[data-icon]>svg,
  body.jarvis-softform .is-motion-hover :is(.connections-metric-top>.connections-icon,.connections-service-head>.sf-logo>svg,.sf-widget-head>svg,.utility-title>svg,.wf-panel-head>svg) {
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
  /* Checked thumb positions and graph projection transforms remain essential state. */
  body.jarvis-softform :is(.sf-toggle-track,.toggle)::after,
  body.jarvis-softform .node,
  body.jarvis-softform .node .node-port {
    transition: none !important;
    animation: none !important;
  }
  body.jarvis-softform .node .node-port { scale: none !important; }
}
