﻿/* Rotation */
.rotate-none {
    transform: none;
}

.rotate-45 {
    transform: rotate(45deg);
}

.rotate-90 {
    transform: rotate(90deg);
}

.rotate-180 {
    transform: rotate(180deg);
}

/* Popover */
.popover {
    max-width: 350px !important;
}

/* Select */
.dropdown-popover {
    inset: auto !important;
    transform: none !important;
    display: none !important;
}

.dropdown-popover .popover-arrow {
    display: none !important;
}

.dropdown-popover .popover-body {
    padding: 0 !important;
}

/* Variante "detached": stesso aspetto di dropdown-popover ma SENZA gli override di
   inset/transform/display, cosi' il posizionamento resta in carico a Popper.
   Serve quando il popover e' agganciato al body per uscire da un contenitore con
   overflow: in quel caso la posizione statica non coincide piu' con il bottone. */
/* arrow-height a 0 azzera lo spazio che Bootstrap riserva alla freccia; serve
   !important perche' bootstrap.min.css e' caricato DOPO main.css in index.html.
   La distanza dal bottone resta governata solo dall'offset passato a Popper */
.dropdown-popover-detached {
    --bs-popover-arrow-height: 0 !important;
}

.dropdown-popover-detached .popover-arrow {
    display: none !important;
}

.dropdown-popover-detached .popover-body {
    padding: 0 !important;
}

/* Popper segnala con questo attributo che il bottone di riferimento e' stato
   nascosto dallo scroll del contenitore: il popover non deve restare sospeso */
.dropdown-popover-detached[data-popper-reference-hidden] {
    visibility: hidden;
    pointer-events: none;
}

/* Quill (HTML Editor) */
.quill.is-invalid > .ql-toolbar, .is-invalid > .ql-container {
    border: none !important;
}

.quill.is-invalid > .ql-toolbar {
    border-bottom: inherit !important;
}
