@import '_content/Blazor.Bootstrap/Blazor.Bootstrap.7t9tbfaemk.bundle.scp.css';
@import '_content/KDCockpit.Modules.Pictet.Web/KDCockpit.Modules.Pictet.Web.sqx0xdnggi.bundle.scp.css';
@import '_content/KDCockpit.Viewers.ForgeAps/KDCockpit.Viewers.ForgeAps.vl3om78sph.bundle.scp.css';
@import '_content/KDCockpit.Viewers.Forge/KDCockpit.Viewers.Forge.skp06jqx46.bundle.scp.css';
@import '_content/KDCockpit.WebComponents/KDCockpit.WebComponents.r8rnc6gov1.bundle.scp.css';
@import '_content/Microsoft.AspNetCore.Components.QuickGrid/Microsoft.AspNetCore.Components.QuickGrid.25o87uqmvr.bundle.scp.css';

/* /Features/Alarms/AlarmsConsole.razor.rz.scp.css */
/* Onglets de catégorie : Défauts physiques / Santé système.
   État actif en vert primary du thème (var(--primary-color)). */
.alarm-tab[b-37iz59ilqn] {
    border: 1px solid var(--bs-border-color, #ced4da);
    background-color: #fff;
    color: var(--bs-body-color, #212529);
    transition: all .15s ease;
}

    .alarm-tab:hover[b-37iz59ilqn] {
        background-color: #fff;
        border-color: var(--primary-color);
        color: var(--primary-color);
    }

    .alarm-tab.active[b-37iz59ilqn],
    .alarm-tab.active:hover[b-37iz59ilqn],
    .alarm-tab.active:focus[b-37iz59ilqn] {
        background-color: var(--primary-color);
        border-color: var(--primary-color);
        color: #fff;
    }

/* Badges de compteur des onglets : le .badge global (theme.css) impose un padding asymétrique
   (L/R 6px, bas 4px, sans haut) qui ovalise et décentre la pastille. On corrige localement
   (padding symétrique + min-width pour une pastille ronde) sans toucher au .badge global. */
.alarm-tab .badge[b-37iz59ilqn] {
    min-width: 1.15rem;
    padding: 0.15rem 0.35rem;
    line-height: 1;
}
/* /Features/Alarms/Console/PhysicalFaults/PhysicalFaultsPanel.razor.rz.scp.css */
/* Cartes de statut cliquables (filtre par statut : Active / Acquittée / Clôturée).
   Les effets visuels ciblent la .card interne (rendue par CardExtended) via ::deep,
   pour épouser exactement son border-radius. */
.status-card[b-aduxjvyrp0] {
    cursor: pointer;
}

    .status-card[b-aduxjvyrp0]  .card {
        transition: border-color .15s ease, box-shadow .15s ease;
    }

    /* Survol d'une carte inactive : légère élévation pour signaler qu'elle est cliquable. */
    .status-card:not(.active):hover[b-aduxjvyrp0]  .card {
        box-shadow: 0 2px 12px rgba(0, 0, 0, .10);
    }

    /* Carte active (filtre courant) : fine bordure primary (1px). */
    .status-card.active[b-aduxjvyrp0]  .card {
        border-color: var(--primary-color);
    }
/* /Features/Alarms/Details/AlarmDetails.razor.rz.scp.css */
/* =====================================================================
   Carte DIAGNOSTIC (colonne droite d'AlarmDetails)
   Liste d'outils d'analyse + accès au système métier. Chaque entrée est
   une ligne cliquable « icône encadrée + titre + sous-titre », regroupée
   sous un en-tête de section. Rendu propre à cet écran → CSS scopé.
   ===================================================================== */

.diag[b-4ra6wgabqe] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* En-tête de section (Outils d'analyse / Système métier) */
.diag-section[b-4ra6wgabqe] {
    margin: 14px 0 4px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--gray-color);
}

    .diag-section:first-child[b-4ra6wgabqe] {
        margin-top: 0;
    }

/* Ligne cliquable (bouton d'action ou lien externe) */
.diag-item[b-4ra6wgabqe] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 8px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

    .diag-item:hover:not(:disabled)[b-4ra6wgabqe] {
        background-color: rgba(var(--gray-color-rgb), 0.1);
        text-decoration: none;
    }

    .diag-item:disabled[b-4ra6wgabqe] {
        opacity: 0.5;
        cursor: default;
    }

/* Icône dans un carré arrondi */
.diag-item-icon[b-4ra6wgabqe] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: var(--page-bg-color);
    border: 1px solid var(--lightgray-color);
    font-size: 20px;
    color: var(--blue-color);
}

/* Bloc texte : titre + sous-titre empilés */
.diag-item-body[b-4ra6wgabqe] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.diag-item-title[b-4ra6wgabqe] {
    font-weight: 600;
    line-height: 1.25;
    color: var(--blue-color);
}

.diag-item-sub[b-4ra6wgabqe] {
    font-size: 12px;
    line-height: 1.3;
    color: var(--gray-color);
}
/* /Features/ExplorerBim/Components/ExplorerBimObjectListPanel.razor.rz.scp.css */
/* Drawer « objets d'un type » de l'explorateur BIM (3ᵉ panneau). Styles propres au composant (CSS isolé). */

.bim-objlist-empty[b-6llo7ep55k] {
    padding: 14px 12px;
    color: #9499a1;
    font-size: 12.5px;
    text-align: center;
}

/* Rangée = [ligne cliquable (centrer) | groupe d'actions serré (centrer + détail)]. */
.bim-objlist-row[b-6llo7ep55k] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.bim-objlist-item[b-6llo7ep55k] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 auto;
    min-width: 0;
    padding: 7px 10px;
    border: none;
    background: transparent;
    border-radius: 8px;
    cursor: pointer;
    text-align: left;
    color: #2b2f36;
}

.bim-objlist-item:hover[b-6llo7ep55k] {
    background: #f1f3f5;
}

.bim-objlist-ic[b-6llo7ep55k] {
    flex: 0 0 auto;
    color: #9499a1;
    font-size: 15px;
}

.bim-objlist-name[b-6llo7ep55k] {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Groupe d'actions en fin de rangée : les deux boutons icône collés (paire homogène, cf. liste 2D). */
.bim-objlist-actions[b-6llo7ep55k] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 2px;
}

.bim-objlist-btn[b-6llo7ep55k] {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    color: #9499a1;
    cursor: pointer;
    transition: background-color .12s ease, color .12s ease;
}

.bim-objlist-btn:hover[b-6llo7ep55k] {
    background: #eef2f7;
    color: #1178d8;
}

.bim-objlist-btn i[b-6llo7ep55k] {
    font-size: 15px;
}
/* /Features/ExplorerBim/Components/ExplorerBimSavedViewsPanel.razor.rz.scp.css */
/* Panneau « Vues » (vues sauvegardées) de l'explorateur BIM — préfixe sv-*. S'appuie sur les variables
   Bootstrap comme le reste du rail (forge-aps-*). */

.sv-panel[b-57imsoc2qb] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 10px 14px;
}

/* ---- Bouton principal « Enregistrer la vue actuelle » ---- */

.sv-save-btn[b-57imsoc2qb] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 8px 12px;
    margin-bottom: 8px;
    border: none;
    border-radius: 8px;
    background: var(--bs-primary, #1178d8);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
}

.sv-save-btn:hover:not(:disabled)[b-57imsoc2qb] {
    filter: brightness(1.08);
}

.sv-save-btn:disabled[b-57imsoc2qb] {
    opacity: 0.5;
    cursor: not-allowed;
}

.sv-save-btn i[b-57imsoc2qb] {
    font-size: 1rem;
}

/* ---- Groupes par bâtiment ---- */

.sv-group[b-57imsoc2qb] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sv-group-title[b-57imsoc2qb],
.sv-group-header[b-57imsoc2qb] {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding: 8px 6px 4px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--bs-secondary-color, #6c757d);
}

.sv-group-header[b-57imsoc2qb] {
    border: none;
    background: none;
    cursor: pointer;
    text-align: left;
    border-top: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.1));
    margin-top: 6px;
}

