  html, body, main {
        height: 100%;
    
    }


  /* per Alpinejs */
  [x-cloak] { display: none !important; }


  /* helpers */
  
  .min-vh-100{
    min-height: 100vh!important;
    min-height: calc(var(--vh, 1vh) * 100)!important;
  }

  .is-radius{
    border-radius: 6px;
  }

  /*gestisce il readonly del select input*/
  select[readonly] {
    pointer-events: none;
  }


  /*avatar img borders style*/
  .border-blue {
    border-color: #3e8ed0;
  }

  .border-grey {
    border-color: #eee;
  }

  img.has-shadow{
    box-shadow: 3px 2px 4px #888888;
  }
  img.bordered-6{
    border-style: solid;
    border-width: 6px;
  }
  img.bordered-5{
    border-style: solid;
    border-width: 5px;
  }
  img.bordered-4{
    border-style: solid;
    border-width: 4px;
  }
  img.bordered-3{
    border-style: solid;
    border-width: 3px;
  }
  img.bordered-2{
    border-style: solid;
    border-width: 2px;
  }
  img.bordered-1{
    border-style: solid;
    border-width: 1px;
  }
  /*end helpers */


  /*preloader*/
  .preloader {
    align-items: center;
    background: rgba(48, 46, 205,0.5);
    display: flex;
    justify-content: center;
    left: 0;
    position: fixed;
    top: 0;
    transition: opacity 0.3s linear;
    width: 100%;
    z-index: 9999;
  }

  /* full page spinner */
  /* https://cssloaders.github.io */

  .full-page-spinner-container{
    align-items: center;
    background: rgba(48, 46, 205,0.5);
    display: none;
    justify-content: center;
    left: 0;
    position: fixed;
    top: 0;
    transition: opacity 0.3s linear;
    width: 100%;
    z-index: 9999;
  }

  .htmx-request .full-page-spinner-container{
      display:flex;
  }
  .htmx-request.full-page-spinner-container{
      display:flex;
  }

  .spinner {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: inline-block;
    border-top: 3px solid #FFF;
    border-right: 3px solid transparent;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
  }

  @keyframes rotation {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  } 


  /* end full page spinner /*

  /*
  per navbar fixed senza aggiungere la corrispondente classe in body o html:
  - richiede un div con questa classe prima della navbar
  */
  .navbar-fixed-top-space {
      padding-top:3.25rem
  }
  .navbar-fixed-bottom-space {
      padding-bottom:3.25rem
  }

  /* toast */

  .toast-container {
    position:fixed;
    top:10px;
    left:0;
    z-index:9999;
    width: 100%;
    display:flex;
    justify-content: center;
  }

  .toast-container .toast{
    width:100%;
    max-width:450px;
  }

  @media only screen and (max-width: 600px) {
      .toast-container {
        top: 0;
      }
      .toast-container .toast {
        border-radius: 0;
        width:100%;
        max-width: 100%;
      }
  }


  /*avatar*/
  .avatar {
    background: #5755d9;
    border-radius: 50%;
    color: rgba(255, 255, 255, .85);
    display: inline-block;
    font-size: .8rem;
    font-weight: 300;
    height: 1.6rem;
    line-height: 1.25;
    margin: 0;
    position: relative;
    vertical-align: middle; 
    width: 1.6rem;
  }

  .avatar[data-initials]::before {
    color: white;
    content: attr(data-initials);
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
  }

  .avatar.avatar-xs {
    font-size: .4rem;
    height: .8rem;
    width: .8rem;
  }

  .avatar.avatar-sm {
    font-size: .6rem;
    height: 1.2rem;
    width: 1.2rem;
  }

  .avatar.avatar-lg {
    font-size: 1.2rem;
    height: 2.4rem;
    width: 2.4rem;
  }

  .avatar.avatar-xl {
    font-size: 1.6rem;
    height: 3.2rem;
    width: 3.2rem;
  }

  .avatar.avatar-xxl {
      font-size: 2.4rem;
      height: 4.8rem;
      width: 4.8rem;
  }

  .avatar.avatar-xxxl {
      font-size: 4rem;
      height: 8rem;
      width: 8rem;
  }

  .avatar img {
    border-radius: 50%;
    height: 100%;
    position: relative;
    width: 100%;
    z-index: 1;
  }

  




  /* ellipsis */
  .text-ellipsis{
    text-overflow:ellipsis;
    white-space:nowrap;
    overflow:hidden;
  }

  .text-ellipsis-2-rows{
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    /* not needed even though some documentation says it is
    text-overflow: ellipsis; */
  }



  /* aside */
  .aside-fixed {
    position: fixed;
    transition: transform 400ms ease 0ms;

    display:flex;
    flex-flow: column;
  }

  .aside-fixed > .aside-header {
    flex: 0 1 auto;
    /* The above is shorthand for:
    flex-grow: 0,
    flex-shrink: 1,
    flex-basis: auto
    */
  }

  .aside-fixed > .aside-content {
    /*height: 100%;*/
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }

  .aside-content::-webkit-scrollbar {
    display: none;
  }

  .aside-fixed > .aside-footer {
    flex: 0 1 auto;
    /*
    fixed height
    flex: 0 1 40px;
    */
  }

  .aside-fixed > .delete {
    right: .5rem;
    position: absolute;
    top: .5rem;
  }

  .aside-fixed.is-left{
    top: 0;
    bottom: 0;
    transform: translateX(-100%);
  }

  .aside-fixed.is-right {
    top: 0;
    bottom: 0;
    right: 0;
    transform: translateX(100%);
  }

  .aside-fixed.is-left, .aside-fixed.is-right{
    min-width: 150px;
    max-width: 33%;
  }

  .aside-fixed.is-full-width{
    width: 100%;
    max-width: 100%;
  }

  .aside-fixed.is-left.is-active, .aside-fixed.is-right.is-active{
    transform: translateX(0);
  }

  @media only screen and (max-width: 768px) {
      .aside-fixed.is-full-width-mobile, .aside-fixed.is-full-width-mobile{
        width: 100%;
        max-width: 100%;
      }
  }


  .aside-fixed.is-top {
    top: 0;
    right:0;
    left:0;
    transform: translateY(-100%);
  }

  .aside-fixed.is-top.is-full-height {
    bottom: 0;
  }

  .aside-fixed.is-top.is-active{
    transform: translateY(0);
  }

  .aside-fixed.over-navbar{
    padding-top:0;
    z-index: 31;
  }

  .aside-fixed.under-navbar{
    padding-top: 3.25rem;
    z-index: 29;
  }


  /* end aside */

  
/* horizontal scroller */

.h-scroller {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
}

.h-scroller::-webkit-scrollbar {
    display: none;
}

.h-scroller-item {
    flex: 0 0 auto;
}

/* end horizontal scroller */

/* bulma tabs scroller no scrollbar */
.tabs::-webkit-scrollbar {
    display: none;
  }

/* end bulma tabs scroller no scrollbar */

.is-fixed-with-fixed-navbar{
    position: fixed;
    top: 3.25rem;
    
}


/* trix-editor */
trix-toolbar {
    position: -webkit-sticky; /* Safari */
    position: sticky;
    top: 3.25rem;
    background-color: #ffffff;
  }

  trix-editor {
    border: none;
  }

  trix-toolbar .trix-button-row {
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
    padding-top: 10px;
  }

  trix-toolbar .trix-button-group {
      border: none;
  }

  trix-toolbar .trix-button {
      border-bottom: none;
  }

  trix-toolbar .trix-button:not(:first-child) {
      border-left: none;
  }