.fas[data-count] {
   position: relative;
}

.fas[data-count]:after {
   position: absolute;
   right: -0.75em;
   top: -.75em;
   content: attr(data-count);
   padding: .5em;
   border-radius: 10em;
   line-height: .9em;
   color: white;
   background-color: orangered;
   opacity: 0.85;
   text-align: center;
   min-width: 2em;
   font: bold .5em sans-serif;
}

.far[data-count] {
   position: relative;
}

.far[data-count]:after {
   position: absolute;
   right: -1.25em;
   top: -1.25em;
   content: attr(data-count);
   padding: .5em;
   border-radius: 12em;
   line-height: .9em;
   color: white;
   background-color: orangered;
   opacity: 0.75;
   text-align: center;
   min-width: 2em;
   font: bold .5em sans-serif;
}

.pointer:hover {
   cursor: pointer;
}

#LogName:hover {
   cursor: default;
}

.no-drop:hover {
   cursor: no-drop;
   color: grey;
}

.no-drop {
   color: grey;
}

.Labels {
   position: absolute;
   top: 5%;
   align-content: center;
   padding: 16px;
   border-radius: 15px;
   background-color: #1D1F21;
   z-index: 2002;
   overflow: auto;
   animation: fadeIn 0.2s ease-in both;
   text-align: center;
}

.WaitingDisplay {
   position: absolute;
   top: 45%;
   left: 45%;
   right: 45%;
   align-content: center;
   padding: 16px;
   border-radius: 15px;
   background-color: #1D1F21;
   z-index: 1002;
   overflow: auto;
   animation: fadeIn 0.2s ease-in both;
   text-align: center;
}

.FADEMEOUT {
   animation: fadeIn 0.2s ease-in both;
}

@keyframes fadeIn {
   from {
      opacity: 0;
      transform: translate3d(0, -20%, 0);
   }

   to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
   }
}

.FADEMELEFT {
   animation: fadeInLeft 2s;
}

@keyframes fadeInLeft {
   0% {
      left: -100px
   }

   25% {
      left: 0px
   }
}

@keyframes blinker {
   50% {
      opacity: 0;
   }
}

.ZOOMMEOUT {
   animation: zoomOut 0.2s ease-in both;
}

@keyframes zoomOut {
   from {
      opacity: 0;
      transform: rotateX(-180deg) scaleZ(0);
   }

   to {
      opacity: 1;
      transform: rotateX(0deg) scaleZ(100);
   }
}

.SEL {
   background-color: var(--search-area-bg);
   font-style: bold;
}

.bootstrap-select>.dropdown-toggle {
   width: 100%;
   height: 40px;
}

/* .dropdown-menu {
   position: relative;
   max-height: 300px;
} */

.XLine {
   text-decoration: line-through;
}

.sectionator {
   display: flex;
   justify-content: center;
   align-items: center;
}

.sectionator .tabs {
   font-size: 15px;
   padding: 0;
   background-color: white;
   box-shadow: 0 0 5px rgba(0, 0, 0, .2);
   border-radius: 50px;
   position: relative;
}

.sectionator .tabs ul {
   display: flex;
}

.sectionator .tabs ul li {
   color: #777;
   padding: 10px 20px;
   position: relative;
   z-index: 1;
   transition: 0.3s ease-in-out;
   cursor: pointer;
   user-select: none;
}

.sectionator .tabs ul li.active {
   color: white;
}

.sectionator .tabs ul li i.fas {
   margin-right: 7px;
}