.sv-group-header:hover[b-57imsoc2qb] {
    color: var(--bs-body-color, #212529);
}

.sv-group-caret[b-57imsoc2qb] {
    transition: transform 0.15s ease;
    transform: rotate(90deg);
}

.sv-group-header.is-collapsed .sv-group-caret[b-57imsoc2qb] {
    transform: none;
}

.sv-group-name[b-57imsoc2qb] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sv-group-count[b-57imsoc2qb] {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
    background: var(--bs-tertiary-bg, #f1f3f5);
    border-radius: 999px;
    padding: 1px 8px;
}

/* ---- Sections « Mes vues » / « Vues publiques » ---- */

.sv-section[b-57imsoc2qb] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 6px 6px 2px;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bs-tertiary-color, #adb5bd);
}

/* ---- Lignes de vue ---- */

.sv-row[b-57imsoc2qb] {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 2px;
}

.sv-row-main[b-57imsoc2qb] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 8px;
    border: none;
    border-radius: 7px;
    background: none;
    color: var(--bs-body-color, #212529);
    font-size: 0.82rem;
    text-align: left;
    cursor: pointer;
}

.sv-row-main:hover:not(:disabled)[b-57imsoc2qb] {
    background: var(--bs-tertiary-bg, #f1f3f5);
}

.sv-row-main:disabled[b-57imsoc2qb] {
    cursor: default;
    opacity: 0.75;
}

.sv-row.is-active .sv-row-main[b-57imsoc2qb] {
    background: rgba(17, 120, 216, 0.1);
    color: var(--bs-primary, #1178d8);
    font-weight: 600;
}

.sv-row-main i[b-57imsoc2qb] {
    flex: 0 0 auto;
    font-size: 0.95rem;
    color: var(--bs-secondary-color, #6c757d);
}

.sv-row.is-active .sv-row-main i[b-57imsoc2qb] {
    color: var(--bs-primary, #1178d8);
}

.sv-row-name[b-57imsoc2qb] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sv-badge-public[b-57imsoc2qb] {
    flex: 0 0 auto;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--bs-success, #2f9461);
    background: rgba(47, 148, 97, 0.12);
    border-radius: 999px;
    padding: 2px 7px;
}

.sv-row-more[b-57imsoc2qb] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    border: none;
    border-radius: 7px;
    background: none;
    color: var(--bs-tertiary-color, #adb5bd);
    cursor: pointer;
}

.sv-row-more:hover[b-57imsoc2qb] {
    background: var(--bs-tertiary-bg, #f1f3f5);
    color: var(--bs-body-color, #212529);
}

/* Spinner d'application (icône de la ligne en cours) */
.sv-spin[b-57imsoc2qb] {
    animation: sv-spin-b-57imsoc2qb 0.9s linear infinite;
}

@keyframes sv-spin-b-57imsoc2qb {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .sv-spin[b-57imsoc2qb] { animation: none; }
}

/* ---- Menu d'actions (⋯) ---- */

.sv-menu-backdrop[b-57imsoc2qb] {
    position: fixed;
    inset: 0;
    z-index: 1050;
}

.sv-menu[b-57imsoc2qb] {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 1051;
    min-width: 230px;
    padding: 5px;
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 9px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
}

.sv-menu-item[b-57imsoc2qb] {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 7px 10px;
    border: none;
    border-radius: 6px;
    background: none;
    color: var(--bs-body-color, #212529);
    font-size: 0.8rem;
    text-align: left;
    cursor: pointer;
}

.sv-menu-item:hover:not(:disabled)[b-57imsoc2qb] {
    background: var(--bs-tertiary-bg, #f1f3f5);
}

.sv-menu-item:disabled[b-57imsoc2qb] {
    opacity: 0.45;
    cursor: not-allowed;
}

.sv-menu-item i[b-57imsoc2qb] {
    flex: 0 0 auto;
    font-size: 0.9rem;
    color: var(--bs-secondary-color, #6c757d);
}

.sv-menu-item.is-danger[b-57imsoc2qb],
.sv-menu-item.is-danger i[b-57imsoc2qb] {
    color: var(--bs-danger, #dc3545);
}

.sv-menu-sep[b-57imsoc2qb] {
    height: 1px;
    margin: 4px 8px;
    background: var(--bs-border-color-translucent, rgba(0, 0, 0, 0.1));
}

/* ---- Hint de pied de liste ---- */

.sv-footer-hint[b-57imsoc2qb] {
    padding: 10px 6px 0;
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--bs-tertiary-color, #adb5bd);
}

/* ---- Popup (enregistrer / renommer / dupliquer) ---- */

.sv-popup-body[b-57imsoc2qb] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sv-field[b-57imsoc2qb] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sv-field-label[b-57imsoc2qb] {
    font-size: 0.72rem;
    font-weight: 650;
    color: var(--bs-secondary-color, #6c757d);
}

.sv-radio[b-57imsoc2qb] {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 8px 11px;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 8px;
    cursor: pointer;
}

.sv-radio + .sv-radio[b-57imsoc2qb] {
    margin-top: 6px;
}

.sv-radio.is-selected[b-57imsoc2qb] {
    border-color: var(--bs-primary, #1178d8);
    background: rgba(17, 120, 216, 0.07);
}

.sv-radio input[b-57imsoc2qb] {
    margin-top: 3px;
}

.sv-radio-text[b-57imsoc2qb] {
    display: flex;
    flex-direction: column;
}

.sv-radio-text b[b-57imsoc2qb] {
    font-size: 0.82rem;
}

.sv-radio-text small[b-57imsoc2qb] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #6c757d);
}

.sv-chips[b-57imsoc2qb] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.sv-chip[b-57imsoc2qb] {
    font-size: 0.7rem;
    color: var(--bs-secondary-color, #6c757d);
    background: var(--bs-tertiary-bg, #f1f3f5);
    border: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.08));
    border-radius: 999px;
    padding: 3px 10px;
    white-space: nowrap;
}
/* /Features/ExplorerBim/ExplorerBimIndex.razor.rz.scp.css */
/* Repli affiché sous l'overlay « chaud » de l'explorateur BIM (visible seulement quand l'overlay n'est
   pas ouvert, ex. aucun BOS courant). Le vrai chrome vit dans ExplorerBimViewerHost. */
.ex-bim-hint[b-u7utwsr32s] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: var(--bs-secondary-color, #6c757d);
    font-size: .95rem;
}
/* /Features/ExplorerBim/ExplorerBimRailPanel.razor.rz.scp.css */
/* Explorateur BIM — panneau du rail. Le chrome (rail + panneau + viewport) est porté par le composant
   réutilisable RailNav ; cette feuille garde le wrapper de remplissage (.ex-bim-root) et les PRIMITIVES DE
   CONTENU du panneau (héritées de l'ancien ForgeApsControlPanel, noms de classes conservés car scopés). */

/* Remplit le corps de l'hôte et donne sa taille au RailNav (height/width:100%). */
.ex-bim-root[b-p7il1c8zei] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    display: flex;
}

/* Corps d'onglet : le défilement et le padding sont fournis par .railnav-panel-body ; on garde juste
   l'espacement vertical entre blocs. */
.forge-aps-tab-content[b-p7il1c8zei] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

/* En-tête FIXE du panneau (chips d'ensembles + contrôles d'étage). Collé en haut du corps scrollable
   (.railnav-panel-body, overflow-y:auto) → reste visible pendant le scroll de la liste. Déborde le padding
   14px du corps (marges négatives) pour un fond pleine largeur qui couvre les lignes qui défilent dessous. */
.forge-aps-panel-head[b-p7il1c8zei] {
    position: sticky;
    /* -14px = même valeur que la marge négative supérieure ci-dessous. Sans ça (top:0), le collage épingle la
       MARGE (pas le fond) au bord du scrollport → le fond démarre 14px plus bas et laisse défiler les lignes
       dans cette bande. En collant à -14px, le fond est épinglé pile au bord et couvre les lignes qui passent. */
    top: -14px;
    z-index: 4;
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin: -14px -14px .25rem;
    padding: 14px 14px .5rem;
    background: #fff;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
}

.forge-aps-empty[b-p7il1c8zei] {
    padding: .5rem;
    color: var(--bs-secondary-color, #6c757d);
    font-size: .825rem;
    text-align: center;
}

/* Onglet Étages */
.forge-aps-floor-item[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    width: 100%;
    padding: .4rem .6rem;
    border: 1px solid transparent;
    border-radius: .375rem;
    background: transparent;
    color: var(--bs-body-color, #212529);
    font-size: .875rem;
    text-align: left;
    cursor: pointer;
    transition: background-color .12s ease, border-color .12s ease;
}

.forge-aps-floor-item:hover[b-p7il1c8zei] {
    background: var(--bs-tertiary-bg, #f1f3f5);
}

.forge-aps-floor-item.is-active[b-p7il1c8zei] {
    background: var(--bs-primary-bg-subtle, #cfe2ff);
    border-color: var(--bs-primary-border-subtle, #9ec5fe);
    font-weight: 600;
}

/* Multi-étages : icône de case à cocher (carré vide → coché) + accent bleu quand coché. */
.forge-aps-floor-check .ph[b-p7il1c8zei] {
    font-size: 1rem;
    color: var(--bs-secondary-color, #6c757d);
}

.forge-aps-floor-item.is-active .ph[b-p7il1c8zei] {
    color: #1178d8;
}

/* Bascule « Multi-étages » (mode Complet) : active la sélection en plage ; sinon clic = aller à l'étage. */
.forge-aps-multitoggle[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    gap: .4rem;
    width: 100%;
    margin-bottom: .5rem;
    padding: .35rem .6rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .375rem;
    background: transparent;
    color: var(--bs-body-color, #212529);
    font-size: .8125rem;
    text-align: left;
    cursor: pointer;
}

    .forge-aps-multitoggle:hover[b-p7il1c8zei] {
        background: var(--bs-tertiary-bg, #f1f3f5);
    }

    .forge-aps-multitoggle .ph[b-p7il1c8zei] {
        font-size: 1rem;
        color: var(--bs-secondary-color, #6c757d);
    }

    .forge-aps-multitoggle.is-active[b-p7il1c8zei] {
        background: var(--bs-primary-bg-subtle, #cfe2ff);
        border-color: var(--bs-primary-border-subtle, #9ec5fe);
        font-weight: 600;
    }

        .forge-aps-multitoggle.is-active .ph[b-p7il1c8zei] {
            color: #1178d8;
        }

.forge-aps-hint[b-p7il1c8zei] {
    margin: 0 0 .4rem;
    font-size: .75rem;
    color: var(--bs-secondary-color, #6c757d);
}

/* Onglet Modèles */
.forge-aps-model-group + .forge-aps-model-group[b-p7il1c8zei] {
    margin-top: .5rem;
}

.forge-aps-model-group-title[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--bs-secondary-color, #6c757d);
    padding: .25rem;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, .1));
    margin-bottom: .15rem;
}

.forge-aps-model-group-count[b-p7il1c8zei] {
    flex: 0 0 auto;
    font-size: .65rem;
    font-weight: 700;
    color: var(--bs-secondary-color, #6c757d);
    background: var(--bs-tertiary-bg, #f1f3f5);
    border-radius: .75rem;
    padding: .05rem .4rem;
}

.forge-aps-model-item[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .35rem .5rem;
}

/* Séparateur discret entre chaque modèle (liste plate de l'onglet Modèles). */
.forge-aps-model-item + .forge-aps-model-item[b-p7il1c8zei] {
    border-top: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, .08));
}

.forge-aps-model-item:hover[b-p7il1c8zei] {
    background: var(--bs-tertiary-bg, #f1f3f5);
}

.forge-aps-model-info[b-p7il1c8zei] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .05rem;
}

.forge-aps-model-name[b-p7il1c8zei] {
    font-size: .8rem;
    color: var(--bs-body-color, #212529);
    overflow-wrap: anywhere;
    line-height: 1.25;
}

.forge-aps-model-item.is-hidden .forge-aps-model-name[b-p7il1c8zei] {
    color: var(--bs-secondary-color, #6c757d);
    text-decoration: line-through;
}

/* Chips de disciplines sous le nom du modèle (onglet Modèles). */
.forge-aps-model-chips[b-p7il1c8zei] {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem;
    margin-top: .15rem;
}

.forge-aps-model-chip[b-p7il1c8zei] {
    font-size: .62rem;
    font-weight: 600;
    line-height: 1;
    padding: .15rem .4rem;
    border-radius: .75rem;
    color: var(--bs-secondary-color, #6c757d);
    background: var(--bs-tertiary-bg, #f1f3f5);
    border: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, .1));
    white-space: nowrap;
}

.forge-aps-model-item.is-hidden .forge-aps-model-chip[b-p7il1c8zei] {
    opacity: .55;
}

/* Filtre par discipline (badges cliquables, calqués sur le filtre de sévérité 2D) — onglet Modèles. */
.forge-aps-model-filters[b-p7il1c8zei] {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    margin-bottom: .5rem;
}

.forge-aps-model-filter[b-p7il1c8zei] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .2rem .55rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 100px;
    background: var(--bs-body-bg, #fff);
    color: var(--bs-body-color, #212529);
    font-size: .7rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color .12s ease, border-color .12s ease;
}

.forge-aps-model-filter:hover[b-p7il1c8zei] {
    background: var(--bs-tertiary-bg, #f1f3f5);
}

.forge-aps-model-filter.is-active[b-p7il1c8zei] {
    border-color: var(--bs-body-color, #212529);
    background: var(--bs-tertiary-bg, #f1f3f5);
}

.forge-aps-model-filter-count[b-p7il1c8zei] {
    color: var(--bs-secondary-color, #6c757d);
    font-weight: 400;
    font-variant-numeric: tabular-nums;
}

.forge-aps-model-toggle[b-p7il1c8zei] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border: 0;
    border-radius: .375rem;
    background: transparent;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
    transition: background-color .12s ease, color .12s ease;
}

.forge-aps-model-toggle:hover:not(:disabled)[b-p7il1c8zei] {
    background: var(--bs-secondary-bg, #e9ecef);
    color: var(--bs-body-color, #212529);
}

.forge-aps-model-item:not(.is-hidden) .forge-aps-model-toggle[b-p7il1c8zei] {
    color: var(--bs-primary, #0d6efd);
}

.forge-aps-model-toggle:disabled[b-p7il1c8zei] {
    opacity: .5;
    cursor: default;
}

/* Onglet Vues — vue 3D chargée par maquette */
.forge-aps-views-toolbar[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .25rem;
}

.forge-aps-views-hint-inline[b-p7il1c8zei] {
    display: inline-flex;
    align-items: center;
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
}

.forge-aps-views-disc[b-p7il1c8zei] {
    font-size: .72rem;
    color: var(--bs-secondary-color, #6c757d);
    padding: 0 .25rem .15rem;
}

/* En-tête de maquette repliable (clic = replier/déplier la liste de ses vues). */
.forge-aps-view-group-header[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    gap: .4rem;
    width: 100%;
    padding: .3rem .25rem;
    margin-bottom: .15rem;
    border: 0;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, .1));
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: background-color .12s ease;
}

.forge-aps-view-group-header:hover[b-p7il1c8zei] {
    background: var(--bs-tertiary-bg, #f1f3f5);
}

.forge-aps-view-caret[b-p7il1c8zei] {
    flex: 0 0 auto;
    font-size: .9rem;
    color: var(--bs-secondary-color, #6c757d);
    transition: transform .12s ease;
    transform: rotate(90deg);   /* déplié : chevron vers le bas */
}

.forge-aps-view-group-header.is-collapsed .forge-aps-view-caret[b-p7il1c8zei] {
    transform: none;            /* replié : chevron vers la droite */
}

.forge-aps-view-group-name[b-p7il1c8zei] {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--bs-body-color, #212529);
}

/* Vue cliquable : bouton plein largeur (clic = afficher cette vue via displayView). */
.forge-aps-view-item[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    gap: .4rem;
    width: 100%;
    padding: .3rem .5rem;
    border: 0;
    border-radius: .375rem;
    background: transparent;
    text-align: left;
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
    transition: background-color .12s ease, color .12s ease;
}

.forge-aps-view-item:hover:not(:disabled)[b-p7il1c8zei] {
    background: var(--bs-tertiary-bg, #f1f3f5);
    color: var(--bs-body-color, #212529);
}

/* Vue désactivée et NON chargée (viewer pas prêt) → grisée ; la vue chargée reste pleinement lisible. */
.forge-aps-view-item:disabled:not(.is-loaded)[b-p7il1c8zei] {
    opacity: .5;
    cursor: default;
}

.forge-aps-view-item .ph[b-p7il1c8zei] {
    flex: 0 0 auto;
    font-size: 1rem;
}

/* Vue réellement streamée : texte plein + pastille bleue (accent UI #1178d8, cf. badges de mode). */
.forge-aps-view-item.is-loaded[b-p7il1c8zei] {
    color: var(--bs-body-color, #212529);
    cursor: default;
}

.forge-aps-view-item.is-loaded .ph[b-p7il1c8zei] {
    color: #1178d8;
}

.forge-aps-view-name[b-p7il1c8zei] {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
    line-height: 1.2;
}

.forge-aps-view-badge[b-p7il1c8zei] {
    flex: 0 0 auto;
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #1178d8;
    background: var(--bs-primary-bg-subtle, #cfe2ff);
    border-radius: .75rem;
    padding: .05rem .4rem;
}

/* Onglet Plans 2D : maquette repliable imbriquée sous l'en-tête de discipline (léger retrait). */
.forge-aps-2d-model[b-p7il1c8zei] {
    padding-left: .35rem;
}

.forge-aps-2d-model + .forge-aps-2d-model[b-p7il1c8zei] {
    margin-top: .15rem;
}

/* Tag « type de vue » (déduit du nom de feuille) sur un plan 2D — pastille neutre en fin de ligne. */
.forge-aps-2d-type[b-p7il1c8zei] {
    flex: 0 0 auto;
    font-size: .6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--bs-secondary-color, #6c757d);
    background: var(--bs-tertiary-bg, #f1f3f5);
    border-radius: .65rem;
    padding: .05rem .4rem;
    white-space: nowrap;
}

/* Onglet Options (Disciplines / Alarmes) */
.forge-aps-options[b-p7il1c8zei] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: .25rem;
}

.forge-aps-switch[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    gap: .5rem;
    cursor: pointer;
    user-select: none;
}

.forge-aps-switch input[b-p7il1c8zei] {
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;
}

.forge-aps-switch-track[b-p7il1c8zei] {
    position: relative;
    flex: 0 0 auto;
    width: 2.1rem;
    height: 1.15rem;
    border-radius: 1rem;
    background: var(--bs-secondary-bg, #e9ecef);
    transition: background-color .15s ease;
}

.forge-aps-switch-track[b-p7il1c8zei]::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: calc(1.15rem - 4px);
    height: calc(1.15rem - 4px);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .25);
    transition: transform .15s ease;
}

.forge-aps-switch input:checked + .forge-aps-switch-track[b-p7il1c8zei] {
    background: var(--bs-primary, #0d6efd);
}

.forge-aps-switch input:checked + .forge-aps-switch-track[b-p7il1c8zei]::after {
    transform: translateX(calc(2.1rem - 1.15rem));
}

.forge-aps-switch input:focus-visible + .forge-aps-switch-track[b-p7il1c8zei] {
    outline: 2px solid var(--bs-primary, #0d6efd);
    outline-offset: 2px;
}

.forge-aps-switch-text[b-p7il1c8zei] {
    font-size: .875rem;
    color: var(--bs-body-color, #212529);
}

.forge-aps-option-hint[b-p7il1c8zei] {
    padding-left: .1rem;
    font-size: .75rem;
    color: var(--bs-secondary-color, #6c757d);
}

.forge-aps-option-group[b-p7il1c8zei] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin-top: .5rem;
    padding-top: .6rem;
    border-top: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, .1));
}

.forge-aps-option-title[b-p7il1c8zei] {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--bs-secondary-color, #6c757d);
}

/* Onglet Alarmes */
.forge-aps-alarm-toolbar[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.forge-aps-alarm-count[b-p7il1c8zei] {
    display: inline-flex;
    align-items: center;
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
}

.forge-aps-alarm-refresh[b-p7il1c8zei] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border: 0;
    border-radius: .375rem;
    background: transparent;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
    transition: background-color .12s ease, color .12s ease;
}

.forge-aps-alarm-refresh:hover:not(:disabled)[b-p7il1c8zei] {
    background: var(--bs-secondary-bg, #e9ecef);
    color: var(--bs-body-color, #212529);
}

.forge-aps-alarm-refresh:disabled[b-p7il1c8zei] {
    opacity: .5;
    cursor: default;
}

.forge-aps-alarm-detail[b-p7il1c8zei] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    margin-top: .25rem;
    padding-top: .5rem;
    border-top: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, .1));
}

.forge-aps-alarm-detail-head[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .15rem;
}

.forge-aps-alarm-detail-name[b-p7il1c8zei] {
    font-size: .85rem;
    font-weight: 600;
    color: var(--bs-body-color, #212529);
    word-break: break-word;
}

.forge-aps-alarm-close[b-p7il1c8zei] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border: 0;
    border-radius: .375rem;
    background: transparent;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
}

.forge-aps-alarm-close:hover[b-p7il1c8zei] {
    background: var(--bs-secondary-bg, #e9ecef);
    color: var(--bs-body-color, #212529);
}

.forge-aps-alarm-row[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .35rem .4rem;
    border-radius: .375rem;
    text-decoration: none;
    color: var(--bs-body-color, #212529);
    transition: background-color .12s ease;
}

.forge-aps-alarm-row:hover[b-p7il1c8zei] {
    background: var(--bs-tertiary-bg, #f1f3f5);
}

.forge-aps-alarm-dot[b-p7il1c8zei] {
    flex: 0 0 auto;
    width: .7rem;
    height: .7rem;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .1) inset;
}

.forge-aps-alarm-title[b-p7il1c8zei] {
    flex: 1 1 auto;
    min-width: 0;
    font-size: .8rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.forge-aps-alarm-time[b-p7il1c8zei] {
    flex: 0 0 auto;
    font-size: .72rem;
    color: var(--bs-secondary-color, #6c757d);
    white-space: nowrap;
}

/* Onglet Objet — en-tête « Types d'équipement » (icône + libellé + étage courant à droite), calqué sur le 2D. */
.forge-aps-virt-header[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 2px 0 6px;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #4c4c5c;
}

.forge-aps-virt-header > i[b-p7il1c8zei] {
    font-size: 15px;
    color: var(--bs-secondary-color, #9499a1);
}

.forge-aps-virt-floor[b-p7il1c8zei] {
    margin-left: auto;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: var(--bs-secondary-color, #aab0b8);
    font-variant-numeric: tabular-nums;
}

/* Onglet Objet — équipements virtualisés */
.forge-aps-virt[b-p7il1c8zei] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding-bottom: .5rem;
    margin-bottom: .35rem;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, .1));
}

/* Sélecteur du mode de mise en évidence (Coloration / Pastilles) : contrôle segmenté */
.forge-aps-virt-modes[b-p7il1c8zei] {
    display: flex;
    flex: 0 0 auto;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .375rem;
    overflow: hidden;
}

.forge-aps-virt-mode[b-p7il1c8zei] {
    flex: 1 1 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .35rem .5rem;
    border: 0;
    border-right: 1px solid var(--bs-border-color, #dee2e6);
    background: transparent;
    color: var(--bs-body-color, #212529);
    font-size: .8125rem;
    cursor: pointer;
    transition: background-color .12s ease, color .12s ease;
}

    .forge-aps-virt-mode:last-child[b-p7il1c8zei] {
        border-right: 0;
    }

    .forge-aps-virt-mode i[b-p7il1c8zei] {
        font-size: 1rem;
    }

    .forge-aps-virt-mode:hover:not(:disabled)[b-p7il1c8zei] {
        background: var(--bs-tertiary-bg, #f1f3f5);
    }

    .forge-aps-virt-mode.is-active[b-p7il1c8zei] {
        background: #1178d8;
        color: #fff;
        font-weight: 600;
    }

    .forge-aps-virt-mode:disabled[b-p7il1c8zei] {
        opacity: .5;
        cursor: not-allowed;
    }

.forge-aps-virt-types[b-p7il1c8zei] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    margin-top: .25rem;
    padding-top: .4rem;
    border-top: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, .1));
}

.forge-aps-virt-type[b-p7il1c8zei] {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .15rem .25rem;
    border-radius: .375rem;
    cursor: pointer;
    font-size: .8rem;
}

.forge-aps-virt-type:hover[b-p7il1c8zei] {
    background: var(--bs-tertiary-bg, #f1f3f5);
}

.forge-aps-virt-type input[b-p7il1c8zei] {
    accent-color: #14b8a6;
    cursor: pointer;
}

.forge-aps-virt-type-label[b-p7il1c8zei] {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--bs-body-color, #212529);
}

.forge-aps-virt-type-count[b-p7il1c8zei] {
    flex: 0 0 auto;
    font-size: .72rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
}

/* Recherche par nom (onglets Objet / Espaces) → centrage + sélection au clic d'un résultat */
.forge-aps-search[b-p7il1c8zei] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    padding-bottom: .5rem;
    margin-bottom: .35rem;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, .1));
}

.forge-aps-search-row[b-p7il1c8zei] {
    display: flex;
    gap: .35rem;
}

.forge-aps-search-input[b-p7il1c8zei] {
    flex: 1 1 auto;
    min-width: 0;
    padding: .35rem .5rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .375rem;
    background: var(--bs-body-bg, #fff);
    color: var(--bs-body-color, #212529);
    font-size: .85rem;
}

.forge-aps-search-input:disabled[b-p7il1c8zei] {
    opacity: .5;
    cursor: default;
}

.forge-aps-search-btn[b-p7il1c8zei] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .375rem;
    background: var(--bs-tertiary-bg, #f1f3f5);
    color: var(--bs-body-color, #212529);
    cursor: pointer;
    transition: background-color .12s ease;
}

.forge-aps-search-btn:hover:not(:disabled)[b-p7il1c8zei] {
    background: var(--bs-secondary-bg, #e9ecef);
}

.forge-aps-search-btn:disabled[b-p7il1c8zei] {
    opacity: .5;
    cursor: default;
}

.forge-aps-search-results[b-p7il1c8zei] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    max-height: 14rem;
    overflow-y: auto;
}

.forge-aps-search-item[b-p7il1c8zei] {
    display: flex;
    flex-direction: column;
    gap: .05rem;
    width: 100%;
    padding: .35rem .5rem;
    border: 1px solid transparent;
    border-radius: .375rem;
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: background-color .12s ease;
}

.forge-aps-search-item:hover[b-p7il1c8zei] {
    background: var(--bs-tertiary-bg, #f1f3f5);
}

.forge-aps-search-item-name[b-p7il1c8zei] {
    font-size: .85rem;
    color: var(--bs-body-color, #212529);
    overflow-wrap: anywhere;
    line-height: 1.2;
}

.forge-aps-search-item-sub[b-p7il1c8zei] {
    font-size: .72rem;
    color: var(--bs-secondary-color, #6c757d);
}
/* /Features/ExplorerBim/ExplorerBimViewerHost.razor.rz.scp.css */
/* Hôte « chaud » du viewer 3D Forge (explorateur BIM), DOCKÉ dans la zone de contenu de l'app (pas un modal
   plein écran) : sous le header (60px) et à droite du menu latéral (largeur responsive à l'épinglage).
   Fermé : conteneur gardé dimensionné mais invisible/inerte — surtout PAS display:none, qui détruirait
   le contexte WebGL et la géométrie GPU qu'on veut garder « au chaud ». */

.forge-host[b-paczb25i03] {
    position: fixed;
    top: 60px;                                      /* sous le header (.header height:60px) */
    left: var(--sidebar-unpinned-widthcalc, 70px);  /* menu replié */
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;                          /* bandeau/sélecteur (haut) + corps (rail + canvas) */
    background: var(--bs-body-bg, #fff);
}

/* body.menu-pin = menu épinglé (classe par défaut sur <body>) → la zone de contenu démarre plus à droite. */
body.menu-pin .forge-host[b-paczb25i03] {
    left: var(--sidebar-pinned-width, 250px);
}

.forge-host.open[b-paczb25i03] {
    z-index: 700;          /* au-dessus du contenu de page, sous le header/menu/toasts/popups */
    visibility: visible;
    opacity: 1;
}

.forge-host.closed[b-paczb25i03] {
    z-index: -1;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

.forge-host-close[b-paczb25i03] {
    position: absolute;
    top: 12px;
    right: 16px;
    z-index: 1060;   /* au-dessus des panneaux internes du viewer (loading/indisponible = z-index 2) */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s ease;
}

.forge-host-close:hover[b-paczb25i03] {
    background: rgba(0, 0, 0, 0.78);
}

/* Barre « sélecteur de portée » (Campus / Bâtiment / Ensembles ; mode sélecteur uniquement). */
.forge-host-testbar[b-paczb25i03] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    background: var(--bs-body-bg, #fff);
}

.forge-host-combo[b-paczb25i03] {
    min-width: 280px;
}

/* Corps : le rail (ExplorerBimRailPanel → RailNav) occupe toute la place. */
.forge-host-body[b-paczb25i03] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: row;
}

.forge-host-empty[b-paczb25i03] {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    color: var(--bs-secondary-color, #6c757d);
}

/* Le viewer remplit le viewport du rail ; z-index:0 confine son stacking interne sous la croix. */
.forge-host[b-paczb25i03]  .forge-aps-root {
    height: 100%;
    width: 100%;
    z-index: 0;
}
/* /Features/ExplorerList/ExplorerListIndex.razor.rz.scp.css */
/* Explorateur Patrimoine : le chrome (rail + panneaux + viewport) est porté par le composant réutilisable
   RailNav (KDCockpit.WebComponents). Cette feuille garde : le wrapper de page, la scopebar, le viewport (grille),
   et — à partir de la Phase 2 — les PRIMITIVES DE CONTENU des panneaux via `.ex-list-root ::deep` (le CSS scopé
   d'un composant n'atteint pas le markup slotté DANS RailNav ; la page, ancêtre commun, si). */

/* Page = colonne : en-tête de portée en haut + chrome (rail/panneaux/viewport) en dessous. */
.ex-list-page[b-qnrw84e4p1] {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}

/* En-tête de portée (pills Campus/Bâtiment) : barre fine au-dessus du chrome. */
.ex-list-scopebar[b-qnrw84e4p1] {
    flex: 0 0 auto;
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    background: var(--bs-body-bg, #fff);
}

/* Le chrome remplit la hauteur restante (min-height:0 pour autoriser le shrink en flex). */
.ex-list-root[b-qnrw84e4p1] {
    flex: 1 1 auto;
    min-height: 0;
    background: #f4f4f4;
    overflow: hidden;
}

/* Viewport = zone de la LISTE (grille en Phase 2). */
.ex-list-viewport[b-qnrw84e4p1] {
    position: relative;
    min-width: 320px;
    height: 100%;
    display: flex;
    overflow: hidden;
}

/* État vide (aucun bâtiment choisi / entité à venir), centré. */
.ex-list-viewport-overlay[b-qnrw84e4p1] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    color: #9499a1;
    font-size: 13px;
}

    .ex-list-viewport-overlay i[b-qnrw84e4p1] {
        font-size: 34px;
    }

/* Placeholder du panneau de filtres (avant l'arrivée des filtres réels en Phase 2-4). */
.ex-list-panel-todo[b-qnrw84e4p1] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 26px 12px;
    color: #9499a1;
    font-size: 12.5px;
}

    .ex-list-panel-todo i[b-qnrw84e4p1] {
        font-size: 22px;
    }
/* /Features/ExplorerPlans/Components/ExplorerPlansAlarmsPanel.razor.rz.scp.css */
/* Panneau Alarmes 2D — switch + ligne compteur (propres au 2D). Les styles de la liste (pills de
   sévérité + cartes) vivent avec le composant partagé AlarmAssetListView (KDCockpit.WebComponents). */

.ex-plans-alarms-switchlabel[b-2j3dxy1zk4] {
    flex: 1;
    font-weight: 500;
}

/* Ligne compteur : « N alarme(s) sur M équipement(s) » + rafraîchir */
.ex-plans-alarms-count[b-2j3dxy1zk4] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 4px 8px 10px;
    font-size: 12px;
    color: #4c4c5c;
}

    .ex-plans-alarms-count > i[b-2j3dxy1zk4] {
        font-size: 15px;
        color: #1178d8;
    }

    .ex-plans-alarms-count > span[b-2j3dxy1zk4] {
        flex: 1;
    }

.ex-plans-alarms-refresh[b-2j3dxy1zk4] {
    width: 26px;
    height: 26px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: #9499a1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

    .ex-plans-alarms-refresh:hover[b-2j3dxy1zk4] {
        background: #f1f2f4;
        color: #4c4c5c;
    }
/* /Features/ExplorerPlans/Components/ExplorerPlansCapabilitiesPanel.razor.rz.scp.css */
/* Styles propres au panneau Capacités. Les primitives partagées (row, switch, radio, check, header,
   detail-wrap/actions/btn) sont déclarées au niveau page dans ExplorerPlansIndex.razor.css. */

/* Libellé des switches : occupe la place restante à droite du switch. `font-weight: 500` comme les
   panneaux Objets et Alarmes — l'omettre affichait ces deux switches-ci plus légers que tous les autres
   de l'explorateur. (Règle recopiée une 3ᵉ fois : à promouvoir en primitive `.ex-plans-switchlabel` dans
   ExplorerPlansIndex.razor.css, où vit déjà `.ex-plans-switch`.) */
.ex-plans-caps-switchlabel[b-lgnl9t5qty] {
    flex: 1;
    min-width: 0;
    font-weight: 500;
}

/* Une mesure : icône, libellé, puis les boutons de représentation. La ligne n'est pas cliquable —
   c'est le BOUTON qui porte l'action, parce qu'il y en a deux et qu'aucune n'est « par défaut ».
   Pas de padding horizontal, contrairement à .ex-plans-row : celle-ci en a parce qu'elle est cliquable
   dans son ENTIER et que le padding EST sa zone de clic. Ici rien n'est cliquable hors des boutons, donc
   le retrait aligne l'icône sur les en-têtes de section (.ex-plans-header, sans marge latérale) au lieu
   de la décaler de 10 px sans raison. */
.ex-plans-caps-item[b-lgnl9t5qty] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 0;
    border-radius: 8px;
}

/* Le fond de la ligne active déborde de part et d'autre — marge négative compensée par un padding égal,
   donc le CONTENU reste aligné sur les en-têtes pendant que la surbrillance respire. Sans ça elle collerait
   à l'icône et au dernier bouton, et ses coins arrondis n'auraient rien à arrondir. */
.ex-plans-caps-item--on[b-lgnl9t5qty] {
    background: #f4f8fd;
    margin: 0 -8px;
    padding-left: 8px;
    padding-right: 8px;
}

.ex-plans-caps-icon[b-lgnl9t5qty] {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #f2f3f5;
    color: #6b7280;
    font-size: 16px;
}

/* Bouton de représentation (surfaçage / pastille) et entonnoir : même gabarit, pour qu'ils s'alignent. */
.ex-plans-caps-mode[b-lgnl9t5qty] {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid #e4e6ea;
    border-radius: 8px;
    background: #fff;
    color: #6b7280;
    font-size: 15px;
    cursor: pointer;
}

.ex-plans-caps-mode:hover:not(:disabled)[b-lgnl9t5qty] {
    border-color: #cfd4db;
    color: #1a1a1a;
}

.ex-plans-caps-mode--on[b-lgnl9t5qty] {
    border-color: #1178d8;
    background: #1178d8;
    color: #fff;
}

.ex-plans-caps-mode--active[b-lgnl9t5qty] {
    border-color: #cfd4db;
    background: #f2f3f5;
    color: #1a1a1a;
}

/* Indisponible : trait pointillé plutôt qu'un simple pâlissement — on doit voir que le bouton existe et
   qu'il est refusé, pas croire qu'il est en cours de chargement. L'infobulle en donne la raison. */
.ex-plans-caps-mode:disabled[b-lgnl9t5qty] {
    border-style: dashed;
    border-color: #e4e6ea;
    background: #fafbfc;
    color: #cfd4db;
    cursor: not-allowed;
}

/* Libellé d'une capacité sur deux lignes : titre + plage mesurée sur l'étage. */
.ex-plans-caps-label[b-lgnl9t5qty] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1;
}

.ex-plans-caps-title[b-lgnl9t5qty] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ex-plans-caps-range[b-lgnl9t5qty] {
    font-size: 11px;
    color: #9499a1;
    font-variant-numeric: tabular-nums;
}

/* Entonnoir d'une capacité dont le filtre est ACTIF (pas seulement ouvert) : pastille de rappel, pour
   qu'on comprenne au premier coup d'œil pourquoi des valeurs manquent sur le plan. */
.ex-plans-caps-filter--set[b-lgnl9t5qty] {
    color: #1178d8;
    border-color: #cfe3f8;
    background: #eef6ff;
}
/* /Features/ExplorerPlans/Components/ExplorerPlansCapabilityFilterPanel.razor.rz.scp.css */
/* Panneau de filtrage par seuils (3ᵉ panneau de l'onglet Capacités). */

/* Carte d'activation : libellé + explication à gauche, switch à droite. */
.ex-plans-capfilter-card[b-pl0iq040oi] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    margin-bottom: 14px;
    border: 1px solid #eceef1;
    border-radius: 9px;
    background: #f8f9fb;
}

.ex-plans-capfilter-cardtext[b-pl0iq040oi] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.ex-plans-capfilter-cardtitle[b-pl0iq040oi] {
    font-size: 13px;
    font-weight: 600;
    color: #1a1a1a;
}

.ex-plans-capfilter-cardhint[b-pl0iq040oi] {
    font-size: 11px;
    color: rgba(76, 76, 92, .7);
}

.ex-plans-capfilter-switchbtn[b-pl0iq040oi] {
    flex: 0 0 auto;
    border: none;
    background: transparent;
    padding: 0;
    cursor: pointer;
    display: inline-flex;
}

/* Segmenté 2 positions (Hors plage / Dans la plage). */
.ex-plans-capfilter-segment[b-pl0iq040oi] {
    display: flex;
    gap: 4px;
    padding: 3px;
    margin-bottom: 16px;
    border-radius: 9px;
    background: #f1f2f4;
}

/* Variante à trois cases (mesure d'état) : les libellés « Occupée / Inoccupée » sont plus longs que
   « Hors plage / Dans la plage » à deux, d'où un peu moins de rembourrage horizontal. */
.ex-plans-capfilter-segment--three button[b-pl0iq040oi] {
    padding-left: 2px;
    padding-right: 2px;
    font-size: 12px;
}

.ex-plans-capfilter-segment button[b-pl0iq040oi] {
    flex: 1;
    border: none;
    border-radius: 7px;
    background: transparent;
    padding: 8px 6px;
    font-size: 12.5px;
    color: #4c4c5c;
    cursor: pointer;
}

.ex-plans-capfilter-segment button:hover[b-pl0iq040oi] {
    color: #1a1a1a;
}

.ex-plans-capfilter-seg--on[b-pl0iq040oi],
.ex-plans-capfilter-segment button.ex-plans-capfilter-seg--on:hover[b-pl0iq040oi] {
    background: #1a1a1a;
    color: #fff;
    font-weight: 600;
}

/* Ligne d'un seuil : libellé à gauche, valeur courante à droite. */
.ex-plans-capfilter-threshold[b-pl0iq040oi] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}

.ex-plans-capfilter-thlabel[b-pl0iq040oi] {
    font-size: 12.5px;
    color: #4c4c5c;
}

.ex-plans-capfilter-thvalue[b-pl0iq040oi] {
    font-size: 14px;
    font-weight: 700;
    color: #1a1a1a;
    font-variant-numeric: tabular-nums;
}

.ex-plans-capfilter-range[b-pl0iq040oi] {
    width: 100%;
    margin: 0 0 16px;
    accent-color: #1a1a1a;
}

/* Rappel de la plage mesurée sur l'étage (bornes des curseurs). */
.ex-plans-capfilter-scale[b-pl0iq040oi] {
    margin: -6px 0 16px;
    text-align: center;
    font-size: 11px;
    color: #9499a1;
    font-variant-numeric: tabular-nums;
}

/* Phrase de rappel de l'effet du filtre sur le plan. */
.ex-plans-capfilter-summary[b-pl0iq040oi] {
    padding: 12px;
    border-radius: 9px;
    background: #f1f2f4;
    font-size: 12.5px;
    line-height: 1.5;
    color: #4c4c5c;
}
/* /Features/ExplorerPlans/Components/ExplorerPlansCapabilityLegend.razor.rz.scp.css */
/* Légende en surimpression du plan. Le viewport (.ex-plans-viewport) est déjà `position: relative`. */
.ex-plans-caps-legend[b-4njpnmerv2] {
    position: absolute;
    left: 16px;
    bottom: 16px;
    z-index: 2;
    min-width: 220px;
    max-width: 300px;
    padding: 12px 14px;
    border: 1px solid #eceef1;
    border-radius: 11px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 4px 16px rgba(26, 26, 26, .12);
    font-size: 12px;
    color: #1a1a1a;
    pointer-events: none;   /* purement informatif : ne vole pas les clics de la carte */
}

.ex-plans-caps-legend-title[b-4njpnmerv2] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #4c4c5c;
    margin-bottom: 8px;
}

.ex-plans-caps-legend-unit[b-4njpnmerv2] {
    font-weight: 400;
    color: #9499a1;
}

/* Barre du dégradé : le fond est posé en style inline depuis CapabilityColorScale. */
.ex-plans-caps-legend-bar[b-4njpnmerv2] {
    height: 8px;
    border-radius: 100px;
}

.ex-plans-caps-legend-bounds[b-4njpnmerv2] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-top: 5px;
    font-size: 11px;
    color: #4c4c5c;
    font-variant-numeric: tabular-nums;
}

.ex-plans-caps-legend-scale[b-4njpnmerv2] {
    color: #aab0b8;
    font-variant-numeric: normal;
}

/* Une capacité affichée sur les pastilles. */
.ex-plans-caps-legend-row[b-4njpnmerv2] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 9px;
}

.ex-plans-caps-legend-row i[b-4njpnmerv2] {
    font-size: 15px;
    color: #9499a1;
}

.ex-plans-caps-legend-rowtitle[b-4njpnmerv2] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Mesure d'état : deux cas nommés à la place de la barre de dégradé. */
.ex-plans-caps-legend-states[b-4njpnmerv2] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
}

.ex-plans-caps-legend-state[b-4njpnmerv2] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: #4c4c5c;
}

.ex-plans-caps-legend-state i[b-4njpnmerv2] {
    font-size: 14px;
}

/* Notes sous la barre : origine de la donnée (projection) et couverture. Volontairement plus discrètes
   que le rappel de filtre — elles qualifient la mesure, elles ne disent pas ce que la carte a retiré. */
.ex-plans-caps-legend-note[b-4njpnmerv2] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-top: 5px;
    font-size: 11px;
    line-height: 1.35;
    color: #9499a1;
}

.ex-plans-caps-legend-note i[b-4njpnmerv2] {
    flex: 0 0 auto;
    font-size: 12px;
    line-height: 1.35;
}

/* Rappel du filtre actif : ce que la carte retient réellement. */
.ex-plans-caps-legend-filter[b-4njpnmerv2] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-top: 5px;
    font-size: 11px;
    line-height: 1.35;
    color: #6b7280;
}

.ex-plans-caps-legend-filter i[b-4njpnmerv2] {
    flex: 0 0 auto;
    font-size: 12px;
    line-height: 1.35;
    color: #0891b2;
}

.ex-plans-caps-legend-tag[b-4njpnmerv2] {
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .05em;
    color: #aab0b8;
}
/* /Features/ExplorerPlans/Components/ExplorerPlansClassTreePanel.razor.rz.scp.css */
/* Arbre de classes partagé (Espaces / Objets, explorateurs 2D ET BIM) — styles propres. Les primitives
   « ligne » et « case » (ex-plans-row / ex-plans-check) sont portées ICI (et non plus déléguées au shell
   page) pour que le composant s'affiche à l'IDENTIQUE quel que soit l'hôte — le shell BIM n'a pas les
   `.ex-plans-root ::deep …` du shell 2D, d'où les bordures de bouton par défaut sans ça. Le shell 2D
   redéfinit ces mêmes primitives via ::deep pour ses AUTRES lignes (résultats de recherche…) : valeurs
   identiques → aucun impact visuel, seulement une couverture des deux contextes. */

/* Ligne générique cliquable (case | libellé | compteur) — bouton sans bordure/fond natifs. */
.ex-plans-row[b-vgzko3ikl2] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
    padding: 8px;
    border-radius: 7px;
    cursor: pointer;
    font-size: 12.5px;
    color: #1a1a1a;
}

    .ex-plans-row:hover[b-vgzko3ikl2] {
        background: #f6f7f9;
    }

/* Case à cocher 15 px, tri-état : la couleur du fond « coché » est posée en style inline (dépend du type),
   l'état partiel utilise --partial. */
.ex-plans-check[b-vgzko3ikl2] {
    flex: 0 0 15px;
    width: 15px;
    height: 15px;
    border-radius: 3px;
    border: 1.5px solid #c4c9cf;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 10px;
    line-height: 1;
    box-sizing: border-box;
}

.ex-plans-check--partial[b-vgzko3ikl2] {
    border-color: #6b7078;
    background: #6b7078;
}

/* Ligne de type = rangée flex [bouton bascule | icône détail | pastille couleur] → jamais de chevauchement. */
.ex-plans-tree-typewrap[b-vgzko3ikl2] {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Le bouton bascule prend l'espace restant (rétrécit devant la pastille) ; min-width:0 pour l'ellipsis du libellé. */
.ex-plans-tree-typerow[b-vgzko3ikl2] {
    min-width: 0;
    padding-right: 6px;
}

.ex-plans-tree-label[b-vgzko3ikl2] {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ex-plans-tree-count[b-vgzko3ikl2] {
    color: #9499a1;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
}

.ex-plans-tree-caret[b-vgzko3ikl2] {
    font-size: 13px;
    color: #9499a1;
    cursor: pointer;
}

/* Bouton « liste/détails » d'un type → ouvre le 3ᵉ panneau (élément flex, avant la pastille couleur). */
.ex-plans-tree-list[b-vgzko3ikl2] {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 7px;
    background: transparent;
    color: #9499a1;
    cursor: pointer;
}

    .ex-plans-tree-list:hover[b-vgzko3ikl2] {
        background: #eef2f7;
        color: #1178d8;
    }

    .ex-plans-tree-list i[b-vgzko3ikl2] {
        font-size: 15px;
    }

.ex-plans-tree-list--active[b-vgzko3ikl2],
.ex-plans-tree-list--active:hover[b-vgzko3ikl2] {
    background: #1178d8;
    color: #fff;
}

/* Pastille couleur = <input type="color"> natif en petit swatch, ÉLÉMENT FLEX (fixe 16px, jamais superposé). */
.ex-plans-tree-dot[b-vgzko3ikl2] {
    flex: 0 0 16px;
    width: 16px;
    max-width: 16px;
    height: 16px;
    box-sizing: border-box;
    margin-right: 4px;
    padding: 0;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: none;
    overflow: hidden;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .08);
}

    .ex-plans-tree-dot[b-vgzko3ikl2]::-webkit-color-swatch-wrapper {
        padding: 0;
    }

    .ex-plans-tree-dot[b-vgzko3ikl2]::-webkit-color-swatch {
        border: none;
        border-radius: 4px;
    }

    .ex-plans-tree-dot[b-vgzko3ikl2]::-moz-color-swatch {
        border: none;
        border-radius: 4px;
    }
/* /Features/ExplorerPlans/Components/ExplorerPlansFloorsPanel.razor.rz.scp.css */
/* Panneau Étages (spec §4.2) — styles propres ; les primitives (hint, row, radio…) viennent du shell. */

.ex-plans-floor-label[b-jbi8p7ledz] {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Badge d'alarmes de l'étage : pill rosée + icône warning pleine */
.ex-plans-floor-alarms[b-jbi8p7ledz] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 7px;
    border-radius: 100px;
    background: rgba(235, 61, 99, .14);
    color: #eb3d63;
    font-size: 10.5px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

    .ex-plans-floor-alarms i[b-jbi8p7ledz] {
        font-size: 11px;
    }

/* Header de bâtiment : reprend la primitive .ex-plans-header, espacé quand il suit une liste */
.ex-plans-floors-building[b-jbi8p7ledz] {
    margin-top: 10px;
}

    .ex-plans-floors-building:first-of-type[b-jbi8p7ledz] {
        margin-top: 0;
    }
/* /Features/ExplorerPlans/Components/ExplorerPlansObjectListPanel.razor.rz.scp.css */
/* Contenu du 3ᵉ panneau (détail) : rangées d'équipements d'un type (primitive .ex-plans-row via la page). */

.ex-plans-detailasset-pin[b-1e78t5k14p] {
    font-size: 15px;
    color: #1f9b8e;
}

.ex-plans-detailasset-name[b-1e78t5k14p] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 500;
}
/* /Features/ExplorerPlans/Components/ExplorerPlansObjectsPanel.razor.rz.scp.css */
/* Panneau Objets (spec §4.5) — styles propres ; primitives (row, check, switch…) via le shell page,
   l'arbre des types via le composant partagé ExplorerPlansClassTreePanel. */

.ex-plans-objects-switchlabel[b-rshdusjp3f] {
    flex: 1;
    font-weight: 500;
}
/* /Features/ExplorerPlans/Components/ExplorerPlansSearchPanel.razor.rz.scp.css */
/* Panneau Recherche (spec §4.1) — styles propres ; primitives (search, row, header…) via le shell. */

/* Pastille d'icône 28 px (fond = couleur du type à 10 %, posé en inline) */
.ex-plans-search-badge[b-4yj1wzy57e] {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .ex-plans-search-badge i[b-4yj1wzy57e] {
        font-size: 15px;
    }

.ex-plans-search-main[b-4yj1wzy57e] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ex-plans-search-label[b-4yj1wzy57e] {
    font-size: 12.5px;
    word-break: break-all;
}

.ex-plans-search-sub[b-4yj1wzy57e] {
    font-size: 10.5px;
    color: #9499a1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ex-plans-search-cross[b-4yj1wzy57e] {
    flex: 0 0 auto;
    font-size: 15px;
    color: #c4c9cf;
}

.ex-plans-search-cross--active[b-4yj1wzy57e] {
    color: #1178d8;
}

.ex-plans-search-group[b-4yj1wzy57e] {
    margin-top: 8px;
}

/* Historique (état vide) : pastille neutre — une entrée d'historique n'est pas un résultat typé, elle ne
   doit donc pas emprunter les couleurs de nature (personne/espace/équipement). */
.ex-plans-search-badge--recent[b-4yj1wzy57e] {
    background: #f1f3f5;
    color: #9499a1;
}

.ex-plans-search-recent-clear[b-4yj1wzy57e] {
    border: 0;
    background: none;
    padding: 0;
    line-height: 1;
    color: #c4c9cf;
    cursor: pointer;
}

    .ex-plans-search-recent-clear:hover[b-4yj1wzy57e] {
        color: #eb3d63;
    }
/* /Features/ExplorerPlans/Components/ExplorerPlansSpaceListPanel.razor.rz.scp.css */
/* Contenu du 3ᵉ panneau (détail) : rangées d'espaces d'un type (primitive .ex-plans-row via la page). */

.ex-plans-detailspace-pin[b-6pfd5zx6un] {
    font-size: 15px;
    color: #1f9b8e;
}

.ex-plans-detailspace-name[b-6pfd5zx6un] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 500;
}

.ex-plans-detailspace-center[b-6pfd5zx6un] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid #e6e6e8;
    color: #c4c9cf;
}

    .ex-plans-detailspace-center i[b-6pfd5zx6un] {
        font-size: 15px;
    }

.ex-plans-row:hover .ex-plans-detailspace-center[b-6pfd5zx6un] {
    color: #9499a1;
}

.ex-plans-detailspace-center--active[b-6pfd5zx6un],
.ex-plans-row:hover .ex-plans-detailspace-center--active[b-6pfd5zx6un] {
    background: #1178d8;
    border-color: #1178d8;
    color: #fff;
}
/* /Features/ExplorerPlans/Components/ExplorerPlansZoneEquipmentListPanel.razor.rz.scp.css */
/* Contenu du 3ᵉ panneau (détail) : rangées d'équipements d'une zone (primitive .ex-plans-row via la page). */

.ex-plans-detailzone-icon[b-fr23cwpdgr] {
    font-size: 15px;
    color: #6b7078;
}

.ex-plans-detailzone-name[b-fr23cwpdgr] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 500;
}

.ex-plans-detailzone-cat[b-fr23cwpdgr] {
    flex: 0 0 auto;
    max-width: 40%;
    color: #9499a1;
    font-size: 10.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* /Features/ExplorerPlans/Components/ExplorerPlansZonesPanel.razor.rz.scp.css */
/* Panneau Zones virtuelles (spec §4.4) — styles propres ; primitives (search, row…) via le shell. */

/* Ligne d'une zone = rangée flex [bouton zone | bouton détails] → jamais de <button> imbriqué. */
.ex-plans-zones-wrap[b-vzvpw450ra] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.ex-plans-zones-row[b-vzvpw450ra] {
    min-width: 0;
    gap: 6px;
    padding-right: 6px;
}

/* Sélection : fond bleuté + liseré intérieur (sélecteur doublé pour l'emporter sur le hover du shell) */
.ex-plans-row.ex-plans-zones-row--selected[b-vzvpw450ra],
.ex-plans-row.ex-plans-zones-row--selected:hover[b-vzvpw450ra] {
    background: #eef4ff;
    box-shadow: inset 0 0 0 1px #c7ddfb;
}

.ex-plans-zones-caret[b-vzvpw450ra] {
    flex: 0 0 auto;
    font-size: 13px;
    color: #9499a1;
    cursor: pointer;
}

.ex-plans-zones-caret-spacer[b-vzvpw450ra] {
    flex: 0 0 13px;
}

.ex-plans-zones-icon[b-vzvpw450ra] {
    flex: 0 0 auto;
    font-size: 15px;
    color: #8b5cf6;
}

/* Bloc texte 2 lignes (code + catégorie) : prend l'espace disponible, tronque à l'intérieur. C'est LUI qui
   porte le flex:1 (plus le code) → le code ne partage plus sa ligne avec le type et cesse d'être écrasé. */
.ex-plans-zones-text[b-vzvpw450ra] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
    overflow: hidden;
}

.ex-plans-zones-code[b-vzvpw450ra] {
    min-width: 0;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Catégorie (« Zone », « Zone d'éclairage »…) en légende sous le code : discrète, tronquée si trop longue,
   couleur du type (rappel de l'icône) — remplace l'ancien badge inline qui volait la place au libellé. */
.ex-plans-zones-cat[b-vzvpw450ra] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #8b5cf6;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .01em;
}

/* Compteur d'équipements/collections/systèmes membres (connu une fois la zone chargée). */
.ex-plans-zones-count[b-vzvpw450ra] {
    flex: 0 0 auto;
    color: #9499a1;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
}

/* Bouton « détails » d'une zone → ouvre le 3ᵉ panneau listant ses équipements (miroir de .ex-plans-spaces-list). */
.ex-plans-zones-list[b-vzvpw450ra] {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 7px;
    background: transparent;
    color: #9499a1;
    cursor: pointer;
}

    .ex-plans-zones-list:hover[b-vzvpw450ra] {
        background: #eef2f7;
        color: #1178d8;
    }

    .ex-plans-zones-list i[b-vzvpw450ra] {
        font-size: 15px;
    }

.ex-plans-zones-list--active[b-vzvpw450ra],
.ex-plans-zones-list--active:hover[b-vzvpw450ra] {
    background: #1178d8;
    color: #fff;
}

.ex-plans-zones-spin[b-vzvpw450ra] {
    flex: 0 0 auto;
    color: #9499a1;
    animation: ex-plans-zones-spin-b-vzvpw450ra 1s linear infinite;
}

@keyframes ex-plans-zones-spin-b-vzvpw450ra {
    to {
        transform: rotate(360deg);
    }
}

.ex-plans-zones-emptychild[b-vzvpw450ra] {
    padding: 4px 8px 8px;
    font-size: 11px;
    color: rgba(76, 76, 92, .5);
}
/* /Features/ExplorerPlans/ExplorerPlansIndex.razor.rz.scp.css */
/* Explorateur 2D : le chrome (rail + panneaux + viewport) est porté par le composant réutilisable
   RailNav (KDCockpit.WebComponents). Cette feuille garde : le wrapper de page, le viewport, et les
   PRIMITIVES DE CONTENU des panneaux (rows, headers, checks…) — définies ici via `.ex-plans-root ::deep`
   car elles doivent atteindre le markup slotté DANS RailNav (le CSS scopé d'un composant ne s'y applique
   pas ; la page, ancêtre commun, si). */

/* Page = colonne : bandeau de diagnostic (optionnel) en haut + chrome (rail/panneaux/viewport) en dessous. */
.ex-plans-page[b-8i8hui71hh] {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}

.ex-plans-root[b-8i8hui71hh] {
    height: 100%;
    background: #f4f4f4;
    overflow: hidden;
}

/* Sous un éventuel bandeau, le chrome remplit la hauteur restante (pas 100% qui déborderait du bandeau). */
.ex-plans-page > .ex-plans-root[b-8i8hui71hh] {
    height: auto;
    flex: 1 1 auto;
    min-height: 0;
}

/* En-tête de portée (pills Campus/Bâtiment) : barre fine au-dessus du chrome. */
.ex-plans-scopebar[b-8i8hui71hh] {
    flex: 0 0 auto;
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    background: var(--bs-body-bg, #fff);
}

.ex-plans-viewport[b-8i8hui71hh] {
    position: relative;
    min-width: 320px;
    height: 100%;
    display: flex;
    overflow: hidden;
}

/* État vide / plan indisponible, centré dans le viewport. */
.ex-plans-viewport-overlay[b-8i8hui71hh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    color: #9499a1;
    font-size: 13px;
}

    .ex-plans-viewport-overlay i[b-8i8hui71hh] {
        font-size: 34px;
    }

/* ------------------------------------------------------------------
   Primitives de ligne partagées par tous les panneaux (spec §3), atteignant le contenu slotté dans
   RailNav via `.ex-plans-root ::deep`. Les styles propres à UN panneau restent dans son .razor.css.
------------------------------------------------------------------ */

/* Header de section : label ALL-CAPS + icône + compteur droit optionnel */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-header {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 2px 0 11px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #4c4c5c;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-header i {
    font-size: 15px;
    color: #9499a1;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-header .ex-plans-header-count {
    margin-left: auto;
    font-size: 11px;
    font-weight: 400;
    color: #aab0b8;
    letter-spacing: 0;
    text-transform: none;
    font-variant-numeric: tabular-nums;
}

/* Texte d'aide */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-hint {
    margin: -3px 0 11px;
    font-size: 11px;
    line-height: 1.55;
    color: rgba(76, 76, 92, .7);
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-divider {
    border-top: 1px solid #f1f2f4;
    margin: 11px 0;
}

/* État vide centré */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-empty {
    padding: 26px 12px;
    text-align: center;
    font-size: 12px;
    color: rgba(76, 76, 92, .5);
}

/* Ligne générique cliquable */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-row {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
    padding: 8px;
    border-radius: 7px;
    cursor: pointer;
    font-size: 12.5px;
    color: #1a1a1a;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-row:hover {
    background: #f6f7f9;
}

/* Ligne inopérante (ex. « Afficher les noms » quand les pins sont masqués) */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-row:disabled {
    opacity: .45;
    cursor: default;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-row:disabled:hover {
    background: transparent;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-row--selected,
.ex-plans-root[b-8i8hui71hh]  .ex-plans-row--selected:hover {
    background: #e8f4ff;
}

/* Rangée de détail = [ligne cliquable (centrer) | groupe d'actions serré : bouton « centrer » + bouton
   « détail »]. Boutons frères (jamais imbriqués) — partagé par les panneaux Objets et Zones du 3ᵉ panneau.
   Les deux actions forment une paire homogène et rapprochée en fin de rangée (fini l'ancienne asymétrie
   pastille-dans-la-ligne + bouton détaché). */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-detail-wrap {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-detail-wrap .ex-plans-row {
    min-width: 0;   /* la ligne prend la place restante et tronque ; le groupe d'actions garde sa taille */
}

/* Groupe d'actions en fin de rangée : les deux boutons icône collés. */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-detail-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 2px;
}

/* Bouton d'action icône du 3ᵉ panneau (centrer / détail) — même gabarit pour les deux. */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-detail-btn {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    color: #9499a1;
    cursor: pointer;
    transition: background-color .12s ease, color .12s ease, border-color .12s ease;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-detail-btn:hover {
    background: #eef2f7;
    color: #1178d8;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-detail-btn i {
    font-size: 15px;
}

/* Bouton « centrer » actif (élément centré/sélectionné) → plein bleu. */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-detail-btn--active,
.ex-plans-root[b-8i8hui71hh]  .ex-plans-detail-btn--active:hover {
    background: #1178d8;
    border-color: #1178d8;
    color: #fff;
}

/* Radio 15 px (mono-sélection) */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-radio {
    flex: 0 0 15px;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 1.5px solid #cfd4d9;
    background: #fff;
    box-sizing: border-box;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-radio--on {
    border: 4.5px solid #1178d8;
}

/* Case à cocher 15 px, tri-état (cochée / partielle / vide) ; la couleur de fond est posée en style
   inline quand elle dépend du type. */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-check {
    flex: 0 0 15px;
    width: 15px;
    height: 15px;
    border-radius: 3px;
    border: 1.5px solid #c4c9cf;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 10px;
    line-height: 1;
    box-sizing: border-box;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-check--on {
    border-color: #1178d8;
    background: #1178d8;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-check--partial {
    border-color: #6b7078;
    background: #6b7078;
}

/* Switch 34×19 */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-switch {
    position: relative;
    flex: 0 0 34px;
    width: 34px;
    height: 19px;
    border-radius: 100px;
    background: #cfd4d9;
    transition: background .15s;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-switch::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: #fff;
    transition: left .15s;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-switch--on {
    background: #7bb224;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-switch--on::after {
    left: 17px;
}

/* Densité compacte (prop « density » du spec) : padding vertical des lignes 8 → 6 px */
.ex-plans-root[b-8i8hui71hh]  .railnav-panel-body--compact .ex-plans-row {
    padding-top: 6px;
    padding-bottom: 6px;
}

/* Champ de recherche local */
.ex-plans-root[b-8i8hui71hh]  .ex-plans-search {
    display: flex;
    align-items: center;
    gap: 7px;
    background: #f6f7f9;
    border: 1px solid #e6e6e8;
    border-radius: 7px;
    padding: 7px 10px;
    margin-bottom: 11px;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-search i {
    font-size: 13px;
    color: #9499a1;
}

.ex-plans-root[b-8i8hui71hh]  .ex-plans-search input {
    flex: 1;
    min-width: 0;
    border: none;
    background: transparent;
    outline: none;
    font-size: 12px;
    color: #1a1a1a;
}
/* /Features/FileExplorer/Explorer.razor.rz.scp.css */
.margin-2em[b-vt22u94aqo] {
    margin: 2em;
}

.pdf-viewer[b-vt22u94aqo] {
    width: 100%;
    height: 100%;
    border: none;
}

.no-padding[b-vt22u94aqo] {
    padding: 0 !important;
}

.textRight[b-vt22u94aqo] {
    text-align: right;
}
/* /Features/MetricsExplorer/MetricsExplorer.razor.rz.scp.css */
/* Conteneur embarqué (rendu dans MetricsExplorerPopup) : occupe la hauteur du corps de la
   modale (≈ 90vh moins l'en-tête DevExpress) ; la sidebar et la zone de contenu défilent
   chacune de leur côté (classes overflow-y-auto sur les enfants). À ajuster si l'en-tête change. */
.metrics-explorer-embedded[b-37r9hxtrmz] {
    height: calc(90vh - 56px);
    overflow: hidden;
}

/* Sidebar de sélection : largeur fixe (300px en inline). flex-shrink:0 l'empêche d'être
   comprimée par le panneau de contenu (le graphe large pousserait sinon la sidebar). */
.metrics-explorer-embedded > .left-sidebar[b-37r9hxtrmz] {
    flex-shrink: 0;
}

/* Panneau de contenu : min-width:0 lève le min-width:auto par défaut des items flex, pour
   qu'il se réduise (et que le graphe ApexCharts se redimensionne) au lieu de déborder
   et d'écraser la sidebar. */
.metrics-explorer-embedded > div[b-37r9hxtrmz] {
    min-width: 0;
}

/* Cellule du DxGrid : la div remplit la cellule pour offrir une cible de clic complète. */
.basket-cell[b-37r9hxtrmz] {
    display: block;
    width: 100%;
    cursor: pointer;
}

/* Surbrillance d'une cellule lorsqu'on survole le point correspondant dans le graphique. */
.basket-cell-active[b-37r9hxtrmz] {
    background-color: var(--bs-primary-bg-subtle, #cfe2ff) !important;
    box-shadow: inset 0 0 0 2px var(--bs-primary, #0d6efd);
    font-weight: 600;
}
/* /Features/Settings/Alarms/Tabs/TabSettingsAlarmsAnalysis.razor.rz.scp.css */
.analysis-card[b-ejlcao3x5a] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: 100%;
    padding: 1rem 1.1rem;
    border: 1px solid var(--lightgray-color, #E3E4E4);
    border-radius: 0.75rem;
    background-color: #fff;
    transition: border-color 0.15s ease, opacity 0.15s ease;
}

.analysis-card:hover[b-ejlcao3x5a] {
    border-color: var(--primary-color, #8EB937);
}

.analysis-card--off[b-ejlcao3x5a] {
    opacity: 0.6;
}

.analysis-card__head[b-ejlcao3x5a] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.analysis-card__icon[b-ejlcao3x5a] {
    flex: 0 0 auto;
    font-size: 1.5rem;
    color: #6b7280;
}

.analysis-card__body[b-ejlcao3x5a] {
    min-width: 0;
}

.analysis-card__title[b-ejlcao3x5a] {
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.analysis-card__subtitle[b-ejlcao3x5a] {
    font-size: 0.78rem;
    color: var(--gray-color, #909298);
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
}

.analysis-card__footer[b-ejlcao3x5a] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: auto;
}

.analysis-card__sev-badge[b-ejlcao3x5a] {
    display: inline-flex;
    align-items: center;
    border: 0;
    border-radius: 0.5rem;
    padding: 0.3rem 0.6rem;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.1;
    cursor: pointer;
}

.analysis-card__switch[b-ejlcao3x5a] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.analysis-card__switch-label[b-ejlcao3x5a] {
    font-size: 0.8rem;
    font-weight: 500;
}
/* /Features/Settings/Alarms/Tabs/TabSettingsAlarmsConnectorMappings.razor.rz.scp.css */
.mapping-section[b-q92cvvropq] {
    border: 1px solid var(--lightgray-color, #E3E4E4);
    border-radius: 0.85rem;
    background-color: #fff;
    padding: 1.1rem 1.25rem;
}

.mapping-section__header[b-q92cvvropq] {
    margin-bottom: 1rem;
}

.mapping-section__header--actions[b-q92cvvropq] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.mapping-section__title[b-q92cvvropq] {
    margin: 0;
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #1f2329;
}

.mapping-section__subtitle[b-q92cvvropq] {
    margin: 0.15rem 0 0;
    font-size: 0.85rem;
    color: var(--gray-color, #909298);
}

.mapping-section__selectors[b-q92cvvropq] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.mapping-selector[b-q92cvvropq] {
    width: auto;
    min-width: 160px;
}

.mapping-default-select[b-q92cvvropq] {
    max-width: 360px;
}

.mapping-col-title[b-q92cvvropq] {
    font-weight: 700;
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--gray-color, #909298);
    margin-bottom: 0.65rem;
}

/* Rows rendered inside the MappingForm* child components */
[b-q92cvvropq] .mapping-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

[b-q92cvvropq] .mapping-row__label {
    flex: 0 0 7.5rem;
    display: flex;
}

[b-q92cvvropq] .mapping-row__input {
    flex: 1 1 auto;
    min-width: 0;
}

[b-q92cvvropq] .mapping-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 0.5rem;
    padding: 0.3rem 0.6rem;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.1;
    white-space: nowrap;
}

[b-q92cvvropq] .mapping-pill--state {
    color: #495057;
    background-color: rgba(108, 117, 125, 0.12);
}
/* /Features/Settings/Changelog/Changelog.razor.rz.scp.css */
[b-eoh3the6vy] .changelog-content {
    font-family: var(--bs-font-monospace);
    font-size: 0.78rem;
    line-height: 1.5;
}

[b-eoh3the6vy] .changelog-content h1 {
    font-size: 1.1rem;
    margin-top: 0;
    margin-bottom: 0.5rem;
}

[b-eoh3the6vy] .changelog-content h2 {
    font-size: 1rem;
    margin-top: 1.25rem;
    margin-bottom: 0.4rem;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 0.2rem;
}

[b-eoh3the6vy] .changelog-content h3 {
    font-size: 0.82rem;
    margin-top: 0.9rem;
    margin-bottom: 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #666;
}

[b-eoh3the6vy] .changelog-content ul {
    margin: 0.2rem 0 0.5rem 0;
    padding-left: 1.4rem;
}

[b-eoh3the6vy] .changelog-content li {
    margin-bottom: 0.15rem;
}

[b-eoh3the6vy] .changelog-content p {
    margin-bottom: 0.4rem;
}

[b-eoh3the6vy] .changelog-content hr {
    margin: 1rem 0;
    border-color: #e8e8e8;
}

[b-eoh3the6vy] .changelog-content a {
    color: inherit;
    text-decoration: underline;
    text-decoration-style: dotted;
}
/* /Features/Settings/General/HomeWidgetsSettings.razor.rz.scp.css */
.widget-selector[b-jvrl2g6aqn] {
    background-size: cover;
    content: " ";
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    position: absolute;
    z-index: 0;
    opacity: 0.69;
}

.widget-title[b-jvrl2g6aqn] {
    word-break: break-word;
    display: -webkit-box;
    color:#fff;
    font-weight: bold;
    text-transform:uppercase;
}

.widget-description[b-jvrl2g6aqn] {
    text-overflow: ellipsis;
    word-break: break-all;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    height: 2lh;
}

.widget-card[b-jvrl2g6aqn] {
    transition: scale 0.1s ease-in-out;
    cursor: pointer;
}

.widget-card:hover[b-jvrl2g6aqn] {
    scale: 102%
}

.widget-modal-content[b-jvrl2g6aqn] {
    height: 83vh;
    overflow-y:scroll;
    overflow-x:hidden;
}
/* /Features/Settings/MenuEditor/MenuEditor.razor.rz.scp.css */
/* Hide the toggle of the Details tick mark.*/
[b-18di7ls9nx] .hide-toggle span.bb-detail-view-icon {
    display: none;
}

/* Sets the width of the Details view column containing the tick mark.*/
[b-18di7ls9nx] .menu-row td:first-child {
    width: 6rem;
}

[b-18di7ls9nx] .column-order{
    width: 6rem;
}

[b-18di7ls9nx] .column-actions {
    width: 10rem;
}
