/* Project Heaven visual patch for txAdmin panel. CSS-only and safe to remove. */
:root {
  --ph-void: #050806;
  --ph-ink: #07110b;
  --ph-panel: #0c1510;
  --ph-panel-2: #101c14;
  --ph-line: #263528;
  --ph-line-soft: rgba(203, 171, 83, 0.18);
  --ph-gold: #d5b45f;
  --ph-gold-strong: #f0cf78;
  --ph-green: #2ad77a;
  --ph-green-soft: rgba(42, 215, 122, 0.16);
  --ph-text: #f5f0de;
  --ph-muted: #a7b29d;
  --ph-success-bg: #103d22;
  --ph-success-text: #ddffe9;
  --ph-warning-bg: #4a3510;
  --ph-warning-text: #fff0b8;
  --ph-danger-bg: #57181f;
  --ph-danger-text: #ffe6e9;
  --ph-danger: #ff6b6b;
  --radius: 0.5rem;
}

.dark {
  --background: 150 28% 3.2%;
  --foreground: 48 35% 93%;
  --card: 145 28% 7.5%;
  --card-foreground: 48 35% 93%;
  --popover: 145 30% 6.5%;
  --popover-foreground: 48 35% 93%;
  --primary: 44 74% 66%;
  --primary-foreground: 148 42% 5%;
  --secondary: 143 19% 14%;
  --secondary-foreground: 48 30% 89%;
  --muted: 145 18% 12%;
  --muted-foreground: 82 13% 66%;
  --accent: 142 67% 50%;
  --accent-foreground: 145 42% 4%;
  --border: 145 16% 20%;
  --input: 144 18% 16%;
  --ring: 44 74% 66%;
  --warning: 44 74% 66%;
  --warning-inline: 44 74% 66%;
  --success: 142 67% 50%;
  --success-inline: 142 67% 50%;
  color-scheme: dark;
}

html {
  scrollbar-color: rgba(213, 180, 95, 0.42) rgba(5, 8, 6, 0.95);
}

.dark body {
  background:
    radial-gradient(circle at 12% 0%, rgba(42, 215, 122, 0.14), transparent 28rem),
    radial-gradient(circle at 88% 12%, rgba(213, 180, 95, 0.14), transparent 30rem),
    linear-gradient(rgba(213, 180, 95, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(42, 215, 122, 0.025) 1px, transparent 1px),
    var(--ph-void);
  background-size: auto, auto, 42px 42px, 42px 42px, auto;
  color: var(--ph-text);
}

.dark body::before,
.dark body::after {
  position: fixed;
  pointer-events: none;
  content: "";
}

.dark body::before {
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03), transparent 13rem),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 4px);
  opacity: 0.62;
}

.dark body::after {
  right: 1.25rem;
  bottom: 1rem;
  z-index: 0;
  width: min(22vw, 220px);
  aspect-ratio: 1;
  background: url("./img/project-heaven-logo.png") center / contain no-repeat;
  filter: drop-shadow(0 0 28px rgba(213, 180, 95, 0.26));
  opacity: 0.075;
}

.dark #root {
  position: relative;
  z-index: 1;
  min-height: 100vh;
}

.dark .pattern-dots {
  background-image: radial-gradient(circle, rgba(213, 180, 95, 0.18) 1px, transparent 1px);
}

.dark .tx-sidebar,
.dark [class~="bg-card"],
.dark [class~="bg-card/50"],
.dark [class~="dark:bg-card"],
.dark [class~="dark:bg-card/50"],
.dark [class~="bg-popover"],
.dark [class~="dark:bg-popover"],
.dark [class~="bg-muted"],
.dark [class~="bg-muted/65"],
.dark [class~="dark:bg-muted"],
.dark [class~="dark:bg-muted/65"],
.dark [role="dialog"],
.dark [data-radix-popper-content-wrapper] > * {
  border-color: rgba(213, 180, 95, 0.16) !important;
  background-color: rgba(9, 18, 12, 0.88) !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.34), inset 0 1px rgba(255, 255, 255, 0.035);
  backdrop-filter: saturate(125%) blur(10px);
}

