/* Hamyara 0.15.32 — definitive centered hierarchy disclosure control */

/*
  The button is only the circular shell.  All legacy pseudo-elements on the
  button itself are disabled so old disclosure styles cannot overlap the icon.
*/
body :is(.tree-toggle-v159,.tree-toggle-v158){
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  max-width:32px!important;
  min-height:32px!important;
  max-height:32px!important;
  padding:0!important;
  margin-block:0!important;
  border-radius:50%!important;
  overflow:hidden!important;
  font-size:0!important;
  line-height:0!important;
  box-sizing:border-box!important;
  transform-origin:center center!important;
  transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .14s ease!important;
}
body :is(.tree-toggle-v159,.tree-toggle-v158)::before,
body :is(.tree-toggle-v159,.tree-toggle-v158)::after{
  content:none!important;
  display:none!important;
}

/*
  A dedicated 14x14 icon plane gives the horizontal and vertical strokes the
  same mathematical centre regardless of the surrounding tree-row layout.
*/
body :is(.tree-toggle-v159,.tree-toggle-v158)>span{
  position:absolute!important;
  display:block!important;
  width:14px!important;
  height:14px!important;
  min-width:14px!important;
  min-height:14px!important;
  left:50%!important;
  top:50%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  color:transparent!important;
  background:transparent!important;
  font-size:0!important;
  line-height:0!important;
  transform:translate(-50%,-50%)!important;
  transform-origin:center center!important;
  pointer-events:none!important;
  box-sizing:border-box!important;
}
body :is(.tree-toggle-v159,.tree-toggle-v158)>span::before,
body :is(.tree-toggle-v159,.tree-toggle-v158)>span::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  margin:0!important;
  padding:0!important;
  background:#2f6986!important;
  border:0!important;
  border-radius:999px!important;
  transform-origin:center center!important;
  pointer-events:none!important;
  box-sizing:border-box!important;
  transition:transform .20s cubic-bezier(.2,.8,.2,1),opacity .14s ease!important;
}
/* horizontal stroke */
body :is(.tree-toggle-v159,.tree-toggle-v158)>span::before{
  width:12px!important;
  height:2px!important;
  transform:translate(-50%,-50%)!important;
  opacity:1!important;
}
/* vertical stroke */
body :is(.tree-toggle-v159,.tree-toggle-v158)>span::after{
  width:2px!important;
  height:12px!important;
  transform:translate(-50%,-50%) scaleY(1)!important;
  opacity:1!important;
}
/* open branch = minus. Horizontal stroke stays fixed; only vertical fades. */
body :is(.tree-toggle-v159,.tree-toggle-v158)[aria-expanded="true"]>span::after{
  transform:translate(-50%,-50%) scaleY(0)!important;
  opacity:0!important;
}

body :is(.tree-toggle-v159,.tree-toggle-v158):hover{transform:scale(1.04)!important}
body :is(.tree-toggle-v159,.tree-toggle-v158):active{transform:scale(.97)!important}
body :is(.tree-toggle-v159,.tree-toggle-v158):focus-visible{outline:2px solid #65a9cf!important;outline-offset:2px!important}

/* Keep the same geometry on narrow screens; no mobile-only shrink can de-centre the sign. */
@media(max-width:620px){
  body :is(.tree-toggle-v159,.tree-toggle-v158){
    width:32px!important;height:32px!important;min-width:32px!important;max-width:32px!important;
    min-height:32px!important;max-height:32px!important;
  }
}

/* Defeat legacy state-specific span rotations/margins (v26/v27).  These rules
   had greater specificity than the generic icon-plane rule and could rotate
   the closed plus into a diagonal/arrow-like mark. */
body :is(.tree-toggle-v159,.tree-toggle-v158)[aria-expanded]>span{
  left:50%!important;
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  margin:0!important;
  margin-top:0!important;
  margin-right:0!important;
  margin-bottom:0!important;
  margin-left:0!important;
  margin-inline-start:0!important;
  margin-inline-end:0!important;
  transform:translate(-50%,-50%)!important;
}
