@import '_content/Blazor.Bootstrap/Blazor.Bootstrap.7t9tbfaemk.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.hirun1qzjo.bundle.scp.css';
@import '_content/Microsoft.AspNetCore.Components.QuickGrid/Microsoft.AspNetCore.Components.QuickGrid.25o87uqmvr.bundle.scp.css';

/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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);
    }
/* _content/KDCockpit.Web/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);
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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);
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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;
    }
/* _content/KDCockpit.Web/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;
    }
/* _content/KDCockpit.Web/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;
    }
/* _content/KDCockpit.Web/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;
    }
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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);
}
/* _content/KDCockpit.Web/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;
}

.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;
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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);
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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;
}
/* _content/KDCockpit.Web/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;
}