.dark .tx-sidebar {
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(213, 180, 95, 0.08), transparent 8rem),
    rgba(7, 14, 10, 0.92) !important;
}

.dark .tx-sidebar::before {
  display: block;
  width: calc(100% - 1.5rem);
  height: 2.9rem;
  margin: 0.7rem 0.75rem 0.45rem;
  border: 1px solid rgba(213, 180, 95, 0.18);
  border-radius: 8px;
  background:
    url("./img/project-heaven-logo.png") 0.7rem center / 2rem 2rem no-repeat,
    linear-gradient(90deg, rgba(213, 180, 95, 0.12), rgba(42, 215, 122, 0.035));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.05), 0 0 18px rgba(42, 215, 122, 0.08);
  content: "";
}

.dark a:not([class~="text-destructive"]):not([class~="text-destructive-inline"]):not([class~="dark:text-destructive"]):not([class~="dark:text-destructive-inline"]),
.dark button:not([disabled]) svg,
.dark [class~="text-primary"],
.dark [class~="dark:text-primary"],
.dark [class~="text-warning"],
.dark [class~="text-warning-inline"],
.dark [class~="dark:text-warning"],
.dark [class~="dark:text-warning-inline"] {
  text-shadow: 0 0 16px rgba(213, 180, 95, 0.14);
}

.dark button,
.dark [role="button"],
.dark input,
.dark select,
.dark textarea,
.dark [cmdk-input] {
  border-radius: 6px !important;
}

.dark input,
.dark select,
.dark textarea,
.dark [role="combobox"] {
  border-color: rgba(213, 180, 95, 0.18) !important;
  background-color: rgba(5, 9, 7, 0.72) !important;
  color: var(--ph-text) !important;
}

.dark input:focus,
.dark select:focus,
.dark textarea:focus,
.dark button:focus-visible,
.dark [role="button"]:focus-visible,
.dark [role="combobox"]:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 1px rgba(213, 180, 95, 0.72), 0 0 0 4px rgba(42, 215, 122, 0.11) !important;
}

.dark button:not([disabled]),
.dark [role="button"]:not([aria-disabled="true"]) {
  transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
}

.dark button:not([disabled]):hover,
.dark [role="button"]:not([aria-disabled="true"]):hover {
  border-color: rgba(213, 180, 95, 0.44) !important;
  box-shadow: 0 0 0 1px rgba(213, 180, 95, 0.08), 0 10px 22px rgba(0, 0, 0, 0.25);
}

.dark button:not([disabled]):active,
.dark [role="button"]:not([aria-disabled="true"]):active {
  transform: translateY(1px);
}

.dark [class~="bg-primary"],
.dark [class~="dark:bg-primary"],
.dark [role="checkbox"][data-state="checked"],
.dark [role="radio"][data-state="checked"] {
  background: linear-gradient(180deg, var(--ph-gold-strong), var(--ph-gold)) !important;
  color: #08120b !important;
}

.dark [class~="bg-success"],
.dark [class~="bg-success-inline"],
.dark [class~="bg-success/90"],
.dark [class~="bg-success-inline/90"],
.dark [class~="dark:bg-success"],
.dark [class~="dark:bg-success-inline"],
.dark [class~="dark:bg-success/90"],
.dark [class~="dark:bg-success-inline/90"] {
  border-color: rgba(42, 215, 122, 0.68) !important;
  background: linear-gradient(180deg, rgba(42, 215, 122, 0.36), var(--ph-success-bg)) !important;
  color: var(--ph-success-text) !important;
}

.dark [class~="text-success"],
.dark [class~="text-success-inline"],
.dark [class~="dark:text-success"],
.dark [class~="dark:text-success-inline"] {
  color: #51e58f !important;
}

