.room-list {
  max-height: 150px;
}

.nav-empty {
  padding: 9px 8px;
  color: #778596;
  font-size: 10px;
}

.room-list.room-list--dms {
  max-height: 260px;
  padding: 6px;
}

.dm-new-message {
  width: 100%;
  min-height: 42px;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px;
  padding: 7px 9px;
  border: 1px solid #2a3949;
  border-radius: 8px;
  background: #101923;
  color: #dce7f2;
  text-align: left;
}
.dm-new-message:hover,
.dm-new-message:focus-visible { border-color: #4a77ad; background: #152231; }
.dm-new-message > span { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:#1c3857; color:#9fc8ff; font-size:16px; }
.dm-new-message strong { min-width:0; font-size:11px; }
.dm-new-message small { color:#75879a; font-size:9px; font-weight:650; }

.dm-chip,
.dm-drawer-list .dm-chip {
  min-height: 58px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 7px 8px !important;
}
.dm-avatar {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border: 1px solid #304359;
  border-radius: 50%;
  background: #19283a;
  color: #dceaff;
  font-size: 11px;
  font-weight: 850;
}
.dm-chip-copy { min-width: 0; display: grid; gap: 3px; }
.dm-chip-head { min-width: 0; display: flex; align-items: baseline; gap: 7px; }
.dm-chip-head strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#d6e1ec; font-size:11px; }
.dm-chip-head time { margin-left:auto; color:#627386; font-size:8px; font-weight:700; white-space:nowrap; }
.dm-chip-preview { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#718193; font-size:9px; line-height:1.2; }
.dm-chip.has-unread .dm-chip-head strong { color:#fff; }
.dm-chip.has-unread .dm-chip-preview { color:#aebed0; }
.dm-chip .dm-unread-badge { align-self:center; margin-left:0; }
.dm-chip.active .dm-avatar { border-color:#4f83c0; background:#1d3652; }

.people-search {
  position: sticky;
  top: 0;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 5px 9px;
  margin: -2px 0 8px;
  padding: 4px 0 8px;
  background: linear-gradient(180deg, #0f151c 78%, rgba(15,21,28,0));
}
.people-search input {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid #2c3b4d;
  border-radius: 8px;
  background: #0b1118;
  color: #edf4fb;
  outline: none;
}
.people-search input:focus { border-color:#4f83c0; box-shadow:0 0 0 2px rgba(79,131,192,.13); }
.people-search span { color:#68798b; font-size:8px; font-weight:700; white-space:nowrap; }

.presence-dot {
  width: 7px;
  height: 7px;
  min-width: 7px;
  border-radius: 50%;
  background: #596574;
  box-shadow: none;
}

.presence-dot.online {
  background: var(--wv-positive);
  box-shadow: 0 0 7px rgba(50, 213, 131, .45);
}

.people-list {
  display: grid;
  gap: 5px;
}

.person-card {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: var(--wv-radius-md);
  background: var(--wv-panel-raised);
}

.person-card:hover {
  border-color: var(--wv-border-subtle);
  background: var(--wv-control-hover);
}

.person-avatar {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #213047;
  color: #dfeaff;
  font-size: 12px;
  font-weight: 800;
}

.person-copy {
  min-width: 0;
}

.person-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #eef3f8;
  font-size: 12px;
  font-weight: 700;
}

.person-status {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 3px;
  color: #7f8c9c;
  font-size: 9px;
}

.person-message {
  padding: 5px 8px;
  font-size: 10px;
}

@media (max-width: 850px) {
  .room-list {
    max-height: 180px;
  }
}
.person-chart-context { color: #6fa9ff; font-weight: 700; white-space: nowrap; }

.message-report-action { opacity:.72; border-color:#3a3237 !important; }
.message-report-action:hover,
.message-report-action:focus-visible { opacity:1; border-color:#8a4e58 !important; background:#28171b !important; }
.message-report-action .wv-ui-icon { opacity:.78; }
.dm-tab-alert { width:auto; min-width:15px; padding-inline:4px; box-sizing:border-box; }

.admin-tools-btn { padding: 6px 9px; border-color: #a96f26 !important; color: #ffd79a !important; background: #302213 !important; }
.admin-backdrop { position: fixed; inset: 0; z-index: 790; background: rgba(0, 0, 0, .62); }
.admin-panel { position: fixed; z-index: 800; top: 12px; right: 12px; bottom: 12px; width: min(620px, calc(100vw - 24px)); display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; border: 1px solid #445366; border-radius: 12px; background: var(--wv-panel); box-shadow: 0 24px 80px rgba(0, 0, 0, .65); }
.admin-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--wv-border-subtle); background: var(--wv-chrome); }
.admin-panel-head div { display: grid; gap: 2px; }
.admin-panel-head strong { color: var(--wv-text-strong); font-size: 15px; }
.admin-panel-head span, .admin-muted { color: #7f8d9d; font-size: 10px; }
.admin-panel-head button { width: 34px; height: 34px; }
.admin-panel-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 10px; }
.admin-panel details { margin-bottom: 8px; border: 1px solid var(--wv-border-subtle); border-radius: var(--wv-radius-md); background: #101720; }
.admin-panel summary { min-height: 42px; display: flex; align-items: center; padding: 8px 10px; cursor: pointer; color: var(--wv-text); font-size: 12px; font-weight: 750; }
.admin-panel details > button { margin: 0 10px 9px; padding: 7px 9px; }
.admin-form { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 10px 10px; }
.admin-form label { display: grid; gap: 4px; color: #8996a6; font-size: 10px; }
.admin-form input, .admin-form textarea, .admin-search input, .admin-user-card input, .admin-user-card select { width: 100%; min-width: 0; border: 1px solid var(--wv-border); border-radius: 6px; background: var(--wv-input); color: #edf3f9; padding: 8px; }
.admin-form .admin-wide { grid-column: 1 / -1; }
.admin-form button { justify-self: start; padding: 8px 11px; }
.admin-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; padding: 0 10px 10px; }
.admin-search button { padding-inline: 12px; }
.admin-results { display: grid; gap: 7px; padding: 0 10px 10px; }
.admin-user-card, .admin-report-card, .admin-room-card, .admin-action-card { display: grid; gap: 7px; padding: 9px; border: 1px solid var(--wv-border); border-radius: var(--wv-radius-md); background: var(--wv-input); color: #cbd6e2; font-size: 10px; overflow-wrap: anywhere; }
.admin-user-card-head, .admin-room-card, .admin-card-actions { display: flex; align-items: center; justify-content: space-between; gap: 7px; flex-wrap: wrap; }
.admin-rep-grant { display: grid; grid-template-columns: auto minmax(110px, 1fr) auto; align-items: center; gap: 7px; padding: 7px; border: 1px solid #28443c; border-radius: var(--wv-radius-md); background: #0b1715; }
.admin-rep-balance { color: #86e7c2; font-size: 11px; font-weight: 800; white-space: nowrap; }
.admin-rep-button { border-color: #2f705e !important; background: #14382f !important; color: #a8f6d9 !important; }
.admin-rep-grant input { min-width: 0; }
.admin-user-card strong, .admin-report-card strong { color: #f0f5fa; font-size: 12px; }
.admin-card-actions button, .admin-room-card button { padding: 6px 8px; }
.admin-danger { border-color: #7e3540 !important; background: #38191f !important; color: #ffc4cb !important; }
.admin-warning { border-color: #7d652c !important; background: #342b17 !important; color: #ffe3a1 !important; }
.admin-status { color: #e8b15d; }
.admin-mfa-details { border-color:#755d2e !important; background:#16130d !important; }
.admin-mfa-gate { display:grid; gap:9px; padding:0 10px 10px; color:#cfd8e3; font-size:10px; }
.admin-mfa-state { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; padding:8px; border:1px solid #3d4856; border-radius:8px; background:#0b1118; }
.admin-mfa-state strong { color:#f0f5fa; font-size:11px; }
.admin-mfa-state[data-state="verified"] { border-color:#2f705e; background:#0b1715; }
.admin-mfa-state[data-state="verified"] strong { color:#a8f6d9; }
.admin-mfa-state[data-state="required"] { border-color:#8b6c2d; background:#1c1609; }
.admin-mfa-copy { color:#8d9aaa; line-height:1.45; }
.admin-mfa-actions { display:flex; gap:7px; flex-wrap:wrap; }
.admin-mfa-actions button { padding:7px 10px; }
.admin-mfa-code { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
.admin-mfa-code input { min-width:0; border:1px solid var(--wv-border); border-radius:6px; background:var(--wv-input); color:#edf3f9; padding:8px; letter-spacing:.16em; font-variant-numeric:tabular-nums; }
.admin-mfa-enroll { display:grid; gap:8px; padding:9px; border:1px solid #3c4c5e; border-radius:8px; background:#0c131b; }
.admin-mfa-qr { width:min(220px,72vw); aspect-ratio:1; object-fit:contain; border-radius:8px; background:#fff; padding:8px; justify-self:center; }
.admin-mfa-secret { display:grid; gap:3px; padding:7px; border:1px dashed #49596b; border-radius:6px; background:#090d12; }
.admin-mfa-secret code { overflow-wrap:anywhere; user-select:all; color:#d9e7f7; font-size:10px; }
.admin-panel.admin-mfa-locked .admin-privileged-tool { display:none; }
.message-tools .admin-message-action { border-color: #7d652c; color: #ffd98e; }

@media (max-width: 650px) {
  .admin-panel { inset: 6px; width: auto; }
  .admin-form { grid-template-columns: 1fr; }
  .admin-form .admin-wide { grid-column: auto; }
  .admin-panel summary { min-height: 46px; font-size: 13px; }
  .admin-form input, .admin-form textarea, .admin-search input, .admin-user-card input, .admin-user-card select { min-height: 42px; font-size: 14px; }
  .admin-rep-grant { grid-template-columns: 1fr auto; }
  .admin-rep-balance { grid-column: 1 / -1; }
  .account-area .admin-tools-btn { padding-inline: 6px; font-size: 10px; }
  .admin-mfa-code { grid-template-columns:1fr; }
  .admin-mfa-code input { min-height:42px; font-size:16px; }
}

/* Staff plates + community message voting */
.role-plate { display:inline-flex;align-items:center;justify-content:center;min-height:18px;padding:1px 6px;border:1px solid;border-radius:4px;font-size:8px;font-weight:900;line-height:1;letter-spacing:.08em;white-space:nowrap;vertical-align:middle; }
.role-plate--admin { border-color:#d69a3a;background:#382711;color:#ffe0a4; }
.role-plate--mod { border-color:#5f8fc9;background:#16283d;color:#cfe6ff; }
.message-head { flex-wrap:wrap; }
.message-author { min-width:0;overflow-wrap:anywhere; }
.message-live-presence { display:inline-flex;align-items:center;gap:3px;color:var(--wv-positive);font-size:8px;font-weight:900;line-height:1;letter-spacing:.08em;white-space:nowrap; }
.message-live-dot { width:6px;height:6px;min-width:6px;border-radius:50%;background:var(--wv-positive);box-shadow:0 0 7px rgba(50,213,131,.55); }
.person-name-line,.profile-handle-line { min-width:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap; }
.message-downvote { display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:50px;min-height:32px;margin-top:5px;padding:3px 8px;border:1px solid #313c49;border-radius:999px;background:var(--wv-panel-raised);color:#8d9aab;font-size:10px;font-weight:750;touch-action:manipulation; }
.message-downvote:hover,.message-downvote:focus-visible { border-color:#5f6d7e;color:#d7e1ec;background:#17212b; }
.message-downvote.voted { border-color:#a75a5f;background:#331b20;color:#ffc3c8; }
.message-pulled { display:inline-flex;align-items:center;min-height:32px;padding:5px 9px;border:1px dashed #4d5968;border-radius:7px;background:#11171e;color:#8d99a8;font-size:11px;font-style:italic; }
.admin-promote { border-color:#4679a9 !important;background:#16314b !important;color:#d7ecff !important; }
@media (max-width:650px) {
  .role-plate { min-height:20px;padding:2px 6px;font-size:8px; }
  .message-downvote { min-height:36px;min-width:56px; }
}

/* Mobile overlays stay below the persistent Chart / Chat header. */
body[data-layout-mode="phone-portrait"] .admin-backdrop { inset: calc(42px + env(safe-area-inset-top)) 0 0; }
body[data-layout-mode="phone-landscape"] .admin-backdrop { inset: calc(36px + env(safe-area-inset-top)) 0 0; }
body[data-layout-mode="phone-portrait"] .admin-panel { top: calc(42px + env(safe-area-inset-top) + 6px); right: 6px; bottom: 6px; left: 6px; width: auto; }
body[data-layout-mode="phone-landscape"] .admin-panel { top: calc(36px + env(safe-area-inset-top) + 6px); right: 6px; bottom: 6px; left: 6px; width: auto; }


/* Transient global market-open alert: absent between sessions, visible for the existing 30-minute window. */
.global-market-open-bell {
  position: fixed;
  z-index: 120;
  top: 88px;
  right: clamp(14px, 2vw, 30px);
  min-width: 142px;
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 14px 8px 10px;
  border: 1px solid rgba(231,184,77,.72);
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(39,30,12,.94), rgba(15,20,26,.94));
  color: #fff0ad;
  font-weight: 950;
  letter-spacing: .08em;
  pointer-events: none;
  transform: rotate(-5deg);
  transform-origin: 50% 50%;
  box-shadow: 0 10px 28px rgba(0,0,0,.32), 0 0 18px rgba(255,199,65,.17), inset 0 0 14px rgba(255,215,106,.06);
  backdrop-filter: blur(5px);
  opacity: .94;
  animation: wrekt-market-open-arrive .34s ease-out both;
}
.global-market-open-bell-icon {
  display: inline-block;
  font-size: 28px;
  line-height: 1;
  transform-origin: 50% 12%;
  animation: wrekt-market-bell-ring 3.2s ease-in-out infinite;
}
.global-market-open-bell-copy {
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
  text-shadow: 0 1px 8px rgba(0,0,0,.7);
}
@keyframes wrekt-market-open-arrive {
  from { opacity: 0; transform: translateY(-8px) rotate(-8deg) scale(.94); }
  to { opacity: .94; transform: translateY(0) rotate(-5deg) scale(1); }
}
@keyframes wrekt-market-bell-ring {
  0%, 23%, 100% { transform: rotate(0deg); }
  4% { transform: rotate(-16deg); }
  8% { transform: rotate(14deg); }
  12% { transform: rotate(-11deg); }
  16% { transform: rotate(8deg); }
  20% { transform: rotate(-4deg); }
}
@media (max-width:720px) {
  .global-market-open-bell { top: 98px; right: 12px; min-width: 126px; min-height: 44px; padding: 7px 12px 7px 9px; }
  .global-market-open-bell-icon { font-size: 24px; }
  .global-market-open-bell-copy { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .global-market-open-bell,
  .global-market-open-bell-icon { animation: none; }
}
