/* ============================================================
   ChatBase — sitewide owner controls, visitor side (sitewide.js)
   ============================================================ */
.sw-fx { position: fixed; inset: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 99990; }

/* Shadow mute: hidden for everyone but the sender; owners see it dimmed */
.message.sw-shadow-hide { display: none !important; }
.message.sw-shadow-owner { opacity: .45; }
.message.sw-shadow-owner .message-content::before { content: '👻 shadow-muted'; display: block; font-size: 11px; color: #ff8aa0; }

/* Feature flags */
.nav-btn.sw-flag-off { display: none !important; }

/* Event + scheduled maintenance bars */
#swBars {
    position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%);
    z-index: 9000; display: grid; gap: 6px; max-width: calc(100vw - 32px); pointer-events: none;
}
.sw-bar {
    padding: 8px 16px; border-radius: 999px; font-size: 13px; color: #fff; text-align: center;
    border: 1px solid rgba(255,255,255,.18); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
    box-shadow: 0 8px 30px rgba(0,0,0,.35);
}
.sw-bar-event { background: linear-gradient(120deg, rgba(160,107,255,.55), rgba(255,95,162,.5)); }
.sw-bar-maint { background: rgba(255,180,67,.35); }
/* desktop: sit in the empty middle of the top bar, not over Save buttons / chat boxes at the bottom */
@media (min-width: 901px) { #swBars { bottom: auto; top: 32px; } }
@media (max-width: 900px) { #swBars { bottom: 84px; } }
.cb-maint-eta { margin-top: 8px; font-size: 13px; opacity: .75; }

/* Home poll tile */
.sw-poll { display: grid; gap: 8px; align-content: start; }
.sw-poll-q { margin: 2px 0 4px; font-size: 17px; line-height: 1.3; }
.sw-poll-opt {
    position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 10px 12px; border-radius: 12px; cursor: pointer; text-align: left;
    border: 1px solid var(--neo-line-hi, rgba(255,255,255,.16)); background: rgba(255,255,255,.04);
    color: var(--neo-text, #f5f5f7); font: inherit; font-size: 14px;
}
.sw-poll-opt i { position: absolute; inset: 0 auto 0 0; background: rgba(138,180,255,.18); transition: width .5s var(--neo-ease, ease); }
.sw-poll-opt span, .sw-poll-opt em { position: relative; }
.sw-poll-opt em { font-style: normal; font-size: 12.5px; color: var(--neo-dim, rgba(235,235,245,.6)); }
.sw-poll-opt.on { border-color: var(--neo-accent, #8ab4ff); }
.sw-poll-n { font-size: 12px; color: var(--neo-faint, rgba(235,235,245,.4)); }

/* Welcome pop-up */
.sw-modal {
    position: fixed; inset: 0; z-index: 99970; display: grid; place-items: center; padding: 16px;
    background: rgba(0,0,0,.55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.sw-modal-box {
    width: min(460px, 100%); padding: 28px 24px 22px; border-radius: 24px; text-align: center;
    background: var(--neo-ink, #0a0a0d); border: 1px solid var(--neo-line-hi, rgba(255,255,255,.16)); color: var(--neo-text, #f5f5f7);
}
.sw-modal-ic { font-size: 44px; }
.sw-modal-box h2 { margin: 8px 0 10px; }
.sw-modal-box p { margin: 0 0 18px; line-height: 1.5; color: var(--neo-dim, rgba(235,235,245,.7)); }

/* Limited-time shop items (rewards.js) */
.rw-limited { display: inline-block; margin-left: 4px; padding: 1px 6px; border-radius: 999px; font-size: 10.5px; font-weight: 700; color: #ffc46b; background: rgba(255,180,67,.15); }

/* 🚨 Panic lock — above everything */
#swPanic.sw-panic { z-index: 2147483000 !important; }
#swPanic .cb-maint-ic { filter: drop-shadow(0 0 18px rgba(255,59,92,.6)); }

.sw-panic-text{font-size:17px;margin:6px 0 12px;color:#ffd166}