.sectionator .tabs .selector {
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
   z-index: 1;
   border-radius: 50px;
   background: linear-gradient(to right, #f21711, #f5af19);
   transition: 0.3s ease-in-out;
}

.CODE01modalBg {
   position: absolute;
   z-index: 1300;
   background-color: rgba(0, 0, 0, 0.4);
   width: 100%;
   height: 100%;
}

.CODE01modal-content {
   background-color: var(--search-area-bg);
   margin: auto;
   padding: 20px;
   /*border: 1px solid #888;*/
   width: 80%;
   margin-top: 3%;
   /*border-radius: 25px;*/
   border-radius: 10px;
}

.closeModal {
   color: orangered;
   float: right;
   font-size: 20px;
   font-weight: bold;
}

/* width */
::-webkit-scrollbar {
   width: 6px;
}

/* Track */
::-webkit-scrollbar-track {
   background: transparent;
   border-radius: 5px;
}

/* Handle */
::-webkit-scrollbar-thumb {
   background: var(--secondary-color);
   border-radius: 5px;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
   background: #555;
   border-radius: 5px;
}

.table-hover>tbody>tr:hover {
   background-color: var(--search-area-bg);
}

.code01draggable:hover {
   cursor: grab;
}

.code01draggable:active {
   cursor: grabbing;
}

.Modal-search-wrapper {
   border-radius: 10px;
   background-color: var(--code-bg);
   padding-right: 12px;
   height: 40px;
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 100%;
   max-width: 480px;
   color: var(--light-font);
   box-shadow: 0 2px 6px 0 rgba(136, 148, 171, 0.2), 0 24px 20px -24px rgba(71, 82, 107, 0.1);
   overflow: hidden;
}

/*-------aggiunto 08/09/2022-----------*/
.Modal-search-wrapper-txtarea {
   border-radius: 20px;
   background-color: var(--code-bg);
   padding-top: 5px;
   padding-right: 12px;
   height: 160px;
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 100%;
   max-width: 700px;
   color: var(--main-color);
   /*box-shadow: 0 2px 6px 0 rgba(136, 148, 171, 0.2), 0 24px 20px -24px rgba(71, 82, 107, 0.1);*/
   overflow: hidden;
   resize: none;
}

.dark .Modal-search-wrapper {
   box-shadow: none;
}

.Modal-search-input {
   border: none;
   flex: 1;
   outline: none;
   height: 100%;
   padding: 0 20px;
   font-size: 16px;
   background-color: var(--code-bg);
   color: var(--main-color);
   resize: none;
}

.Modal-search-input:placeholder {
   color: var(--main-color);
   opacity: 0.3;
}

.spanButton {
   width: 36px;
   height: 36px;
   display: flex;
   justify-content: center;
   align-items: center;
   padding: 5px 8px;
   border-radius: 4px;
   background-color: transparent;
   border: none;
   color: var(--main-color);
   margin-left: 5px;
   transition: 0.2s;
   cursor: pointer;
   display: inline;
}

.spanButton.active {
   background-color: var(--link-color-active-bg);
   color: var(--link-color-active);
}

.spanButton:not(.active):hover {
   background-color: var(--link-color-hover);
   color: var(--link-color-active);
}

.NOspanButton {
   width: 36px;
   height: 36px;
   display: flex;
   justify-content: center;
   align-items: center;
   padding: 5px 8px;
   border-radius: 4px;
   background-color: transparent;
   border: none;
   color: grey;
   margin-left: 5px;
   transition: 0.2s;
   cursor: no-drop;
   display: inline;
}

.NOspanButton.active {
   background-color: var(--link-color-active-bg);
   color: grey;
}

.NOspanButton:not(.active):hover {
   background-color: var(--link-color-hover);
   color: grey;
}

@media screen and (max-width: 520px) {
   .spanButton {
      width: 24px;
      height: 24px;
   }

   .NOspanButton {
      width: 24px;
      height: 24px;
   }
}

.text-end {
   text-align: right !important;
}

.text-center {
   text-align: center !important;
}

.text-start {
   text-align: left !important;
}

#modalGallery {
   /* display: block !important; */
   opacity: 1 !important;
   z-index: 2065 !important;
}


.btn-generic {
   background-color: #A855F7;
   /* Violetto più chiaro */
   border-color: #9333EA;
   /* Un po' più scuro per il bordo */
   color: white;
}

.btn-generic:hover,
.btn-generic:focus,
.btn-generic:active {
   background-color: #9333EA;
   /* Un po' più scuro quando hover */
   border-color: #7E22CE;
   color: white;
}

.button-container {
   display: flex;
   flex-wrap: wrap;
   /* Permette di andare a capo se necessario */
   gap: 5px;
   /* Aggiunge spaziatura tra i pulsanti */
   justify-content: flex-start;
   /* Allinea tutto a sinistra */
   align-items: center;
}

.button-container .btn {
   min-width: 33px;
   /* Forza una larghezza minima */
   height: 33px;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 5px;
   flex-shrink: 0;
   /* Evita che alcuni pulsanti si riducano */
   font-size: 16px;
}

