@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap");
.server-select {
  appearance: none;
  width: 100%;
  margin-top: 14px;
  padding: 11px 38px 11px 13px;
  border: 1px solid #3a4770;
  border-radius: 9px;
  background: linear-gradient(135deg, #202942, #151d30);
  color: #edf2f8;
  font: 600 11px Manrope;
  letter-spacing: 0.1px;
  cursor: pointer;
  outline: none;
  box-shadow:
    inset 0 1px #ffffff12,
    0 6px 18px #05081233;
  background-image:
    linear-gradient(135deg, #202942, #151d30),
    linear-gradient(45deg, transparent 50%, #a997ff 50%),
    linear-gradient(135deg, #a997ff 50%, transparent 50%);
  background-position:
    0 0,
    calc(100% - 17px) 50%,
    calc(100% - 12px) 50%;
  background-size:
    100% 100%,
    5px 5px,
    5px 5px;
  background-repeat: no-repeat;
}

.server-select:hover {
  border-color: #8874e9;
  background-image:
    linear-gradient(135deg, #252f4d, #192238),
    linear-gradient(45deg, transparent 50%, #c4b8ff 50%),
    linear-gradient(135deg, #c4b8ff 50%, transparent 50%);
}
.server-select:focus-visible {
  border-color: #a997ff;
  box-shadow:
    0 0 0 3px #a997ff2e,
    inset 0 1px #ffffff18;
}
.server-select option {
  background: #141c2a;
  color: #edf2f8;
}
.server-card .server-select + .server-name {
  margin-top: 13px;
}
.server-select {
  min-height: 44px;
  border-color: #596a9d;
  font-weight: 700;
  letter-spacing: 0.25px;
  box-shadow:
    inset 0 1px #ffffff22,
    0 4px 0 #0a0f18,
    0 9px 21px #05081266;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    filter 0.15s ease;
}
.server-select:hover {
  transform: translateY(-2px);
  filter: brightness(1.12);
  box-shadow:
    inset 0 1px #ffffff2b,
    0 6px 0 #0a0f18,
    0 13px 24px #05081277;
}
.server-select:active {
  transform: translateY(2px);
  box-shadow:
    inset 0 2px 5px #060a12cc,
    0 2px 0 #0a0f18,
    0 5px 12px #05081255;
}
:root {
  color-scheme: dark;
  --bg: #0b1019;
  --panel: #111925;
  --panel2: #151f2d;
  --border: #202c3c;
  --text: #edf2f8;
  --muted: #7f8da0;
  --green: #56dfa2;
  --purple: #a38bff;
  --red: #ff7785;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background:
    radial-gradient(ellipse at 50% -20%, #19253a 0, transparent 52%), var(--bg);
  color: var(--text);
  font-family:
    Manrope,
    Segoe UI,
    sans-serif;
  min-height: 100vh;
}
.shell {
  max-width: 1180px;
  margin: auto;
  padding: 0 32px;
}
.topbar {
  height: 78px;
  border-bottom: 1px solid #ffffff0c;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  color: var(--text);
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 1.25px;
  text-decoration: none;
}
.brand-mark {
  display: grid;
  place-items: center;
  width: 40px;
  height: 29px;
  border-radius: 8px;
  background: #7b65e9;
  color: white;
  font-size: 16px;
  box-shadow: 0 4px 20px #8d76ff44;
}
.muted {
  color: #758198;
  margin-left: 4px;
}
.live-label,
.history-badge {
  font:
    10px "DM Mono",
    monospace;
  letter-spacing: 1px;
  color: #8e9bad;
}
.live-label i {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
  margin-right: 8px;
  box-shadow: 0 0 12px #56dfa288;
}
.hero {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 48px;
  align-items: center;
  padding: 54px 0 37px;
}
.eyebrow {
  font:
    10px "DM Mono",
    monospace;
  color: #8997aa;
  letter-spacing: 1.7px;
  margin: 0 0 12px;
}
.hero h1 {
  font-size: clamp(36px, 5.3vw, 58px);
  line-height: 1.1;
  letter-spacing: -2.8px;
  margin: 0;
  font-weight: 800;
}
.hero h1 span {
  color: #a28dff;
}
.intro {
  max-width: 555px;
  color: #8d9aae;
  font-size: 14px;
  line-height: 1.8;
  margin: 18px 0 0;
}
.server-card {
  background: linear-gradient(140deg, #172233, #111925);
  border: 1px solid #29364a;
  border-radius: 14px;
  padding: 20px 22px;
  box-shadow: 0 12px 48px #0002;
}
.server-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
}
.server-icon {
  font-size: 18px;
  color: #ac98ff;
}
.server-tag {
  font:
    9px "DM Mono",
    monospace;
  color: #7d8ca0;
  letter-spacing: 1.5px;
}
.server-name {
  font-size: 17px;
  font-weight: 700;
  margin: 15px 0 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.server-link {
  color: #a997ff;
  text-decoration: none;
  font-size: 11px;
}
.server-meta {
  border-top: 1px solid #ffffff10;
  margin-top: 17px;
  padding-top: 12px;
  display: flex;
  justify-content: space-between;
  color: #738197;
  font-size: 11px;
}
.server-meta strong {
  font:
    11px "DM Mono",
    monospace;
  color: #cbd4e0;
}
.status-strip {
  height: 68px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #101722;
  display: flex;
  align-items: center;
  padding: 0 17px;
  gap: 30px;
}
.status-item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 145px;
}
.status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #69778a;
}
.status-dot.ok {
  background: var(--green);
  box-shadow: 0 0 10px #56dfa288;
}
.status-dot.error {
  background: var(--red);
}
.status-icon {
  color: #8d7ce0;
  font-size: 16px;
}
.status-item div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.status-item small,
.stat-card small {
  font:
    9px "DM Mono",
    monospace;
  letter-spacing: 1px;
  color: #77869a;
}
.status-item strong {
  font-size: 11px;
  font-weight: 600;
}
.refresh-button {
  margin-left: auto;
  border: 1px solid #334259;
  border-radius: 8px;
  background: #192434;
  color: #dce4ef;
  padding: 9px 13px;
  font: 600 11px Manrope;
  cursor: pointer;
}
.refresh-button:hover {
  background: #202d41;
}
.refresh-button span {
  font-size: 15px;
  margin-left: 8px;
  color: #a994ff;
}
.refresh-button:disabled {
  opacity: 0.55;
  cursor: wait;
}
.stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 13px;
  margin: 17px 0;
}
.stat-card {
  min-height: 96px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px;
  background: #111925;
  border: 1px solid var(--border);
  border-radius: 11px;
  position: relative;
}
.stat-icon {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  font-size: 18px;
  background: #a38bff18;
}
.stat-icon.purple {
  color: var(--purple);
}
.stat-icon.green {
  color: var(--green);
  background: #56dfa214;
}
.stat-icon.red {
  color: var(--red);
  background: #ff778514;
}
.stat-card > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.stat-card strong {
  font-size: 22px;
  line-height: 1;
  font-weight: 700;
}
.stat-caption {
  position: absolute;
  right: 15px;
  bottom: 17px;
  color: #69778a;
  font-size: 10px;
}
.content-grid {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 14px;
}
.panel {
  background: #111925;
  border: 1px solid var(--border);
  border-radius: 12px;
  min-width: 0;
}
.panel-heading {
  min-height: 78px;
  padding: 17px 19px;
  border-bottom: 1px solid #ffffff0b;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.panel-heading .eyebrow {
  margin-bottom: 6px;
}
.panel-heading h2 {
  font-size: 16px;
  margin: 0;
  font-weight: 700;
  letter-spacing: -0.3px;
}
.count-pill {
  font:
    10px "DM Mono",
    monospace;
  border: 1px solid #313b4d;
  color: #a4b0c0;
  padding: 4px 7px;
  border-radius: 6px;
  vertical-align: 2px;
  margin-left: 5px;
}
.search {
  display: flex;
  align-items: center;
  gap: 7px;
  background: #0d141e;
  border: 1px solid #263244;
  border-radius: 7px;
  padding: 7px 9px;
  color: #718098;
}
.resource-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
}
.category-filter {
  max-width: 145px;
  border: 1px solid #263244;
  border-radius: 7px;
  background: #0d141e;
  color: #aebbd0;
  padding: 8px 9px;
  outline: 0;
  font:
    10px Manrope,
    sans-serif;
}
.category-filter:focus,
.search:focus-within {
  border-color: #6758a8;
}
.search input {
  width: 130px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: 11px Manrope;
}
.search input::placeholder {
  color: #68768a;
}
.resource-list {
  padding: 12px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  max-height: 428px;
  overflow: auto;
  align-content: start;
  align-items: start;
}
.resource-chip {
  min-width: 0;
  background: #151f2c;
  border: 1px solid #1e2b3b;
  border-radius: 6px;
  padding: 7px 8px;
  color: #bac5d3;
  font:
    10px "DM Mono",
    monospace;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.resource-chip.added {
  border-color: #31845f;
  color: #81e8b6;
  background: #163126;
}
.resource-chip.removed {
  border-color: #8b4752;
  color: #ffabb4;
  background: #341d25;
}
.empty {
  color: #718096;
  font-size: 11px;
  line-height: 1.8;
  padding: 20px 8px;
  grid-column: 1/-1;
}
.list-footer {
  padding: 10px 15px;
  border-top: 1px solid #ffffff0b;
  color: #77869a;
  font-size: 10px;
}
.history-badge {
  font-size: 9px;
  color: var(--green);
  border: 1px solid #285440;
  background: #153024;
  padding: 5px 7px;
  border-radius: 5px;
}
.history-list {
  padding: 3px 17px;
  max-height: 490px;
  overflow: auto;
}
.history-entry {
  display: grid;
  grid-template-columns: 17px 1fr;
  gap: 11px;
  padding: 16px 0;
  border-bottom: 1px solid #ffffff0a;
}
.history-entry:last-child {
  border-bottom: 0;
}
.timeline-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #9c86ff;
  margin: 4px auto 0;
  box-shadow: 0 0 10px #9c86ff55;
}
.history-time {
  font:
    9px "DM Mono",
    monospace;
  color: #718097;
}
.history-title {
  font-size: 11px;
  font-weight: 700;
  margin: 5px 0 8px;
}
.change-lines {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.change-line {
  font:
    10px "DM Mono",
    monospace;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.change-line.add {
  color: var(--green);
}
.change-line.remove {
  color: var(--red);
}
.discord-state {
  font-size: 9px;
  color: #728198;
  margin-top: 8px;
}
.ai-summary {
  margin-top: 11px;
  padding: 10px 12px;
  border: 1px solid #3b3261;
  border-radius: 8px;
  background: #17152a;
  color: #c9c1ff;
  font-size: 10px;
  line-height: 1.6;
}
.ai-summary span {
  display: block;
  margin-bottom: 4px;
  color: #9c86ff;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ai-summary.error {
  border-color: #704a2d;
  background: #2a201b;
  color: #ffd0a1;
}
.ai-summary.error span {
  color: #ffbd7b;
}
.ai-report {
  display: grid;
  gap: 10px;
}
.ai-overview {
  margin: 0;
  color: #d9d3ff;
  line-height: 1.65;
}
.ai-change-group {
  display: grid;
  gap: 7px;
}
.ai-change-group h3 {
  margin: 3px 0 0;
  color: #8f9cb0;
  font-size: 9px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.ai-change {
  padding: 9px 10px;
  border: 1px solid #29364a;
  border-radius: 7px;
  background: #111a27;
}
.ai-change-group.added .ai-change {
  border-left: 2px solid var(--green);
}
.ai-change-group.removed .ai-change {
  border-left: 2px solid var(--red);
}
.ai-change strong {
  color: #e5eaf2;
  font:
    10px "DM Mono",
    monospace;
  overflow-wrap: anywhere;
}
.ai-category {
  display: inline-block;
  margin-left: 8px;
  padding: 3px 6px;
  border: 1px solid #443970;
  border-radius: 999px;
  background: #211d38;
  color: #c6bbff;
  font-size: 8px;
  vertical-align: 1px;
}
.ai-change p {
  margin: 5px 0 0;
  color: #9eacbf;
  font-size: 9px;
  line-height: 1.55;
}
.ai-disclaimer {
  max-width: 620px;
  margin: 7px 0 0;
  color: #8e8572;
  font-size: 10px;
  line-height: 1.5;
}
.ai-disclaimer::before {
  content: "ⓘ";
  margin-right: 6px;
  color: var(--gold);
}
footer {
  display: flex;
  justify-content: space-between;
  padding: 23px 2px 28px;
  color: #647287;
  font:
    9px "DM Mono",
    monospace;
  letter-spacing: 0.3px;
}
@media (max-width: 760px) {
  .shell {
    padding: 0 17px;
  }
  .hero {
    grid-template-columns: 1fr;
    gap: 25px;
    padding-top: 38px;
  }
  .status-strip {
    height: auto;
    padding: 14px;
    flex-wrap: wrap;
    gap: 16px;
  }
  .status-item {
    min-width: calc(50% - 12px);
  }
  .refresh-button {
    margin: 0;
  }
  .stats {
    grid-template-columns: 1fr;
  }
  .stat-card {
    min-height: 78px;
  }
  .content-grid {
    grid-template-columns: 1fr;
  }
  .resource-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .resource-tools {
    width: 100%;
  }
  .category-filter {
    max-width: 48%;
    flex: 1 1 130px;
  }
  .search {
    flex: 1 1 130px;
  }
  .hero h1 {
    letter-spacing: -1.8px;
  }
  .stat-caption {
    right: 16px;
  }
  footer {
    gap: 15px;
    flex-wrap: wrap;
  }
}

/* Premium black and gold overrides */
:root {
  --bg: #090a0b;
  --panel: #111214;
  --panel2: #171819;
  --border: #2e2b24;
  --text: #f3efe6;
  --muted: #89857b;
  --green: #b8a16a;
  --purple: #c4a968;
  --red: #d47b64;
  --gold: #c5a96a;
  --gold-bright: #e2c987;
}
body {
  background:
    radial-gradient(ellipse at 50% -25%, #302818 0, transparent 48%),
    linear-gradient(180deg, #0b0c0d 0%, #090a0b 100%);
}
.topbar {
  border-bottom-color: #c5a96a26;
}
.topbar-right {
  display: flex;
  align-items: center;
  gap: 22px;
}
.community-links {
  display: flex;
  align-items: center;
  gap: 15px;
}
.community-links a {
  color: #a99876;
  font:
    10px "DM Mono",
    monospace;
  text-decoration: none;
  transition: color 0.15s ease;
}
.community-links a:hover {
  color: var(--gold-bright);
}
.fan-art-badge {
  padding: 5px 8px;
  border: 1px solid #80632f;
  border-radius: 999px;
  background: #2a2215;
  color: #e2c987;
  font:
    9px "DM Mono",
    monospace;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.brand-mark {
  background: linear-gradient(135deg, #e2c987, #8d6e32);
  color: #17130a;
  box-shadow: 0 4px 24px #c5a96a33;
}
.brand,
.muted,
.eyebrow {
  color: var(--gold-bright);
}
.muted {
  opacity: 0.62;
}
.hero h1 span,
.server-icon,
.server-link,
.server-meta strong {
  color: var(--gold-bright);
}
.status-strip {
  border-color: #c5a96a38;
  background: #111214cc;
  box-shadow: 0 14px 38px #0006;
}
.status-item small,
.stat-card small {
  color: #a99876;
}
.server-card,
.panel,
.stat-card {
  background: linear-gradient(145deg, #151617, #101112);
  border-color: #c5a96a38;
  box-shadow:
    0 18px 55px #0008,
    inset 0 1px #ffffff08;
}
.server-select,
.category-filter,
.search input {
  border-color: #8d713a;
  background: linear-gradient(135deg, #211d15, #141414);
  color: #f3ead5;
}
.server-select:hover,
.server-select:focus-visible,
.category-filter:focus,
.search:focus-within {
  border-color: var(--gold-bright);
  box-shadow: 0 0 0 3px #c5a96a24;
}
.server-select-wrap { position:relative; display:block; }
.server-select-wrap .server-select { width:100%; padding-left:28px; cursor:pointer; }
.server-select-arrow { position:absolute; left:10px; top:50%; z-index:1; transform:translateY(-55%); color:var(--gold-bright); font-size:16px; pointer-events:none; }
.server-select option,
.category-filter option {
  background: #151515;
  color: #f3ead5;
}
.player-summary {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 14px;
  color: #c9b98f;
  font:
    11px "DM Mono",
    monospace;
}
.player-summary strong {
  color: var(--gold-bright);
  font-size: 17px;
}
.player-capacity {
  color: #887d68;
  font-size: 10px;
}
.player-pulse {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 10px #c5a96a99;
}
.player-chart {
  margin-top: 14px;
  padding: 10px 11px 8px;
  border: 1px solid #3d3525;
  border-radius: 9px;
  background: #0d0e0f;
}
.player-history-panel {
  margin-top: 14px;
}
.player-history-panel .player-chart {
  margin-top: 0;
  padding: 16px 18px 14px;
}
.player-chart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 7px;
  color: #8e8065;
  font:
    9px "DM Mono",
    monospace;
  letter-spacing: 0.08em;
}
.player-chart-title {
  color: #eee6d5;
  font:
    600 14px "Manrope",
    sans-serif;
  letter-spacing: 0;
}
.player-chart-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}
.player-chart-controls > span {
  color: #665c4b;
  letter-spacing: 0;
  white-space: nowrap;
}
.player-range {
  display: flex;
  gap: 5px;
  margin-bottom: 0;
}
.player-range-button {
  padding: 4px 7px;
  border: 1px solid #403824;
  border-radius: 5px;
  background: #151515;
  color: #928264;
  font:
    9px "DM Mono",
    monospace;
  cursor: pointer;
  box-shadow: none;
}
.player-range-button:hover,
.player-range-button.active {
  border-color: #a78645;
  background: #2a2215;
  color: #e2c987;
}
.player-chart {
  position: relative;
}
.player-chart svg {
  display: block;
  width: 100%;
  height: 220px;
  overflow: visible;
}
.chart-grid-line {
  stroke: #2b2a27;
  stroke-width: 0.45;
  vector-effect: non-scaling-stroke;
}
.chart-axis-label {
  fill: #625e57;
  font:
    6px "DM Mono",
    monospace;
  letter-spacing: -0.02em;
  pointer-events: none;
  user-select: none;
}
.chart-time-label {
  fill: #625e57;
  font-size: 6px;
  letter-spacing: -0.03em;
  user-select: none;
}
.chart-hover-line {
  stroke: #776542;
  stroke-width: 0.65;
  stroke-dasharray: 2 2;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}
.chart-hover-dot {
  fill: #e2c987;
  stroke: #17130b;
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}
.player-point {
  pointer-events: all;
  cursor: crosshair;
}
.player-tooltip {
  position: absolute;
  left: 50%;
  bottom: 7px;
  z-index: 2;
  transform: translate(-50%, 4px);
  padding: 6px 8px;
  border: 1px solid #80632f;
  border-radius: 6px;
  background: #211b11;
  color: #f3ead5;
  font:
    9px "DM Mono",
    monospace;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.12s ease,
    transform 0.12s ease;
}
.player-tooltip.visible {
  opacity: 1;
  transform: translate(-50%, 0);
}
button,
.ai-retry {
  border-color: #a78645;
  background: linear-gradient(135deg, #c5a96a, #8c6b2f);
  color: #17130b;
  box-shadow: 0 5px 18px #c5a96a22;
}
button:hover,
.ai-retry:hover {
  filter: brightness(1.12);
  border-color: var(--gold-bright);
}
.refresh-button {
  border-color: #a78645;
  background: linear-gradient(135deg, #c5a96a, #8c6b2f);
  color: #17130b;
  box-shadow: 0 5px 18px #c5a96a22;
}
.refresh-button:hover {
  background: linear-gradient(135deg, #e2c987, #a27d35);
  border-color: var(--gold-bright);
}
.refresh-button span {
  color: #17130b;
}
.resource-chip {
  background: #181818;
  border-color: #3d3525;
}
.resource-chip:hover {
  border-color: var(--gold);
  color: var(--gold-bright);
}
.resource-card { width:100%; min-height:42px; text-align:left; display:flex; flex-wrap:wrap; align-items:center; gap:5px 10px; cursor:pointer; }
.resource-card-title { font:12px "DM Mono",monospace; color:#e8dcc0; }
.resource-card-category { color:#8f846e; font:8px "DM Mono",monospace; margin-left:auto; padding:3px 6px; border:1px solid #393329; border-radius:4px; }
.resource-card-details { display:none; flex-basis:100%; padding:10px 2px 2px; margin-top:4px; border-top:1px solid #ffffff0b; color:#a99f8c; font-size:11px; line-height:1.55; }
.resource-card.open .resource-card-details { display:grid; gap:5px; }
.resource-card-details strong { color:#c5a96a; font-size:9px; letter-spacing:.06em; }
.resource-card-details a { color:#d8b45d; width:max-content; text-decoration:none; }
.resource-card-details a:hover { color:#f0d995; text-decoration:underline; }
.resource-modal[hidden] { display:none; }
.resource-modal { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:20px; }
.resource-modal-backdrop { position:absolute; inset:0; background:#050505b8; backdrop-filter:blur(4px); }
.resource-modal-card { position:relative; width:min(480px,100%); padding:24px; border:1px solid #c5a96a66; border-radius:14px; background:#151617; box-shadow:0 24px 80px #000b; }
.resource-modal-card h2 { margin:4px 0 10px; color:#f2e7cc; font:600 20px "Manrope",sans-serif; overflow-wrap:anywhere; }
.resource-modal-close { position:absolute; top:10px; right:12px; width:auto; margin:0; padding:2px 8px; border:0; background:transparent; color:#a99876; font-size:22px; box-shadow:none; }
.resource-modal-close:hover { color:#f2d68f; }
.resource-modal-category { display:inline-block; padding:4px 7px; border:1px solid #51452f; border-radius:5px; color:#d8b45d; font:10px "DM Mono",monospace; }
.resource-modal-text { margin:18px 0; color:#c2b8a5; font-size:13px; line-height:1.65; }
.resource-modal-link { color:#d8b45d; font-size:12px; text-decoration:none; }
.resource-modal-link:hover { text-decoration:underline; }
.resource-submit-note { margin:18px 0 0; padding-top:12px; border-top:1px solid #ffffff0b; color:#817968; font-size:11px; line-height:1.5; }
.resource-submit-note a { color:#d8b45d; text-decoration:none; }
.resource-submit-note a:hover { text-decoration:underline; }
.resource-submit-form { display:grid; gap:7px; margin-top:10px; }
.resource-submit-form input,.resource-submit-form textarea { width:100%; box-sizing:border-box; padding:8px; border:1px solid #393329; border-radius:6px; background:#101112; color:#eee6d5; font:11px "Manrope",sans-serif; }
.resource-submit-form button { width:max-content; margin:0; padding:7px 10px; font-size:11px; }
.resource-submit-form small { color:#a99876; }
.site-toast { position:fixed; right:20px; bottom:20px; z-index:60; max-width:360px; padding:12px 15px; border:1px solid #c5a96a88; border-radius:9px; background:#211b11; color:#f0dfb4; box-shadow:0 14px 40px #0009; font-size:12px; opacity:0; transform:translateY(12px); pointer-events:none; transition:.2s ease; }
.site-toast.visible { opacity:1; transform:translateY(0); }
.notification-sound-button { padding:8px 11px; border:1px solid #51452f; border-radius:7px; background:#151617; color:#bca875; font:10px "DM Mono",monospace; cursor:pointer; box-shadow:0 5px 18px #0008; }
.notification-sound-button:hover { border-color:#c5a96a; color:#e2c987; }
.notification-widget { position:fixed; right:20px; bottom:20px; z-index:59; display:grid; justify-items:end; gap:8px; }
.notification-settings { width:min(290px,calc(100vw - 32px)); padding:13px; border:1px solid #51452f; border-radius:9px; background:#151617; box-shadow:0 14px 40px #000b; }
.notification-settings[hidden] { display:none; }
.notification-settings-title { margin-bottom:9px; color:#e4d7b8; font-size:11px; font-weight:700; }
.notification-setting-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 0; border-top:1px solid #ffffff10; }
.notification-setting-row strong,.notification-setting-row small { display:block; }
.notification-setting-row strong { color:#d2c8b2; font-size:10px; }
.notification-setting-row small { max-width:205px; margin-top:4px; color:#918977; font-size:9px; line-height:1.4; }
.notification-setting-row button,.notification-setting-sound { flex:0 0 auto; padding:6px 9px; border:1px solid #51452f; border-radius:6px; background:#211c13; color:#d9bd79; font:9px "DM Mono",monospace; cursor:pointer; }
.notification-setting-row button:hover,.notification-setting-sound:hover { border-color:#c5a96a; }
.notification-setting-row button:disabled { opacity:.55; cursor:wait; }
.notification-setting-sound { width:100%; margin-top:7px; text-align:left; }
.count-pill,
.history-badge {
  border-color: #80632f;
  background: #2a2215;
}
.search {
  border-color: #5d4a2b;
  background: #121212;
}
.search input::placeholder {
  color: #887d68;
}
.stat-icon.purple,
.stat-icon.green {
  color: var(--gold-bright);
  background: #c5a96a16;
}
.live-label i {
  background: var(--gold);
  box-shadow: 0 0 12px #c5a96a88;
}
.history-badge {
  color: var(--gold);
}
.player-history-panel {
  border: 0;
  background: transparent;
  box-shadow: none;
  margin-bottom: 14px;
}
.player-history-panel .panel-heading {
  display: none;
}
.player-history-panel .player-chart {
  padding: 16px 18px 10px;
  border: 1px solid #c5a96a38 !important;
  border-radius: 12px !important;
  background: #111214cc !important;
  box-shadow: 0 14px 38px #0006 !important;
}
.player-history-panel + .status-strip { margin-top: 14px !important; }
.player-chart-head {
  margin-bottom: 12px;
}
.player-history-panel .player-chart svg {
  height: 180px;
}
.player-range-button {
  padding: 5px 8px;
  border-color: #282621;
  border-radius: 4px;
  background: transparent;
  color: #777064;
}
.player-range-button:hover,
.player-range-button.active {
  border-color: #66552f;
  background: #1b1915;
  color: #d8b45d;
}
.chart-grid-line {
  stroke: #262626;
}
.chart-axis-label {
  fill: #625e57;
}
.chart-hover-line {
  stroke: #806b40;
  stroke-dasharray: 2 2;
}
.player-tooltip {
  padding: 5px 7px;
  border: 1px solid #4f432d;
  border-radius: 4px;
  background: #171614ef;
  color: #d9c99e;
  font-size: 9px;
  box-shadow: 0 8px 20px #0007;
}
.chart-hover-zone {
  cursor: crosshair;
}
.streamer-roster-panel { margin: 18px 0 22px; padding: 18px; }
.streamer-roster-heading { margin-bottom: 4px; }
.streamer-roster-note { margin: 0 0 14px; color: var(--muted); font-size: 11px; }
.streamer-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; max-height:470px; overflow:auto; padding:2px; scrollbar-color:#5e4d2e #111214; }
.streamer-entry { min-width:0; min-height:54px; display:flex; align-items:center; gap:9px; padding:8px 10px; border:1px solid #2c2a24; border-radius:8px; background:#111214; color:inherit; text-decoration:none; transition:opacity .15s,border-color .15s,background .15s,box-shadow .15s; }
.streamer-entry:hover { border-color:#66552f; background:#1a1915; }
.streamer-entry.is-live { border-color:#315a43; background:linear-gradient(115deg,#16271e,#121714); box-shadow:inset 2px 0 #52d28b,0 0 15px #38bf6d0b; }
.streamer-entry.is-priority { border-color:#80652f; }
.streamer-entry.is-priority.is-live { border-color:#52a875; box-shadow:inset 2px 0 #52d28b,0 0 0 1px #c5a96a40; }
.streamer-entry.is-live:hover { border-color:#53d48c; box-shadow:inset 2px 0 #52d28b,0 0 18px #38bf6d22; }
.streamer-entry.is-offline { opacity:.48; filter:saturate(.55); }
.streamer-entry.is-offline:hover { opacity:.82; }
.streamer-entry.is-unknown { opacity:.68; }
.streamer-avatar { width:30px; height:30px; flex:0 0 30px; border-radius:50%; object-fit:cover; background:#25231e; }
.streamer-avatar-fallback { display:grid; place-items:center; border:1px solid #55472d; color:#d8bd7a; background:linear-gradient(145deg,#2b261b,#151515); font:600 12px Manrope,sans-serif; }
.streamer-entry-copy { min-width:0; flex:1; display:grid; gap:3px; }
.streamer-entry-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#e4ddce; font-size:11px; font-weight:600; }
.streamer-entry-meta { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#817968; font:9px "DM Mono",monospace; }
.streamer-viewers { display:flex; align-items:center; gap:5px; color:#74e29f; white-space:nowrap; font:10px "DM Mono",monospace; }
.streamer-viewers i { width:6px; height:6px; border-radius:50%; background:#4fdb89; box-shadow:0 0 9px #4fdb89; }
.streamer-offline-label,.streamer-unknown-label { color:#706c62; white-space:nowrap; font:8px "DM Mono",monospace; }
.streamer-unknown-label { color:#b49a61; }
.streamer-entry-arrow { color:#c5a96a; }
.streamer-roster-updated { margin-top:10px; color:#777064; text-align:right; font:9px "DM Mono",monospace; }
@media(max-width:900px) { .streamer-groups { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .streamer-roster-panel { padding:13px; } .streamer-groups { grid-template-columns:1fr; max-height:430px; } }
@media (max-width: 760px) {
  .topbar-right {
    gap: 10px;
  }
  .community-links {
    gap: 8px;
  }
  .community-links a {
    font-size: 9px;
  }
  .live-label {
    display: none;
  }
  .fan-art-badge {
    font-size: 8px;
    padding: 4px 6px;
  }
  .player-chart-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
  .player-chart-controls {
    width: 100%;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px;
  }
  .player-chart svg {
    height: 160px;
  }
}
