/* Keep the launcher beside the shared back-to-top button. */
.gp-online-users-button {
    position: fixed; z-index: 1040; right: 79px; bottom: 24px;
    height: 43px; padding: 0 16px; display: inline-flex; align-items: center; gap: 9px;
    border: 0; border-radius: 12px; background: #1685ef; color: #fff;
    font-size: 13px; font-weight: 600; line-height: 1; cursor: pointer;
    box-shadow: 0 10px 24px rgba(12, 91, 169, .28);
}
.gp-online-users-button:hover, .gp-online-users-button:focus { background: #0874d5; color: #fff; }
.gp-online-users-button:focus-visible, .gp-online-users-header button:focus-visible { outline: 2px solid #1685ef; outline-offset: 3px; }
.gp-online-users-panel {
    position: fixed; z-index: 1041; right: 24px; bottom: 79px;
    width: 380px; max-width: calc(100vw - 48px); max-height: calc(100vh - 103px); max-height: calc(100dvh - 103px);
    display: flex; flex-direction: column; overflow: hidden;
    border: 1px solid #dce7f2; border-radius: 16px; background: #fff; color: #243d57;
    box-shadow: 0 16px 48px rgba(27, 50, 78, .2);
}
.gp-online-users-panel[hidden] { display: none !important; }
.gp-online-users-header { flex: none; min-height: 54px; padding: 10px 14px 10px 18px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #e5edf4; font-size: 14px; }
.gp-online-users-header button { width: 32px; height: 32px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #52708c; cursor: pointer; }
.gp-online-users-header button:hover { background: #eaf5ff; color: #0879e7; }
.gp-online-users-status { flex: none; padding: 14px 18px 8px; font-size: 12px; color: #52708c; }
.gp-online-users-status.is-error { color: #a63838; }
.gp-online-users-list { flex: 1 1 auto; min-height: 0; margin: 0; padding: 0 18px; overflow-y: auto; overscroll-behavior: contain; list-style: none; }
.gp-online-user { display: flex; align-items: center; gap: 10px; padding: 13px 0; border-bottom: 1px solid #e5edf4; }
.gp-online-user:last-child { border-bottom: 0; }
.gp-online-user-avatar { flex: none; display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: #eaf3fc; color: #34526d; font-size: 12px; font-weight: 700; }
.gp-online-user-details { flex: 1; min-width: 0; }
.gp-online-user-details strong { display: block; font-size: 13px; overflow-wrap: anywhere; }
.gp-online-user-details small { display: block; margin-top: 3px; font-size: 11px; color: #62758a; }
.gp-online-user-state { flex: none; display: flex; align-items: center; gap: 5px; font-size: 11px; color: #167448; }
.gp-online-user-state::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #23a36c; }
.gp-online-users-footer { flex: none; margin: 0; padding: 12px 18px; border-top: 1px solid #e5edf4; color: #62758a; font-size: 11px; line-height: 1.5; }
.gylet-dashboard-dark .gp-online-users-button { background: #38bdf8; color: #061527; box-shadow: 0 10px 25px rgba(0, 0, 0, .45); }
.gylet-dashboard-dark .gp-online-users-button:hover, .gylet-dashboard-dark .gp-online-users-button:focus { background: #7dd3fc; color: #04101e; }
.gylet-dashboard-dark .gp-online-users-panel { border-color: #1e3552; background: #0d1b2e; color: #edf4ff; }
.gylet-dashboard-dark .gp-online-users-header, .gylet-dashboard-dark .gp-online-user, .gylet-dashboard-dark .gp-online-users-footer { border-color: #1e3552; }
.gylet-dashboard-dark .gp-online-users-header button, .gylet-dashboard-dark .gp-online-users-status, .gylet-dashboard-dark .gp-online-user-details small, .gylet-dashboard-dark .gp-online-users-footer { color: #b7cbe0; }
.gylet-dashboard-dark .gp-online-users-header button:hover { background: #10243a; color: #38bdf8; }
.gylet-dashboard-dark .gp-online-users-status.is-error { color: #fca5a5; }
.gylet-dashboard-dark .gp-online-user-avatar { background: #10243a; color: #d7e7f7; }
.gylet-dashboard-dark .gp-online-user-state { color: #6ee7b7; }
@media (max-width: 767px) {
    .gp-online-users-button { right: 70px; bottom: 16px; height: 42px; padding: 0 12px; border-radius: 11px; }
    .gp-online-users-panel { right: 16px; bottom: 70px; max-width: calc(100vw - 32px); max-height: calc(100vh - 86px); max-height: calc(100dvh - 86px); }
}
