/* The original fact fixes geometry and stays in the accessibility tree. */
:root{--jm-ready:20261026}
.jm-count-shell{position:relative;display:inline-block;min-width:0;max-width:100%;vertical-align:baseline}
.jm-count-overlay{position:absolute;inset:0;pointer-events:none;user-select:none}
.jm-count-overlay::before{content:attr(data-jm-count-text)}
.jm-count-shell[data-jm-count-running]>.jm-count-final{opacity:0}
/* These opt-in pseudo rules never touch the engineering SVG strokes. */
.jm-rule{position:relative}
.jm-rule::after{content:"";position:absolute;inset-inline:0;bottom:0;height:1px;background:var(--jm-accent,#1f5695);opacity:.32;transform:scaleX(1);transform-origin:left center;pointer-events:none}
.jm-rule:dir(rtl)::after{transform-origin:right center}
.jm-rule--draw::after{animation:jm-rule-draw 440ms cubic-bezier(.2,.7,.2,1)}
@keyframes jm-rule-draw{from{opacity:.16;transform:scaleX(.18)}to{opacity:.32;transform:scaleX(1)}}
/* Only the color of an existing border changes; focus outlines stay native. */
.jm-card{border-color:var(--jm-static-border,#9eafbf)}
.jm-card:focus-within{border-color:var(--jm-accent,#1f5695)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .jm-card:hover{border-color:var(--jm-accent,#1f5695)}
}
@media(prefers-reduced-motion:reduce){
  .jm-rule--draw::after{animation:none;transform:scaleX(1)}
  .jm-count-shell[data-jm-count-running]>.jm-count-final{opacity:1}
  .jm-count-overlay{display:none}
}
