/* =========================
   Impersonation bar (no overflow)
========================= */
.is-impersonating{
    --topbar-h: 70px;     /* dal tema */
    --impbar-h: 40px;     /* riferimento per gli offset (desktop). Regolabile */
}

/* Barra: niente height fissa, così non "sborda" mai */
.is-impersonating #impersonation-bar{
    position: fixed;
    top: var(--topbar-h);
    left: 0;
    right: 0;
    z-index: 1001;        /* sotto #page-topbar (1002), sopra il contenuto */
    background-color: #ff9800;
    color: #fff;

    /* altezza “comoda”, ma non bloccata */
    min-height: var(--impbar-h);
    padding: 6px 0;       /* evita overflow */
}

/* Allineamento contenuti barra */
.is-impersonating #impersonation-bar .container-fluid{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;      /* su mobile va a capo pulito */
}

.is-impersonating #impersonation-bar .btn{
    padding: .25rem .5rem;
    line-height: 1.1;
}

/* =========================
   Topnav: sposta giù il menu
========================= */
.is-impersonating .topnav{
    top: calc(var(--topbar-h) + var(--impbar-h)) !important;
}

/* Desktop: il tema usa margin-top:24px */
@media (min-width: 992px){
    body[data-layout=horizontal].is-impersonating .topnav{
        margin-top: calc(24px + var(--impbar-h)) !important;
    }
}

/* =========================
   Page content: FIX GAP
   - Desktop: aumenta SOLO il margin-top (NON anche il padding-top)
   - Mobile: il tema porta margin-top a 0, quindi aumenta SOLO il padding-top
========================= */
@media (min-width: 992px){
    body[data-layout=horizontal].is-impersonating .page-content{
        margin-top: calc(70px + var(--impbar-h)) !important;   /* era 70 */
        padding-top: calc(80px + 20px) !important;            /* lascia il valore del tema */
    }
}

@media (max-width: 991.98px){
    body[data-layout=horizontal].is-impersonating .page-content{
        margin-top: 0 !important;                              /* come tema */
        padding-top: calc(80px + 20px + var(--impbar-h)) !important; /* aggiungi qui */
    }
}

/* Dropdown sopra tutto */
.topnav .dropdown-menu{ z-index: 1100; }

/* Sticky header tabelle in horizontal: aggiungi impbar */
@media (min-width: 992px){
    body[data-layout=horizontal].is-impersonating .fixed-solution .sticky-table-header{
        top: calc(148px + var(--impbar-h)) !important;
    }
}

/* =========================
   Visibilità globale — form e testo
   Il tema default è troppo leggero; questi override migliorano
   il contrasto senza stravolgere la palette.
========================= */

/* Input, select, textarea: bordo più visibile quando a riposo */
.form-control,
.form-select {
    border-color: #adb5bd;          /* Bootstrap gray-500, più scuro del default #ced4da */
    color: #343a40;
}
.form-control:focus,
.form-select:focus {
    border-color: #6c757d;
    box-shadow: 0 0 0 .2rem rgba(108,117,125,.2);
}
.form-control::placeholder {
    color: #868e96;
    opacity: 1;
}

/* Testo corpo tabelle — evita grigi quasi invisibili */
table td,
table th {
    color: #343a40;
}

/* Badge e testi di slug/codice chiari su sfondo bianco */
.text-muted {
    color: #6c757d !important;      /* forza un grigio leggibile */
}

/* Celle tabelle con testo colorato dal tema (es. permessi-overview) */
td a, td span {
    color: inherit;
}

/* Label form */
label,
.form-label {
    color: #495057;
    font-weight: 500;
}

/* =========================
   badge-soft-* — classe BS4 del tema non più presente in app.min.css
   Soft = sfondo tenue + testo colorato leggibile
========================= */
.badge-soft-primary   { background-color:rgba( 13,110,253,.12); color:#0d6efd;  border:1px solid rgba(13,110,253,.25); }
.badge-soft-secondary { background-color:rgba(108,117,125,.12); color:#495057;  border:1px solid rgba(108,117,125,.25); }
.badge-soft-success   { background-color:rgba( 25,135, 84,.12); color:#198754;  border:1px solid rgba(25,135,84,.25); }
.badge-soft-info      { background-color:rgba( 13,202,240,.12); color:#0a7a8f;  border:1px solid rgba(13,202,240,.25); }
.badge-soft-warning   { background-color:rgba(255,193,  7,.15); color:#856404;  border:1px solid rgba(255,193,7,.3); }
.badge-soft-danger    { background-color:rgba(220, 53, 69,.12); color:#dc3545;  border:1px solid rgba(220,53,69,.25); }
.badge-soft-dark      { background-color:rgba( 33, 37, 41,.10); color:#212529;  border:1px solid rgba(33,37,41,.2); }
.badge-soft-light     { background-color:rgba(248,249,250,.80); color:#495057;  border:1px solid #dee2e6; }

/* =========================
   Select2 — visibilità bordi e testo
========================= */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    border: 1px solid #adb5bd;
    border-radius: .375rem;
    min-height: calc(1.5em + .5rem + 2px);  /* form-control-sm height */
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #343a40;
    line-height: 1.5;
    padding: .25rem .5rem;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #868e96;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100%;
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open  .select2-selection--single {
    border-color: #6c757d;
    outline: 0;
    box-shadow: 0 0 0 .2rem rgba(108,117,125,.2);
}
.select2-container--default .select2-results__option {
    color: #343a40;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: #0d6efd;
    color: #fff;
}
.select2-dropdown {
    border-color: #adb5bd;
    border-radius: .375rem;
}
.select2-search--dropdown .select2-search__field {
    border: 1px solid #adb5bd;
    border-radius: .25rem;
    padding: .25rem .5rem;
    color: #343a40;
}
