/* SleepyZone 1.1.8 - lightweight color themes.
   Event artwork/header banners have been removed. These classes now change only
   static palette variables plus the existing per-theme viewer badge. */
body.theme-resident-evil{
  --bg:#0b090a;--accent:#c92730;--accent-strong:#ef3942;--accent-dim:rgba(201,39,48,.13);--border:#34252a;--panel:#110f12;--panel-2:#171216;--panel-3:#1d171c
}
body.theme-fallout{
  --bg:#09131c;--accent:#e7cf54;--accent-strong:#fff080;--accent-dim:rgba(231,207,84,.13);--border:#294968;--panel:#0b1520;--panel-2:#0f1d2a;--panel-3:#14263a
}
body.theme-spooktober{
  --bg:#0d0909;--accent:#ff5a24;--accent-strong:#ff874c;--accent-dim:rgba(255,90,36,.14);--border:#4a261d;--panel:#0d0909;--panel-2:#150d0d;--panel-3:#1d1110;
  --spooktober-chat-orange-bg:rgba(255,106,0,.09);--spooktober-chat-purple-bg:rgba(192,132,252,.085);
  --spooktober-chat-orange-hover:rgba(255,106,0,.14);--spooktober-chat-purple-hover:rgba(192,132,252,.135)
}

/* Halloween chat alternation is presentation-only. Alternate the message ROW
   backgrounds, not the message text. Mentions and system/moderation rows keep
   their existing special backgrounds and all username/text colors stay intact. */
body.theme-spooktober #messages>.message:not(.system-message):not(.is-mentioned):nth-child(odd){background:var(--spooktober-chat-orange-bg)}
body.theme-spooktober #messages>.message:not(.system-message):not(.is-mentioned):nth-child(even){background:var(--spooktober-chat-purple-bg)}
body.theme-spooktober #messages>.message:not(.system-message):not(.is-mentioned):nth-child(odd):hover{background:var(--spooktober-chat-orange-hover)}
body.theme-spooktober #messages>.message:not(.system-message):not(.is-mentioned):nth-child(even):hover{background:var(--spooktober-chat-purple-hover)}
body.theme-resident-evil .app-shell,body.theme-fallout .app-shell,body.theme-spooktober .app-shell{background:var(--bg)}
body.theme-resident-evil .topbar,body.theme-fallout .topbar,body.theme-spooktober .topbar{background:var(--panel);border-bottom-color:var(--border);box-shadow:0 8px 30px rgba(0,0,0,.22)}
body.theme-resident-evil .player-shell,body.theme-resident-evil .chat-panel,
body.theme-fallout .player-shell,body.theme-fallout .chat-panel,
body.theme-spooktober .player-shell,body.theme-spooktober .chat-panel{border-color:var(--border)}
body.theme-resident-evil .top-button:hover,body.theme-resident-evil .account-pill:hover,body.theme-resident-evil .top-settings-button:hover,
body.theme-fallout .top-button:hover,body.theme-fallout .account-pill:hover,body.theme-fallout .top-settings-button:hover,
body.theme-spooktober .top-button:hover,body.theme-spooktober .account-pill:hover,body.theme-spooktober .top-settings-button:hover{border-color:var(--accent);background:var(--panel-3)}

/* Compact single-choice color selector. One palette is active at a time; selecting
   SleepyZone Blue explicitly returns to the default instead of toggling cards off. */
.color-theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.site-theme-choice{width:100%;min-width:0;min-height:64px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px;border:1px solid #29323d;border-radius:9px;background:#090c10;color:var(--text);text-align:left;cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}
.site-theme-choice:hover{border-color:#3b4653;background:#0e1319}
.site-theme-choice.active{border-color:var(--accent);background:var(--panel-2);box-shadow:0 0 0 1px var(--accent-dim) inset}
.site-theme-choice:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.site-theme-choice:disabled{cursor:not-allowed;opacity:.58}
.site-theme-swatch{width:26px;height:26px;border-radius:7px;background:var(--theme-swatch);border:1px solid rgba(255,255,255,.18);box-shadow:0 0 0 1px rgba(0,0,0,.34) inset}
.site-theme-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.site-theme-copy strong{font-size:12.5px;color:#f1f4f7;line-height:1.25}
.site-theme-copy span{font-size:10.5px;color:#929daa;line-height:1.35}
.site-theme-state{min-width:38px;text-align:right;color:#6f7a87;font-size:8.5px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}
.site-theme-choice.active .site-theme-state{color:var(--accent-strong)}
.theme-settings-intro{margin-bottom:0!important}
@media(max-width:620px){.color-theme-grid{grid-template-columns:1fr}.site-theme-choice{min-height:60px}}

/* Keep invite action controls visible at all panel widths. */
.settings-card .access-list-row{min-width:0}
.settings-card .access-list-main{flex:1 1 auto;min-width:0}
.settings-card .invite-row-actions{flex:0 0 auto;margin-left:auto;display:flex;align-items:center;justify-content:flex-end;overflow:visible}
.settings-card .invite-row-actions .tiny-button{display:inline-flex!important;visibility:visible!important;opacity:1!important;min-width:64px;justify-content:center}

/* Matching viewer badges are intentionally retained. */
.site-theme-user-badge{
  display:none;width:17px;height:17px;flex:0 0 17px;margin-right:4px;vertical-align:-4px;
  background-position:center;background-size:contain;background-repeat:no-repeat;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.72));cursor:default;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none
}
body.theme-resident-evil .site-theme-user-badge{display:inline-block;background-image:url("/resident-evil-user-badge.webp")}
body.theme-fallout .site-theme-user-badge{display:inline-block;background-image:url("/fallout-user-badge.webp")}
body.theme-spooktober .site-theme-user-badge{display:inline-block;width:21px;height:21px;flex-basis:21px;margin-right:5px;vertical-align:-5px;background-image:url("/spooktober-user-badge.webp");filter:drop-shadow(0 1px 2px rgba(0,0,0,.78)) drop-shadow(0 0 3px rgba(255,92,28,.22))}
@media(max-width:560px){
  .site-theme-user-badge{width:16px;height:16px;flex-basis:16px;margin-right:3px;vertical-align:-3px}
  body.theme-spooktober .site-theme-user-badge{width:19px;height:19px;flex-basis:19px;margin-right:4px;vertical-align:-4px}
}