.dark [class~="bg-warning"],
.dark [class~="bg-warning-inline"],
.dark [class~="bg-warning/90"],
.dark [class~="bg-warning-inline/90"],
.dark [class~="dark:bg-warning"],
.dark [class~="dark:bg-warning-inline"],
.dark [class~="dark:bg-warning/90"],
.dark [class~="dark:bg-warning-inline/90"] {
  border-color: rgba(213, 180, 95, 0.72) !important;
  background: linear-gradient(180deg, rgba(213, 180, 95, 0.34), var(--ph-warning-bg)) !important;
  color: var(--ph-warning-text) !important;
}

.dark [class~="text-warning"],
.dark [class~="text-warning-inline"],
.dark [class~="dark:text-warning"],
.dark [class~="dark:text-warning-inline"] {
  color: var(--ph-gold-strong) !important;
}

.dark [class~="bg-destructive"],
.dark [class~="bg-destructive-inline"],
.dark [class~="bg-destructive/90"],
.dark [class~="bg-destructive-inline/90"],
.dark [class~="dark:bg-destructive"],
.dark [class~="dark:bg-destructive-inline"],
.dark [class~="dark:bg-destructive/90"],
.dark [class~="dark:bg-destructive-inline/90"] {
  border-color: rgba(255, 107, 107, 0.68) !important;
  background: linear-gradient(180deg, rgba(255, 107, 107, 0.32), var(--ph-danger-bg)) !important;
  color: var(--ph-danger-text) !important;
}

.dark [class~="text-destructive"],
.dark [class~="text-destructive-inline"],
.dark [class~="dark:text-destructive"],
.dark [class~="dark:text-destructive-inline"] {
  color: var(--ph-danger) !important;
}

.dark button:is([class~="bg-success"], [class~="bg-success-inline"], [class~="bg-success/90"], [class~="bg-success-inline/90"], [class~="dark:bg-success"], [class~="dark:bg-success-inline"], [class~="dark:bg-success/90"], [class~="dark:bg-success-inline/90"]):not([disabled]):hover,
.dark [role="button"]:is([class~="bg-success"], [class~="bg-success-inline"], [class~="bg-success/90"], [class~="bg-success-inline/90"], [class~="dark:bg-success"], [class~="dark:bg-success-inline"], [class~="dark:bg-success/90"], [class~="dark:bg-success-inline/90"]):not([aria-disabled="true"]):hover {
  border-color: rgba(42, 215, 122, 0.82) !important;
  box-shadow: 0 0 0 1px rgba(42, 215, 122, 0.20), 0 10px 22px rgba(0, 0, 0, 0.25);
}

.dark button:is([class~="bg-warning"], [class~="bg-warning-inline"], [class~="bg-warning/90"], [class~="bg-warning-inline/90"], [class~="dark:bg-warning"], [class~="dark:bg-warning-inline"], [class~="dark:bg-warning/90"], [class~="dark:bg-warning-inline/90"]):not([disabled]):hover,
.dark [role="button"]:is([class~="bg-warning"], [class~="bg-warning-inline"], [class~="bg-warning/90"], [class~="bg-warning-inline/90"], [class~="dark:bg-warning"], [class~="dark:bg-warning-inline"], [class~="dark:bg-warning/90"], [class~="dark:bg-warning-inline/90"]):not([aria-disabled="true"]):hover {
  border-color: rgba(213, 180, 95, 0.86) !important;
  box-shadow: 0 0 0 1px rgba(213, 180, 95, 0.22), 0 10px 22px rgba(0, 0, 0, 0.25);
}