.badge-lime {
   background-color: lime !important;
   color: black !important;
}

.badge-lightblue {
   background-color: #66b3ff !important;
   color: black !important;
}


/* Bottoni Outlined - Versione Personalizzata */
.btn-outline-lime {
   color: #32CD32;
   /* Lime */
   border: 2px solid #32CD32;
   background-color: transparent;
}

.btn-outline-lime:hover {
   color: white;
   background-color: #32CD32;
   border-color: #32CD32;
}

.btn-outline-lightblue {
   color: #66b3ff;
   /* Light Blue */
   border: 2px solid #66b3ff;
   background-color: transparent;
}

.btn-outline-lightblue:hover {
   color: white;
   background-color: #66b3ff;
   border-color: #66b3ff;
}

/* PRIMARY */
.btn-outline-primary {
   color: #007bff;
   border: 2px solid #007bff;
   background-color: transparent;
}

.btn-outline-primary:hover {
   color: white;
   background-color: #007bff;
   border-color: #007bff;
}

/* INFO */
.btn-outline-info {
   color: #17a2b8;
   border: 2px solid #17a2b8;
   background-color: transparent;
}

.btn-outline-info:hover {
   color: white;
   background-color: #17a2b8;
   border-color: #17a2b8;
}

/* WARNING */
.btn-outline-warning {
   color: #ffc107;
   border: 2px solid #ffc107;
   background-color: transparent;
}

.btn-outline-warning:hover {
   color: black;
   background-color: #ffc107;
   border-color: #ffc107;
}

/* DANGER */
.btn-outline-danger {
   color: #dc3545;
   border: 2px solid #dc3545;
   background-color: transparent;
}

.btn-outline-danger:hover {
   color: white;
   background-color: #dc3545;
   border-color: #dc3545;
}

/* SUCCESS */
.btn-outline-success {
   color: #28a745;
   border: 2px solid #28a745;
   background-color: transparent;
}

.btn-outline-success:hover {
   color: white;
   background-color: #28a745;
   border-color: #28a745;
}

.btn-opaced-primary {
   color: #66b3ff;
   border: 0px;
   background-color: #172331;
}

.btn-opaced-primary:hover {
   color: white;
   background-color: #007bff;
   border-color: #007bff;
}

.btn-opaced-danger {
   color: #dc3545;
   border: 0px;
   background-color: #302024;
}

.btn-opaced-danger:hover {
   color: white;
   background-color: #dc3545;
   border-color: #dc3545;
}

.btn-opaced-success {
   color: #00A261;
   border: 0px;
   background-color: #1F212A;
}

.btn-opaced-success:hover {
   color: white;
   background-color: #00A261;
   border-color: #00A261;
}

.btn-opaced-warning {
   color: #C59A00;
   border: 0px;
   background-color: #242320;
}

.btn-opaced-warning:hover {
   color: white;
   background-color: #C59A00;
   border-color: #C59A00;
}

.table-hover>tbody>tr:hover {
   background-color: var(--search-area-bg);
}

/* Stili per i badge temporanei */
.badge {
   display: inline-block;
   padding: 0.4em 0.8em;
   font-size: 0.9em;
   font-weight: bold;
   color: white;
   border-radius: 0.25em;
}

/* .badge-success {
   background-color: green;
}

.badge-danger {
   background-color: darkred;
}

.badge-warning {
   background-color: darkorange;
}

.badge-info {
   background-color: dodgerblue;
}

.badge-primary {
   background-color: royalblue;
}

.badge-secondary {
   background-color: gray;
}

.badge-light {
   background-color: lightgray;
   color: black;
}

.badge-dark {
   background-color: black;
}

.badge-muted {
   background-color: #6c757d;
   color: white;
}

.badge-purple {
   background-color: purple;
}

.badge-pink {
   background-color: deeppink;
}

.badge-teal {
   background-color: teal;
}

.badge-cyan {
   background-color: cyan;
   color: black;
}

.badge-brown {
   background-color: saddlebrown;
}

.badge-gold {
   background-color: gold;
   color: black;
}

.badge-silver {
   background-color: silver;
   color: black;
}

.badge-violet {
   background-color: #8080ff;
   color: white;
}

.badge-light-success {
   background-color: var(--bg-badge);
   color: green;
}

.badge-light-danger {
   background-color: var(--bg-badge);
   color: red;
}

.badge-light-warning {
   background-color: var(--bg-badge);
   color: darkorange;
}

.badge-light-info {
   background-color: var(--bg-badge);
   color: dodgerblue;
}

.badge-light-primary {
   background-color: var(--bg-badge);
   color: royalblue;
}

.badge-light-secondary {
   background-color: var(--bg-badge);
   color: rgb(206, 206, 206);
}

.badge-light-purple {
   background-color: var(--bg-badge);
   color: purple;
}

.badge-light-violet {
   background-color: var(--bg-badge);
   color: #8080ff;
}

.badge-light-gold {
   background-color: var(--bg-badge);
   color: gold;
} */


