Quelltext des aktuellen Standes
/* Wiederverwendbare Verzeichnis-Personensuche (siehe person-search.js).
Eigene psx-* Klassen, damit es modulübergreifend kollisionsfrei einsetzbar ist. */
.psx-wrap { position: relative; }
.psx-dropdown {
position: absolute;
top: 100%;
left: 0;
right: 0;
z-index: 9000;
margin-top: 2px;
background: var(--color-bg);
border: 1px solid var(--gray-200);
border-radius: 0.375rem;
box-shadow: 0 4px 16px rgba(0, 0, 0, .15);
max-height: 240px;
overflow-y: auto;
display: none;
}
.psx-dropdown--open { display: block; }
.psx-item {
padding: 0.5rem 0.75rem;
cursor: pointer;
border-bottom: 1px solid var(--gray-100);
}
.psx-item:last-child { border-bottom: none; }
.psx-item--active,
.psx-item:not(.psx-item--disabled):hover { background: var(--blue-50); }
.psx-item--disabled { cursor: default; opacity: 0.55; }
.psx-item-name {
display: flex;
align-items: center;
gap: 0.4rem;
font-weight: 600;
font-size: 0.875rem;
color: var(--gray-900);
}
.psx-item-sub {
margin-top: 0.1rem;
font-size: 0.75rem;
color: var(--gray-500);
}
.psx-badge {
font-size: 0.66rem;
padding: 0.05rem 0.35rem;
border-radius: 0.25rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .02em;
}
.psx-badge--entra { background: var(--blue-100); color: var(--blue-700); }
.psx-badge--ldap { background: var(--emerald-100); color: var(--emerald-800); }
.psx-badge--manual { background: var(--gray-100); color: var(--gray-700); }
.psx-empty {
padding: 0.5rem 0.75rem;
color: var(--gray-400);
font-size: 0.85rem;
}
/* Hinweis unter dem Feld, dass der Wert aus dem Verzeichnis verknüpft ist.
Sichtbarkeit steuert person-search.js über data-ps-badge. */
.psx-selected {
display: inline-flex;
align-items: center;
gap: 0.35rem;
margin-top: 0.3rem;
padding: 0.15rem 0.5rem;
border-radius: 1rem;
font-size: 0.75rem;
background: var(--color-primary-soft);
color: var(--color-primary);
}
.psx-selected-clear {
border: none;
background: none;
padding: 0;
cursor: pointer;
color: inherit;
font-size: 0.9rem;
line-height: 1;
}