/* Discord layout only. Shared controls own borders, focus, buttons and scrollbars. */
body.miki-pulse .pulse-discord-page {
  width: 100%;
  max-width: none;
}

body.miki-pulse .pulse-discord-page .discord-destination {
  display: grid;
  gap: 12px;
}

body.miki-pulse .pulse-discord-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 16px;
  padding: 4px 0 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.miki-pulse .pulse-discord-banner-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.miki-pulse .pulse-discord-banner-actions .btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding: 8px 11px;
  font-size: 12px;
  font-weight: 600;
}

body.miki-pulse .pulse-discord-banner-actions .pulse-discord-embed-toggle {
  justify-content: center;
  width: 40px;
  min-width: 40px;
  padding-inline: 0;
}

body.miki-pulse .pulse-discord-banner-actions .btn .icon {
  width: 16px;
  height: 16px;
}

body.miki-pulse .pulse-discord-count {
  display: flex;
  align-items: baseline;
  gap: 8px;
  color: #aab4ce;
  font-size: 12px;
}

body.miki-pulse .pulse-discord-count strong {
  color: #f4f5ff;
  font-size: 22px;
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

body.miki-pulse .pulse-discord-state {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #93a3c3;
  font-size: 11px;
  line-height: 1.4;
}

body.miki-pulse .pulse-discord-state.is-stale {
  background: transparent;
  color: #e4d3a9;
}

body.miki-pulse .pulse-discord-content {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  grid-template-rows: auto;
  align-items: start;
  gap: 16px;
}

body.miki-pulse .pulse-discord-embed-panel,
body.miki-pulse .pulse-discord-members-panel,
body.miki-pulse .pulse-discord-channels-panel,
body.miki-pulse .pulse-discord-account-panel {
  min-width: 0;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(145deg, #171c2c, #111723);
  box-shadow: none;
}

body.miki-pulse .pulse-discord-embed-heading h2 {
  margin: 7px 0 5px;
  color: #f3f5ff;
  font-size: 23px;
  line-height: 1.2;
}

body.miki-pulse .pulse-discord-embed-heading p,
body.miki-pulse .pulse-discord-embed-note {
  color: #9eabc7;
  font-size: 11px;
  line-height: 1.5;
}

body.miki-pulse .pulse-discord-embed-frame {
  display: flex;
  justify-content: center;
  min-width: 0;
  border: 0;
  border-radius: 12px;
  background: #121723;
}

body.miki-pulse .pulse-discord-embed-frame iframe {
  display: block;
  width: 350px;
  max-width: 100%;
  height: 500px;
  border: 0;
  border-radius: 11px;
  background: #121723;
}

body.miki-pulse .pulse-discord-embed-note {
  margin-top: auto;
}

body.miki-pulse .pulse-discord-embed-note a {
  color: #bca8ff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

body.miki-pulse .pulse-discord-members-panel {
  grid-column: 1;
  grid-row: 1;
  padding: 18px;
}

body.miki-pulse .pulse-discord-members-panel.is-empty {
  min-height: 0;
}

body.miki-pulse .pulse-discord-members-panel.is-empty .pulse-discord-members {
  min-height: 0;
}

body.miki-pulse .pulse-discord-members-panel.is-empty .pulse-discord-empty {
  padding-block: 18px;
}

body.miki-pulse .pulse-discord-side {
  display: grid;
  grid-column: 2;
  grid-row: 1;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  min-width: 0;
  align-self: start;
}

body.miki-pulse .pulse-discord-channels-panel,
body.miki-pulse .pulse-discord-account-panel {
  padding: 18px;
}

body.miki-pulse .pulse-discord-panel-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

body.miki-pulse .pulse-discord-panel-head h2,
body.miki-pulse .pulse-discord-account-panel h2 {
  margin: 0;
  color: #f3f5ff;
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: -.03em;
}

body.miki-pulse .pulse-discord-panel-head small {
  color: #8e9cba;
  font-size: 10px;
}

body.miki-pulse .pulse-discord-search {
  display: grid;
  gap: 6px;
  margin-bottom: 17px;
  color: #a7b3cf;
  font-size: 11px;
}

body.miki-pulse .pulse-discord-search input {
  width: 100%;
}

body.miki-pulse .pulse-discord-members,
body.miki-pulse .pulse-discord-channels {
  display: grid;
  align-content: start;
  gap: 0;
  max-height: 420px;
  overflow-y: auto;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.miki-pulse .pulse-discord-member,
body.miki-pulse .pulse-discord-channels > li:not(.pulse-discord-empty) {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 38px;
  padding: 7px 2px;
  color: #e9edff;
  font-size: 12px;
}

body.miki-pulse .pulse-discord-member-name {
  min-width: 0;
  overflow-wrap: anywhere;
}

body.miki-pulse .pulse-discord-member small {
  margin-left: auto;
  color: #93a1bf;
  font-size: 10px;
  white-space: nowrap;
}

body.miki-pulse .pulse-discord-presence {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-radius: 50%;
  background: #8790a9;
}

body.miki-pulse .pulse-discord-presence.is-online { background: #79ddb0; }
body.miki-pulse .pulse-discord-presence.is-idle { background: #f3ca7b; }
body.miki-pulse .pulse-discord-presence.is-dnd { background: #ef8995; }

body.miki-pulse .pulse-discord-channels .icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  color: var(--accent);
}

body.miki-pulse .pulse-discord-empty {
  display: block;
  margin: 0;
  padding: 24px 12px;
  color: #9faccc;
  font-size: 12px;
  line-height: 1.55;
  text-align: center;
}

body.miki-pulse .pulse-discord-channels .pulse-discord-empty {
  padding: 17px 0 2px;
  text-align: left;
}

body.miki-pulse .pulse-discord-account-panel p {
  margin: 12px 0 16px;
  color: #aab6d2;
  font-size: 12px;
  line-height: 1.6;
}

body.miki-pulse .pulse-discord-account-panel .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
}

body.miki-pulse .pulse-discord-account-panel .icon {
  width: 15px;
  height: 15px;
}

@media (max-width: 850px) {
  body.miki-pulse .pulse-discord-content { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
  body.miki-pulse .pulse-discord-embed-panel,
  body.miki-pulse .pulse-discord-members-panel,
  body.miki-pulse .pulse-discord-side { grid-column: auto; grid-row: auto; }
  body.miki-pulse .pulse-discord-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  body.miki-pulse .pulse-discord-page .discord-destination { gap: 10px; }
  body.miki-pulse .pulse-discord-banner { align-items: flex-start; padding-top: 2px; }
  body.miki-pulse .pulse-discord-banner-actions { width: 100%; }
  body.miki-pulse .pulse-discord-banner-actions .btn { flex: 1 1 auto; justify-content: center; min-height: 44px; }
  body.miki-pulse .pulse-discord-banner-actions .pulse-discord-embed-toggle { flex: 0 0 44px; width: 44px; min-width: 44px; }
  body.miki-pulse .pulse-discord-side { grid-template-columns: minmax(0, 1fr); }
  body.miki-pulse .pulse-discord-embed-panel { padding: 16px; }
  body.miki-pulse .pulse-discord-member small { white-space: normal; text-align: right; }
}

/* The live count, members and voice rooms are the primary layout.
   The cross-origin iframe is an optional disclosure: some browser clients
   block it even when the public same-origin roster works. */
body.miki-pulse .pulse-discord-feature {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: start;
  gap: 14px;
}

body.miki-pulse .pulse-discord-feature .pulse-discord-banner {
  grid-column: 1;
  grid-row: 1;
}

body.miki-pulse .pulse-discord-feature .pulse-discord-state {
  grid-column: 1;
  grid-row: 2;
}

body.miki-pulse .pulse-discord-feature > .pulse-discord-embed-panel {
  display: block;
  grid-column: 1;
  grid-row: auto;
  min-height: 0;
  padding: 0;
  background: transparent;
}

body.miki-pulse .pulse-discord-feature > .pulse-discord-embed-panel[hidden] {
  display: none;
}

body.miki-pulse .pulse-discord-embed-body {
  display: grid;
  gap: 14px;
  justify-content: start;
  padding: 0 0 4px;
}

body.miki-pulse .pulse-discord-embed-body > p:first-child {
  margin: 0;
  color: #aab6d2;
  font-size: 12px;
}

body.miki-pulse .pulse-discord-embed-body .pulse-discord-embed-note {
  margin: 0;
}