/* === COLORI BASE (DARK MODE DEFAULT) === */
.badge-success   { background-color: green; }
.badge-danger    { background-color: darkred; }
.badge-warning   { background-color: darkorange; }
.badge-info      { background-color: dodgerblue; }
.badge-primary   { background-color: royalblue; }
.badge-secondary { background-color: gray; }
.badge-light     { background-color: lightgray; color: black; }
.badge-dark      { background-color: black; }
.badge-muted     { background-color: #6c757d; color: white; }
.badge-purple    { background-color: purple; }
.badge-pink      { background-color: deeppink; }
.badge-teal      { background-color: teal; }
.badge-cyan      { background-color: cyan; color: black; }
.badge-brown     { background-color: saddlebrown; }
.badge-gold      { background-color: gold; color: black; }
.badge-silver    { background-color: silver; color: black; }
.badge-violet    { background-color: #8080ff; color: white; }

/* === LIGHT BADGES === */
.badge-light-success  { background-color: var(--bg-badge); color: green; }
.badge-light-danger   { background-color: var(--bg-badge); color: red; }
.badge-light-warning  { background-color: var(--bg-badge); color: darkorange; }
.badge-light-info     { background-color: var(--bg-badge); color: dodgerblue; }
.badge-light-primary  { background-color: var(--bg-badge); color: royalblue; }
.badge-light-secondary{ background-color: var(--bg-badge); color: rgb(206, 206, 206); }
.badge-light-purple   { background-color: var(--bg-badge); color: purple; }
.badge-light-violet   { background-color: var(--bg-badge); color: #8080ff; }
.badge-light-gold     { background-color: var(--bg-badge); color: gold; }

/* =========================
   LIGHT MODE FIX
   ========================= */
:root {
   /* miglior contrasto in light mode */
   --badge-success-bg: #198754;
   --badge-danger-bg: #dc3545;
   --badge-warning-bg: #ffc107;
   --badge-info-bg: #0dcaf0;
   --badge-primary-bg: #0d6efd;
   --badge-secondary-bg: #313131;
   --badge-dark-bg: #3c3e40;
   --badge-muted-bg: #adb5bd;
}

html:not(.dark) .badge-success   { background-color: var(--badge-success-bg); color: #fff; }
html:not(.dark) .badge-danger    { background-color: var(--badge-danger-bg); color: #fff; }
html:not(.dark) .badge-warning   { background-color: var(--badge-warning-bg); color: #000; }
html:not(.dark) .badge-info      { background-color: var(--badge-info-bg); color: #000; }
html:not(.dark) .badge-primary   { background-color: var(--badge-primary-bg); color: #fff; }
html:not(.dark) .badge-secondary { background-color: #adb5bd; color: #000; } /* ✅ leggibile */
html:not(.dark) .badge-dark      { background-color: var(--badge-dark-bg); color: #fff; }
html:not(.dark) .badge-muted     { background-color: var(--badge-muted-bg); color: #000; }
html:not(.dark) .badge-light     { background-color: #f8f9fa; color: #000; }
html:not(.dark) .badge-light-success   { background-color: var(--bg-badge); color: green; }
html:not(.dark) .badge-light-danger    { background-color: var(--bg-badge); color: red; }
html:not(.dark) .badge-light-warning   { background-color: var(--bg-badge); color: darkorange; }
html:not(.dark) .badge-light-info      { background-color: var(--bg-badge); color: dodgerblue; }
html:not(.dark) .badge-light-primary   { background-color: var(--bg-badge); color: royalblue; }
html:not(.dark) .badge-light-secondary { background-color: var(--bg-badge); color: rgb(82, 81, 81); } /* ✅ leggibile */
html:not(.dark) .badge-light-dark      { background-color: var(--bg-badge); color: #393939; }
html:not(.dark) .badge-light-muted     { background-color: var(--bg-badge); color: #000; }
html:not(.dark) .badge-light-light     { background-color: var(--bg-badge); color: #000; }
html:not(.dark) .badge-light-gold     { background-color: var(--bg-badge); color: rgb(185, 157, 0); }


.badge-lg {
   min-width: 2rem;
   font-size: 1rem;
}


/* ========== light buttons ========== */

/* Primary */
.btn-light-primary {
   color: #0d6efd;
   background-color: rgba(13, 110, 253, 0.1);
   border: 1px solid rgba(13, 110, 253, 0.2);
}

.btn-light-primary:hover,
.btn-light-primary:focus {
   color: #ffffff;
   background-color: #0d6efd;
   border-color: #0d6efd;
}

.btn-light-primary:disabled,
.btn-light-primary.disabled {
   color: #0d6efd;
   background-color: rgba(13, 110, 253, 0.1);
   border-color: rgba(13, 110, 253, 0.2);
   opacity: 0.65;
   pointer-events: none;
}

/* Info */
.btn-light-info {
   color: #0dcaf0;
   background-color: rgba(13, 202, 240, 0.1);
   border: 1px solid rgba(13, 202, 240, 0.2);
}

.btn-light-info:hover,
.btn-light-info:focus {
   color: #ffffff;
   background-color: #0dcaf0;
   border-color: #0dcaf0;
}

.btn-light-info:disabled,
.btn-light-info.disabled {
   color: #0dcaf0;
   background-color: rgba(13, 202, 240, 0.1);
   border-color: rgba(13, 202, 240, 0.2);
   opacity: 0.65;
   pointer-events: none;
}

/* Generic (uso palette secondary) */
.btn-light-generic {
   color: rgb(147, 51, 234);
   background-color: rgba(147, 51, 234, 0.1);
   border: 1px solid rgba(147, 51, 234, 0.2);
}

.btn-light-generic:hover,
.btn-light-generic:focus {
   color: #ffffff;
   background-color: rgb(147, 51, 234);
   border-color: rgb(147, 51, 234);
}

.btn-light-generic:disabled,
.btn-light-generic.disabled {
   color: #9333ea;
   background-color: rgba(147, 51, 234, 0.1);
   border-color: rgba(147, 51, 234, 0.2);
   opacity: 0.65;
   pointer-events: none;
}

/* Success */
.btn-light-success {
   color: #198754;
   background-color: rgba(25, 135, 84, 0.1);
   border: 1px solid rgba(25, 135, 84, 0.2);
}

.btn-light-success:hover,
.btn-light-success:focus {
   color: #ffffff;
   background-color: #198754;
   border-color: #198754;
}

.btn-light-success:disabled,
.btn-light-success.disabled {
   color: #198754;
   background-color: rgba(25, 135, 84, 0.1);
   border-color: rgba(25, 135, 84, 0.2);
   opacity: 0.65;
   pointer-events: none;
}

/* Warning */
.btn-light-warning {
   color: #ffc107;
   background-color: rgba(255, 193, 7, 0.1);
   border: 1px solid rgba(255, 193, 7, 0.2);
}

.btn-light-warning:hover,
.btn-light-warning:focus {
   color: #ffffff;
   background-color: #ffc107;
   border-color: #ffc107;
}

.btn-light-warning:disabled,
.btn-light-warning.disabled {
   color: #ffc107;
   background-color: rgba(255, 193, 7, 0.1);
   border-color: rgba(255, 193, 7, 0.2);
   opacity: 0.65;
   pointer-events: none;
}

/* Danger */
.btn-light-danger {
   color: #dc3545;
   background-color: rgba(220, 53, 69, 0.1);
   border: 1px solid rgba(220, 53, 69, 0.2);
}

.btn-light-danger:hover,
.btn-light-danger:focus {
   color: #ffffff;
   background-color: #dc3545;
   border-color: #dc3545;
}

.btn-light-danger:disabled,
.btn-light-danger.disabled {
   color: #dc3545;
   background-color: rgba(220, 53, 69, 0.1);
   border-color: rgba(220, 53, 69, 0.2);
   opacity: 0.65;
   pointer-events: none;
}


.fattura-header-container {
   display: flex;
   /* Usa Flexbox per affiancare i contenitori */
   gap: 10px;
   /* Spazio tra i due contenitori */
   width: 100%;
   /* Larghezza totale della modale */
}

.fattura-header {
   flex: 1;
   /* Ogni blocco occupa lo stesso spazio */
   padding: 15px;
   border-radius: 5px;
   border: 1px solid rgba(221, 221, 221, 0.15);
   background-color: rgba(249, 249, 249, 0.03);
   margin-bottom: 10px;
   /* Elimina margine inferiore per uniformità */
}

.fattura-header h4 {
   margin-top: 0;
   font-weight: bold;
}

.fattura-header p {
   margin: 5px 0;
}

.table-footer {
   font-size: 17px;
   text-align: right;
}


.custom-alert {
   display: flex;
   align-items: center;
   border: 1px solid transparent;
   padding: 5px 10px;
   border-radius: 3px;
   font-size: 12px;
   background-color: rgba(255, 255, 255, 0.05);
   color: white;
   margin-right: 10px;
}

.custom-alert .icon-container {
   width: 40px;
   height: 40px;
   display: flex;
   align-items: center;
   justify-content: center;
   margin-right: 1rem;
   border-radius: 50%;
   /* background-color: rgba(255, 255, 255, 0.1); */
}

.custom-alert i {
   font-size: 1.5rem;
}

.alert-danger-custom {
   border-color: rgba(220, 53, 69, 0.2);
   color: #dc3545;
   background-color: rgba(220, 53, 69, 0.1);
}

.alert-warning-custom {
   border-color: #ffc107;
   color: #ffcc00;
   background-color: #ffcc0020;
}

.alert-success-custom {
   border-color: #28a745;
   color: #4caf50;
   background-color: #4caf5020;
}

.alert-purple-custom {
   border-color: #6f42c1;
   color: #b085f5;
   background-color: #b085f520;
}

.alert-info-custom {
   border-color: #007bff;
   /* Colore del bordo blu */
   color: #007bff;
   /* Testo blu */
   background-color: #007bff20;
}

.modal .table-hover tbody tr:hover {
   background-color: rgba(0, 0, 255, 0.1);
   /* Azzurro leggero */
}

.scroll-top-btn {
   position: fixed;
   bottom: 40px;
   right: 40px;
   width: 50px;
   height: 50px;
   background-color: rgba(114, 35, 241, 0.7);
   color: white;
   border: 1px solid rgba(114, 35, 241);
   border-radius: 50%;
   box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
   cursor: pointer;
   display: none;
   justify-content: center;
   align-items: center;
   font-size: 20px;
   transition: opacity 0.3s ease-in-out, transform 0.3s;
}

.scroll-top-btn:hover {
   background-color: rgb(77, 10, 155);
}

.scroll-top-btn.show {
   display: flex;
   opacity: 1;
   transform: translateY(0);
}

.scroll-top-btn.hide {
   opacity: 0;
   transform: translateY(100px);
}

.selected {
   background-color: rgba(3, 238, 167, 0.2) !important;
   /* Un azzurrino per evidenziare */
}

.swal-custom-zindex {
   z-index: 99999 !important;
}

.select2-container .select2-selection {
   color: #1e1e1e;
   border: 1px solid #444;
}

.select2-container .select2-selection__rendered {
   color: #fff;
}

.select2-container .select2-results__option {
   color: #1e1e1e;
}

.select2-container .select2-results__option--highlighted {
   color: #2c2c2c;
}

.select2-container .select2-search__field {
   color: #1e1e1e;
   border: 1px solid #444;
}

/* Bootstrap-like spacing utilities (safe for BS3) */
.mt-0 {
   margin-top: 0 !important;
}

.mt-1 {
   margin-top: 0.25rem !important;
}

.mt-2 {
   margin-top: 0.5rem !important;
}

.mt-3 {
   margin-top: 1rem !important;
}

.mt-4 {
   margin-top: 1.5rem !important;
}

.mt-5 {
   margin-top: 3rem !important;
}

.mr-0 {
   margin-right: 0 !important;
}

.mr-1 {
   margin-right: 0.25rem !important;
}

.mr-2 {
   margin-right: 0.5rem !important;
}

.mr-3 {
   margin-right: 1rem !important;
}

.mr-4 {
   margin-right: 1.5rem !important;
}

.mr-5 {
   margin-right: 3rem !important;
}

.ml-0 {
   margin-left: 0 !important;
}

.ml-1 {
   margin-left: 0.25rem !important;
}

.ml-2 {
   margin-left: 0.5rem !important;
}

.ml-3 {
   margin-left: 1rem !important;
}

.ml-4 {
   margin-left: 1.5rem !important;
}

.ml-5 {
   margin-left: 3rem !important;
}

.ml-6 {
   margin-left: 5rem !important;
}

.ml-7 {
   margin-left: 7rem !important;
}

.mb-0 {
   margin-bottom: 0 !important;
}

.mb-1 {
   margin-bottom: 0.25rem !important;
}

.mb-2 {
   margin-bottom: 0.5rem !important;
}

.mb-3 {
   margin-bottom: 1rem !important;
}

.mb-4 {
   margin-bottom: 1.5rem !important;
}

.mb-5 {
   margin-bottom: 3rem !important;
}

.pt-0 {
   padding-top: 0 !important;
}

.pt-1 {
   padding-top: 0.25rem !important;
}

.pt-2 {
   padding-top: 0.5rem !important;
}

.pt-3 {
   padding-top: 1rem !important;
}

.pt-4 {
   padding-top: 1.5rem !important;
}

.pt-5 {
   padding-top: 3rem !important;
}

.pb-0 {
   padding-bottom: 0 !important;
}

.pb-1 {
   padding-bottom: 0.25rem !important;
}

.pb-2 {
   padding-bottom: 0.5rem !important;
}

.pb-3 {
   padding-bottom: 1rem !important;
}

.pb-4 {
   padding-bottom: 1.5rem !important;
}

.pb-5 {
   padding-bottom: 3rem !important;
}

/* Font Size Utility Classes - stile Keen */
.fs-0-5x  { font-size: 0.5rem !important; }
.fs-0-75x { font-size: 0.75rem !important; }
.fs-0-85x { font-size: 0.85rem !important; }
.fs-0-95x { font-size: 0.95rem !important; }
.fs-1x    { font-size: 1rem !important; }  /* base */
.fs-1-5x  { font-size: 1.5rem !important; }
.fs-1-75x  { font-size: 1.75rem !important; }
.fs-2x    { font-size: 2rem !important; }
.fs-2-25x { font-size: 2.25rem !important; }
.fs-2-5x  { font-size: 2.5rem !important; }
.fs-2-75x { font-size: 2.75rem !important; }
.fs-3x    { font-size: 3rem !important; }
.fs-3-25x { font-size: 3.25rem !important; }
.fs-3-5x  { font-size: 3.5rem !important; }
.fs-3-75x { font-size: 3.75rem !important; }
.fs-4x    { font-size: 4rem !important; }
.fs-4-25x { font-size: 4.25rem !important; }
.fs-4-5x  { font-size: 4.5rem !important; }
.fs-4-75x { font-size: 4.75rem !important; }
.fs-5x    { font-size: 5rem !important; }
.fs-5-25x { font-size: 5.25rem !important; }
.fs-5-5x  { font-size: 5.5rem !important; }
.fs-5-75x { font-size: 5.75rem !important; }
.fs-fluid { font-size: 100% !important; }



/* Text Colors Potenziati per Dark UI */
.text-primary {
    color: #009dff !important; /* Azzurro acceso */
}

.text-secondary {
    color: #a0a0a0 !important; /* Grigio medio */
}

.text-success {
    color: #00e676 !important; /* Verde acceso */
}

.text-danger {
    color: #ff4c4c !important; /* Rosso brillante */
}

.text-warning {
    color: #ffc107 !important; /* Giallo forte, molto più visibile */
}

.text-info {
    color: #00c0ff !important; /* Ciano brillante */
}

.text-light {
    color: #f1f1f1 !important; /* Quasi bianco */
}

.text-dark {
    color: #333 !important; /* Grigio scurissimo */
}

.text-muted {
    color: #888 !important; /* Grigio tenue */
}

.text-white {
    color: #fff !important;
}

.text-generic {
    color: #af59ff !important; /* Grigio chiaro per testo generico */
}