.dark button:is([class~="bg-destructive"], [class~="bg-destructive-inline"], [class~="bg-destructive/90"], [class~="bg-destructive-inline/90"], [class~="dark:bg-destructive"], [class~="dark:bg-destructive-inline"], [class~="dark:bg-destructive/90"], [class~="dark:bg-destructive-inline/90"]):not([disabled]):hover,
.dark [role="button"]:is([class~="bg-destructive"], [class~="bg-destructive-inline"], [class~="bg-destructive/90"], [class~="bg-destructive-inline/90"], [class~="dark:bg-destructive"], [class~="dark:bg-destructive-inline"], [class~="dark:bg-destructive/90"], [class~="dark:bg-destructive-inline/90"]):not([aria-disabled="true"]):hover {
  border-color: rgba(255, 107, 107, 0.82) !important;
  box-shadow: 0 0 0 1px rgba(255, 107, 107, 0.20), 0 10px 22px rgba(0, 0, 0, 0.25);
}

.dark [class~="border"],
.dark [class~="border-input"],
.dark [class~="border-border"],
.dark [class~="border-zinc-800"],
.dark [class~="dark:border-zinc-800"],
.dark table,
.dark th,
.dark td {
  border-color: rgba(213, 180, 95, 0.15) !important;
}

.dark [class~="border-success"],
.dark [class~="border-success-inline"],
.dark [class~="dark:border-success"],
.dark [class~="dark:border-success-inline"] {
  border-color: rgba(42, 215, 122, 0.70) !important;
}

.dark [class~="border-warning"],
.dark [class~="border-warning-inline"],
.dark [class~="dark:border-warning"],
.dark [class~="dark:border-warning-inline"] {
  border-color: rgba(213, 180, 95, 0.76) !important;
}

.dark [class~="border-destructive"],
.dark [class~="border-destructive-inline"],
.dark [class~="dark:border-destructive"],
.dark [class~="dark:border-destructive-inline"] {
  border-color: rgba(255, 107, 107, 0.72) !important;
}

.dark table,
.dark [role="table"] {
  overflow: hidden;
  border-radius: 8px;
}

.dark thead,
.dark [role="rowgroup"]:first-child {
  background: linear-gradient(180deg, rgba(213, 180, 95, 0.09), rgba(42, 215, 122, 0.035));
}

.dark tbody tr,
.dark [role="row"] {
  transition: background-color 100ms ease, color 100ms ease;
}

.dark tbody tr:hover,
.dark [role="row"]:hover,
.dark .tx-playerlist > .player:hover,
.dark .tx-playerlist > .\!player:hover {
  background-color: rgba(42, 215, 122, 0.1) !important;
  color: var(--ph-text) !important;
}

.dark .tx-playerlist > .player > .pid-block > .pid-badge,
.dark .tx-playerlist > .\!player > .pid-block > .pid-badge {
  border-color: rgba(213, 180, 95, 0.28) !important;
  background-color: rgba(213, 180, 95, 0.08) !important;
  color: var(--ph-gold-strong) !important;
}

.dark code,
.dark pre,
.dark kbd,
.dark .xterm,
.dark .xterm .xterm-viewport {
  background-color: #020403 !important;
  color: #d9f8d7;
}

.dark pre,
.dark .xterm {
  border-color: rgba(42, 215, 122, 0.18) !important;
  box-shadow: inset 0 0 0 1px rgba(213, 180, 95, 0.08), 0 0 24px rgba(42, 215, 122, 0.07);
}

.dark ::selection {
  background: rgba(213, 180, 95, 0.32);
  color: #fff7d4;
}

.dark ::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

.dark ::-webkit-scrollbar-track {
  background: rgba(5, 8, 6, 0.95);
}

.dark ::-webkit-scrollbar-thumb {
  border: 2px solid rgba(5, 8, 6, 0.95);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(213, 180, 95, 0.72), rgba(42, 215, 122, 0.44));
}

@media (max-width: 640px) {
  .dark body::after {
    width: 9rem;
    opacity: 0.045;
  }

  .dark .tx-sidebar::before {
    height: 2.4rem;
    margin: 0.55rem 0.5rem 0.35rem;
    background-size: 1.65rem 1.65rem, auto;
  }
}
