.min-width {
    width: 1%;
    white-space: nowrap;
}
.preloader{
    display: none;
}
.wrapper {
    /* Full-width: no boxed frame. The panel fills the viewport and adapts to
       resolution (Maro: no centered ~1400px frame / empty side bands). Side
       breathing room comes from the clamped padding on .content-wrapper > .content
       in zenguard-theme.css. */
    max-width: none;
    margin: 0;
}

/* ── Sidebar ── */
.nav-sidebar .nav-link {
    padding-left: 0.6rem;
}

/* PL: Stare tlo boxed (ciemny radial #444->#fff) i biale .wrapper usuniete —
 *     splaszczaly cala aplikacje: biale .wrapper zakrywalo tlo strony, wiec biale
 *     karty zlewaly sie z tlem (brak kontrastu). Tlo boxed i przezroczysty wrapper
 *     definiuje teraz warstwa tokenow (zenguard-theme.css): szary gradient mockupu
 *     na body + transparentny .wrapper, dzieki czemu uniesione karty wyraznie
 *     odcinaja sie cieniem/ramka. Tu zostaje tylko neutralny fallback.
 * EN: Legacy boxed backdrop (dark #444->#fff radial) and the white .wrapper are
 *     removed — they flattened the whole app: a white .wrapper covered the page
 *     backdrop, so the white cards merged into it (no contrast). The boxed backdrop
 *     and the transparent wrapper now live in the token layer (zenguard-theme.css):
 *     the mockup's grey gradient on body + a transparent .wrapper, so raised cards
 *     clearly lift off via their shadow/border. Only a neutral fallback stays here. */
body.layout-boxed {
    background-color: #eceef2;
}
body.layout-boxed .wrapper {
    background-color: transparent;
}

.blink {
    animation: blink 0.8s infinite;
}

@keyframes blink {
    0%   { opacity: 1; transform: scale(1); }
    50%  { opacity: 0.3; transform: scale(1.1); }
    100% { opacity: 1; transform: scale(1); }
}


/* ── Peer list ──
 * PL: Karta peera jest teraz akordeonem. Widocznoscia extrasow (.peer-extra-info)
 *     steruje stan rozwiniecia karty (patrz zenguard-components.css: .peer-card),
 *     a NIE regula display:none + globalny przycisk "Show extras". Dlatego stara
 *     regula `.peer-extra-info{display:none}` zostala usunieta — w przeciwnym razie
 *     extrasy nigdy nie pokazalyby sie w rozwinietej karcie. Stary padding:0 na
 *     .callout (potrzebny dla nakladki absolutnej) tez znika: cialo karty jest
 *     teraz w normalnym ukladzie, a padding daje .peer-head/.peer-body-pad.
 * EN: The peer card is now an accordion. Extras (.peer-extra-info) visibility is
 *     driven by the card's expanded state (see zenguard-components.css: .peer-card),
 *     NOT by a display:none rule + the global "Show extras" button. The old
 *     `.peer-extra-info{display:none}` rule is therefore removed — otherwise the
 *     extras would never appear inside an expanded card. The old padding:0 on
 *     .callout (needed for the absolute overlay) is gone too: the card body is now
 *     in normal flow, padded by .peer-head / .peer-body-pad. */
#inviteTextContainer {
    border: 1px solid #ccc;
    padding: 10px;
    margin-bottom: 10px;
    background-color: #f9f9f9;
}
#inviteText {
    white-space: pre-line;
    text-align: left;
}
/* PL: .div-peer-text-information bylo absolutna nakladka z biala poswiata nad
 *     wykresem (stary layout). W akordeonie cialo karty jest w normalnym ukladzie,
 *     wiec nakladka/poswiata sa zbedne — klasa zostaje tylko jako neutralny
 *     kontener (poller jej nie dotyka, ale zachowujemy ja dla zgodnosci).
 * EN: .div-peer-text-information used to be an absolute overlay with a white wash
 *     over the chart (old layout). In the accordion the card body is in normal
 *     flow, so the overlay/wash are unnecessary — the class stays only as a neutral
 *     container (the poller does not touch it, kept for compatibility). */
.div-peer-text-information {
    width: 100%;
}
.peer-lock-icon {
    opacity: 0.7;
}


/* ── Dark mode ── */
/* Dark boxed: same fix as light. The old !important dark radial overrode the
   theme's dark gradient and the grey #343a40 wrapper re-flattened the cards.
   Neutral fallback only; the dark gradient + transparent wrapper come from the
   token layer (zenguard-theme.css). */
body.dark-mode.layout-boxed {
    background-color: #080e1a;
}
body.dark-mode.layout-boxed .wrapper {
    background-color: transparent;
}

/* PL: Stare dark-mode kolory palety (#3d8bcd/#4d9eff) oraz nadpisania pre/
 *     przycisków/linków/pills usunięte — kolory dla trybu ciemnego pochodzą
 *     teraz wyłącznie z warstwy tokenów (zenguard-theme.css), aby uniknąć
 *     konfliktu specyficzności i utraty kontrastu WCAG AA.
 * EN: Legacy dark-mode palette colors (#3d8bcd/#4d9eff) and the pre/button/
 *     link/pills overrides removed — dark-mode colors now come solely from the
 *     token layer (zenguard-theme.css) to avoid specificity conflicts and the
 *     WCAG AA contrast loss they caused. Layout/.wrapper and .div-peer-text-
 *     information rules below are intentionally preserved. */

/* PL: Dark-mode poswiata nad wykresem oraz kolory <a> w h5 usuniete: h5 nie ma
 *     juz wewnetrznego <a> (naglowek <button> wlasciciel kliku), a poswiata zniknela
 *     wraz z absolutna nakladka. Kolory tekstu karty pochodza z tokenow.
 * EN: Dark-mode chart wash and the h5 <a> colors removed: the h5 no longer holds
 *     an inner <a> (the <button> header owns the click), and the wash is gone with
 *     the absolute overlay. Card text colors come from the token layer. */
