:root {
  --ming-pet-body: #a78bfa;
  --ming-pet-body-dark: #7c3aed;
  --ming-pet-belly: #ddd6fe;
  --ming-pet-accent: var(--app-accent, #3b82f6);
  --ming-pet-bubble-bg: #ffffffeb;
  --ming-pet-bubble-shadow: 0 4px 12px #0000001a;
  --ming-pet-panel-bg: #fffffff2;
  --ming-pet-card-bg: #ffffff73;
  --ming-pet-action-bg: #fff9;
  --ming-pet-chat-bg: #fffffff2;
  --ming-pet-chat-input-bg: #ffffffd9;
}

[data-theme="dark"] {
  --ming-pet-bubble-bg: #1e1e23eb;
  --ming-pet-bubble-shadow: 0 4px 12px #0006;
  --ming-pet-panel-bg: #1e1e23f2;
  --ming-pet-card-bg: #1e1e2373;
  --ming-pet-action-bg: #1e1e2399;
  --ming-pet-chat-bg: #1e1e23f2;
  --ming-pet-chat-input-bg: #1e1e23d9;
}

.ming-pet-root {
  z-index: 9998;
  pointer-events: none;
  user-select: none;
  position: fixed;
  top: 0;
  left: 0;
}

.ming-pet-body {
  pointer-events: auto;
  cursor: pointer;
  filter: drop-shadow(0 4px 8px #00000026);
  transition: transform .2s;
  position: relative;
}

.ming-pet-body:hover {
  transform: scale(1.05);
}

.ming-pet-body.ming-pet-dragging {
  cursor: grabbing;
  z-index: 9999;
  transform: scale(1.1);
}

.ming-pet-sprite {
  display: block;
}

.ming-pet-bubble {
  max-width: calc(var(--dvw, 100vw) * .8);
  background: var(--ming-pet-bubble-bg);
  border: 1px solid var(--app-border, #0000001a);
  min-width: 60px;
  box-shadow: var(--ming-pet-bubble-shadow);
  pointer-events: none;
  border-radius: 14px;
  padding: 8px 12px;
  animation: .3s ease-out ming-pet-bubble-in;
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translate(-50%);
}

.ming-pet-bubble-text {
  color: var(--app-text, #1e293b);
  text-align: center;
  white-space: nowrap;
  font-size: 13px;
  line-height: 1.4;
}

.ming-pet-bubble-tail {
  background: var(--ming-pet-bubble-bg);
  border-right: 1px solid var(--app-border, #0000001a);
  border-bottom: 1px solid var(--app-border, #0000001a);
  width: 12px;
  height: 12px;
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translate(-50%) rotate(45deg);
}

@keyframes ming-pet-bubble-in {
  0% {
    opacity: 0;
    transform: translate(-50%) translateY(8px) scale(.9);
  }

  to {
    opacity: 1;
    transform: translate(-50%) translateY(0) scale(1);
  }
}

.ming-pet-panel {
  background: var(--ming-pet-panel-bg);
  border: 1px solid var(--app-border, #0000001a);
  pointer-events: auto;
  z-index: 9999;
  border-radius: 16px;
  width: 280px;
  animation: .25s ease-out ming-pet-panel-in;
  position: fixed;
  overflow: hidden;
  box-shadow: 0 8px 32px #0000002e;
}

@keyframes ming-pet-panel-in {
  0% {
    opacity: 0;
    transform: translateY(8px) scale(.96);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.ming-pet-panel-header {
  border-bottom: 1px solid var(--app-border, #0000000f);
  justify-content: space-between;
  align-items: center;
  padding: 12px 14px 8px;
  display: flex;
}

.ming-pet-panel-title {
  color: var(--app-text, #1e293b);
  font-size: 14px;
  font-weight: 600;
}

.ming-pet-panel-header-actions {
  align-items: center;
  display: flex;
}

.ming-pet-panel-header-actions > * + * {
  margin-left: 6px;
}

.ming-pet-panel-vis-label {
  color: var(--app-text-tertiary, #94a3b8);
  font-size: 11px;
  font-weight: 500;
}

.ming-pet-panel-body {
  max-height: calc(var(--dvh, 100vh) * .6);
  padding: 8px 0;
  overflow-y: auto;
}

.ming-pet-icon-btn {
  width: 24px;
  height: 24px;
  color: var(--app-text-tertiary, #64748b);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  transition: opacity .15s, background-color .15s, color .15s, transform .15s;
  display: flex;
}

.ming-pet-icon-btn:hover {
  background: var(--app-hover, #0000000f);
  color: var(--app-text, #1e293b);
}

.ming-pet-section {
  padding: 8px 14px;
}

.ming-pet-panel-actions {
  border-top: 1px solid var(--app-border, #0000000f);
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin-top: 10px;
  padding-top: 10px;
  display: grid;
}

.ming-pet-panel-action {
  border: 1px solid var(--app-border, #00000014);
  background: var(--ming-pet-action-bg);
  color: var(--app-text-secondary, #475569);
  cursor: pointer;
  border-radius: 8px;
  flex-direction: column;
  align-items: center;
  padding: 6px 2px;
  transition: opacity .15s, background-color .15s, color .15s, transform .15s;
  display: flex;
  position: relative;
  overflow: hidden;
}

.ming-pet-panel-action > * + * {
  margin-top: 3px;
}

.ming-pet-panel-action:hover {
  border-color: var(--ming-pet-accent, #3b82f6);
  color: var(--ming-pet-accent, #3b82f6);
  transform: translateY(-1px);
}

.ming-pet-panel-action:active {
  transform: translateY(0);
}

.ming-pet-panel-action.cooling {
  opacity: .6;
}

.ming-pet-panel-action.cooling:hover {
  border-color: var(--app-border, #00000014);
  color: var(--app-text-secondary, #475569);
  transform: none;
}

.ming-pet-panel-action span {
  font-size: 10px;
  font-weight: 600;
}

.ming-pet-panel-action-overlay {
  border-radius: inherit;
  z-index: 2;
  background: #00000073;
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

.ming-pet-panel-action-fill {
  background: var(--ming-pet-accent, #3b82f6);
  opacity: .35;
  transition: width 1s linear;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
}

.ming-pet-panel-action-remain {
  z-index: 1;
  color: #fff;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 1px 3px #00000080;
  font-weight: 700;
  line-height: 1;
  position: relative;
  font-size: 10px !important;
}

.ming-pets-page {
  box-sizing: border-box;
  z-index: 1;
  grid-template-columns: minmax(auto, max-content) 340px;
  place-content: safe center center;
  gap: 120px;
  gap: max(120px, min(12vw, 260px));
  width: 100%;
  height: 100%;
  padding: 16px;
  display: grid;
  position: relative;
  overflow: hidden;
}

.ming-pets-island-host {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
}

.ming-pets-island-loading {
  z-index: 20;
  background-color: #f7f3df;
  background-image: radial-gradient(circle, #c4b89e26 1.5px, #0000 1.5px), radial-gradient(circle, #c4b89e1a 1px, #0000 1px), none;
  background-position: 0 0, 7px 7px;
  background-repeat: repeat, repeat, repeat;
  background-size: 28px 28px, 14px 14px;
  background-attachment: scroll, scroll, scroll;
  background-origin: padding-box, padding-box, padding-box;
  background-clip: border-box, border-box, border-box;
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.ming-pets-island-loading-card {
  flex-direction: column;
  align-items: stretch;
  width: 320px;
  width: min(320px, 64vw);
  display: flex;
}

.ming-pets-island-loading-card > * + * {
  margin-top: 14px;
}

.ming-pets-stage {
  border-radius: 18px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-width: 0;
  min-height: 320px;
  padding-bottom: 18px;
  display: flex;
  position: relative;
  overflow: hidden;
}

.ming-pets-stage-bg {
  pointer-events: none;
  z-index: -1;
  background: radial-gradient(ellipse at 50% 40%,rgba(var(--app-accent-rgb, 59, 130, 246),.08),transparent 70%);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.ming-pets-stage-pet {
  z-index: 1;
  cursor: pointer;
  animation: 2.6s ease-in-out infinite ming-pet-idle-bob;
  position: relative;
}

.ming-pets-stage-info {
  z-index: 1;
  text-align: center;
  min-width: 240px;
  margin-top: 20px;
  position: relative;
}

.ming-pets-stage-name-row {
  justify-content: center;
  align-items: center;
  margin-bottom: 8px;
  display: flex;
}

.ming-pets-stage-name-row > * + * {
  margin-left: 8px;
}

.ming-pets-stage-name {
  color: var(--app-text, #1e293b);
  letter-spacing: .5px;
  cursor: pointer;
  border-radius: 6px;
  padding: 2px 8px;
  font-size: 18px;
  font-weight: 700;
  transition: background .15s;
}

.ming-pets-stage-name:hover {
  background: rgba(var(--app-accent-rgb, 59, 130, 246),.08);
}

.ming-pets-rename-overlay {
  z-index: 1000;
  background: #00000059;
  justify-content: center;
  align-items: center;
  animation: .18s ming-pets-rename-fade;
  display: flex;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

@keyframes ming-pets-rename-fade {
  0% {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.ming-pets-rename-dialog {
  background: var(--ming-pet-panel-bg);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border: 1px solid var(--app-border, #00000014);
  border-radius: 14px;
  width: 280px;
  padding: 18px 20px 16px;
  animation: .22s cubic-bezier(.34, 1.56, .64, 1) ming-pets-rename-pop;
  box-shadow: 0 20px 50px #00000040;
}

@keyframes ming-pets-rename-pop {
  0% {
    opacity: 0;
    transform: scale(.9);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.ming-pets-rename-title {
  color: var(--app-text, #1e293b);
  text-align: center;
  margin-bottom: 12px;
  font-size: 14px;
  font-weight: 600;
}

.ming-pets-rename-input {
  box-sizing: border-box;
  border: 1px solid var(--app-border, #0000001a);
  background: rgb(var(--app-bg-rgb, 255, 255, 255));
  width: 100%;
  color: var(--app-text, #1e293b);
  border-radius: 8px;
  outline: none;
  padding: 8px 12px;
  font-size: 14px;
  transition: border-color .15s, box-shadow .15s;
}

.ming-pets-rename-input::placeholder {
  color: var(--app-text-tertiary, #94a3b8);
}

.ming-pets-rename-input:focus {
  border-color: var(--ming-pet-accent, #3b82f6);
  box-shadow: 0 0 0 2px rgba(var(--app-accent-rgb, 59, 130, 246),.15);
}

.ming-pets-rename-actions {
  justify-content: flex-end;
  margin-top: 14px;
  display: flex;
}

.ming-pets-rename-actions > * + * {
  margin-left: 8px;
}

.ming-pets-rename-btn {
  cursor: pointer;
  border: none;
  border-radius: 8px;
  padding: 6px 16px;
  font-size: 13px;
  font-weight: 500;
  transition: background .15s, opacity .15s;
}

.ming-pets-rename-btn.cancel {
  background: rgba(var(--app-text-rgb, 30, 41, 59),.06);
  color: var(--app-text, #1e293b);
}

.ming-pets-rename-btn.cancel:hover {
  background: rgba(var(--app-text-rgb, 30, 41, 59),.1);
}

.ming-pets-rename-btn.confirm {
  background: var(--ming-pet-accent, #3b82f6);
  color: #fff;
}

.ming-pets-rename-btn.confirm:hover {
  opacity: .9;
}

.ming-pets-level-text {
  color: var(--app-text-secondary, #475569);
  font-variant-numeric: tabular-nums;
  font-size: 12px;
}

.ming-pets-level-row {
  align-items: center;
  display: flex;
}

.ming-pets-level-row > * + * {
  margin-left: 10px;
}

.ming-pets-intel-chip {
  color: var(--app-accent, #3b82f6);
  background: rgba(var(--app-accent-rgb), .12);
  border-radius: 10px;
  align-items: center;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 600;
  display: inline-flex;
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-intel-chip {
    background: color-mix(in srgb,var(--app-accent, #3b82f6) 12%,transparent);
  }
}

.ming-pets-intel-chip {
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}

.ming-pets-intel-chip > * + * {
  margin-left: 4px;
}

.ming-pets-level-info {
  flex: 1;
  align-items: center;
  min-width: 0;
  display: flex;
}

.ming-pets-level-info > * + * {
  margin-left: 6px;
}

.ming-pets-level-info .ming-pets-level-text {
  color: var(--app-text, #1e293b);
  flex-shrink: 0;
  font-weight: 600;
}

.ming-pets-xp-track {
  background: rgba(var(--app-text-rgb), .1);
  flex: 1;
  height: 8px;
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-xp-track {
    background: color-mix(in srgb,var(--app-text, #1e293b) 10%,transparent);
  }
}

.ming-pets-xp-track {
  cursor: pointer;
  border-radius: 4px;
  min-width: 0;
  overflow: hidden;
}

.ming-pets-xp-fill {
  background: var(--app-accent, #3b82f6);
  border-radius: 4px;
  height: 100%;
  transition: width .4s;
}

.ming-pets-xp-text {
  color: var(--app-text-tertiary, #94a3b8);
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  flex-shrink: 0;
  font-size: 11px;
}

.ming-pets-health-card {
  border: 1px solid rgba(var(--app-text-rgb), .08);
  border-radius: 999px;
  align-items: center;
  margin-top: 10px;
  padding: 6px 12px;
  display: flex;
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-health-card {
    border: 1px solid color-mix(in srgb,var(--app-text, #1e293b) 8%,transparent);
  }
}

.ming-pets-health-card {
  background: rgba(var(--app-text-rgb), .04);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-health-card {
    background: color-mix(in srgb,var(--app-text, #1e293b) 4%,transparent);
  }
}

.ming-pets-health-card > * + * {
  margin-left: 8px;
}

.ming-pets-health-heart {
  color: #34d399;
  flex-shrink: 0;
}

.ming-pets-health-heart.warn {
  color: #fbbf24;
}

.ming-pets-health-heart.low {
  color: #f87171;
  animation: 1.4s ease-in-out infinite ming-pets-heartbeat;
}

@keyframes ming-pets-heartbeat {
  0%, to {
    transform: scale(1);
  }

  50% {
    transform: scale(1.12);
  }
}

.ming-pets-health-track {
  background: rgba(var(--app-text-rgb), .1);
  flex: 1;
  height: 6px;
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-health-track {
    background: color-mix(in srgb,var(--app-text, #1e293b) 10%,transparent);
  }
}

.ming-pets-health-track {
  border-radius: 999px;
  min-width: 0;
  overflow: hidden;
}

.ming-pets-health-fill {
  background: #34d399;
  border-radius: 999px;
  height: 100%;
  transition: width .4s;
}

.ming-pets-health-fill.warn {
  background: #fbbf24;
}

.ming-pets-health-fill.low {
  background: #f87171;
}

.ming-pets-health-num {
  font-variant-numeric: tabular-nums;
  color: var(--app-text-tertiary, #94a3b8);
  text-align: right;
  flex-shrink: 0;
  min-width: 2em;
  font-size: 11px;
  font-weight: 600;
}

.ming-pets-action-row {
  margin-top: 10px;
  display: flex;
}

.ming-pets-action-row > * + * {
  margin-left: 8px;
}

.ming-pets-action-btn {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  border: 1px solid rgba(var(--app-accent-rgb), .35);
  border-radius: 10px;
  flex: 1;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 600;
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn {
    border: 1px solid color-mix(in srgb,var(--app-accent, #3b82f6) 35%,transparent);
  }
}

.ming-pets-action-btn {
  background: rgba(var(--app-accent-rgb), .12);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn {
    background: color-mix(in srgb,var(--app-accent, #3b82f6) 12%,transparent);
  }
}

.ming-pets-action-btn {
  color: var(--app-accent, #3b82f6);
  cursor: pointer;
  transition: background .2s, opacity .2s, border-color .2s;
  position: relative;
  overflow: hidden;
}

.ming-pets-action-btn:hover:not(:disabled):not(.spent) {
  background: rgba(var(--app-accent-rgb), .2);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn:hover:not(:disabled):not(.spent) {
    background: color-mix(in srgb,var(--app-accent, #3b82f6) 20%,transparent);
  }
}

.ming-pets-action-btn:disabled {
  cursor: default;
  opacity: .5;
  border-color: rgba(var(--app-text-rgb), .15);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn:disabled {
    border-color: color-mix(in srgb,var(--app-text, #1e293b) 15%,transparent);
  }
}

.ming-pets-action-btn:disabled {
  background: rgba(var(--app-text-rgb), .06);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn:disabled {
    background: color-mix(in srgb,var(--app-text, #1e293b) 6%,transparent);
  }
}

.ming-pets-action-btn:disabled {
  color: var(--app-text-tertiary, #94a3b8);
}

.ming-pets-action-btn.spent {
  cursor: default;
  opacity: .5;
  border-color: rgba(var(--app-text-rgb), .15);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn.spent {
    border-color: color-mix(in srgb,var(--app-text, #1e293b) 15%,transparent);
  }
}

.ming-pets-action-btn.spent {
  background: rgba(var(--app-text-rgb), .06);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn.spent {
    background: color-mix(in srgb,var(--app-text, #1e293b) 6%,transparent);
  }
}

.ming-pets-action-btn.spent {
  color: var(--app-text-tertiary, #94a3b8);
}

.ming-pets-action-btn.active {
  border-color: rgba(var(--app-accent-rgb), .45);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn.active {
    border-color: color-mix(in srgb,var(--app-accent, #3b82f6) 45%,transparent);
  }
}

.ming-pets-action-btn.active {
  color: var(--app-accent, #3b82f6);
}

.ming-pets-action-btn.active:hover {
  border-color: rgba(var(--app-accent-rgb), .6);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn.active:hover {
    border-color: color-mix(in srgb,var(--app-accent, #3b82f6) 60%,transparent);
  }
}

.ming-pets-action-btn.active:hover {
  color: var(--app-accent, #3b82f6);
}

.ming-pets-action-btn.active:disabled {
  opacity: 1;
  cursor: default;
  border-color: rgba(var(--app-accent-rgb), .45);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn.active:disabled {
    border-color: color-mix(in srgb,var(--app-accent, #3b82f6) 45%,transparent);
  }
}

.ming-pets-action-btn.active:disabled {
  background: rgba(var(--app-accent-rgb), .12);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn.active:disabled {
    background: color-mix(in srgb,var(--app-accent, #3b82f6) 12%,transparent);
  }
}

.ming-pets-action-btn.active:disabled {
  color: var(--app-accent, #3b82f6);
}

.ming-pets-action-btn-fill {
  background: rgba(var(--app-accent-rgb), .28);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: auto;
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-action-btn-fill {
    background: color-mix(in srgb,var(--app-accent, #3b82f6) 28%,transparent);
  }
}

.ming-pets-action-btn-fill {
  pointer-events: none;
  z-index: 0;
  transition: width .8s linear;
}

.ming-pets-action-btn-label {
  z-index: 1;
  pointer-events: none;
  position: relative;
}

.ming-pets-side {
  flex-direction: column;
  height: 0;
  min-height: 100%;
  padding-right: 2px;
  display: flex;
  overflow-y: auto;
}

.ming-pets-side > * + * {
  margin-top: 10px;
}

.ming-pets-card-title-row {
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  display: flex;
}

.ming-pets-cat-toggle {
  background: var(--app-card);
  border-radius: .5rem;
  margin-right: 4px;
  padding: 2px;
  display: inline-flex;
}

.ming-pets-cat-btn {
  color: var(--app-text-tertiary, #6e6e73);
  cursor: pointer;
  white-space: nowrap;
  background: none;
  border: none;
  border-radius: .375rem;
  padding: .25rem .5625rem;
  font-size: .6875rem;
  font-weight: 500;
  transition: color .15s;
}

.ming-pets-cat-btn.active {
  background-color: rgba(var(--app-accent-rgb),.15);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  color: var(--app-accent, #3b82f6);
  box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px rgba(var(--app-accent-rgb), .2),0 1px 2px #0000002e;
  background-image: linear-gradient(#ffffff0d, #fff0);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-cat-btn.active {
    box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px color-mix(in srgb,var(--app-accent, #3b82f6) 20%,transparent),0 1px 2px #0000002e;
  }
}

[data-theme="light"] .ming-pets-cat-btn.active {
  background: linear-gradient(#ffffff73, #ffffff38);
  box-shadow: inset 0 1px #ffffffb3, inset 0 0 0 1px #ffffff59, 0 1px 3px #0000000f;
}

[data-theme="dark"] .ming-pets-cat-btn.active {
  background-color: rgba(var(--app-accent-rgb),.15);
  background-image: linear-gradient(#ffffff0d, #fff0);
}

.ming-pets-models {
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin: -4px -2px -2px;
  padding: 4px 2px 6px;
  display: grid;
  overflow: hidden auto;
}

.ming-pets-models::-webkit-scrollbar {
  display: none;
}

.ming-pets-model {
  border: 1px solid var(--app-border, #00000014);
  background: rgba(var(--app-bg-rgb, 255, 255, 255),.8);
  cursor: pointer;
  box-sizing: border-box;
  contain: layout style paint;
  border-radius: 10px;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-width: 0;
  padding: 6px 10px;
  transition: transform .15s, border-color .15s, background .15s;
  display: flex;
  position: relative;
}

.ming-pets-model > * + * {
  margin-top: 3px;
}

.ming-pets-model:hover {
  border-color: var(--ming-pet-accent, #3b82f6);
  transform: translateY(-1px);
}

.ming-pets-model.active {
  border-color: var(--ming-pet-accent, #3b82f6);
  background: rgba(var(--app-accent-rgb, 59, 130, 246),.08);
}

.ming-pets-model-thumb {
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 40px;
  display: flex;
}

.ming-pets-model-name {
  color: var(--app-text, #1e293b);
  font-size: 10px;
  font-weight: 600;
}

.ming-pets-config-row {
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  display: flex;
}

.ming-pets-config-row > * + * {
  margin-left: 8px;
}

.ming-pets-config-row + .ming-pets-config-row {
  border-top: 1px solid var(--app-border, #0000000d);
}

.ming-pets-config-label {
  color: var(--app-text-secondary, #475569);
  font-size: 12px;
  font-weight: 500;
}

.ming-pets-switch {
  cursor: pointer;
  flex-shrink: 0;
  display: inline-flex;
  position: relative;
}

.ming-pets-switch input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}

.ming-pets-switch-track {
  background: var(--app-border, #0000002e);
  border-radius: 10px;
  width: 36px;
  height: 20px;
  transition: background .2s;
  position: relative;
}

.ming-pets-switch-track:after {
  content: "";
  background: #fff;
  border-radius: 50%;
  width: 16px;
  height: 16px;
  transition: transform .2s;
  position: absolute;
  top: 2px;
  left: 2px;
  box-shadow: 0 1px 3px #00000040;
}

.ming-pets-switch input:checked + .ming-pets-switch-track {
  background: var(--ming-pet-accent, #3b82f6);
}

.ming-pets-switch input:checked + .ming-pets-switch-track:after {
  transform: translate(16px);
}

.ming-pets-action {
  border: 1px solid var(--app-border, #00000014);
  background: var(--ming-pet-card-bg);
  cursor: pointer;
  border-radius: 14px;
  flex-direction: column;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 60px;
  height: 60px;
  padding: 0;
  transition: opacity .15s, background-color .15s, color .15s, transform .15s;
  display: flex;
  position: relative;
  overflow: hidden;
}

.ming-pets-action > * + * {
  margin-top: 4px;
}

.ming-pets-action:hover {
  border-color: var(--ming-pet-accent, #3b82f6);
  box-shadow: 0 4px 10px rgba(var(--app-accent-rgb, 59, 130, 246),.12);
  transform: translateY(-2px);
}

.ming-pets-action:active {
  transform: translateY(0);
}

.ming-pets-action.cooling {
  opacity: .6;
  cursor: pointer;
}

.ming-pets-action.cooling:hover {
  border-color: var(--app-border, #00000014);
  box-shadow: none;
  transform: none;
}

.ming-pets-action-icon {
  color: var(--app-text-secondary, #475569);
  justify-content: center;
  align-items: center;
  display: flex;
}

.ming-pets-action:hover .ming-pets-action-icon {
  color: var(--ming-pet-accent, #3b82f6);
}

.ming-pets-action-label {
  color: var(--app-text, #1e293b);
  font-size: 11px;
  font-weight: 600;
}

.ming-pets-action-overlay {
  border-radius: inherit;
  z-index: 2;
  background: #00000073;
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

.ming-pets-action-fill {
  background: var(--ming-pet-accent, #3b82f6);
  opacity: .35;
  transition: width 1s linear;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
}

.ming-pets-action-remain {
  z-index: 1;
  color: #fff;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 1px 3px #00000080;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  position: relative;
}

@media (max-width: 768px) {
  .ming-pets-page {
    padding: 12px;
    padding-bottom: calc(72px + var(--safe-area-bottom));
    -ms-overflow-style: none;
    scrollbar-width: none;
    flex-direction: column;
    place-content: flex-start;
    display: flex;
    overflow: hidden auto;
  }

  .ming-pets-page > * + * {
    margin-top: 12px;
  }

  .ming-pets-page::-webkit-scrollbar {
    display: none;
  }

  .ming-pets-side {
    -ms-overflow-style: none;
    scrollbar-width: none;
    height: auto;
    min-height: auto;
    overflow: visible;
  }

  .ming-pets-side::-webkit-scrollbar {
    display: none;
  }

  .ming-pets-stage {
    flex-shrink: 0;
    min-height: 0;
    padding-top: 8px;
    overflow: visible;
  }

  .ming-pets-stage-pet {
    margin-top: 12px;
    transform: scale(.72);
  }

  .ming-pets-side .ming-pet-chat:not(.ming-pet-chat-floating) {
    flex: none;
    height: 360px;
    height: max(360px, min(58vh, 520px));
    min-height: 0;
  }
}

@media (max-height: 760px) {
  .ming-pets-stage-info {
    margin-top: 6px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ming-pet-sprite, .ming-pets-stage-pet {
    animation: none !important;
  }
}

.ming-pet-chat {
  border: 1px solid var(--app-border, #00000014);
  background: var(--ming-pet-chat-bg);
  pointer-events: auto;
  user-select: text;
  border-radius: 14px;
  flex-direction: column;
  flex: 1;
  min-height: 320px;
  display: flex;
  overflow: hidden;
}

.ming-pet-chat-floating {
  z-index: 9999;
  background: var(--ming-pet-chat-bg);
  height: 360px;
  animation: .25s ease-out ming-pet-panel-in;
  position: fixed;
  box-shadow: 0 8px 32px #0000002e;
}

.ming-pet-chat-header {
  border-bottom: 1px solid var(--app-border, #0000000f);
  flex-shrink: 0;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  display: flex;
}

.ming-pet-chat-title {
  color: var(--app-text, #1e293b);
  font-size: 13px;
  font-weight: 600;
}

.ming-pet-chat-tab-bar {
  flex: 1;
  align-items: center;
  min-width: 0;
  display: flex;
}

.ming-pet-chat-tab-bar > * + * {
  margin-left: 2px;
}

.ming-pet-chat-tab {
  min-width: 0;
  color: var(--app-text-tertiary, #94a3b8);
  cursor: pointer;
  white-space: nowrap;
  background: none;
  border: none;
  border-radius: 6px;
  flex: 1;
  justify-content: center;
  align-items: center;
  padding: 4px 2px;
  font-size: 11px;
  font-weight: 500;
  transition: opacity .15s, background-color .15s, color .15s, transform .15s;
  display: inline-flex;
}

.ming-pet-chat-tab > * + * {
  margin-left: 3px;
}

.ming-pet-chat-tab:hover {
  color: var(--app-text-secondary, #64748b);
  background: #ffffff0f;
}

.ming-pet-chat-tab.active {
  background-color: rgba(var(--app-accent-rgb),.15);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  color: var(--app-accent, #3b82f6);
  box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px rgba(var(--app-accent-rgb), .2),0 1px 2px #0000002e;
  background-image: linear-gradient(#ffffff0d, #fff0);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pet-chat-tab.active {
    box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px color-mix(in srgb,var(--app-accent, #3b82f6) 20%,transparent),0 1px 2px #0000002e;
  }
}

[data-theme="light"] .ming-pet-chat-tab.active {
  background: linear-gradient(#ffffff73, #ffffff38);
  box-shadow: inset 0 1px #ffffffb3, inset 0 0 0 1px #ffffff59, 0 1px 3px #0000000f;
}

.ming-pet-chat-tab-panel {
  flex: 1;
  padding: 12px;
  overflow-y: auto;
}

.ming-pet-chat-tab-panel.ming-pet-chat-models {
  flex-direction: column;
  display: flex;
  overflow: hidden;
}

.ming-pet-chat-tab-panel.ming-pet-chat-models .ming-pets-models {
  flex: 1;
  align-content: start;
}

.ming-pet-chat-tab-panel.ming-pet-chat-leaderboard {
  padding: 0;
  overflow: hidden;
}

.ming-pet-chat-games {
  -webkit-overflow-scrolling: touch;
  flex-direction: column;
  display: flex;
}

.ming-pet-chat-games > * + * {
  margin-top: 12px;
}

.ming-game-btn {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  color: var(--app-text);
  cursor: pointer;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  padding: 6px 12px;
  font-size: 12px;
  transition: background .15s, transform .1s;
  display: inline-flex;
}

.ming-game-tab {
  min-width: 60px;
  color: var(--app-text-tertiary, #6e6e73);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: .375rem;
  flex: 1;
  justify-content: center;
  align-items: center;
  padding: .25rem .5625rem;
  font-size: .6875rem;
  font-weight: 500;
  display: flex;
}

.ming-game-tab.ming-game-tab-rank {
  flex: none;
  justify-content: center;
  gap: 4px;
  min-width: 0;
  margin-left: auto;
  padding: .25rem .625rem;
  transition: color .15s;
}

.ming-game-tab.active {
  background-color: rgba(var(--app-accent-rgb),.15);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  color: var(--app-accent, #3b82f6);
  box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px rgba(var(--app-accent-rgb), .2),0 1px 2px #0000002e;
  background-image: linear-gradient(#ffffff0d, #fff0);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-game-tab.active {
    box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px color-mix(in srgb,var(--app-accent, #3b82f6) 20%,transparent),0 1px 2px #0000002e;
  }
}

[data-theme="light"] .ming-game-tab.active {
  background: linear-gradient(#ffffff73, #ffffff38);
  box-shadow: inset 0 1px #ffffffb3, inset 0 0 0 1px #ffffff59, 0 1px 3px #0000000f;
}

.ming-game-tab-rank:hover {
  color: var(--app-accent, #3b82f6);
  background-color: rgba(var(--app-accent-rgb), .1);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-game-tab-rank:hover {
    background-color: color-mix(in srgb,var(--app-accent, #3b82f6) 10%,transparent);
  }
}

.ming-game-tab-rank:hover {
  border-radius: .375rem;
}

.ming-game-btn:hover:not(:disabled) {
  background: var(--app-card-hover);
}

.ming-game-btn:active:not(:disabled) {
  transform: scale(.96);
}

.ming-game-btn:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.ming-game-btn-sm {
  flex: 1;
  min-width: 0;
  padding: 5px 8px;
  font-size: 11px;
}

.ming-game-btn-primary {
  background: var(--app-accent);
  color: #fff;
  border-color: var(--app-accent);
}

.ming-game-btn-primary:hover:not(:disabled) {
  filter: brightness(1.08);
  background: var(--app-accent);
}

.ming-game-btn-warn {
  color: #e74c3c;
  border-color: #e74c3c66;
}

.ming-game-btn-warn:hover:not(:disabled) {
  background: #e74c3c1a;
}

.ming-game-wrap {
  align-items: center;
}

.ming-game-wrap > * {
  width: 100%;
}

.ming-gomoku-board, .ming-xiangqi-board {
  margin: 0 auto;
}

@keyframes ming-spin {
  to {
    transform: rotate(360deg);
  }
}

.ming-game-matching .animate-spin {
  animation: 1.2s linear infinite ming-spin;
}

@keyframes ming-fade-in {
  0% {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes ming-enemy-leave {
  0%, 78% {
    opacity: 1;
    transform: translateY(0);
  }

  to {
    opacity: 0;
    transform: translateY(48px);
  }
}

.ming-enemy-leaving {
  animation: 1.8s forwards ming-enemy-leave;
}

@keyframes ming-enemy-enter {
  0% {
    opacity: 0;
    transform: translateY(-36px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.ming-enemy-entering {
  animation: .45s cubic-bezier(.16, 1, .3, 1) ming-enemy-enter;
}

@media (max-width: 480px) {
  .ming-game-btn {
    padding: 5px 10px;
    font-size: 11px;
  }

  .ming-game-btn-sm {
    padding: 4px 6px;
    font-size: 10px;
  }
}

.ming-game-window-overlay {
  z-index: 10000;
  background: var(--app-bg, #fff);
  border: 1px solid var(--app-border, #0000001f);
  border-radius: 12px;
  flex-direction: column;
  transition: width .2s, height .2s;
  display: flex;
  position: fixed;
  overflow: hidden;
  box-shadow: 0 12px 32px #0000003d, 0 0 0 1px #0000000a;
}

.ming-game-window-header {
  background: var(--app-card-hover, #00000008);
  border-bottom: 1px solid var(--app-border, #0000000f);
  cursor: grab;
  user-select: none;
  touch-action: none;
  flex-shrink: 0;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  display: flex;
}

.ming-game-window-actions {
  align-items: center;
  display: flex;
}

.ming-game-window-actions > * + * {
  margin-left: 4px;
}

.ming-game-miniball {
  z-index: 10000;
  border: 1px solid var(--app-border, #0000001f);
  background: var(--ming-pet-card-bg, var(--app-card, #fff));
  width: 48px;
  height: 48px;
  color: var(--app-text, #333);
  cursor: pointer;
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  transition: transform .15s, box-shadow .15s;
  display: flex;
  position: fixed;
  bottom: 20px;
  right: 20px;
  box-shadow: 0 8px 24px #00000047;
}

.ming-game-miniball:hover {
  transform: scale(1.06);
  box-shadow: 0 10px 28px #00000057;
}

.ming-game-miniball:active {
  transform: scale(.96);
}

.ming-game-miniball-dot {
  background: var(--app-danger, #ff3b30);
  border: 2px solid var(--ming-pet-card-bg, var(--app-card, #fff));
  border-radius: 50%;
  width: 10px;
  height: 10px;
  animation: 1.4s ease-in-out infinite ming-game-dot-pulse;
  position: absolute;
  top: 4px;
  right: 4px;
}

@keyframes ming-game-dot-pulse {
  0%, to {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: .45;
    transform: scale(.8);
  }
}

.ming-game-window-header.dragging {
  cursor: grabbing;
}

.ming-game-window-title {
  color: var(--app-text);
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  display: flex;
}

.ming-game-window-title > * + * {
  margin-left: 6px;
}

.ming-game-window-title svg {
  color: var(--app-text-tertiary, #94a3b8);
}

.ming-game-window-close {
  cursor: pointer;
  color: var(--app-text-secondary);
  background: none;
  border: none;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  padding: 4px;
  transition: background .15s, color .15s;
  display: flex;
}

.ming-game-emoji-toggle {
  padding: 6px 10px;
}

.ming-game-emoji-picker {
  z-index: 30;
  background: var(--ming-pet-card-bg, var(--app-card, #fff));
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border: 1px solid var(--app-border);
  border-radius: 10px;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  padding: 6px;
  animation: .15s ease-out ming-emoji-picker-in;
  display: grid;
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  box-shadow: 0 8px 24px #00000040;
}

@keyframes ming-emoji-picker-in {
  0% {
    opacity: 0;
    transform: translateY(-4px) scale(.95);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.ming-game-emoji-item {
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  width: 34px;
  height: 34px;
  font-size: 20px;
  line-height: 1;
  transition: background .12s, transform .12s;
  display: flex;
}

.ming-game-emoji-item:hover {
  background: rgba(var(--app-accent-rgb, 59, 130, 246),.14);
  transform: scale(1.12);
}

.ming-game-emoji-avatar-burst {
  pointer-events: none;
  z-index: 20;
  filter: drop-shadow(0 4px 10px #00000059);
  font-size: 30px;
  line-height: 1;
  animation: 1.8s ease-out forwards ming-emoji-avatar-pop;
  position: absolute;
  top: -2px;
  left: 50%;
}

@keyframes ming-emoji-avatar-pop {
  0% {
    opacity: 0;
    transform: translate(-50%, 6px) scale(.3);
  }

  18% {
    opacity: 1;
    transform: translate(-50%, -10px) scale(1.15);
  }

  30% {
    transform: translate(-50%, -6px) scale(1);
  }

  70% {
    opacity: 1;
    transform: translate(-50%, -12px) scale(1);
  }

  to {
    opacity: 0;
    transform: translate(-50%, -52px) scale(.85);
  }
}

.vamp-root {
  flex-direction: column;
  flex: 1;
  height: 100%;
  min-height: 0;
  display: flex;
}

.vamp-root > * + * {
  margin-top: 8px;
}

.vamp-connecting {
  height: 200px;
  color: var(--app-text-tertiary, #94a3b8);
  justify-content: center;
  align-items: center;
  font-size: 12px;
  display: flex;
}

.vamp-connecting > * + * {
  margin-left: 8px;
}

.vamp-phasebar {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  border-radius: 10px;
  flex-shrink: 0;
  justify-content: space-between;
  align-items: center;
  padding: 8px 10px;
  display: flex;
}

.vamp-phasebar > * + * {
  margin-left: 8px;
}

.vamp-phase-main {
  color: var(--app-text);
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  display: flex;
}

.vamp-phase-main > * + * {
  margin-left: 6px;
}

.vamp-phase-day {
  color: var(--app-text-tertiary, #94a3b8);
  font-size: 11px;
  font-weight: 500;
}

.vamp-countdown {
  font-variant-numeric: tabular-nums;
  color: var(--app-text-secondary);
  background: var(--app-card-hover);
  border-radius: 6px;
  padding: 2px 8px;
  font-size: 12px;
  font-weight: 600;
}

.vamp-countdown.urgent {
  color: #e74c3c;
  background: #e74c3c1f;
}

.vamp-phase-icon {
  line-height: 0;
  display: inline-flex;
}

.vamp-phase-night .vamp-phase-icon, .vamp-phase-icon.night {
  color: #a78bfa;
}

.vamp-phase-day .vamp-phase-icon {
  color: #f59e0b;
}

.vamp-phase-vote .vamp-phase-icon, .vamp-phase-exec .vamp-phase-icon {
  color: #e74c3c;
}

.vamp-phase-hunter .vamp-phase-icon {
  color: #f59e0b;
}

.vamp-phase-over .vamp-phase-icon {
  color: #eab308;
}

.vamp-phase-dawn .vamp-phase-icon {
  color: #f97316;
}

.vamp-phase-role_confirm .vamp-phase-icon {
  color: var(--app-accent);
}

.vamp-myrole {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  border-radius: 8px;
  flex-shrink: 0;
  align-items: center;
  padding: 5px 10px;
  font-size: 11px;
  display: flex;
  overflow: hidden;
}

.vamp-myrole > * + * {
  margin-left: 8px;
}

.vamp-myrole-name {
  font-size: 12px;
  font-weight: 700;
}

.vamp-myrole.vampire .vamp-myrole-name {
  color: #ef4444;
}

.vamp-myrole.villager .vamp-myrole-name {
  color: var(--app-accent);
}

.vamp-myrole-mates {
  color: #ef4444;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: 600;
  overflow: hidden;
}

.vamp-myrole-checks {
  flex-wrap: wrap;
  flex-shrink: 0;
  justify-content: flex-end;
  gap: 4px;
  margin-left: auto;
  display: flex;
}

.vamp-myrole-checks span {
  border-radius: 4px;
  padding: 1px 5px;
  font-size: 10px;
  font-weight: 600;
}

.vamp-myrole-checks .bad {
  color: #ef4444;
  background: #ef44441f;
}

.vamp-myrole-checks .good {
  color: #22c55e;
  background: #22c55e1f;
}

.vamp-stage {
  border: 1px solid var(--app-border);
  aspect-ratio: 16 / 10;
  --asr: 16 / 10;
  background: #0b0d1a;
  border-radius: 12px;
  flex-shrink: 1;
  min-height: 150px;
  max-height: 300px;
  position: relative;
  overflow: visible;
}

.vamp-stage-bg {
  border-radius: 12px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

.vamp-stage-map {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: filter 1.2s;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  transform: scale(1.05);
}

.vamp-stage-tint {
  pointer-events: none;
  background: linear-gradient(#50287814, #0a0a1e61);
  transition: background 1.2s;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.vamp-stage-tint:after {
  content: "";
  background: radial-gradient(170px 72px at 100% 100%, #050610f2, #0000 72%), radial-gradient(120% 105% at 50% 45%, #0000 62%, #05061052 100%);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.vamp-stage-night .vamp-stage-map {
  filter: brightness(.5) saturate(.85) hue-rotate(-8deg);
}

.vamp-stage-night .vamp-stage-tint {
  background: radial-gradient(#280c461f, #040516bd);
}

.vamp-stage-dawn .vamp-stage-map {
  filter: brightness(.72) saturate(1.05);
}

.vamp-stage-dawn .vamp-stage-tint {
  background: linear-gradient(#ff8c3c1f, #0a0a1e61);
}

.vamp-stage-day .vamp-stage-map {
  filter: brightness(.95) saturate(1.1);
}

.vamp-stage-day .vamp-stage-tint {
  background: linear-gradient(#ffdc820f, #14142829);
}

.vamp-stage-blood .vamp-stage-map {
  filter: brightness(.68) saturate(.9) hue-rotate(-16deg);
}

.vamp-stage-blood .vamp-stage-tint {
  background: radial-gradient(#780a141a, #1c050a9e);
}

.vamp-stage-dusk .vamp-stage-map {
  filter: brightness(.78);
}

.vamp-stage-map-dayimg {
  opacity: 0;
  z-index: 1;
  transition: opacity 1.2s, filter 1.2s;
}

.vamp-stage-map-dayimg.on {
  opacity: 1;
}

.vamp-stage .vamp-stage-map-dayimg {
  filter: brightness(.78) saturate(.9);
}

.vamp-mapseat {
  cursor: default;
  z-index: 2;
  pointer-events: none;
  background: none;
  border: none;
  flex-direction: column;
  align-items: center;
  width: 200px;
  padding: 0;
  font-family: inherit;
  display: flex;
  position: absolute;
  transform: translate(-50%, -50%);
}

.vamp-mapseat > * + * {
  margin-top: 3px;
}

.vamp-mapseat-ring, .vamp-mapseat-plate, .vamp-mapseat-badges {
  pointer-events: auto;
}

.vamp-mapseat-ring {
  width: 44px;
  height: 44px;
  position: relative;
}

.vamp-mapseat-avatar {
  color: #e2e8f0;
  background: #0f1223d9;
  border: 2px solid #ffffff59;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  transition: border-color .2s, box-shadow .2s, filter .3s, transform .15s;
  display: flex;
  position: relative;
  overflow: hidden;
  box-shadow: 0 2px 8px #00000073;
}

.vamp-mapseat-avatar img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.vamp-mapseat-initial {
  font-size: 15px;
  font-weight: 700;
}

.vamp-mapseat-no {
  color: #ffffffbf;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 700;
  line-height: 18px;
}

.vamp-mapseat-host {
  color: #fbbf24;
  background: #713f12eb;
  border: 1px solid #fbbf248c;
  border-radius: 5px;
  flex-shrink: 0;
  padding: 0 4px;
  font-size: 9px;
  font-weight: 700;
  line-height: 14px;
}

.vamp-mapseat-points {
  color: #93c5fd;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  background: #1e293beb;
  border: 1px solid #93c5fd66;
  border-radius: 5px;
  flex-shrink: 0;
  padding: 0 4px;
  font-size: 9px;
  font-weight: 700;
  line-height: 14px;
}

.vamp-mapseat-mate {
  color: #fca5a5;
  background: #7f1d1deb;
  border: 1px solid #ef444499;
  border-radius: 5px;
  flex-shrink: 0;
  padding: 0 4px;
  font-size: 9px;
  font-weight: 700;
  line-height: 14px;
}

.vamp-mapseat-plate {
  white-space: nowrap;
  backdrop-filter: blur(4px);
  background: #080a16c7;
  border: 1px solid #ffffff24;
  border-radius: 9px;
  align-items: center;
  max-width: 200px;
  height: 18px;
  padding: 0 8px;
  display: flex;
}

.vamp-mapseat-plate > * + * {
  margin-left: 4px;
}

.vamp-mapseat-name {
  color: #f1f5f9;
  white-space: nowrap;
  text-overflow: ellipsis;
  min-width: 0;
  max-width: 160px;
  font-size: 11px;
  font-weight: 600;
  line-height: 18px;
  overflow: hidden;
}

.vamp-mapseat-ai {
  color: #fff9;
  letter-spacing: .5px;
  border: 1px solid #ffffff4d;
  border-radius: 4px;
  flex-shrink: 0;
  padding: 0 3px;
  font-size: 8px;
  font-weight: 700;
  line-height: 14px;
}

.vamp-mapseat.me .vamp-mapseat-avatar {
  border-color: var(--app-accent);
  box-shadow: 0 0 10px rgba(var(--app-accent-rgb), .55);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-mapseat.me .vamp-mapseat-avatar {
    box-shadow: 0 0 10px color-mix(in srgb,var(--app-accent) 55%,transparent);
  }
}

.vamp-mapseat.mate .vamp-mapseat-avatar {
  border-color: #ef4444;
}

.vamp-mapseat.dead .vamp-mapseat-avatar {
  filter: brightness(.5);
  border-color: #ffffff26;
}

.vamp-mapseat.dead .vamp-mapseat-plate {
  opacity: .55;
}

.vamp-mapseat-badges {
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  margin: -1.5px;
  display: flex;
}

.vamp-mapseat-badges > * {
  margin: 1.5px;
}

.vamp-mapseat.dead .vamp-mapseat-badges {
  opacity: .55;
}

.vamp-mapseat-out {
  color: #fca5a5;
  letter-spacing: .5px;
  border: 1px solid #ef444480;
  border-radius: 4px;
  flex-shrink: 0;
  align-self: center;
  padding: 0 3px;
  font-size: 8px;
  font-weight: 700;
  line-height: 14px;
}

.vamp-mapseat.clickable {
  cursor: pointer;
}

.vamp-mapseat.clickable .vamp-mapseat-avatar {
  border-color: #ffffffd9;
  animation: 1.6s ease-in-out infinite vamp-seat-breathe;
}

.vamp-mapseat.clickable:active .vamp-mapseat-avatar {
  transform: scale(.94);
}

.vamp-mapseat.picked .vamp-mapseat-avatar {
  border-color: var(--app-accent);
  box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb), .45),0 0 14px var(--app-accent);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-mapseat.picked .vamp-mapseat-avatar {
    box-shadow: 0 0 0 3px color-mix(in srgb,var(--app-accent) 45%,transparent),0 0 14px var(--app-accent);
  }
}

.vamp-mapseat.picked .vamp-mapseat-avatar {
  animation: none;
}

.vamp-mapseat.speaking .vamp-mapseat-avatar {
  border-color: #34d399;
  animation: 1s ease-in-out infinite vamp-seat-speak;
}

.vamp-mapseat.empty {
  opacity: .6;
}

.vamp-mapseat.empty .vamp-mapseat-avatar {
  color: #fff6;
  background: #0f122380;
  border-style: dashed;
}

.vamp-mapseat-plate-row {
  align-items: center;
  display: flex;
}

.vamp-mapseat-plate-row > * + * {
  margin-left: 4px;
}

.vamp-mapseat-role {
  border-radius: 5px;
  padding: 0 6px;
  font-size: 9px;
  font-weight: 700;
  line-height: 14px;
}

.vamp-mapseat-role.bad {
  color: #fca5a5;
  background: #7f1d1deb;
  border: 1px solid #ef444480;
}

.vamp-mapseat-role.good {
  color: #86efac;
  background: #064e3be6;
  border: 1px solid #22c55e80;
}

.vamp-mapseat-voted-dot {
  background: var(--app-accent);
  width: 7px;
  height: 7px;
  box-shadow: 0 0 4px var(--app-accent);
  z-index: 4;
  border-radius: 50%;
  animation: 1.4s ease-in-out infinite vampvote-pulse;
  position: absolute;
  top: 50%;
  right: -4px;
  transform: translateY(-50%);
}

@keyframes vampvote-pulse {
  0%, to {
    opacity: 1;
    transform: translateY(-50%) scale(1);
  }

  50% {
    opacity: .7;
    transform: translateY(-50%) scale(1.4);
  }
}

.vamp-vote-tally {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  border-radius: 10px;
  margin-top: 6px;
  padding: 8px 10px;
}

.vamp-vote-tally-head {
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
  display: flex;
}

.vamp-vote-tally-title {
  color: var(--app-text-tertiary);
  letter-spacing: .5px;
  font-size: 10px;
  font-weight: 600;
}

.vamp-vote-tally-progress {
  color: var(--app-accent);
  font-variant-numeric: tabular-nums;
  background: rgba(var(--app-accent-rgb), .14);
  border-radius: 999px;
  padding: 1px 7px;
  font-size: 10px;
  font-weight: 600;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-vote-tally-progress {
    background: color-mix(in srgb,var(--app-accent) 14%,transparent);
  }
}

.vamp-vote-tally-empty {
  color: var(--app-text-tertiary);
  text-align: center;
  padding: 4px 0;
  font-size: 11px;
}

.vamp-vote-tally-list {
  flex-direction: column;
  display: flex;
}

.vamp-vote-tally-list > * + * {
  margin-top: 4px;
}

.vamp-vote-tally-item {
  border-radius: 6px;
  align-items: center;
  padding: 3px 6px;
  transition: background .2s;
  display: flex;
}

.vamp-vote-tally-item > * + * {
  margin-left: 6px;
}

.vamp-vote-tally-item.leader {
  background: rgba(var(--app-accent-rgb), .12);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-vote-tally-item.leader {
    background: color-mix(in srgb,var(--app-accent) 12%,transparent);
  }
}

.vamp-vote-tally-rank {
  width: 15px;
  height: 15px;
  color: var(--app-text-tertiary);
  background: none;
  border-radius: 4px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-size: 10px;
  font-weight: 700;
  display: inline-flex;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-vote-tally-rank {
    background: color-mix(in srgb,var(--app-text-tertiary) 14%,transparent);
  }
}

.vamp-vote-tally-item.leader .vamp-vote-tally-rank {
  color: #fff;
  background: var(--app-accent);
}

.vamp-vote-tally-name {
  color: var(--app-text);
  white-space: nowrap;
  text-overflow: ellipsis;
  flex-shrink: 0;
  width: 48px;
  font-size: 11px;
  font-weight: 500;
  overflow: hidden;
}

.vamp-vote-tally-bar {
  background: var(--app-border);
  border-radius: 999px;
  flex: 1;
  height: 8px;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-vote-tally-bar {
    background: color-mix(in srgb,var(--app-border) 60%,transparent);
  }
}

.vamp-vote-tally-bar {
  overflow: hidden;
}

.vamp-vote-tally-fill {
  background: linear-gradient(90deg,rgba(var(--app-accent-rgb), .6),var(--app-accent));
  border-radius: 999px;
  height: 100%;
  display: block;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-vote-tally-fill {
    background: linear-gradient(90deg,color-mix(in srgb,var(--app-accent) 60%,transparent),var(--app-accent));
  }
}

.vamp-vote-tally-fill {
  transition: width .5s cubic-bezier(.22, 1, .36, 1);
}

.vamp-vote-tally-item.leader .vamp-vote-tally-fill {
  box-shadow: 0 0 8px rgba(var(--app-accent-rgb), .6);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-vote-tally-item.leader .vamp-vote-tally-fill {
    box-shadow: 0 0 8px color-mix(in srgb,var(--app-accent) 60%,transparent);
  }
}

.vamp-vote-tally-item.abstain {
  opacity: .75;
}

.vamp-vote-tally-item.abstain .vamp-vote-tally-rank {
  background: none;
  font-size: 13px;
}

.vamp-vote-tally-item.abstain .vamp-vote-tally-fill {
  background: var(--app-text-tertiary);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-vote-tally-item.abstain .vamp-vote-tally-fill {
    background: color-mix(in srgb,var(--app-text-tertiary) 55%,transparent);
  }
}

.vamp-vote-tally-n {
  color: var(--app-text);
  text-align: right;
  font-variant-numeric: tabular-nums;
  min-width: 30px;
  font-size: 11px;
  font-weight: 700;
}

.vamp-vote-tally-n i {
  color: var(--app-text-tertiary);
  margin-left: 1px;
  font-size: 9px;
  font-style: normal;
  font-weight: 500;
}

.vamp-vote-tally-pending {
  color: var(--app-text-tertiary);
  text-align: center;
  margin-top: 6px;
  font-size: 10px;
  animation: 1.6s ease-in-out infinite vamp-vote-pending;
}

@keyframes vamp-vote-pending {
  0%, to {
    opacity: .55;
  }

  50% {
    opacity: 1;
  }
}

.vamp-voteresult {
  color: #fff;
  background: linear-gradient(160deg, #201a1ef7, #141218f7);
  border: 1px solid #ff5a5a47;
  border-radius: 12px;
  margin: 4px 0;
  padding: 10px 12px;
  animation: .36s cubic-bezier(.34, 1.4, .64, 1) vamp-voteresult-in;
  box-shadow: 0 8px 24px #00000073, 0 0 0 1px #ff464614;
}

@keyframes vamp-voteresult-in {
  0% {
    opacity: 0;
    transform: translateY(6px) scale(.97);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.vamp-voteresult-head {
  border-bottom: 1px dashed #ffffff29;
  align-items: center;
  margin-bottom: 7px;
  padding-bottom: 7px;
  display: flex;
}

.vamp-voteresult-head > * + * {
  margin-left: 5px;
}

.vamp-voteresult-head svg {
  color: #ff6b6b;
  flex-shrink: 0;
}

.vamp-voteresult-title {
  letter-spacing: 1px;
  font-size: 12px;
  font-weight: 700;
}

.vamp-voteresult-tag {
  white-space: nowrap;
  text-overflow: ellipsis;
  border-radius: 999px;
  max-width: 55%;
  margin-left: auto;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 600;
  overflow: hidden;
}

.vamp-voteresult-tag.condemn {
  color: #ffd7d7;
  background: #ff475738;
  border: 1px solid #ff475773;
}

.vamp-voteresult-tag.tie {
  color: #d7e3ff;
  background: #5a8cff29;
  border: 1px solid #5a8cff59;
}

.vamp-voteresult-empty {
  color: #ffffff8c;
  text-align: center;
  padding: 6px 0;
  font-size: 11px;
}

.vamp-voteresult-list {
  flex-direction: column;
  display: flex;
}

.vamp-voteresult-list > * + * {
  margin-top: 5px;
}

.vamp-voteresult-row {
  border-radius: 6px;
  align-items: center;
  padding: 2px 4px;
  display: flex;
}

.vamp-voteresult-row > * + * {
  margin-left: 6px;
}

.vamp-voteresult-seat {
  text-align: center;
  color: #fff;
  background: #ffffff24;
  border-radius: 4px;
  flex-shrink: 0;
  min-width: 26px;
  padding: 1px 4px;
  font-size: 10px;
  font-weight: 700;
}

.vamp-voteresult-row.victim .vamp-voteresult-seat {
  background: #ff4757;
  box-shadow: 0 0 8px #ff475799;
}

.vamp-voteresult-name {
  white-space: nowrap;
  text-overflow: ellipsis;
  flex-shrink: 0;
  width: 64px;
  font-size: 11px;
  font-weight: 500;
  overflow: hidden;
}

.vamp-voteresult-bar {
  background: #ffffff1a;
  border-radius: 999px;
  flex: 1;
  height: 8px;
  overflow: hidden;
}

.vamp-voteresult-fill {
  background: linear-gradient(90deg, #ff6b6b73, #ff6b6b);
  border-radius: 999px;
  height: 100%;
  animation: .6s cubic-bezier(.22, 1, .36, 1) vamp-voteresult-bar;
  display: block;
}

@keyframes vamp-voteresult-bar {
  0% {
    width: 0;
  }
}

.vamp-voteresult-row.victim .vamp-voteresult-fill {
  background: linear-gradient(90deg, #ff4757, #ff2d3f);
  box-shadow: 0 0 8px #ff47578c;
}

.vamp-voteresult-row.lead .vamp-voteresult-fill {
  background: linear-gradient(90deg, #ffc87866, #ffb86b);
}

.vamp-voteresult-row.abstain {
  opacity: .65;
}

.vamp-voteresult-row.abstain .vamp-voteresult-fill {
  background: #ffffff47;
}

.vamp-voteresult-n {
  text-align: right;
  font-variant-numeric: tabular-nums;
  min-width: 30px;
  font-size: 12px;
  font-weight: 700;
}

.vamp-voteresult-n i {
  color: #ffffff8c;
  margin-left: 1px;
  font-size: 9px;
  font-style: normal;
  font-weight: 500;
}

.vamp-voteresult-foot {
  color: #ffffff80;
  text-align: center;
  margin-top: 7px;
  font-size: 10px;
}

@keyframes vamp-seat-breathe {
  0%, to {
    box-shadow: 0 0 6px #ffffff59;
  }

  50% {
    box-shadow: 0 0 16px #ffffffbf;
  }
}

@keyframes vamp-seat-speak {
  0%, to {
    box-shadow: 0 0 8px #34d39980;
  }

  50% {
    box-shadow: 0 0 18px #34d399e6;
  }
}

.vamp-scene {
  z-index: 5;
  cursor: pointer;
  animation: .45s both vamp-scene-in;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

.vamp-scene-img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  animation: 3.4s ease-out both vamp-scene-zoom;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.vamp-scene-shade {
  background: linear-gradient(#05061038, #05061000 42%, #050610bd);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.vamp-scene-shade:after {
  content: "";
  background: radial-gradient(180px 80px at 100% 100%, #050610f5, #0000 72%);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.vamp-scene-caption {
  text-align: center;
  letter-spacing: 2px;
  color: #fff;
  text-shadow: 0 2px 10px #000000d9;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 700;
  animation: .6s .15s both vamp-caption-up;
  position: absolute;
  bottom: 10%;
  left: 0;
  right: 0;
}

.vamp-scene-attack {
  animation: .35s both vamp-scene-in, .55s .1s vamp-scene-shake;
}

.vamp-scene-attack .vamp-scene-caption {
  color: #fca5a5;
}

.vamp-scene-win-good .vamp-scene-caption {
  color: #fde68a;
  text-shadow: 0 2px 12px #000000e6;
}

.vamp-scene-win-evil .vamp-scene-caption {
  color: #fecaca;
}

.vamp-scene-gun {
  animation: .3s both vamp-scene-in, .45s .1s vamp-scene-shake;
}

.vamp-scene-gun .vamp-scene-caption, .vamp-scene-guard .vamp-scene-caption {
  color: #fde68a;
}

.vamp-fx-particles {
  pointer-events: none;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.vamp-fx-particles i {
  opacity: 0;
  background: #fde68a;
  border-radius: 50%;
  width: 4px;
  height: 4px;
  animation: 2.3s ease-in both vampfx-particle;
  position: absolute;
  bottom: 12%;
  box-shadow: 0 0 6px #fde68ae6;
}

.vamp-fx-particles i:first-child {
  animation-delay: .15s;
  left: 30%;
}

.vamp-fx-particles i:nth-child(2) {
  width: 3px;
  height: 3px;
  animation-delay: .55s;
  left: 42%;
}

.vamp-fx-particles i:nth-child(3) {
  animation-delay: .3s;
  left: 55%;
}

.vamp-fx-particles i:nth-child(4) {
  width: 5px;
  height: 5px;
  animation-delay: .8s;
  left: 64%;
}

.vamp-fx-particles i:nth-child(5) {
  width: 3px;
  height: 3px;
  animation-delay: 1s;
  left: 24%;
}

.vamp-fx-particles i:nth-child(6) {
  animation-delay: .45s;
  left: 70%;
}

.vamp-fx-particles i:nth-child(7) {
  width: 3px;
  height: 3px;
  animation-delay: 1.2s;
  left: 48%;
}

.vamp-fx-particles i:nth-child(8) {
  animation-delay: 1.5s;
  left: 37%;
}

.vamp-fx-particles i:nth-child(9) {
  width: 5px;
  height: 5px;
  animation-delay: 1.1s;
  left: 60%;
}

.vamp-fx-particles i:nth-child(10) {
  width: 3px;
  height: 3px;
  animation-delay: 1.4s;
  left: 76%;
}

@keyframes vampfx-particle {
  0% {
    opacity: 0;
    transform: translateY(0) scale(.6);
  }

  18% {
    opacity: .95;
  }

  to {
    opacity: 0;
    transform: translateY(-110px) scale(1);
  }
}

.vamp-winfx {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

.vamp-winfx-glow {
  opacity: 0;
  background: radial-gradient(circle, #fff6d299, #fbbf2438 45%, #0000 72%);
  border-radius: 50%;
  width: 280px;
  height: 280px;
  animation: 4s ease-out .3s both vampwin-glow;
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%) scale(.4);
}

.vamp-winfx-halo {
  opacity: 0;
  border: 1.5px solid #ffe496cc;
  border-radius: 50%;
  width: 120px;
  height: 120px;
  animation: 2.8s ease-out .8s infinite vampwin-halo;
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%) scale(.3);
  box-shadow: 0 0 18px #fbbf2459, inset 0 0 14px #fbbf242e;
}

.vamp-winfx-halo.d2 {
  animation-delay: 2.2s;
}

.vamp-winfx-beams {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.vamp-winfx-beams i {
  filter: blur(4px);
  opacity: 0;
  background: linear-gradient(#ffeeaf80, #ffeeaf0f 78%, #0000);
  width: 30px;
  height: 78%;
  animation: 3.8s ease-in-out infinite vampwin-beam;
  position: absolute;
  top: -12%;
  transform: skew(-9deg);
}

.vamp-winfx-beams i:first-child {
  animation-delay: .5s;
  left: 14%;
}

.vamp-winfx-beams i:nth-child(2) {
  width: 22px;
  animation-delay: 1.4s;
  left: 32%;
}

.vamp-winfx-beams i:nth-child(3) {
  width: 38px;
  animation-delay: .9s;
  left: 50%;
}

.vamp-winfx-beams i:nth-child(4) {
  width: 22px;
  animation-delay: 1.9s;
  left: 68%;
}

.vamp-winfx-beams i:nth-child(5) {
  animation-delay: .2s;
  left: 84%;
}

.vamp-winfx-title {
  text-align: center;
  letter-spacing: 8px;
  background: linear-gradient(#fffbe8, #fbbf24);
  color: #0000;
  filter: drop-shadow(0 2px 10px #0009);
  -webkit-background-clip: text;
  background-clip: text;
  font-size: 21px;
  font-weight: 800;
  animation: 1.5s cubic-bezier(.2, .8, .3, 1) .9s both vampwin-title;
  position: absolute;
  top: 30%;
  left: 0;
  right: 0;
}

.vamp-winfx-bottom {
  background: linear-gradient(#0000, #0a0a169e);
  height: 42%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

@keyframes vampwin-glow {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(.4);
  }

  35% {
    opacity: 1;
  }

  to {
    opacity: .85;
    transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes vampwin-halo {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(.3);
  }

  16% {
    opacity: .9;
  }

  to {
    opacity: 0;
    transform: translate(-50%, -50%) scale(2.8);
  }
}

@keyframes vampwin-beam {
  0%, to {
    opacity: .12;
  }

  50% {
    opacity: .55;
  }
}

@keyframes vampwin-title {
  0% {
    opacity: 0;
    letter-spacing: 2px;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    letter-spacing: 8px;
    transform: translateY(0);
  }
}

.vamp-stage-banner {
  z-index: 6;
  backdrop-filter: blur(6px);
  color: #fecaca;
  text-align: center;
  white-space: nowrap;
  text-overflow: ellipsis;
  pointer-events: none;
  background: #080a16d1;
  border: 1px solid #ef444473;
  border-radius: 999px;
  max-width: 86%;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
  animation: .35s both vamp-banner-in;
  position: absolute;
  top: 8px;
  left: 50%;
  overflow: hidden;
  transform: translate(-50%);
  box-shadow: 0 4px 14px #0006;
}

.vamp-stage-banner.good {
  color: #bbf7d0;
  border-color: #22c55e73;
}

@keyframes vamp-banner-in {
  0% {
    opacity: 0;
    transform: translate(-50%) translateY(-8px);
  }

  to {
    opacity: 1;
    transform: translate(-50%) translateY(0);
  }
}

.vamp-bubble-stack {
  z-index: 6;
  pointer-events: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0 10px;
  display: flex;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.vamp-bubble-stack > * + * {
  margin-top: 6px;
}

.vamp-map-bubble {
  backdrop-filter: blur(6px);
  pointer-events: none;
  background: #080a16e6;
  border: 1px solid #ffffff38;
  border-radius: 10px;
  max-width: 240px;
  padding: 5px 11px;
  animation: 5s both vamp-bubble-life;
  position: relative;
  box-shadow: 0 3px 10px #00000073;
}

.vamp-map-bubble-seat {
  color: var(--app-accent);
  white-space: nowrap;
  margin-bottom: 1px;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.3;
  display: block;
}

.vamp-map-bubble-text {
  color: #f1f5f9;
  word-break: break-word;
  white-space: normal;
  text-align: left;
  font-size: 11px;
  line-height: 1.45;
  display: block;
}

@keyframes vamp-bubble-life {
  0% {
    opacity: 0;
  }

  4% {
    opacity: 1;
  }

  92% {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes vamp-scene-in {
  0% {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes vamp-scene-zoom {
  0% {
    transform: scale(1.09);
  }

  to {
    transform: scale(1);
  }
}

@keyframes vamp-caption-up {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes vamp-scene-shake {
  0%, to {
    transform: none;
  }

  20% {
    transform: translate(3px, -2px);
  }

  40% {
    transform: translate(-3px, 2px);
  }

  60% {
    transform: translate(2px, 2px);
  }

  80% {
    transform: translate(-2px, -2px);
  }
}

@media (max-width: 480px) {
  .vamp-stage {
    max-height: 230px;
  }

  .vamp-mapseat {
    gap: 2px;
    width: 150px;
  }

  .vamp-mapseat-ring {
    width: 32px;
    height: 32px;
  }

  .vamp-mapseat-avatar {
    border-width: 1.5px;
  }

  .vamp-mapseat-initial {
    font-size: 12px;
  }

  .vamp-mapseat-plate {
    border-radius: 8px;
    gap: 3px;
    max-width: 118px;
    height: 15px;
    padding: 0 5px;
  }

  .vamp-mapseat-no {
    font-size: 9px;
    line-height: 15px;
  }

  .vamp-mapseat-name {
    max-width: 96px;
    font-size: 9px;
    line-height: 15px;
  }

  .vamp-mapseat-host, .vamp-mapseat-points, .vamp-mapseat-mate, .vamp-mapseat-role, .vamp-mapseat-declared {
    border-radius: 4px;
    padding: 0 3px;
    font-size: 8px;
    line-height: 11px;
  }

  .vamp-mapseat-ai {
    padding: 0 2px;
    font-size: 7px;
    line-height: 10px;
  }

  .vamp-mapseat-badges {
    gap: 2px;
  }

  .vamp-mapseat-out {
    padding: 0 2px;
    font-size: 7px;
    line-height: 10px;
  }

  .vamp-map-bubble {
    max-width: 160px;
  }

  .vamp-scene-caption {
    letter-spacing: 1px;
    font-size: 12px;
  }

  .vamp-winfx-title {
    letter-spacing: 5px;
    font-size: 16px;
  }
}

.vamp-action {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  border-radius: 10px;
  flex-direction: column;
  flex-shrink: 0;
  padding: 8px 10px;
  display: flex;
}

.vamp-action > * + * {
  margin-top: 6px;
}

.vamp-hint {
  color: var(--app-text-secondary);
  font-size: 11px;
  line-height: 1.5;
}

.vamp-skill-urge {
  justify-content: center;
  align-items: center;
  animation: 1.6s ease-in-out infinite vamp-skill-urge;
  display: inline-flex;
}

.vamp-skill-urge > * + * {
  margin-left: 4px;
}

@keyframes vamp-skill-urge {
  0%, to {
    box-shadow: 0 0 rgba(var(--app-accent-rgb),.5);
  }

  50% {
    box-shadow: 0 0 0 5px rgba(var(--app-accent-rgb),0);
  }
}

.vamp-stage.checkguide .vamp-mapseat.clickable .vamp-mapseat-avatar {
  border-color: var(--app-accent);
  box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb), .4),0 0 12px var(--app-accent);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-stage.checkguide .vamp-mapseat.clickable .vamp-mapseat-avatar {
    box-shadow: 0 0 0 3px color-mix(in srgb,var(--app-accent) 40%,transparent),0 0 12px var(--app-accent);
  }
}

.vamp-roomid {
  color: var(--app-text);
  font-variant-numeric: tabular-nums;
  letter-spacing: 1px;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  font-weight: 600;
  display: flex;
}

.vamp-roomid > * + * {
  margin-left: 8px;
}

.vamp-mini-btn {
  border: 1px solid var(--app-border);
  color: var(--app-text-secondary);
  cursor: pointer;
  background: none;
  border-radius: 6px;
  padding: 3px;
  line-height: 0;
  transition: background .15s, color .15s;
  display: inline-flex;
}

.vamp-mini-btn:hover {
  background: var(--app-card-hover);
  color: var(--app-text);
}

.vamp-waiting-btns {
  display: flex;
}

.vamp-waiting-btns > * + * {
  margin-left: 6px;
}

.vamp-waiting-btns .ming-game-btn {
  flex: 1;
}

.vamp-rules-link {
  cursor: pointer;
  color: var(--app-text-tertiary);
  text-align: center;
  background: none;
  border: none;
  padding: 0;
  font-size: 11px;
  transition: color .15s;
}

.vamp-rules-link:hover {
  color: var(--app-text);
}

.vamp-rules2 {
  --vr2-evil: #fca5a5;
  --vr2-evil-deep: #ef4444;
  --vr2-evil-bg: #ef444424;
  --vr2-evil-chip-bg: #7f1d1d80;
  --vr2-evil-chip-border: #ef444473;
  --vr2-good: #93c5fd;
  --vr2-good-border: #60a5fa;
  --vr2-good-bg: #60a5fa24;
  --vr2-good-chip-bg: #1e3a8a6b;
  --vr2-good-chip-border: #60a5fa66;
  --vr2-active: #fbbf24;
  --vr2-active-bg: #fbbf241a;
  --vr2-active-border: #fbbf2452;
  --vr2-passive: #a78bfa;
  --vr2-passive-bg: #a78bfa1a;
  --vr2-passive-border: #a78bfa52;
  --vr2-win-good: #4ade80;
  --vr2-win-good-bg: #22c55e14;
  --vr2-win-good-border: #22c55e4d;
  --vr2-hero-bg: linear-gradient(160deg, #4c0519e6, #180a2eeb 55%, #080a18f2);
  --vr2-hero-border: #ef444438;
  --vr2-hero-title: linear-gradient(180deg, #fff1f2, #fca5a5 70%, #ef4444);
  --vr2-hero-title-shadow: drop-shadow(0 2px 8px #00000080);
  --vr2-hero-sub: #ffebee8c;
  --vr2-hero-close-bg: #ffffff14;
  --vr2-hero-close-bg-hover: #ffffff29;
  --vr2-hero-close-text: #ffffffbf;
  --vr2-vs: #fff6;
  --vr2-step-dot-bg: #713f1266;
  overflow: hidden;
}

[data-theme="light"] .vamp-rules2 {
  --vr2-evil: #b91c1c;
  --vr2-evil-deep: #c8202d;
  --vr2-evil-bg: #c8202d14;
  --vr2-evil-chip-bg: #c8202d14;
  --vr2-evil-chip-border: #c8202d47;
  --vr2-good: #1d4ed8;
  --vr2-good-border: #3b82f6;
  --vr2-good-bg: #2563eb14;
  --vr2-good-chip-bg: #2563eb12;
  --vr2-good-chip-border: #2563eb40;
  --vr2-active: #b45309;
  --vr2-active-bg: #b4530914;
  --vr2-active-border: #b453094d;
  --vr2-passive: #7c3aed;
  --vr2-passive-bg: #7c3aed12;
  --vr2-passive-border: #7c3aed47;
  --vr2-win-good: #15803d;
  --vr2-win-good-bg: #16a34a0f;
  --vr2-win-good-border: #16a34a40;
  --vr2-hero-bg: linear-gradient(160deg, #fff5f5, #fdf6f0 55%, #faf7f2);
  --vr2-hero-border: #c8202d24;
  --vr2-hero-title: linear-gradient(180deg, #7f1d1d, #c8202d);
  --vr2-hero-title-shadow: none;
  --vr2-hero-sub: #78463c99;
  --vr2-hero-close-bg: #78463c14;
  --vr2-hero-close-bg-hover: #78463c29;
  --vr2-hero-close-text: #78463ca6;
  --vr2-vs: #00000052;
  --vr2-step-dot-bg: #b453091a;
}

.vamp-rules2-hero {
  text-align: center;
  background: var(--vr2-hero-bg);
  border-bottom: 1px solid var(--vr2-hero-border);
  flex-shrink: 0;
  padding: 22px 16px 14px;
  position: relative;
  overflow: hidden;
}

.vamp-rules2-close {
  background: var(--vr2-hero-close-bg);
  width: 26px;
  height: 26px;
  color: var(--vr2-hero-close-text);
  cursor: pointer;
  z-index: 1;
  border: none;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  transition: background .15s;
  display: flex;
  position: absolute;
  top: 10px;
  right: 10px;
}

.vamp-rules2-close:hover {
  background: var(--vr2-hero-close-bg-hover);
}

.vamp-rules2-title {
  letter-spacing: 6px;
  background: var(--vr2-hero-title);
  color: #0000;
  filter: var(--vr2-hero-title-shadow);
  -webkit-background-clip: text;
  background-clip: text;
  font-size: 20px;
  font-weight: 800;
}

.vamp-rules2-sub {
  letter-spacing: 2px;
  color: var(--vr2-hero-sub);
  margin-top: 4px;
  font-size: 10px;
}

.vamp-rules2-teams {
  justify-content: center;
  align-items: center;
  margin-top: 12px;
  display: flex;
}

.vamp-rules2-teams > * + * {
  margin-left: 10px;
}

.vamp-rules2-team {
  border-radius: 999px;
  align-items: center;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 700;
  display: flex;
}

.vamp-rules2-team > * + * {
  margin-left: 5px;
}

.vamp-rules2-team.evil {
  color: var(--vr2-evil);
  background: var(--vr2-evil-chip-bg);
  border: 1px solid var(--vr2-evil-chip-border);
}

.vamp-rules2-team.good {
  color: var(--vr2-good);
  background: var(--vr2-good-chip-bg);
  border: 1px solid var(--vr2-good-chip-border);
}

.vamp-rules2-vs {
  color: var(--vr2-vs);
  letter-spacing: 1px;
  font-size: 10px;
  font-weight: 800;
}

.vamp-rules2-body {
  padding: 14px 16px 18px;
}

.vamp-rules2-body section + section {
  margin-top: 16px;
}

.vamp-rules2-sec {
  color: var(--app-text);
  letter-spacing: 2px;
  align-items: center;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 800;
  display: flex;
}

.vamp-rules2-sec > * + * {
  margin-left: 8px;
}

.vamp-rules2-sec:after {
  content: "";
  background: var(--app-border);
  flex: 1;
  height: 1px;
}

.vamp-rules2-role {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  will-change: transform;
  border-radius: 10px;
  padding: 8px 10px;
}

.vamp-rules2-role-head {
  align-items: center;
  margin-bottom: 4px;
  display: flex;
}

.vamp-rules2-role-head > * + * {
  margin-left: 6px;
}

.vamp-rules2-role-avatar {
  object-fit: cover;
  border: 1.5px solid var(--vr2-evil-deep);
  background: var(--app-card);
  border-radius: 50%;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
}

.vamp-rules2-role.villager .vamp-rules2-role-avatar {
  border-color: var(--vr2-good-border);
}

.vamp-rules2-role-name {
  color: var(--app-text);
  font-size: 13px;
  font-weight: 700;
}

.vamp-rules2-role-count {
  color: var(--app-text-tertiary);
  font-size: 10px;
  font-weight: 700;
}

.vamp-rules2-role-team {
  border-radius: 999px;
  flex-shrink: 0;
  margin-left: auto;
  padding: 1px 7px;
  font-size: 9px;
  font-weight: 700;
}

.vamp-rules2-role-team.vampire {
  color: var(--vr2-evil);
  background: var(--vr2-evil-bg);
}

.vamp-rules2-role-team.villager {
  color: var(--vr2-good);
  background: var(--vr2-good-bg);
}

.vamp-rules2-role-desc {
  color: var(--app-text-secondary);
  font-size: 11.5px;
  line-height: 1.7;
}

.vamp-rules2-skills {
  flex-direction: column;
  margin-bottom: 4px;
  display: flex;
}

.vamp-rules2-skills > * + * {
  margin-top: 4px;
}

.vamp-rules2-skill {
  align-items: baseline;
  display: flex;
}

.vamp-rules2-skill > * + * {
  margin-left: 6px;
}

.vamp-rules2-skill-tag {
  letter-spacing: 1px;
  border-radius: 4px;
  flex-shrink: 0;
  padding: 1px 5px;
  font-size: 9px;
  font-weight: 800;
  transform: translateY(-1px);
}

.vamp-rules2-skill-tag.active {
  color: var(--vr2-active);
  background: var(--vr2-active-bg);
  border: 1px solid var(--vr2-active-border);
}

.vamp-rules2-skill-tag.passive {
  color: var(--vr2-passive);
  background: var(--vr2-passive-bg);
  border: 1px solid var(--vr2-passive-border);
}

.vamp-rules2-skill-name {
  color: var(--app-text);
  flex-shrink: 0;
  font-size: 11.5px;
  font-weight: 700;
}

.vamp-rules2-skill-desc {
  color: var(--app-text-secondary);
  min-width: 0;
  font-size: 11.5px;
  line-height: 1.65;
}

.vamp-rules2-flow {
  flex-direction: column;
  display: flex;
}

.vamp-rules2-step {
  display: flex;
}

.vamp-rules2-step > * + * {
  margin-left: 10px;
}

.vamp-rules2-step-rail {
  flex-direction: column;
  flex-shrink: 0;
  align-items: center;
  display: flex;
}

.vamp-rules2-step-dot {
  width: 22px;
  height: 22px;
  color: var(--vr2-active);
  background: var(--vr2-step-dot-bg);
  border: 1px solid var(--vr2-active-border);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.vamp-rules2-step-line {
  background: var(--app-border);
  flex: 1;
  width: 1px;
  min-height: 8px;
  margin: 2px 0;
}

.vamp-rules2-step-body {
  min-width: 0;
  padding-bottom: 10px;
}

.vamp-rules2-step:last-child .vamp-rules2-step-body {
  padding-bottom: 0;
}

.vamp-rules2-step-title {
  color: var(--app-text);
  font-size: 12px;
  font-weight: 700;
  line-height: 22px;
}

.vamp-rules2-step-desc {
  color: var(--app-text-secondary);
  margin-top: 1px;
  font-size: 11px;
  line-height: 1.6;
}

.vamp-rules2-wins {
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  display: grid;
}

.vamp-rules2-win {
  border-radius: 10px;
  padding: 9px 10px;
  font-size: 10.5px;
  line-height: 1.6;
}

.vamp-rules2-win.good {
  background: var(--vr2-win-good-bg);
  border: 1px solid var(--vr2-win-good-border);
  color: var(--app-text-secondary);
}

.vamp-rules2-win.evil {
  background: var(--vr2-evil-bg);
  border: 1px solid var(--vr2-evil-chip-border);
  color: var(--app-text-secondary);
}

.vamp-rules2-win-head {
  align-items: center;
  margin-bottom: 4px;
  font-size: 11.5px;
  font-weight: 800;
  display: flex;
}

.vamp-rules2-win-head > * + * {
  margin-left: 5px;
}

.vamp-rules2-win.good .vamp-rules2-win-head {
  color: var(--vr2-win-good);
}

.vamp-rules2-win.evil .vamp-rules2-win-head {
  color: var(--vr2-evil-deep);
}

.vamp-rules2-notes {
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.vamp-rules2-notes > * + * {
  margin-top: 6px;
}

.vamp-rules2-notes li {
  color: var(--app-text-secondary);
  padding-left: 14px;
  font-size: 11px;
  line-height: 1.65;
  position: relative;
}

.vamp-rules2-notes li:before {
  content: "";
  background: var(--vr2-passive);
  border-radius: 50%;
  width: 5px;
  height: 5px;
  position: absolute;
  top: 8px;
  left: 2px;
}

.vamp-rolecard {
  text-align: left;
  border-radius: 10px;
  flex-direction: row;
  align-items: stretch;
  padding: 8px;
  display: flex;
}

.vamp-rolecard > * + * {
  margin-left: 10px;
}

.vamp-rolecard.vampire {
  background: #ef44441a;
  border: 1px solid #ef444459;
}

.vamp-rolecard.villager {
  background: rgba(var(--app-accent-rgb), .1);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-rolecard.villager {
    background: color-mix(in srgb,var(--app-accent) 10%,transparent);
  }
}

.vamp-rolecard.villager {
  border: 1px solid rgba(var(--app-accent-rgb), .35);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-rolecard.villager {
    border: 1px solid color-mix(in srgb,var(--app-accent) 35%,transparent);
  }
}

.vamp-rolecard-art {
  border: 1px solid #80808040;
  border-radius: 8px;
  flex-shrink: 0;
  width: 68px;
  height: 68px;
  overflow: hidden;
}

.vamp-rolecard-art img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.vamp-rolecard-body {
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  display: flex;
}

.vamp-rolecard-body > * + * {
  margin-top: 3px;
}

.vamp-rolecard-name {
  font-size: 16px;
  font-weight: 700;
}

.vamp-rolecard.vampire .vamp-rolecard-name {
  color: #ef4444;
}

.vamp-rolecard.villager .vamp-rolecard-name {
  color: var(--app-accent);
}

.vamp-rolecard-desc {
  color: var(--app-text-secondary);
  font-size: 11px;
  line-height: 1.5;
}

.vamp-rolecard-mates {
  color: #ef4444;
  font-size: 11px;
  font-weight: 600;
}

.vamp-winner {
  text-align: center;
  letter-spacing: 1px;
  font-size: 15px;
  font-weight: 800;
}

.vamp-winner.good {
  color: #22c55e;
}

.vamp-winner.bad {
  color: #ef4444;
}

.vamp-chat {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--app-border);
  background: var(--app-card);
  border-radius: 10px;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  padding: 8px;
  display: flex;
  overflow-y: auto;
}

.vamp-chat > * + * {
  margin-top: 3px;
}

.vamp-msg {
  word-break: break-word;
  border-radius: 6px;
  align-items: flex-start;
  padding: 2px 6px;
  font-size: 12px;
  line-height: 1.5;
  display: flex;
}

.vamp-msg > * + * {
  margin-left: 7px;
}

.vamp-msg-avatar {
  background: rgba(var(--app-text-rgb), .08);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 26px;
  height: 26px;
  margin-top: 1px;
  display: flex;
  overflow: hidden;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-msg-avatar {
    background: color-mix(in srgb,var(--app-text) 8%,transparent);
  }
}

.vamp-msg-avatar {
  border: 1px solid var(--app-border);
  color: var(--app-text-tertiary, #94a3b8);
}

.vamp-msg-avatar img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.vamp-msg-avatar span {
  color: var(--app-accent);
  font-size: 11px;
  font-weight: 600;
}

.vamp-msg-main {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.vamp-msg-main > * + * {
  margin-top: 2px;
}

.vamp-msg-head {
  align-items: center;
  min-width: 0;
  display: flex;
}

.vamp-msg-head > * + * {
  margin-left: 5px;
}

.vamp-msg-chan {
  color: var(--app-text-tertiary, #94a3b8);
  border: 1px solid var(--app-border);
  border-radius: 4px;
  flex-shrink: 0;
  padding: 0 3px;
  font-size: 9px;
  font-weight: 700;
  line-height: 14px;
}

.vamp-msg-name {
  color: var(--app-accent);
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 600;
}

.vamp-msg-seatbtn {
  color: var(--app-text-secondary, #64748b);
  background: rgba(var(--app-accent-rgb), .08);
  font-family: inherit;
  font-size: 9px;
  font-weight: 700;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-msg-seatbtn {
    background: color-mix(in srgb,var(--app-accent) 8%,transparent);
  }
}

.vamp-msg-seatbtn {
  border: 1px solid rgba(var(--app-accent-rgb), .25);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-msg-seatbtn {
    border: 1px solid color-mix(in srgb,var(--app-accent) 25%,transparent);
  }
}

.vamp-msg-seatbtn {
  cursor: default;
  border-radius: 4px;
  flex-shrink: 0;
  padding: 0 4px;
  line-height: 14px;
}

.vamp-msg-text {
  color: var(--app-text);
  min-width: 0;
}

.vamp-msg.system {
  color: var(--app-text-tertiary, #94a3b8);
  text-align: center;
  justify-content: center;
  font-size: 11px;
}

.vamp-msg.wolf {
  background: #ef444414;
}

.vamp-msg.wolf .vamp-msg-chan {
  color: #ef4444;
  border-color: #ef444459;
}

.vamp-msg.night_anon {
  background: #8b5cf614;
}

.vamp-msg.night_anon .vamp-msg-chan {
  color: #a78bfa;
  border-color: #8b5cf659;
}

.vamp-msg.dead {
  opacity: .65;
}

.vamp-msg.lastwords {
  background-color: var(--app-card);
  background-image: linear-gradient(rgba(var(--app-accent-rgb),.08),rgba(var(--app-accent-rgb),.08));
  border: 1px solid rgba(var(--app-accent-rgb), .35);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-msg.lastwords {
    border: 1px solid color-mix(in srgb,var(--app-accent) 35%,transparent);
  }
}

.vamp-msg.lastwords {
  border-radius: 10px;
  margin: 3px 0;
  padding: 5px 9px;
}

.vamp-msg.lastwords .vamp-msg-chan {
  color: var(--app-accent);
  border-color: rgba(var(--app-accent-rgb), .4);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-msg.lastwords .vamp-msg-chan {
    border-color: color-mix(in srgb,var(--app-accent) 40%,transparent);
  }
}

.vamp-msg.private {
  background: rgba(var(--app-accent-rgb), .1);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-msg.private {
    background: color-mix(in srgb,var(--app-accent) 10%,transparent);
  }
}

.vamp-msg.private {
  align-items: baseline;
  gap: 5px;
  font-weight: 500;
}

.vamp-msg.private .vamp-msg-name {
  font-size: 10px;
}

.vamp-inputrow {
  flex-shrink: 0;
  display: flex;
}

.vamp-inputrow > * + * {
  margin-left: 6px;
}

.vamp-input {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  min-width: 0;
  color: var(--app-text);
  border-radius: 8px;
  outline: none;
  flex: 1;
  padding: 7px 10px;
  font-family: inherit;
  font-size: 12px;
  transition: border-color .15s;
}

.vamp-input:focus {
  border-color: var(--app-accent);
}

.vamp-input::placeholder {
  color: var(--app-text-tertiary, #94a3b8);
}

.vamp-send {
  background: var(--app-accent);
  color: #fff;
  cursor: pointer;
  border: none;
  border-radius: 8px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 34px;
  transition: filter .15s, transform .1s;
  display: flex;
}

.vamp-send:hover:not(:disabled) {
  filter: brightness(1.1);
}

.vamp-send:active:not(:disabled) {
  transform: scale(.94);
}

.vamp-send:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.vamp-input-hint {
  text-align: center;
  color: var(--app-text-tertiary, #94a3b8);
  border: 1px dashed var(--app-border);
  border-radius: 8px;
  flex: 1;
  padding: 8px;
  font-size: 11px;
}

.vamp-claim-wrap {
  flex-shrink: 0;
  display: flex;
  position: relative;
}

.vamp-claim-btn {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  width: 34px;
  color: var(--app-text-tertiary, #94a3b8);
  cursor: pointer;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  transition: color .15s, border-color .15s;
  display: flex;
}

.vamp-claim-btn:hover, .vamp-claim-btn.open {
  color: var(--app-accent);
  border-color: var(--app-accent);
}

.vamp-claim-btn.on {
  color: var(--app-accent);
  border-color: rgba(var(--app-accent-rgb), .55);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-claim-btn.on {
    border-color: color-mix(in srgb,var(--app-accent) 55%,transparent);
  }
}

.vamp-claim-backdrop {
  z-index: 40;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.vamp-claim-pop {
  z-index: 41;
  background: rgba(var(--app-bg-rgb), .92);
  border-radius: 10px;
  width: 208px;
  padding: 8px;
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-claim-pop {
    background: color-mix(in srgb,var(--app-bg) 92%,transparent);
  }
}

.vamp-claim-pop {
  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  border: 1px solid var(--app-border);
  flex-direction: column;
  display: flex;
  box-shadow: 0 10px 32px #00000061;
}

.vamp-claim-pop > * + * {
  margin-top: 6px;
}

.vamp-claim-title {
  color: var(--app-text-tertiary, #94a3b8);
  text-align: center;
  font-size: 10px;
}

.vamp-claim-grid {
  grid-template-columns: 1fr 1fr;
  gap: 5px;
  display: grid;
}

.vamp-claim-opt {
  border: 1px solid var(--app-border);
  background: rgba(var(--app-text-rgb), .05);
  border-radius: 7px;
  padding: 6px 0;
  font-size: 11px;
  font-weight: 600;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-claim-opt {
    background: color-mix(in srgb,var(--app-text) 5%,transparent);
  }
}

.vamp-claim-opt {
  color: var(--app-text);
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}

.vamp-claim-opt:hover {
  background: rgba(var(--app-accent-rgb), .12);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-claim-opt:hover {
    background: color-mix(in srgb,var(--app-accent) 12%,transparent);
  }
}

.vamp-claim-opt:hover {
  color: var(--app-accent);
}

.vamp-claim-opt.cur {
  background: rgba(var(--app-accent-rgb), .16);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-claim-opt.cur {
    background: color-mix(in srgb,var(--app-accent) 16%,transparent);
  }
}

.vamp-claim-opt.cur {
  color: var(--app-accent);
  border-color: rgba(var(--app-accent-rgb), .5);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-claim-opt.cur {
    border-color: color-mix(in srgb,var(--app-accent) 50%,transparent);
  }
}

.vamp-claim-cancel {
  border: 1px solid var(--app-border);
  background: rgba(var(--app-text-rgb), .05);
  border-radius: 7px;
  padding: 6px 0;
  font-size: 11px;
  font-weight: 600;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-claim-cancel {
    background: color-mix(in srgb,var(--app-text) 5%,transparent);
  }
}

.vamp-claim-cancel {
  color: var(--app-text-secondary, #94a3b8);
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}

.vamp-claim-cancel:hover {
  color: #f87171;
  background: #f871711a;
  border-color: #f8717173;
}

.vamp-emoji-pop {
  z-index: 41;
  background: rgba(var(--app-bg-rgb), .92);
  border-radius: 10px;
  width: 248px;
  padding: 8px;
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-emoji-pop {
    background: color-mix(in srgb,var(--app-bg) 92%,transparent);
  }
}

.vamp-emoji-pop {
  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  border: 1px solid var(--app-border);
  flex-direction: column;
  display: flex;
  box-shadow: 0 10px 32px #00000061;
}

.vamp-emoji-pop > * + * {
  margin-top: 6px;
}

.vamp-emoji-pop .chat-emoji-grid {
  background: none;
  max-height: 168px;
  padding: 0;
}

.vamp-emoji-float {
  z-index: 25;
  pointer-events: none;
  flex-direction: column;
  align-items: center;
  animation: 3s cubic-bezier(.22, .9, .32, 1) forwards vampEmojiFloat;
  display: flex;
  position: absolute;
  transform: translate(-50%, -100%);
}

.vamp-emoji-float > * + * {
  margin-top: 2px;
}

.vamp-emoji-float img {
  object-fit: contain;
  filter: drop-shadow(0 3px 8px #00000073);
  width: 40px;
  height: 40px;
}

.vamp-emoji-float-tag {
  color: var(--app-text);
  background: rgba(var(--app-bg-rgb), .78);
  border-radius: 5px;
  padding: 2px 5px;
  font-size: 9px;
  font-weight: 600;
  line-height: 1;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-emoji-float-tag {
    background: color-mix(in srgb,var(--app-bg) 78%,transparent);
  }
}

.vamp-emoji-float-tag {
  border: 1px solid var(--app-border);
}

@keyframes vampEmojiFloat {
  0% {
    opacity: 0;
    transform: translate(-50%, -78%) scale(.55);
  }

  14% {
    opacity: 1;
    transform: translate(-50%, -106%) scale(1.08);
  }

  24% {
    transform: translate(-50%, -100%) scale(1);
  }

  76% {
    opacity: 1;
    transform: translate(-50%, -110%);
  }

  to {
    opacity: 0;
    transform: translate(-50%, -122%);
  }
}

.vamp-mapseat-declared {
  color: #fcd34d;
  background: #78350fd9;
  border: 1px solid #f59e0b80;
  border-radius: 5px;
  flex-shrink: 0;
  padding: 0 4px;
  font-size: 9px;
  font-weight: 700;
  line-height: 14px;
}

.vamp-invite {
  background: var(--app-bg);
  border: 1px solid var(--app-border);
  border-radius: 14px;
  flex-direction: column;
  width: 320px;
  max-width: 94%;
  max-height: 84%;
  display: flex;
  overflow: hidden;
  box-shadow: 0 20px 60px #0006;
}

.vamp-invite-head {
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px 8px;
  display: flex;
}

.vamp-invite-title {
  letter-spacing: 1px;
  color: var(--app-text);
  font-size: 13px;
  font-weight: 700;
}

.vamp-invite-close {
  width: 24px;
  height: 24px;
  color: var(--app-text-tertiary, #94a3b8);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 7px;
  justify-content: center;
  align-items: center;
  transition: background .15s, color .15s;
  display: flex;
}

.vamp-invite-close:hover {
  background: rgba(var(--app-text-rgb), .08);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-invite-close:hover {
    background: color-mix(in srgb,var(--app-text) 8%,transparent);
  }
}

.vamp-invite-close:hover {
  color: var(--app-text);
}

.vamp-invite-body {
  flex-direction: column;
  padding: 0 12px 12px;
  display: flex;
  overflow-y: auto;
}

.vamp-invite-body > * + * {
  margin-top: 9px;
}

.vamp-invite-room {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  border-radius: 10px;
  align-items: center;
  padding: 8px;
  display: flex;
}

.vamp-invite-room > * + * {
  margin-left: 10px;
}

.vamp-invite-room img {
  object-fit: cover;
  border-radius: 8px;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
}

.vamp-invite-room-info {
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.vamp-invite-room-info > * + * {
  margin-top: 2px;
}

.vamp-invite-room-name {
  color: var(--app-text);
  font-size: 13px;
  font-weight: 600;
}

.vamp-invite-room-meta {
  color: var(--app-text-tertiary, #94a3b8);
  font-size: 11px;
}

.vamp-invite-share {
  border: 1px solid rgba(var(--app-accent-rgb), .45);
  border-radius: 9px;
  justify-content: center;
  align-items: center;
  padding: 8px 0;
  display: flex;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-invite-share {
    border: 1px solid color-mix(in srgb,var(--app-accent) 45%,transparent);
  }
}

.vamp-invite-share {
  background: rgba(var(--app-accent-rgb), .14);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-invite-share {
    background: color-mix(in srgb,var(--app-accent) 14%,transparent);
  }
}

.vamp-invite-share {
  color: var(--app-accent);
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  transition: background .15s;
}

.vamp-invite-share > * + * {
  margin-left: 6px;
}

.vamp-invite-share:hover:not(:disabled) {
  background: rgba(var(--app-accent-rgb), .22);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-invite-share:hover:not(:disabled) {
    background: color-mix(in srgb,var(--app-accent) 22%,transparent);
  }
}

.vamp-invite-share:disabled {
  opacity: .6;
  cursor: default;
}

.vamp-invite-sec {
  color: var(--app-text-tertiary, #94a3b8);
  padding-top: 2px;
  font-size: 10px;
}

.vamp-invite-empty {
  color: var(--app-text-tertiary, #94a3b8);
  text-align: center;
  padding: 14px 0;
  font-size: 11px;
}

.vamp-invite-loading {
  color: var(--app-accent);
  justify-content: center;
  align-items: center;
  padding: 16px 0;
  display: flex;
}

.vamp-invite-list {
  flex-direction: column;
  max-height: 180px;
  padding-right: 2px;
  display: flex;
  overflow-y: auto;
}

.vamp-invite-list > * + * {
  margin-top: 4px;
}

.vamp-invite-friend {
  background: rgba(var(--app-text-rgb), .04);
  border: 1px solid #0000;
  border-radius: 9px;
  align-items: center;
  padding: 6px 8px;
  display: flex;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-invite-friend {
    background: color-mix(in srgb,var(--app-text) 4%,transparent);
  }
}

.vamp-invite-friend {
  color: var(--app-text);
  cursor: pointer;
  transition: background .15s, border-color .15s;
}

.vamp-invite-friend > * + * {
  margin-left: 8px;
}

.vamp-invite-friend:hover {
  background: rgba(var(--app-accent-rgb), .1);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-invite-friend:hover {
    background: color-mix(in srgb,var(--app-accent) 10%,transparent);
  }
}

.vamp-invite-friend:hover {
  border-color: rgba(var(--app-accent-rgb), .3);
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-invite-friend:hover {
    border-color: color-mix(in srgb,var(--app-accent) 30%,transparent);
  }
}

.vamp-invite-friend img {
  object-fit: cover;
  border-radius: 50%;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
}

.vamp-invite-friend-ph {
  background: rgba(var(--app-accent-rgb), .12);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  display: flex;
}

@supports (color: color-mix(in lab, red, red)) {
  .vamp-invite-friend-ph {
    background: color-mix(in srgb,var(--app-accent) 12%,transparent);
  }
}

.vamp-invite-friend-ph {
  color: var(--app-accent);
}

.vamp-invite-friend-name {
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  font-size: 12px;
  overflow: hidden;
}

.vamp-invite-friend-act {
  color: var(--app-accent);
  flex-shrink: 0;
  margin-left: auto;
  font-size: 11px;
  font-weight: 600;
}

.vamp-invite-friend-done {
  color: var(--app-text-tertiary, #94a3b8);
  flex-shrink: 0;
  align-items: center;
  margin-left: auto;
  font-size: 11px;
  display: inline-flex;
}

.vamp-invite-friend-done > * + * {
  margin-left: 3px;
}

@media (max-width: 480px) {
  .vamp-seats {
    gap: 5px;
  }

  .vamp-seat {
    padding: 5px 3px 4px;
  }

  .vamp-seat-avatar {
    width: 30px;
    height: 30px;
  }

  .vamp-seat-name-txt {
    font-size: 10px;
  }

  .vamp-phase-main {
    font-size: 12px;
  }

  .vamp-msg {
    font-size: 11.5px;
  }

  .vamp-msg-avatar {
    width: 22px;
    height: 22px;
  }

  .vamp-msg-name {
    font-size: 10px;
  }

  .vamp-claim-btn {
    width: 30px;
  }

  .vamp-claim-pop {
    width: 176px;
    padding: 6px;
  }

  .vamp-claim-opt, .vamp-claim-cancel {
    padding: 5px 0;
    font-size: 10px;
  }

  .vamp-emoji-pop {
    width: 216px;
    padding: 6px;
  }

  .vamp-emoji-pop .chat-emoji-grid {
    max-height: 148px;
  }

  .vamp-emoji-float img {
    width: 34px;
    height: 34px;
  }

  .vamp-mapseat-declared {
    border-radius: 4px;
    padding: 0 3px;
    font-size: 8px;
    line-height: 11px;
  }
}

.ming-game-window-close:hover {
  color: #e74c3c;
  background: #e74c3c1f;
}

.ming-game-window-body {
  flex-direction: column;
  flex: 1;
  min-height: 0;
  padding: 10px;
  display: flex;
  overflow: hidden;
}

.ming-game-window-body > * {
  flex: 1;
  min-height: 0;
}

.ming-game-window-loading {
  text-align: center;
  color: var(--app-text-secondary);
  flex: none;
  padding: 20px;
  font-size: 12px;
}

.ming-game-board-area {
  overflow: hidden;
}

.ming-game-window-body .ming-game-board-area {
  flex: 1;
  justify-content: center;
  align-items: center;
  min-height: 0;
  display: flex;
  overflow: hidden;
}

.ming-game-window-body .ming-gomoku-board, .ming-game-window-body .ming-xiangqi-board {
  flex: none;
}

.ming-game-window-body .ming-games-menu, .ming-game-window-body .ming-games-active, .ming-game-window-body .ming-game-matching {
  flex-direction: column;
  justify-content: center;
  width: 100%;
  display: flex;
}

.ming-game-window-overlay[data-game-view="menu"] .ming-game-window-body {
  flex: none;
  overflow: visible;
}

.ming-game-window-overlay[data-game-view="menu"] .ming-games-menu {
  height: auto;
}

.ming-game-window-body .ming-game-card {
  box-sizing: border-box;
  width: 100%;
}

.ming-game-window-body .ming-games-active, .ming-game-window-overlay[data-game-view="matching"] .ming-games-menu {
  justify-content: flex-start;
}

.ming-game-window-body .ming-game-wrap {
  flex: 1;
  align-items: stretch;
  min-height: 0;
}

.ming-game-window-body .ming-xiangqi-board > div {
  font-size: 14px !important;
}

.ming-pet-chat-settings {
  flex-direction: column;
  display: flex;
}

.ming-pets-intel-label {
  letter-spacing: .5px;
  opacity: .8;
  font-size: 10px;
  font-weight: 700;
}

.ming-pet-chat-body {
  -ms-overflow-style: none;
  scrollbar-width: none;
  flex-direction: column;
  flex: 1;
  padding: 10px 12px;
  display: flex;
  overflow-y: auto;
}

.ming-pet-chat-body > * + * {
  margin-top: 8px;
}

.ming-pet-chat-body::-webkit-scrollbar {
  display: none;
}

.ming-pet-chat-empty {
  text-align: center;
  color: var(--app-text-tertiary, #94a3b8);
  margin-top: 40px;
  padding: 0 8px;
  font-size: 12px;
}

.ming-pet-chat-empty-title {
  color: var(--app-text-secondary, #64748b);
  margin-bottom: 14px;
  font-size: 13px;
}

.ming-pet-chat-msg {
  word-break: break-word;
  white-space: pre-wrap;
  border-radius: 12px;
  max-width: 85%;
  padding: 7px 11px;
  font-size: 12px;
  line-height: 1.5;
}

.ming-pet-chat-msg.me {
  background: var(--ming-pet-accent, #3b82f6);
  color: #fff;
  border-bottom-right-radius: 4px;
  align-self: flex-end;
}

.ming-pet-chat-msg.pet {
  background: rgba(var(--app-bg-rgb, 255, 255, 255),.6);
  color: var(--app-text, #1e293b);
  border-bottom-left-radius: 4px;
  align-self: flex-start;
}

.ming-pet-chat-typing {
  align-items: center;
  display: inline-flex;
}

.ming-pet-chat-typing > * + * {
  margin-left: 3px;
}

.ming-pet-chat-typing span {
  background: var(--app-text-tertiary, #94a3b8);
  border-radius: 50%;
  width: 5px;
  height: 5px;
  animation: 1.2s ease-in-out infinite ming-pet-chat-bounce;
}

.ming-pet-chat-typing span:nth-child(2) {
  animation-delay: .15s;
}

.ming-pet-chat-typing span:nth-child(3) {
  animation-delay: .3s;
}

@keyframes ming-pet-chat-bounce {
  0%, 60%, to {
    opacity: .4;
    transform: translateY(0);
  }

  30% {
    opacity: 1;
    transform: translateY(-4px);
  }
}

.ming-pet-chat-input-row {
  border-top: 1px solid var(--app-border, #0000000f);
  flex-shrink: 0;
  padding: 8px 10px;
  display: flex;
}

.ming-pet-chat-input-row > * + * {
  margin-left: 6px;
}

.ming-pet-chat-input {
  border: 1px solid var(--app-border, #0000001a);
  background: var(--ming-pet-chat-input-bg);
  color: var(--app-text, #1e293b);
  user-select: text;
  border-radius: 8px;
  outline: none;
  flex: 1;
  padding: 7px 10px;
  font-size: 12px;
  transition: border-color .15s;
}

.ming-pet-chat-input:focus {
  border-color: var(--ming-pet-accent, #3b82f6);
}

.ming-pet-chat-input::placeholder {
  color: var(--app-text-tertiary, #94a3b8);
}

.ming-pet-chat-input:disabled {
  opacity: .6;
}

.ming-pet-chat-send {
  background: var(--app-accent, #3b82f6);
  color: #fff;
  cursor: pointer;
  white-space: nowrap;
  border: none;
  border-radius: 8px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  height: 32px;
  padding: 0 14px;
  font-size: 13px;
  font-weight: 500;
  transition: opacity .15s;
  display: flex;
}

.ming-pet-chat-send:hover:not(:disabled) {
  opacity: .85;
}

.ming-pet-chat-send:active:not(:disabled) {
  opacity: .7;
}

.ming-pet-chat-send:disabled {
  opacity: .4;
  cursor: not-allowed;
}

.ming-pet-chat-leaderboard {
  flex-direction: column;
  flex: 1;
  min-height: 0;
  display: flex;
}

.ming-pets-rank-subbar {
  border-bottom: 1px solid var(--app-border, #0000000f);
  align-items: center;
  padding: 6px 10px 8px;
  display: flex;
}

.ming-pets-rank-subbar > * + * {
  margin-left: 4px;
}

.ming-pets-rank-sub {
  color: var(--app-text-tertiary, #6e6e73);
  white-space: nowrap;
  cursor: pointer;
  background: none;
  border: none;
  border-radius: .375rem;
  padding: .25rem .5625rem;
  font-size: .6875rem;
  font-weight: 500;
  transition: color .15s;
}

.ming-pets-rank-sub.active {
  background-color: rgba(var(--app-accent-rgb),.15);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  color: var(--app-accent, #3b82f6);
  box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px rgba(var(--app-accent-rgb), .2),0 1px 2px #0000002e;
  background-image: linear-gradient(#ffffff0d, #fff0);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-rank-sub.active {
    box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px color-mix(in srgb,var(--app-accent, #3b82f6) 20%,transparent),0 1px 2px #0000002e;
  }
}

[data-theme="light"] .ming-pets-rank-sub.active {
  background: linear-gradient(#ffffff73, #ffffff38);
  box-shadow: inset 0 1px #ffffffb3, inset 0 0 0 1px #ffffff59, 0 1px 3px #0000000f;
}

.ming-pets-rank-games-subbar {
  align-items: center;
  padding: 6px 10px 4px;
  display: flex;
}

.ming-pets-rank-games-subbar > * + * {
  margin-left: 2px;
}

.ming-pets-rank-game-sub {
  color: var(--app-text-tertiary, #6e6e73);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: .375rem;
  flex: 1;
  padding: .25rem .5625rem;
  font-size: .6875rem;
  font-weight: 500;
  transition: color .15s;
}

.ming-pets-rank-game-sub:hover {
  color: var(--app-text-secondary, #64748b);
}

.ming-pets-rank-game-sub.active {
  background-color: rgba(var(--app-accent-rgb),.15);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  color: var(--app-accent, #3b82f6);
  box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px rgba(var(--app-accent-rgb), .2),0 1px 2px #0000002e;
  background-image: linear-gradient(#ffffff0d, #fff0);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-pets-rank-game-sub.active {
    box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px color-mix(in srgb,var(--app-accent, #3b82f6) 20%,transparent),0 1px 2px #0000002e;
  }
}

[data-theme="light"] .ming-pets-rank-game-sub.active {
  background: linear-gradient(#ffffff73, #ffffff38);
  box-shadow: inset 0 1px #ffffffb3, inset 0 0 0 1px #ffffff59, 0 1px 3px #0000000f;
}

.ming-pets-rank-streak-max {
  color: var(--app-text, #1f2937);
  font-weight: 600;
}

.ming-pets-rank-streak-cur {
  color: var(--app-text-tertiary, #94a3b8);
  margin-left: 2px;
  font-size: 10px;
}

.ming-pets-rank-streak-hot {
  color: var(--app-accent, #3b82f6);
  margin-left: 2px;
  font-size: 10px;
  font-weight: 600;
}

.ming-pets-rank-refresh {
  width: 20px;
  height: 20px;
  color: var(--app-text-tertiary, #94a3b8);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  margin-left: auto;
  transition: opacity .15s, background-color .15s, color .15s, transform .15s;
  display: inline-flex;
}

.ming-pets-rank-refresh:hover:not(:disabled) {
  background: rgba(var(--app-accent-rgb, 59, 130, 246),.1);
  color: var(--app-accent, #3b82f6);
}

.ming-pets-rank-refresh:disabled {
  cursor: default;
  opacity: .6;
}

.ming-pets-rank-hint {
  color: var(--app-text-tertiary, #94a3b8);
  text-align: center;
  padding: 16px 8px;
  font-size: 11px;
  line-height: 1.5;
}

.ming-pets-rank-list {
  flex-direction: column;
  flex: 1;
  padding: 4px 6px;
  display: flex;
  overflow-y: auto;
}

.ming-pets-rank-list > * + * {
  margin-top: 1px;
}

.ming-pets-rank-list::-webkit-scrollbar {
  width: 4px;
}

.ming-pets-rank-list::-webkit-scrollbar-thumb {
  background: var(--app-border, #00000026);
  border-radius: 2px;
}

.ming-pets-rank-row {
  color: var(--app-text-secondary, #475569);
  border-radius: 7px;
  align-items: center;
  padding: 4px 6px;
  font-size: 12px;
  transition: background .12s;
  display: flex;
}

.ming-pets-rank-row > * + * {
  margin-left: 8px;
}

.ming-pets-rank-row:hover {
  background: rgba(var(--app-accent-rgb, 59, 130, 246),.06);
}

.ming-pets-rank-row.me {
  background: rgba(var(--app-accent-rgb, 59, 130, 246),.12);
  color: var(--app-accent, #3b82f6);
  font-weight: 600;
}

@keyframes ming-bubble-pop {
  0% {
    opacity: 0;
    transform: translate(-50%) scale(.6);
  }

  60% {
    opacity: 1;
    transform: translate(-50%) scale(1.08);
  }

  to {
    opacity: 1;
    transform: translate(-50%) scale(1);
  }
}

.ming-pets-rank-no {
  text-align: center;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
  width: 20px;
  font-size: 11px;
  font-weight: 700;
}

.ming-pets-rank-no.rank-top {
  color: #f59e0b;
}

.ming-pets-rank-no.rank-normal {
  color: var(--app-text-tertiary, #94a3b8);
}

.ming-pets-rank-avatar {
  background-color: var(--app-border, #00000014);
  border-radius: 50%;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

.ming-pets-rank-name {
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.ming-pets-rank-value {
  font-variant-numeric: tabular-nums;
  color: var(--app-accent, #3b82f6);
  flex-shrink: 0;
  font-weight: 700;
}

.ming-pets-rank-row.me .ming-pets-rank-value {
  color: var(--app-accent, #3b82f6);
}

.ming-pets-rank-iq-label {
  opacity: .7;
  margin-right: 3px;
  font-size: 10px;
  font-weight: 600;
}

.ming-pets-rank-iq-num {
  font-size: 13px;
}

.ming-pet-capture-row {
  border-top: 1px solid var(--app-border, #0000000f);
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  padding: 8px 14px 10px;
  display: grid;
}

.ming-pet-capture-btn {
  border: 1px solid var(--app-border, #0000001a);
  background: var(--ming-pet-action-bg);
  color: var(--app-text-secondary, #475569);
  cursor: pointer;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  padding: 7px 4px;
  font-size: 11px;
  font-weight: 500;
  transition: opacity .15s, background-color .15s, color .15s, transform .15s;
  display: flex;
}

.ming-pet-capture-btn > * + * {
  margin-left: 5px;
}

.ming-pet-capture-btn:hover {
  border-color: var(--ming-pet-accent, #3b82f6);
  color: var(--ming-pet-accent, #3b82f6);
  transform: translateY(-1px);
}

.ming-pet-capture-btn:active {
  transform: translateY(0);
}

.ming-pet-capture-btn:only-child {
  grid-column: 1 / -1;
}

.ming-pet-capture-btn.recording {
  color: #ef4444;
  background: #ef44441f;
  border-color: #ef444466;
  animation: 1.5s ease-in-out infinite ming-pet-capture-pulse;
}

.ming-pet-capture-btn.recording:hover {
  color: #ef4444;
  background: #ef444433;
  border-color: #ef4444;
}

@keyframes ming-pet-capture-pulse {
  0%, to {
    opacity: 1;
  }

  50% {
    opacity: .7;
  }
}

.ming-pet-recording-indicator {
  top: calc(var(--titlebar-height, 36px) + var(--safe-area-top, 0px) + 8px);
  z-index: 9999;
  color: #fff;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  user-select: none;
  background: #ef4444f2;
  border: 1px solid #ef444466;
  border-radius: 999px;
  align-items: center;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 600;
  transition: opacity .15s, background-color .15s, color .15s, transform .15s;
  display: flex;
  position: fixed;
  left: 50%;
  transform: translate(-50%);
  box-shadow: 0 4px 12px #ef444459;
}

.ming-pet-recording-indicator > * + * {
  margin-left: 6px;
}

.ming-pet-recording-indicator:hover {
  background: #dc2626;
  box-shadow: 0 6px 16px #ef444473;
}

.ming-pet-recording-dot {
  background: #fff;
  border-radius: 50%;
  width: 7px;
  height: 7px;
  animation: 1s ease-in-out infinite ming-pet-recording-blink;
}

@keyframes ming-pet-recording-blink {
  0%, to {
    opacity: 1;
  }

  50% {
    opacity: .3;
  }
}

.ming-pet-recording-time {
  letter-spacing: .5px;
}

.ming-pet-recording-stop {
  opacity: .9;
  margin-left: 2px;
}

[data-theme="dark"] .ming-pets-stage-bg {
  background: radial-gradient(ellipse at 50% 40%,rgba(var(--app-accent-rgb, 59, 130, 246),.06),transparent 70%);
}

[data-theme="dark"] .ming-pet-body {
  filter: drop-shadow(0 4px 8px #0006);
}

[data-theme="dark"] .ming-pet-panel, [data-theme="dark"] .ming-pet-chat-floating {
  box-shadow: 0 8px 32px #00000080;
}

[data-theme="dark"] .ming-pet-chat-input {
  border-color: var(--app-border, #ffffff26);
}

[data-theme="dark"] .ming-pet-panel-action-overlay, [data-theme="dark"] .ming-pets-action-overlay {
  background: #0009;
}

[data-theme="dark"] .ming-pets-switch-track {
  background: var(--app-border, #ffffff2e);
}

:root, :host {
  --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  --color-red-400: #ff6568;
  --color-red-500: #fb2c36;
  --color-amber-400: #fcbb00;
  --color-amber-500: #f99c00;
  --color-yellow-500: #edb200;
  --color-green-400: #05df72;
  --color-green-500: #00c758;
  --color-blue-400: #54a2ff;
  --color-blue-500: #3080ff;
  --color-zinc-900: #18181b;
  --color-black: #000;
  --color-white: #fff;
  --spacing: .25rem;
  --container-xs: 20rem;
  --container-sm: 24rem;
  --container-md: 28rem;
  --container-lg: 32rem;
  --container-2xl: 42rem;
  --container-3xl: 48rem;
  --container-4xl: 56rem;
  --container-6xl: 72rem;
  --text-xs: .75rem;
  --text-xs--line-height: calc(1 / .75);
  --text-sm: .875rem;
  --text-sm--line-height: calc(1.25 / .875);
  --text-base: 1rem;
  --text-base--line-height: 1.5;
  --text-lg: 1.125rem;
  --text-lg--line-height: calc(1.75 / 1.125);
  --text-xl: 1.25rem;
  --text-xl--line-height: calc(1.75 / 1.25);
  --text-2xl: 1.5rem;
  --text-2xl--line-height: calc(2 / 1.5);
  --text-3xl: 1.875rem;
  --text-3xl--line-height: 1.2;
  --font-weight-extralight: 200;
  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --tracking-tight: -.025em;
  --tracking-wide: .025em;
  --tracking-wider: .05em;
  --tracking-widest: .1em;
  --leading-tight: 1.25;
  --leading-snug: 1.375;
  --leading-relaxed: 1.625;
  --radius-md: .375rem;
  --radius-lg: .5rem;
  --radius-xl: .75rem;
  --radius-2xl: 1rem;
  --radius-3xl: 1.5rem;
  --drop-shadow-md: 0 3px 3px #0000001f;
  --ease-in: cubic-bezier(.4, 0, 1, 1);
  --ease-out: cubic-bezier(0, 0, .2, 1);
  --ease-in-out: cubic-bezier(.4, 0, .2, 1);
  --animate-spin: spin 1s linear infinite;
  --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
  --blur-sm: 8px;
  --blur-md: 12px;
  --blur-xl: 24px;
  --default-transition-duration: .15s;
  --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
}

@supports (color: lab(0% 0 0)) {
  :root, :host {
    --color-red-400: lab(63.7053% 60.7449 31.3109);
    --color-red-500: lab(55.4814% 75.0732 48.8528);
    --color-amber-400: lab(80.1641% 16.6016 99.2089);
    --color-amber-500: lab(72.7183% 31.8672 97.9407);
    --color-yellow-500: lab(76.3898% 14.5258 98.4589);
    --color-green-400: lab(78.503% -64.9265 39.7492);
    --color-green-500: lab(70.5521% -66.5147 45.8072);
    --color-blue-400: lab(65.0361% -1.42062 -56.9803);
    --color-blue-500: lab(54.1736% 13.3368 -74.6839);
    --color-zinc-900: lab(8.30603% .618212 -2.16573);
  }
}

*, :after, :before, ::backdrop {
  box-sizing: border-box;
  border: 0 solid;
  margin: 0;
  padding: 0;
}

::-webkit-file-upload-button {
  box-sizing: border-box;
  border: 0 solid;
  margin: 0;
  padding: 0;
}

::file-selector-button {
  box-sizing: border-box;
  border: 0 solid;
  margin: 0;
  padding: 0;
}

html, :host {
  -webkit-text-size-adjust: 100%;
  tab-size: 4;
  font-feature-settings: normal;
  font-variation-settings: normal;
  -webkit-tap-highlight-color: transparent;
  font-family: HONOR Sans CN, PingFang SC, Microsoft YaHei UI, Microsoft YaHei, Hiragino Sans GB, sans-serif;
  line-height: 1.5;
}

hr {
  height: 0;
  color: inherit;
  border-top-width: 1px;
}

abbr[title] {
  text-decoration: underline dotted;
}

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
}

a {
  color: inherit;
  -webkit-text-decoration: inherit;
  text-decoration: inherit;
}

b, strong {
  font-weight: bolder;
}

code, kbd, samp, pre {
  font-feature-settings: normal;
  font-variation-settings: normal;
  font-family: SF Mono, Fira Code, Fira Mono, Menlo, Consolas, monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

sub, sup {
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
  position: relative;
}

sub {
  bottom: -.25em;
}

sup {
  top: -.5em;
}

table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse;
}

:-moz-focusring:not(iframe) {
  outline: auto;
}

progress {
  vertical-align: baseline;
}

summary {
  display: list-item;
}

ol, ul, menu {
  list-style: none;
}

img, svg, video, canvas, audio, iframe, embed, object {
  vertical-align: middle;
  display: block;
}

img, video {
  max-width: 100%;
  height: auto;
}

button, input, select, optgroup, textarea {
  font: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  letter-spacing: inherit;
  color: inherit;
  opacity: 1;
  background-color: #0000;
  border-radius: 0;
}

::-webkit-file-upload-button {
  font: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  letter-spacing: inherit;
  color: inherit;
  opacity: 1;
  background-color: #0000;
  border-radius: 0;
}

::file-selector-button {
  font: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  letter-spacing: inherit;
  color: inherit;
  opacity: 1;
  background-color: #0000;
  border-radius: 0;
}

:where(select:-webkit-any([multiple], [size])) optgroup {
  font-weight: bolder;
}

:where(select:is([multiple], [size])) optgroup {
  font-weight: bolder;
}

:where(select:-webkit-any([multiple], [size])) optgroup option {
  padding-left: 20px;
}

:where(select:is([multiple], [size])) optgroup option {
  padding-left: 20px;
}

::-webkit-file-upload-button {
  margin-right: 4px;
}

::file-selector-button {
  margin-right: 4px;
}

::placeholder {
  opacity: 1;
}

@supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {
  ::placeholder {
    color: currentColor;
  }

  @supports (color: color-mix(in lab,red,red)) {
    ::placeholder {
      color: color-mix(in oklab,currentcolor 50%,transparent);
    }
  }
}

textarea {
  resize: vertical;
}

::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-date-and-time-value {
  min-height: 1lh;
  text-align: inherit;
}

::-webkit-datetime-edit {
  display: inline-flex;
}

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-datetime-edit {
  padding-top: 0;
  padding-bottom: 0;
}

::-webkit-datetime-edit-year-field {
  padding-top: 0;
  padding-bottom: 0;
}

::-webkit-datetime-edit-month-field {
  padding-top: 0;
  padding-bottom: 0;
}

::-webkit-datetime-edit-day-field {
  padding-top: 0;
  padding-bottom: 0;
}

::-webkit-datetime-edit-hour-field {
  padding-top: 0;
  padding-bottom: 0;
}

::-webkit-datetime-edit-minute-field {
  padding-top: 0;
  padding-bottom: 0;
}

::-webkit-datetime-edit-second-field {
  padding-top: 0;
  padding-bottom: 0;
}

::-webkit-datetime-edit-millisecond-field {
  padding-top: 0;
  padding-bottom: 0;
}

::-webkit-datetime-edit-meridiem-field {
  padding-top: 0;
  padding-bottom: 0;
}

::-webkit-calendar-picker-indicator {
  line-height: 1;
}

:-moz-ui-invalid {
  box-shadow: none;
}

button {
  -webkit-appearance: button;
  appearance: button;
}

input:where([type="button"], [type="reset"], [type="submit"]) {
  -webkit-appearance: button;
  appearance: button;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  appearance: button;
}

::file-selector-button {
  -webkit-appearance: button;
  appearance: button;
}

::-webkit-inner-spin-button {
  height: auto;
}

::-webkit-outer-spin-button {
  height: auto;
}

[hidden]:not([hidden="until-found"]) {
  display: none !important;
}

.pointer-events-auto {
  pointer-events: auto;
}

.pointer-events-none {
  pointer-events: none;
}

.collapse {
  visibility: collapse;
}

.invisible {
  visibility: hidden;
}

.visible {
  visibility: visible;
}

.sr-only {
  clip-path: inset(50%);
  white-space: nowrap;
  border-width: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.absolute {
  position: absolute;
}

.fixed {
  position: fixed;
}

.relative {
  position: relative;
}

.static {
  position: static;
}

.sticky {
  position: sticky;
}

.inset-0 {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.inset-x-0 {
  left: 0;
  right: 0;
}

.inset-y-0 {
  top: 0;
  bottom: 0;
}

.-top-1 {
  top: calc(var(--spacing) * -1);
}

.-top-6 {
  top: calc(var(--spacing) * -6);
}

.-top-8 {
  top: calc(var(--spacing) * -8);
}

.-top-9 {
  top: calc(var(--spacing) * -9);
}

.-top-10 {
  top: calc(var(--spacing) * -10);
}

.top-0 {
  top: 0;
}

.top-0\.5 {
  top: calc(var(--spacing) * .5);
}

.top-1\.5 {
  top: calc(var(--spacing) * 1.5);
}

.top-1\/2 {
  top: 50%;
}

.top-1\/3 {
  top: 33.3333%;
}

.top-2 {
  top: calc(var(--spacing) * 2);
}

.top-2\.5 {
  top: calc(var(--spacing) * 2.5);
}

.top-2\/3 {
  top: 66.6667%;
}

.top-3 {
  top: calc(var(--spacing) * 3);
}

.top-4 {
  top: calc(var(--spacing) * 4);
}

.top-6 {
  top: calc(var(--spacing) * 6);
}

.top-11 {
  top: calc(var(--spacing) * 11);
}

.top-\[2px\] {
  top: 2px;
}

.top-full {
  top: 100%;
}

.-right-0\.5 {
  right: calc(var(--spacing) * -.5);
}

.-right-1 {
  right: calc(var(--spacing) * -1);
}

.right-0 {
  right: 0;
}

.right-0\.5 {
  right: calc(var(--spacing) * .5);
}

.right-1\.5 {
  right: calc(var(--spacing) * 1.5);
}

.right-2 {
  right: calc(var(--spacing) * 2);
}

.right-2\.5 {
  right: calc(var(--spacing) * 2.5);
}

.right-3 {
  right: calc(var(--spacing) * 3);
}

.right-4 {
  right: calc(var(--spacing) * 4);
}

.right-5 {
  right: calc(var(--spacing) * 5);
}

.right-8 {
  right: calc(var(--spacing) * 8);
}

.-bottom-0\.5 {
  bottom: calc(var(--spacing) * -.5);
}

.bottom-0 {
  bottom: 0;
}

.bottom-0\.5 {
  bottom: calc(var(--spacing) * .5);
}

.bottom-2 {
  bottom: calc(var(--spacing) * 2);
}

.bottom-3 {
  bottom: calc(var(--spacing) * 3);
}

.bottom-4 {
  bottom: calc(var(--spacing) * 4);
}

.bottom-8 {
  bottom: calc(var(--spacing) * 8);
}

.bottom-\[70px\] {
  bottom: 70px;
}

.bottom-\[72px\] {
  bottom: 72px;
}

.bottom-\[130px\] {
  bottom: 130px;
}

.bottom-full {
  bottom: 100%;
}

.left-0 {
  left: 0;
}

.left-1\/2 {
  left: 50%;
}

.left-1\/3 {
  left: 33.3333%;
}

.left-2 {
  left: calc(var(--spacing) * 2);
}

.left-2\.5 {
  left: calc(var(--spacing) * 2.5);
}

.left-2\/3 {
  left: 66.6667%;
}

.left-3 {
  left: calc(var(--spacing) * 3);
}

.left-4 {
  left: calc(var(--spacing) * 4);
}

.left-8 {
  left: calc(var(--spacing) * 8);
}

.isolate {
  isolation: isolate;
}

.-z-10 {
  z-index: -10;
}

.z-0 {
  z-index: 0;
}

.z-1 {
  z-index: 1;
}

.z-2 {
  z-index: 2;
}

.z-5 {
  z-index: 5;
}

.z-10 {
  z-index: 10;
}

.z-20 {
  z-index: 20;
}

.z-30 {
  z-index: 30;
}

.z-40 {
  z-index: 40;
}

.z-50 {
  z-index: 50;
}

.z-60 {
  z-index: 60;
}

.z-70 {
  z-index: 70;
}

.z-95 {
  z-index: 95;
}

.z-100 {
  z-index: 100;
}

.z-320 {
  z-index: 320;
}

.z-400 {
  z-index: 400;
}

.z-601 {
  z-index: 601;
}

.z-1000 {
  z-index: 1000;
}

.z-2000 {
  z-index: 2000;
}

.z-2100 {
  z-index: 2100;
}

.z-3000 {
  z-index: 3000;
}

.z-9995 {
  z-index: 9995;
}

.z-9998 {
  z-index: 9998;
}

.z-9999 {
  z-index: 9999;
}

.z-10001 {
  z-index: 10001;
}

.z-10005 {
  z-index: 10005;
}

.z-10010 {
  z-index: 10010;
}

.z-10020 {
  z-index: 10020;
}

.z-10030 {
  z-index: 10030;
}

.container {
  width: 100%;
}

@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}

@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}

@media (min-width: 1536px) {
  .container {
    max-width: 1536px;
  }
}

.-m-1 {
  margin: calc(var(--spacing) * -1);
}

.m-auto {
  margin: auto;
}

.-mx-1 {
  margin-left: calc(var(--spacing) * -1); margin-right: calc(var(--spacing) * -1);
}

.-mx-4 {
  margin-left: calc(var(--spacing) * -4); margin-right: calc(var(--spacing) * -4);
}

.mx-1\.5 {
  margin-left: calc(var(--spacing) * 1.5); margin-right: calc(var(--spacing) * 1.5);
}

.mx-2 {
  margin-left: calc(var(--spacing) * 2); margin-right: calc(var(--spacing) * 2);
}

.mx-2\.5 {
  margin-left: calc(var(--spacing) * 2.5); margin-right: calc(var(--spacing) * 2.5);
}

.mx-3 {
  margin-left: calc(var(--spacing) * 3); margin-right: calc(var(--spacing) * 3);
}

.mx-4 {
  margin-left: calc(var(--spacing) * 4); margin-right: calc(var(--spacing) * 4);
}

.mx-5 {
  margin-left: calc(var(--spacing) * 5); margin-right: calc(var(--spacing) * 5);
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.my-2\.5 {
  margin-top: calc(var(--spacing) * 2.5); margin-bottom: calc(var(--spacing) * 2.5);
}

.-mt-1 {
  margin-top: calc(var(--spacing) * -1);
}

.mt-0\.5 {
  margin-top: calc(var(--spacing) * .5);
}

.mt-1 {
  margin-top: var(--spacing);
}

.mt-1\.5 {
  margin-top: calc(var(--spacing) * 1.5);
}

.mt-2 {
  margin-top: calc(var(--spacing) * 2);
}

.mt-2\.5 {
  margin-top: calc(var(--spacing) * 2.5);
}

.mt-3 {
  margin-top: calc(var(--spacing) * 3);
}

.mt-3\.5 {
  margin-top: calc(var(--spacing) * 3.5);
}

.mt-4 {
  margin-top: calc(var(--spacing) * 4);
}

.mt-6 {
  margin-top: calc(var(--spacing) * 6);
}

.mt-\[-80px\] {
  margin-top: -80px;
}

.mt-\[-200px\] {
  margin-top: -200px;
}

.mt-auto {
  margin-top: auto;
}

.mt-px {
  margin-top: 1px;
}

.mr-0\.5 {
  margin-right: calc(var(--spacing) * .5);
}

.mr-1 {
  margin-right: var(--spacing);
}

.mr-2 {
  margin-right: calc(var(--spacing) * 2);
}

.mb-0\.5 {
  margin-bottom: calc(var(--spacing) * .5);
}

.mb-1 {
  margin-bottom: var(--spacing);
}

.mb-1\.5 {
  margin-bottom: calc(var(--spacing) * 1.5);
}

.mb-2 {
  margin-bottom: calc(var(--spacing) * 2);
}

.mb-2\.5 {
  margin-bottom: calc(var(--spacing) * 2.5);
}

.mb-3 {
  margin-bottom: calc(var(--spacing) * 3);
}

.mb-3\.5 {
  margin-bottom: calc(var(--spacing) * 3.5);
}

.mb-4 {
  margin-bottom: calc(var(--spacing) * 4);
}

.mb-5 {
  margin-bottom: calc(var(--spacing) * 5);
}

.mb-6 {
  margin-bottom: calc(var(--spacing) * 6);
}

.mb-8 {
  margin-bottom: calc(var(--spacing) * 8);
}

.-ml-1 {
  margin-left: calc(var(--spacing) * -1);
}

.-ml-2 {
  margin-left: calc(var(--spacing) * -2);
}

.ml-0\.5 {
  margin-left: calc(var(--spacing) * .5);
}

.ml-1 {
  margin-left: var(--spacing);
}

.ml-1\.5 {
  margin-left: calc(var(--spacing) * 1.5);
}

.ml-2 {
  margin-left: calc(var(--spacing) * 2);
}

.ml-auto {
  margin-left: auto;
}

.line-clamp-1 {
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.line-clamp-2 {
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.line-clamp-3 {
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.line-clamp-4 {
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.\!hidden {
  display: none !important;
}

.block {
  display: block;
}

.contents {
  display: contents;
}

.flex {
  display: flex;
}

.grid {
  display: grid;
}

.hidden {
  display: none;
}

.hidden\! {
  display: none !important;
}

.inline {
  display: inline;
}

.inline-block {
  display: inline-block;
}

.inline-flex {
  display: inline-flex;
}

.table {
  display: table;
}

.aspect-5\/4 {
  aspect-ratio: 5 / 4;
  --asr: 5 / 4;
}

.aspect-\[0\.74\] {
  aspect-ratio: .74;
  --asr: .74;
}

.aspect-square {
  aspect-ratio: 1;
  --asr: 1;
}

.size-1 {
  width: var(--spacing);
  height: var(--spacing);
}

.\!h-7 {
  height: calc(var(--spacing) * 7) !important;
}

.\!h-8 {
  height: calc(var(--spacing) * 8) !important;
}

.\!h-9 {
  height: calc(var(--spacing) * 9) !important;
}

.h-0\.5 {
  height: calc(var(--spacing) * .5);
}

.h-1 {
  height: var(--spacing);
}

.h-1\.5 {
  height: calc(var(--spacing) * 1.5);
}

.h-2 {
  height: calc(var(--spacing) * 2);
}

.h-2\/3 {
  height: 66.6667%;
}

.h-3 {
  height: calc(var(--spacing) * 3);
}

.h-3\.5 {
  height: calc(var(--spacing) * 3.5);
}

.h-4 {
  height: calc(var(--spacing) * 4);
}

.h-5 {
  height: calc(var(--spacing) * 5);
}

.h-6 {
  height: calc(var(--spacing) * 6);
}

.h-7 {
  height: calc(var(--spacing) * 7);
}

.h-8 {
  height: calc(var(--spacing) * 8);
}

.h-9 {
  height: calc(var(--spacing) * 9);
}

.h-10 {
  height: calc(var(--spacing) * 10);
}

.h-11 {
  height: calc(var(--spacing) * 11);
}

.h-12 {
  height: calc(var(--spacing) * 12);
}

.h-14 {
  height: calc(var(--spacing) * 14);
}

.h-16 {
  height: calc(var(--spacing) * 16);
}

.h-20 {
  height: calc(var(--spacing) * 20);
}

.h-24 {
  height: calc(var(--spacing) * 24);
}

.h-28 {
  height: calc(var(--spacing) * 28);
}

.h-32 {
  height: calc(var(--spacing) * 32);
}

.h-\[2px\] {
  height: 2px;
}

.h-\[7px\] {
  height: 7px;
}

.h-\[15px\] {
  height: 15px;
}

.h-\[16px\] {
  height: 16px;
}

.h-\[18px\] {
  height: 18px;
}

.h-\[30px\] {
  height: 30px;
}

.h-\[34px\] {
  height: 34px;
}

.h-\[48vh\] {
  height: 48vh;
}

.h-\[56px\] {
  height: 56px;
}

.h-\[64px\] {
  height: 64px;
}

.h-\[70vh\] {
  height: 70vh;
}

.h-\[80px\] {
  height: 80px;
}

.h-\[150\%\] {
  height: 150%;
}

.h-\[160px\] {
  height: 160px;
}

.h-\[200px\] {
  height: 200px;
}

.h-\[clamp\(260px\,42vh\,400px\)\] {
  height: 260px;
  height: max(260px, min(42vh, 400px));
}

.h-\[min\(48vh\,320px\)\] {
  height: 48vh;
  height: min(48vh, 320px);
}

.h-\[min\(52vh\,340px\)\] {
  height: 52vh;
  height: min(52vh, 340px);
}

.h-auto {
  height: auto;
}

.h-full {
  height: 100%;
}

.h-px {
  height: 1px;
}

.max-h-36 {
  max-height: calc(var(--spacing) * 36);
}

.max-h-60 {
  max-height: calc(var(--spacing) * 60);
}

.max-h-64 {
  max-height: calc(var(--spacing) * 64);
}

.max-h-\[3\.3rem\] {
  max-height: 3.3rem;
}

.max-h-\[46vh\] {
  max-height: 46vh;
}

.max-h-\[50vh\] {
  max-height: 50vh;
}

.max-h-\[60vh\] {
  max-height: 60vh;
}

.max-h-\[70vh\] {
  max-height: 70vh;
}

.max-h-\[74\.75px\] {
  max-height: 74.75px;
}

.max-h-\[75vh\] {
  max-height: 75vh;
}

.max-h-\[80vh\] {
  max-height: 80vh;
}

.max-h-\[82vh\] {
  max-height: 82vh;
}

.max-h-\[85vh\] {
  max-height: 85vh;
}

.max-h-\[85vh\] {
  max-height: 85vh;
}

.max-h-\[90vh\] {
  max-height: 90vh;
}

.max-h-\[94vh\] {
  max-height: 94vh;
}

.max-h-\[168px\] {
  max-height: 168px;
}

.max-h-\[220px\] {
  max-height: 220px;
}

.max-h-\[240px\] {
  max-height: 240px;
}

.max-h-\[280px\] {
  max-height: 280px;
}

.max-h-\[300px\] {
  max-height: 300px;
}

.max-h-\[360px\] {
  max-height: 360px;
}

.max-h-\[calc\(100vh-120px\)\] {
  max-height: calc(100vh - 120px);
}

.max-h-\[calc\(var\(--dvh\,100vh\)\*0\.8\)\] {
  max-height: calc(var(--dvh, 100vh) * .8);
}

.max-h-\[calc\(var\(--dvh\,100vh\)\*0\.9\)\] {
  max-height: calc(var(--dvh, 100vh) * .9);
}

.max-h-\[calc\(var\(--dvh\,100vh\)\*0\.84\)\] {
  max-height: calc(var(--dvh, 100vh) * .84);
}

.max-h-\[calc\(var\(--dvh\,100vh\)\*0\.85\)\] {
  max-height: calc(var(--dvh, 100vh) * .85);
}

.max-h-\[calc\(var\(--dvh\,100vh\)\*0\.86\)\] {
  max-height: calc(var(--dvh, 100vh) * .86);
}

.max-h-\[calc\(var\(--dvh\,100vh\)\*0\.92\)\] {
  max-height: calc(var(--dvh, 100vh) * .92);
}

.max-h-full {
  max-height: 100%;
}

.min-h-0 {
  min-height: 0;
}

.min-h-8 {
  min-height: calc(var(--spacing) * 8);
}

.min-h-\[5rem\] {
  min-height: 5rem;
}

.min-h-\[14px\] {
  min-height: 14px;
}

.min-h-\[16px\] {
  min-height: 16px;
}

.min-h-\[32px\] {
  min-height: 32px;
}

.min-h-\[38px\] {
  min-height: 38px;
}

.min-h-\[340px\] {
  min-height: 340px;
}

.\!w-16 {
  width: calc(var(--spacing) * 16) !important;
}

.w-0\.5 {
  width: calc(var(--spacing) * .5);
}

.w-1\.5 {
  width: calc(var(--spacing) * 1.5);
}

.w-3 {
  width: calc(var(--spacing) * 3);
}

.w-3\.5 {
  width: calc(var(--spacing) * 3.5);
}

.w-4 {
  width: calc(var(--spacing) * 4);
}

.w-5 {
  width: calc(var(--spacing) * 5);
}

.w-6 {
  width: calc(var(--spacing) * 6);
}

.w-7 {
  width: calc(var(--spacing) * 7);
}

.w-8 {
  width: calc(var(--spacing) * 8);
}

.w-9 {
  width: calc(var(--spacing) * 9);
}

.w-10 {
  width: calc(var(--spacing) * 10);
}

.w-11 {
  width: calc(var(--spacing) * 11);
}

.w-12 {
  width: calc(var(--spacing) * 12);
}

.w-14 {
  width: calc(var(--spacing) * 14);
}

.w-16 {
  width: calc(var(--spacing) * 16);
}

.w-20 {
  width: calc(var(--spacing) * 20);
}

.w-24 {
  width: calc(var(--spacing) * 24);
}

.w-28 {
  width: calc(var(--spacing) * 28);
}

.w-32 {
  width: calc(var(--spacing) * 32);
}

.w-36 {
  width: calc(var(--spacing) * 36);
}

.w-48 {
  width: calc(var(--spacing) * 48);
}

.w-52 {
  width: calc(var(--spacing) * 52);
}

.w-56 {
  width: calc(var(--spacing) * 56);
}

.w-\[2px\] {
  width: 2px;
}

.w-\[7px\] {
  width: 7px;
}

.w-\[15px\] {
  width: 15px;
}

.w-\[18px\] {
  width: 18px;
}

.w-\[34px\] {
  width: 34px;
}

.w-\[38\%\] {
  width: 38%;
}

.w-\[56px\] {
  width: 56px;
}

.w-\[58px\] {
  width: 58px;
}

.w-\[60px\] {
  width: 60px;
}

.w-\[72\%\] {
  width: 72%;
}

.w-\[72px\] {
  width: 72px;
}

.w-\[92vw\] {
  width: 92vw;
}

.w-\[94vw\] {
  width: 94vw;
}

.w-\[175px\] {
  width: 175px;
}

.w-\[220px\] {
  width: 220px;
}

.w-\[260px\] {
  width: 260px;
}

.w-\[280px\] {
  width: 280px;
}

.w-\[300px\] {
  width: 300px;
}

.w-\[320px\] {
  width: 320px;
}

.w-\[340px\] {
  width: 340px;
}

.w-\[360px\] {
  width: 360px;
}

.w-\[400px\] {
  width: 400px;
}

.w-\[620px\] {
  width: 620px;
}

.w-\[calc\(100\%-2rem\)\] {
  width: calc(100% - 2rem);
}

.w-\[min\(420px\,92vw\)\] {
  width: 420px;
  width: min(420px, 92vw);
}

.w-\[min\(440px\,92vw\)\] {
  width: 440px;
  width: min(440px, 92vw);
}

.w-full {
  width: 100%;
}

.w-full\! {
  width: 100% !important;
}

.w-px {
  width: 1px;
}

.max-w-2xl {
  max-width: var(--container-2xl);
}

.max-w-3xl {
  max-width: var(--container-3xl);
}

.max-w-4xl {
  max-width: var(--container-4xl);
}

.max-w-6xl {
  max-width: var(--container-6xl);
}

.max-w-20 {
  max-width: calc(var(--spacing) * 20);
}

.max-w-24 {
  max-width: calc(var(--spacing) * 24);
}

.max-w-\[42\%\] {
  max-width: 42%;
}

.max-w-\[56px\] {
  max-width: 56px;
}

.max-w-\[78\%\] {
  max-width: 78%;
}

.max-w-\[85\%\] {
  max-width: 85%;
}

.max-w-\[86vw\] {
  max-width: 86vw;
}

.max-w-\[90vw\] {
  max-width: 90vw;
}

.max-w-\[92vw\] {
  max-width: 92vw;
}

.max-w-\[94vw\] {
  max-width: 94vw;
}

.max-w-\[95vw\] {
  max-width: 95vw;
}

.max-w-\[140px\] {
  max-width: 140px;
}

.max-w-\[200px\] {
  max-width: 200px;
}

.max-w-\[240px\] {
  max-width: 240px;
}

.max-w-\[260px\] {
  max-width: 260px;
}

.max-w-\[280px\] {
  max-width: 280px;
}

.max-w-\[320px\] {
  max-width: 320px;
}

.max-w-\[340px\] {
  max-width: 340px;
}

.max-w-\[360px\] {
  max-width: 360px;
}

.max-w-\[380px\] {
  max-width: 380px;
}

.max-w-\[420px\] {
  max-width: 420px;
}

.max-w-\[460px\] {
  max-width: 460px;
}

.max-w-\[520px\] {
  max-width: 520px;
}

.max-w-\[600px\] {
  max-width: 600px;
}

.max-w-\[640px\] {
  max-width: 640px;
}

.max-w-\[720px\] {
  max-width: 720px;
}

.max-w-\[1020px\] {
  max-width: 1020px;
}

.max-w-\[1520px\] {
  max-width: 1520px;
}

.max-w-\[calc\(var\(--dvw\,100vw\)\*0\.9\)\] {
  max-width: calc(var(--dvw, 100vw) * .9);
}

.max-w-\[calc\(var\(--dvw\,100vw\)\*0\.92\)\] {
  max-width: calc(var(--dvw, 100vw) * .92);
}

.max-w-\[calc\(var\(--dvw\,100vw\)\*0\.94\)\] {
  max-width: calc(var(--dvw, 100vw) * .94);
}

.max-w-full {
  max-width: 100%;
}

.max-w-lg {
  max-width: var(--container-lg);
}

.max-w-md {
  max-width: var(--container-md);
}

.max-w-sm {
  max-width: var(--container-sm);
}

.max-w-xs {
  max-width: var(--container-xs);
}

.min-w-0 {
  min-width: 0;
}

.min-w-4 {
  min-width: calc(var(--spacing) * 4);
}

.min-w-40 {
  min-width: calc(var(--spacing) * 40);
}

.min-w-\[56px\] {
  min-width: 56px;
}

.min-w-\[80px\] {
  min-width: 80px;
}

.min-w-\[100px\] {
  min-width: 100px;
}

.min-w-\[120px\] {
  min-width: 120px;
}

.min-w-\[140px\] {
  min-width: 140px;
}

.min-w-\[180px\] {
  min-width: 180px;
}

.min-w-\[190px\] {
  min-width: 190px;
}

.min-w-\[220px\] {
  min-width: 220px;
}

.min-w-\[260px\] {
  min-width: 260px;
}

.min-w-\[300px\] {
  min-width: 300px;
}

.flex-1 {
  flex: 1;
}

.flex-\[1\.1\] {
  flex: 1.1;
}

.flex-\[1\.4\] {
  flex: 1.4;
}

.flex-shrink, .shrink {
  flex-shrink: 1;
}

.shrink-0 {
  flex-shrink: 0;
}

.grow {
  flex-grow: 1;
}

.basis-24 {
  flex-basis: calc(var(--spacing) * 24);
}

.basis-32 {
  flex-basis: calc(var(--spacing) * 32);
}

.origin-center {
  transform-origin: center;
}

.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0));
}

.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0));
}

.translate-y-px {
  --tw-translate-y: 1px;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0));
}

.rotate-180 {
  transform: rotate(180deg);
}

.transform {
  transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
}

.animate-fade-in {
  animation: .3s ease-out fadeIn;
}

.animate-pulse {
  animation: var(--animate-pulse);
}

.animate-spin {
  animation: var(--animate-spin);
}

.cursor-col-resize {
  cursor: col-resize;
}

.cursor-crosshair {
  cursor: crosshair;
}

.cursor-default {
  cursor: default;
}

.cursor-grab {
  cursor: grab;
}

.cursor-none {
  cursor: none;
}

.cursor-pointer {
  cursor: pointer;
}

.touch-none {
  touch-action: none;
}

.resize {
  resize: both;
}

.resize-none {
  resize: none;
}

.resize-y {
  resize: vertical;
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.grid-cols-10 {
  grid-template-columns: repeat(10, minmax(0, 1fr));
}

.flex-col {
  flex-direction: column;
}

.flex-row {
  flex-direction: row;
}

.flex-row-reverse {
  flex-direction: row-reverse;
}

.flex-nowrap {
  flex-wrap: nowrap;
}

.flex-wrap {
  flex-wrap: wrap;
}

.content-center {
  align-content: center;
}

.content-start {
  align-content: flex-start;
}

.items-baseline {
  align-items: baseline;
}

.items-center {
  align-items: center;
}

.items-end {
  align-items: flex-end;
}

.items-start {
  align-items: flex-start;
}

.items-stretch {
  align-items: stretch;
}

.justify-around {
  justify-content: space-around;
}

.justify-between {
  justify-content: space-between;
}

.justify-center {
  justify-content: center;
}

.justify-end {
  justify-content: flex-end;
}

.justify-start {
  justify-content: flex-start;
}

.gap-0\.5 {
  gap: calc(var(--spacing) * .5);
}

.gap-1 {
  gap: var(--spacing);
}

.gap-1\.5 {
  gap: calc(var(--spacing) * 1.5);
}

.gap-2 {
  gap: calc(var(--spacing) * 2);
}

.gap-2\.5 {
  gap: calc(var(--spacing) * 2.5);
}

.gap-3 {
  gap: calc(var(--spacing) * 3);
}

.gap-3\.5 {
  gap: calc(var(--spacing) * 3.5);
}

.gap-4 {
  gap: calc(var(--spacing) * 4);
}

.gap-5 {
  gap: calc(var(--spacing) * 5);
}

.gap-6 {
  gap: calc(var(--spacing) * 6);
}

.gap-\[2px\] {
  gap: 2px;
}

.gap-\[3px\] {
  gap: 3px;
}

.gap-px {
  gap: 1px;
}

.space-y-0\.5 > :not(:last-child) {
  --tw-space-y-reverse: 0;
  margin-top: calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));
  margin-bottom: calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)));
}

.space-y-1 > :not(:last-child) {
  --tw-space-y-reverse: 0;
  margin-top: calc(var(--spacing) * var(--tw-space-y-reverse));
  margin-bottom: calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)));
}

.space-y-1\.5 > :not(:last-child) {
  --tw-space-y-reverse: 0;
  margin-top: calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));
  margin-bottom: calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)));
}

.space-y-2 > :not(:last-child) {
  --tw-space-y-reverse: 0;
  margin-top: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
  margin-bottom: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
}

.space-y-2\.5 > :not(:last-child) {
  --tw-space-y-reverse: 0;
  margin-top: calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));
  margin-bottom: calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)));
}

.space-y-3 > :not(:last-child) {
  --tw-space-y-reverse: 0;
  margin-top: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
  margin-bottom: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
}

.space-y-3\.5 > :not(:last-child) {
  --tw-space-y-reverse: 0;
  margin-top: calc(calc(var(--spacing) * 3.5) * var(--tw-space-y-reverse));
  margin-bottom: calc(calc(var(--spacing) * 3.5) * calc(1 - var(--tw-space-y-reverse)));
}

.space-y-4 > :not(:last-child) {
  --tw-space-y-reverse: 0;
  margin-top: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
  margin-bottom: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
}

.space-y-6 > :not(:last-child) {
  --tw-space-y-reverse: 0;
  margin-top: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
  margin-bottom: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
}

.gap-x-1 {
  column-gap: var(--spacing);
}

.gap-x-1\.5 {
  column-gap: calc(var(--spacing) * 1.5);
}

.gap-x-2\.5 {
  column-gap: calc(var(--spacing) * 2.5);
}

.gap-x-4 {
  column-gap: calc(var(--spacing) * 4);
}

.gap-x-5 {
  column-gap: calc(var(--spacing) * 5);
}

.gap-x-6 {
  column-gap: calc(var(--spacing) * 6);
}

.gap-y-1\.5 {
  row-gap: calc(var(--spacing) * 1.5);
}

.gap-y-2 {
  row-gap: calc(var(--spacing) * 2);
}

.gap-y-2\.5 {
  row-gap: calc(var(--spacing) * 2.5);
}

.gap-y-3 {
  row-gap: calc(var(--spacing) * 3);
}

.self-end {
  align-self: flex-end;
}

.self-start {
  align-self: flex-start;
}

.self-stretch {
  align-self: stretch;
}

.justify-self-center {
  justify-self: center;
}

.truncate {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.overflow-auto {
  overflow: auto;
}

.overflow-hidden {
  overflow: hidden;
}

.overflow-visible {
  overflow: visible;
}

.overflow-x-auto {
  overflow-x: auto;
}

.overflow-x-hidden {
  overflow-x: hidden;
}

.overflow-y-auto {
  overflow-y: auto;
}

.overflow-y-hidden {
  overflow-y: hidden;
}

.rounded {
  border-radius: .25rem;
}

.rounded-2xl {
  border-radius: var(--radius-2xl);
}

.rounded-3xl {
  border-radius: var(--radius-3xl);
}

.rounded-\[3px\] {
  border-radius: 3px;
}

.rounded-\[10px\] {
  border-radius: 10px;
}

.rounded-\[14px\] {
  border-radius: 14px;
}

.rounded-\[inherit\] {
  border-radius: inherit;
}

.rounded-full {
  border-radius: 3.40282e38px;
}

.rounded-lg {
  border-radius: var(--radius-lg);
}

.rounded-md {
  border-radius: var(--radius-md);
}

.rounded-none {
  border-radius: 0;
}

.rounded-xl {
  border-radius: var(--radius-xl);
}

.rounded-t-xl {
  border-top-left-radius: var(--radius-xl);
  border-top-right-radius: var(--radius-xl);
}

.rounded-br-md {
  border-bottom-right-radius: var(--radius-md);
}

.rounded-bl-md {
  border-bottom-left-radius: var(--radius-md);
}

.border {
  border-style: var(--tw-border-style);
  border-width: 1px;
}

.border-0 {
  border-style: var(--tw-border-style);
  border-width: 0;
}

.border-2 {
  border-style: var(--tw-border-style);
  border-width: 2px;
}

.border-t {
  border-top-style: var(--tw-border-style);
  border-top-width: 1px;
}

.border-b {
  border-bottom-style: var(--tw-border-style);
  border-bottom-width: 1px;
}

.border-dashed {
  --tw-border-style: dashed;
  border-style: dashed;
}

.border-none {
  --tw-border-style: none;
  border-style: none;
}

.border-amber-400\/30 {
  border-color: #0000;
}

@supports (color: color-mix(in lab, red, red)) {
  .border-amber-400\/30 {
    border-color: color-mix(in oklab,var(--color-amber-400) 30%,transparent);
  }
}

.border-blue-400\/30 {
  border-color: #0000;
}

@supports (color: color-mix(in lab, red, red)) {
  .border-blue-400\/30 {
    border-color: color-mix(in oklab,var(--color-blue-400) 30%,transparent);
  }
}

.border-current {
  border-color: currentColor;
}

.border-green-400\/30 {
  border-color: #0000;
}

@supports (color: color-mix(in lab, red, red)) {
  .border-green-400\/30 {
    border-color: color-mix(in oklab,var(--color-green-400) 30%,transparent);
  }
}

.border-red-400\/30 {
  border-color: #0000;
}

@supports (color: color-mix(in lab, red, red)) {
  .border-red-400\/30 {
    border-color: color-mix(in oklab,var(--color-red-400) 30%,transparent);
  }
}

.border-red-500\/60 {
  border-color: var(--color-red-500);
}

@supports (color: color-mix(in lab, red, red)) {
  .border-red-500\/60 {
    border-color: color-mix(in oklab,var(--color-red-500) 60%,transparent);
  }
}

.border-transparent {
  border-color: #0000;
}

.border-white {
  border-color: var(--color-white);
}

.border-t-transparent {
  border-top-color: #0000;
}

.bg-amber-500\/35 {
  background-color: #0000;
}

@supports (color: color-mix(in lab, red, red)) {
  .bg-amber-500\/35 {
    background-color: color-mix(in oklab,var(--color-amber-500) 35%,transparent);
  }
}

.bg-black {
  background-color: var(--color-black);
}

.bg-black\/20 {
  background-color: #0000;
}

@supports (color: color-mix(in lab, red, red)) {
  .bg-black\/20 {
    background-color: color-mix(in oklab,var(--color-black) 20%,transparent);
  }
}

.bg-black\/50 {
  background-color: var(--color-black);
}

@supports (color: color-mix(in lab, red, red)) {
  .bg-black\/50 {
    background-color: color-mix(in oklab,var(--color-black) 50%,transparent);
  }
}

.bg-blue-500\/35 {
  background-color: #0000;
}

@supports (color: color-mix(in lab, red, red)) {
  .bg-blue-500\/35 {
    background-color: color-mix(in oklab,var(--color-blue-500) 35%,transparent);
  }
}

.bg-green-500\/35 {
  background-color: #0000;
}

@supports (color: color-mix(in lab, red, red)) {
  .bg-green-500\/35 {
    background-color: color-mix(in oklab,var(--color-green-500) 35%,transparent);
  }
}

.bg-red-500\/35 {
  background-color: #0000;
}

@supports (color: color-mix(in lab, red, red)) {
  .bg-red-500\/35 {
    background-color: color-mix(in oklab,var(--color-red-500) 35%,transparent);
  }
}

.bg-red-500\/90 {
  background-color: var(--color-red-500);
}

@supports (color: color-mix(in lab, red, red)) {
  .bg-red-500\/90 {
    background-color: color-mix(in oklab,var(--color-red-500) 90%,transparent);
  }
}

.bg-transparent {
  background-color: #0000;
}

.bg-white {
  background-color: var(--color-white);
}

.bg-white\/25 {
  background-color: #0000;
}

@supports (color: color-mix(in lab, red, red)) {
  .bg-white\/25 {
    background-color: color-mix(in oklab,var(--color-white) 25%,transparent);
  }
}

.bg-white\/75 {
  background-color: var(--color-white);
}

@supports (color: color-mix(in lab, red, red)) {
  .bg-white\/75 {
    background-color: color-mix(in oklab,var(--color-white) 75%,transparent);
  }
}

.bg-zinc-900\/95 {
  background-color: var(--color-zinc-900);
}

@supports (color: color-mix(in lab, red, red)) {
  .bg-zinc-900\/95 {
    background-color: color-mix(in oklab,var(--color-zinc-900) 95%,transparent);
  }
}

.bg-center {
  background-position: center;
}

.object-contain {
  object-fit: contain;
}

.object-cover {
  object-fit: cover;
}

.\!p-1 {
  padding: var(--spacing) !important;
}

.p-0 {
  padding: 0;
}

.p-0\.5 {
  padding: calc(var(--spacing) * .5);
}

.p-1 {
  padding: var(--spacing);
}

.p-1\.5 {
  padding: calc(var(--spacing) * 1.5);
}

.p-2 {
  padding: calc(var(--spacing) * 2);
}

.p-2\.5 {
  padding: calc(var(--spacing) * 2.5);
}

.p-3 {
  padding: calc(var(--spacing) * 3);
}

.p-3\.5 {
  padding: calc(var(--spacing) * 3.5);
}

.p-4 {
  padding: calc(var(--spacing) * 4);
}

.p-5 {
  padding: calc(var(--spacing) * 5);
}

.p-6 {
  padding: calc(var(--spacing) * 6);
}

.p-8 {
  padding: calc(var(--spacing) * 8);
}

.\!px-2 {
  padding-left: calc(var(--spacing) * 2) !important; padding-right: calc(var(--spacing) * 2) !important;
}

.\!px-2\.5 {
  padding-left: calc(var(--spacing) * 2.5) !important; padding-right: calc(var(--spacing) * 2.5) !important;
}

.px-0\.5 {
  padding-left: calc(var(--spacing) * .5); padding-right: calc(var(--spacing) * .5);
}

.px-1 {
  padding-left: var(--spacing); padding-right: var(--spacing);
}

.px-1\.5 {
  padding-left: calc(var(--spacing) * 1.5); padding-right: calc(var(--spacing) * 1.5);
}

.px-2 {
  padding-left: calc(var(--spacing) * 2); padding-right: calc(var(--spacing) * 2);
}

.px-2\.5 {
  padding-left: calc(var(--spacing) * 2.5); padding-right: calc(var(--spacing) * 2.5);
}

.px-3 {
  padding-left: calc(var(--spacing) * 3); padding-right: calc(var(--spacing) * 3);
}

.px-3\.5 {
  padding-left: calc(var(--spacing) * 3.5); padding-right: calc(var(--spacing) * 3.5);
}

.px-4 {
  padding-left: calc(var(--spacing) * 4); padding-right: calc(var(--spacing) * 4);
}

.px-5 {
  padding-left: calc(var(--spacing) * 5); padding-right: calc(var(--spacing) * 5);
}

.px-6 {
  padding-left: calc(var(--spacing) * 6); padding-right: calc(var(--spacing) * 6);
}

.px-8 {
  padding-left: calc(var(--spacing) * 8); padding-right: calc(var(--spacing) * 8);
}

.px-10 {
  padding-left: calc(var(--spacing) * 10); padding-right: calc(var(--spacing) * 10);
}

.\!py-0\.5 {
  padding-top: calc(var(--spacing) * .5) !important; padding-bottom: calc(var(--spacing) * .5) !important;
}

.\!py-1 {
  padding-top: var(--spacing) !important; padding-bottom: var(--spacing) !important;
}

.py-0\.5 {
  padding-top: calc(var(--spacing) * .5); padding-bottom: calc(var(--spacing) * .5);
}

.py-1 {
  padding-top: var(--spacing); padding-bottom: var(--spacing);
}

.py-1\.5 {
  padding-top: calc(var(--spacing) * 1.5); padding-bottom: calc(var(--spacing) * 1.5);
}

.py-2 {
  padding-top: calc(var(--spacing) * 2); padding-bottom: calc(var(--spacing) * 2);
}

.py-2\.5 {
  padding-top: calc(var(--spacing) * 2.5); padding-bottom: calc(var(--spacing) * 2.5);
}

.py-3 {
  padding-top: calc(var(--spacing) * 3); padding-bottom: calc(var(--spacing) * 3);
}

.py-3\.5 {
  padding-top: calc(var(--spacing) * 3.5); padding-bottom: calc(var(--spacing) * 3.5);
}

.py-4 {
  padding-top: calc(var(--spacing) * 4); padding-bottom: calc(var(--spacing) * 4);
}

.py-5 {
  padding-top: calc(var(--spacing) * 5); padding-bottom: calc(var(--spacing) * 5);
}

.py-6 {
  padding-top: calc(var(--spacing) * 6); padding-bottom: calc(var(--spacing) * 6);
}

.py-8 {
  padding-top: calc(var(--spacing) * 8); padding-bottom: calc(var(--spacing) * 8);
}

.py-10 {
  padding-top: calc(var(--spacing) * 10); padding-bottom: calc(var(--spacing) * 10);
}

.py-12 {
  padding-top: calc(var(--spacing) * 12); padding-bottom: calc(var(--spacing) * 12);
}

.py-14 {
  padding-top: calc(var(--spacing) * 14); padding-bottom: calc(var(--spacing) * 14);
}

.py-16 {
  padding-top: calc(var(--spacing) * 16); padding-bottom: calc(var(--spacing) * 16);
}

.py-20 {
  padding-top: calc(var(--spacing) * 20); padding-bottom: calc(var(--spacing) * 20);
}

.py-\[3px\] {
  padding-top: 3px;
  padding-bottom: 3px;
}

.py-\[8px\] {
  padding-top: 8px;
  padding-bottom: 8px;
}

.py-px {
  padding-top: 1px;
  padding-bottom: 1px;
}

.pt-0 {
  padding-top: 0;
}

.pt-0\.5 {
  padding-top: calc(var(--spacing) * .5);
}

.pt-1 {
  padding-top: var(--spacing);
}

.pt-1\.5 {
  padding-top: calc(var(--spacing) * 1.5);
}

.pt-2 {
  padding-top: calc(var(--spacing) * 2);
}

.pt-2\.5 {
  padding-top: calc(var(--spacing) * 2.5);
}

.pt-3 {
  padding-top: calc(var(--spacing) * 3);
}

.pt-3\.5 {
  padding-top: calc(var(--spacing) * 3.5);
}

.pt-4 {
  padding-top: calc(var(--spacing) * 4);
}

.pt-5 {
  padding-top: calc(var(--spacing) * 5);
}

.pt-8 {
  padding-top: calc(var(--spacing) * 8);
}

.pt-12 {
  padding-top: calc(var(--spacing) * 12);
}

.pt-px {
  padding-top: 1px;
}

.pr-0\.5 {
  padding-right: calc(var(--spacing) * .5);
}

.pr-1\.5 {
  padding-right: calc(var(--spacing) * 1.5);
}

.pr-2 {
  padding-right: calc(var(--spacing) * 2);
}

.pr-4 {
  padding-right: calc(var(--spacing) * 4);
}

.pr-8 {
  padding-right: calc(var(--spacing) * 8);
}

.pr-14 {
  padding-right: calc(var(--spacing) * 14);
}

.pb-0\.5 {
  padding-bottom: calc(var(--spacing) * .5);
}

.pb-1 {
  padding-bottom: var(--spacing);
}

.pb-1\.5 {
  padding-bottom: calc(var(--spacing) * 1.5);
}

.pb-2 {
  padding-bottom: calc(var(--spacing) * 2);
}

.pb-2\.5 {
  padding-bottom: calc(var(--spacing) * 2.5);
}

.pb-3 {
  padding-bottom: calc(var(--spacing) * 3);
}

.pb-3\.5 {
  padding-bottom: calc(var(--spacing) * 3.5);
}

.pb-4 {
  padding-bottom: calc(var(--spacing) * 4);
}

.pb-5 {
  padding-bottom: calc(var(--spacing) * 5);
}

.pb-6 {
  padding-bottom: calc(var(--spacing) * 6);
}

.pb-8 {
  padding-bottom: calc(var(--spacing) * 8);
}

.pb-10 {
  padding-bottom: calc(var(--spacing) * 10);
}

.pb-24 {
  padding-bottom: calc(var(--spacing) * 24);
}

.pb-28 {
  padding-bottom: calc(var(--spacing) * 28);
}

.pb-32 {
  padding-bottom: calc(var(--spacing) * 32);
}

.pb-36 {
  padding-bottom: calc(var(--spacing) * 36);
}

.\!pl-8 {
  padding-left: calc(var(--spacing) * 8) !important;
}

.\!pl-9 {
  padding-left: calc(var(--spacing) * 9) !important;
}

.pl-0\.5 {
  padding-left: calc(var(--spacing) * .5);
}

.pl-1 {
  padding-left: var(--spacing);
}

.pl-2 {
  padding-left: calc(var(--spacing) * 2);
}

.pl-3 {
  padding-left: calc(var(--spacing) * 3);
}

.pl-5 {
  padding-left: calc(var(--spacing) * 5);
}

.pl-7 {
  padding-left: calc(var(--spacing) * 7);
}

.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.align-middle {
  vertical-align: middle;
}

.font-mono {
  font-family: SF Mono, Fira Code, Fira Mono, Menlo, Consolas, monospace;
}

.font-sans {
  font-family: HONOR Sans CN, PingFang SC, Microsoft YaHei UI, Microsoft YaHei, Hiragino Sans GB, sans-serif;
}

.font-serif {
  font-family: var(--font-serif);
}

.\!text-sm {
  font-size: var(--text-sm) !important;
  line-height: var(--tw-leading, var(--text-sm--line-height)) !important;
}

.text-2xl {
  font-size: var(--text-2xl);
  line-height: var(--tw-leading, var(--text-2xl--line-height));
}

.text-3xl {
  font-size: var(--text-3xl);
  line-height: var(--tw-leading, var(--text-3xl--line-height));
}

.text-base {
  font-size: var(--text-base);
  line-height: var(--tw-leading, var(--text-base--line-height));
}

.text-lg {
  font-size: var(--text-lg);
  line-height: var(--tw-leading, var(--text-lg--line-height));
}

.text-sm {
  font-size: var(--text-sm);
  line-height: var(--tw-leading, var(--text-sm--line-height));
}

.text-xl {
  font-size: var(--text-xl);
  line-height: var(--tw-leading, var(--text-xl--line-height));
}

.text-xs {
  font-size: var(--text-xs);
  line-height: var(--tw-leading, var(--text-xs--line-height));
}

.text-\[8px\] {
  font-size: 8px;
}

.text-\[9px\] {
  font-size: 9px;
}

.text-\[10\.5px\] {
  font-size: 10.5px;
}

.text-\[10px\] {
  font-size: 10px;
}

.text-\[11\.5px\] {
  font-size: 11.5px;
}

.text-\[11px\] {
  font-size: 11px;
}

.text-\[11px\]\! {
  font-size: 11px !important;
}

.text-\[12\.5px\] {
  font-size: 12.5px;
}

.text-\[12px\] {
  font-size: 12px;
}

.text-\[13\.5px\] {
  font-size: 13.5px;
}

.text-\[13px\] {
  font-size: 13px;
}

.text-\[14px\] {
  font-size: 14px;
}

.text-\[15px\] {
  font-size: 15px;
}

.text-\[16px\] {
  font-size: 16px;
}

.text-\[17px\] {
  font-size: 17px;
}

.text-\[18px\] {
  font-size: 18px;
}

.text-\[19px\] {
  font-size: 19px;
}

.text-\[20px\] {
  font-size: 20px;
}

.text-\[24px\] {
  font-size: 24px;
}

.text-\[26px\] {
  font-size: 26px;
}

.text-\[52px\] {
  font-size: 52px;
}

.text-\[clamp\(14px\,4\.5vw\,21px\)\] {
  font-size: 14px;
  font-size: max(14px, min(4.5vw, 21px));
}

.leading-4 {
  --tw-leading: calc(var(--spacing) * 4);
  line-height: calc(var(--spacing) * 4);
}

.leading-\[1\.06\] {
  --tw-leading: 1.06;
  line-height: 1.06;
}

.leading-\[1\.6\] {
  --tw-leading: 1.6;
  line-height: 1.6;
}

.leading-\[14px\] {
  --tw-leading: 14px;
  line-height: 14px;
}

.leading-\[16px\] {
  --tw-leading: 16px;
  line-height: 16px;
}

.leading-none {
  --tw-leading: 1;
  line-height: 1;
}

.leading-relaxed {
  --tw-leading: var(--leading-relaxed);
  line-height: var(--leading-relaxed);
}

.leading-snug {
  --tw-leading: var(--leading-snug);
  line-height: var(--leading-snug);
}

.leading-tight {
  --tw-leading: var(--leading-tight);
  line-height: var(--leading-tight);
}

.font-bold {
  --tw-font-weight: var(--font-weight-bold);
  font-weight: var(--font-weight-bold);
}

.font-extralight {
  --tw-font-weight: var(--font-weight-extralight);
  font-weight: var(--font-weight-extralight);
}

.font-light {
  --tw-font-weight: var(--font-weight-light);
  font-weight: var(--font-weight-light);
}

.font-medium {
  --tw-font-weight: var(--font-weight-medium);
  font-weight: var(--font-weight-medium);
}

.font-normal {
  --tw-font-weight: var(--font-weight-normal);
  font-weight: var(--font-weight-normal);
}

.font-semibold {
  --tw-font-weight: var(--font-weight-semibold);
  font-weight: var(--font-weight-semibold);
}

.tracking-\[0\.01em\] {
  --tw-tracking: .01em;
  letter-spacing: .01em;
}

.tracking-\[0\.2em\] {
  --tw-tracking: .2em;
  letter-spacing: .2em;
}

.tracking-\[0\.3em\] {
  --tw-tracking: .3em;
  letter-spacing: .3em;
}

.tracking-tight {
  --tw-tracking: var(--tracking-tight);
  letter-spacing: var(--tracking-tight);
}

.tracking-wide {
  --tw-tracking: var(--tracking-wide);
  letter-spacing: var(--tracking-wide);
}

.tracking-wider {
  --tw-tracking: var(--tracking-wider);
  letter-spacing: var(--tracking-wider);
}

.tracking-widest {
  --tw-tracking: var(--tracking-widest);
  letter-spacing: var(--tracking-widest);
}

.wrap-break-word {
  overflow-wrap: break-word;
}

.break-all {
  word-break: break-all;
}

.whitespace-nowrap {
  white-space: nowrap;
}

.whitespace-pre {
  white-space: pre;
}

.whitespace-pre-line {
  white-space: pre-line;
}

.whitespace-pre-wrap {
  white-space: pre-wrap;
}

.\!text-green-400 {
  color: var(--color-green-400) !important;
}

.\!text-red-500 {
  color: var(--color-red-500) !important;
}

.\!text-white {
  color: var(--color-white) !important;
}

.text-app-accent {
  color: var(--app-accent);
}

.text-app-text {
  color: var(--app-text);
}

.text-app-text-secondary {
  color: var(--app-text-secondary);
}

.text-app-text-secondary\/70 {
  color: var(--app-text-secondary);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-app-text-secondary\/70 {
    color: color-mix(in oklab,var(--app-text-secondary) 70%,transparent);
  }
}

.text-app-text-secondary\/80 {
  color: var(--app-text-secondary);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-app-text-secondary\/80 {
    color: color-mix(in oklab,var(--app-text-secondary) 80%,transparent);
  }
}

.text-app-text-tertiary {
  color: var(--app-text-tertiary);
}

.text-app-text\/40 {
  color: rgba(var(--app-text-rgb), .4);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-app-text\/40 {
    color: color-mix(in oklab,var(--app-text) 40%,transparent);
  }
}

.text-app-text\/60 {
  color: rgba(var(--app-text-rgb), .6);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-app-text\/60 {
    color: color-mix(in oklab,var(--app-text) 60%,transparent);
  }
}

.text-black {
  color: var(--color-black);
}

.text-green-400 {
  color: var(--color-green-400);
}

.text-red-400 {
  color: var(--color-red-400);
}

.text-red-500\/80 {
  color: var(--color-red-500);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-red-500\/80 {
    color: color-mix(in oklab,var(--color-red-500) 80%,transparent);
  }
}

.text-secondary {
  color: hsl(var(--secondary));
}

.text-white {
  color: var(--color-white);
}

.text-white\/40 {
  color: #0000;
}

@supports (color: color-mix(in lab, red, red)) {
  .text-white\/40 {
    color: color-mix(in oklab,var(--color-white) 40%,transparent);
  }
}

.text-white\/50 {
  color: var(--color-white);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-white\/50 {
    color: color-mix(in oklab,var(--color-white) 50%,transparent);
  }
}

.text-white\/55 {
  color: var(--color-white);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-white\/55 {
    color: color-mix(in oklab,var(--color-white) 55%,transparent);
  }
}

.text-white\/60 {
  color: var(--color-white);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-white\/60 {
    color: color-mix(in oklab,var(--color-white) 60%,transparent);
  }
}

.text-white\/70 {
  color: var(--color-white);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-white\/70 {
    color: color-mix(in oklab,var(--color-white) 70%,transparent);
  }
}

.text-white\/80 {
  color: var(--color-white);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-white\/80 {
    color: color-mix(in oklab,var(--color-white) 80%,transparent);
  }
}

.text-white\/85 {
  color: var(--color-white);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-white\/85 {
    color: color-mix(in oklab,var(--color-white) 85%,transparent);
  }
}

.text-white\/90 {
  color: var(--color-white);
}

@supports (color: color-mix(in lab, red, red)) {
  .text-white\/90 {
    color: color-mix(in oklab,var(--color-white) 90%,transparent);
  }
}

.text-yellow-500 {
  color: var(--color-yellow-500);
}

.uppercase {
  text-transform: uppercase;
}

.italic {
  font-style: italic;
}

.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal, ) var(--tw-slashed-zero, ) var(--tw-numeric-figure, ) var(--tw-numeric-spacing, ) var(--tw-numeric-fraction, );
}

.underline {
  text-decoration-line: underline;
}

.opacity-0 {
  opacity: 0;
}

.opacity-25 {
  opacity: .25;
}

.opacity-30 {
  opacity: .3;
}

.opacity-50 {
  opacity: .5;
}

.opacity-60 {
  opacity: .6;
}

.opacity-65 {
  opacity: .65;
}

.opacity-70 {
  opacity: .7;
}

.opacity-80 {
  opacity: .8;
}

.opacity-100 {
  opacity: 1;
}

.shadow {
  --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
  box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);
}

.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, #00000040);
  box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);
}

.shadow-\[0_1px_0_rgba\(255\,255\,255\,0\.06\)_inset\,0_2px_6px_-2px_rgba\(var\(--app-accent-rgb\)\,0\.25\)\] {
  --tw-shadow: 0 1px 0 var(--tw-shadow-color, #ffffff0f) inset, 0 2px 6px -2px var(--tw-shadow-color, rgba(var(--app-accent-rgb),.25));
  box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);
}

.shadow-lg {
  --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);
  box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);
}

.shadow-md {
  --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);
  box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);
}

.shadow-xl {
  --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), 0 8px 10px -6px var(--tw-shadow-color, #0000001a);
  box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);
}

.ring {
  --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
  box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);
}

.outline {
  outline-style: var(--tw-outline-style);
  outline-width: 1px;
}

.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
}

.drop-shadow {
  --tw-drop-shadow-size: drop-shadow(0 1px 2px var(--tw-drop-shadow-color, #0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color, #0000000f));
  --tw-drop-shadow: drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);
  filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
}

.drop-shadow-md {
  --tw-drop-shadow-size: drop-shadow(0 3px 3px var(--tw-drop-shadow-color, #0000001f));
  --tw-drop-shadow: drop-shadow(var(--drop-shadow-md));
  filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
}

.grayscale {
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
}

.invert {
  --tw-invert: invert(100%);
  filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
}

.filter {
  filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
}

.backdrop-blur-md {
  --tw-backdrop-blur: blur(var(--blur-md));
  backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
}

.backdrop-blur-sm {
  --tw-backdrop-blur: blur(var(--blur-sm));
  backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
}

.backdrop-blur-xl {
  --tw-backdrop-blur: blur(var(--blur-xl));
  backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
}

.backdrop-filter {
  backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
}

.\!transition {
  transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, backdrop-filter, display, content-visibility, overlay, pointer-events !important;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)) !important;
  transition-duration: var(--tw-duration, var(--default-transition-duration)) !important;
}

.transition {
  transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}

.transition-\[background-color\,transform\] {
  transition-property: background-color, transform;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}

.transition-\[box-shadow\,border-color\,background\,transform\] {
  transition-property: box-shadow, border-color, background, transform;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}

.transition-\[min-height\,box-shadow\,background-color\] {
  transition-property: min-height, box-shadow, background-color;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}

.transition-\[width\] {
  transition-property: width;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}

.transition-all {
  transition-property: all;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}

.transition-colors {
  transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}

.transition-opacity {
  transition-property: opacity;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}

.transition-transform {
  transition-property: transform, translate, scale, rotate;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}

.duration-150 {
  --tw-duration: .15s;
  transition-duration: .15s;
}

.duration-200 {
  --tw-duration: .2s;
  transition-duration: .2s;
}

.duration-300 {
  --tw-duration: .3s;
  transition-duration: .3s;
}

.duration-500 {
  --tw-duration: .5s;
  transition-duration: .5s;
}

.duration-600 {
  --tw-duration: .6s;
  transition-duration: .6s;
}

.duration-700 {
  --tw-duration: .7s;
  transition-duration: .7s;
}

.duration-1000 {
  --tw-duration: 1s;
  transition-duration: 1s;
}

.ease-in {
  --tw-ease: var(--ease-in);
  transition-timing-function: var(--ease-in);
}

.ease-in-out {
  --tw-ease: var(--ease-in-out);
  transition-timing-function: var(--ease-in-out);
}

.ease-out {
  --tw-ease: var(--ease-out);
  transition-timing-function: var(--ease-out);
}

.will-change-transform {
  will-change: transform;
}

.outline-none {
  --tw-outline-style: none;
  outline-style: none;
}

.select-all {
  user-select: all;
}

.select-none {
  user-select: none;
}

.\!paused {
  animation-play-state: paused !important;
}

.\[mingchat\:push\] {
  mingchat: push;
}

.\[mingchat\:ws\] {
  mingchat: ws;
}

.\[mm\:ss\.cc\] {
  mm: ss.cc;
}

.duration-150 {
  animation-duration: .15s;
}

.duration-200 {
  animation-duration: .2s;
}

.duration-300 {
  animation-duration: .3s;
}

.duration-500 {
  animation-duration: .5s;
}

.duration-600 {
  animation-duration: .6s;
}

.duration-700 {
  animation-duration: .7s;
}

.duration-1000 {
  animation-duration: 1s;
}

.ease-in {
  animation-timing-function: cubic-bezier(.4, 0, 1, 1);
}

.ease-in-out {
  animation-timing-function: cubic-bezier(.4, 0, .2, 1);
}

.ease-out {
  animation-timing-function: cubic-bezier(0, 0, .2, 1);
}

.fade-in {
  --tw-enter-opacity: 0;
}

.fade-out {
  --tw-exit-opacity: 0;
}

.paused {
  animation-play-state: paused;
}

.running {
  animation-play-state: running;
}

.\*\:shrink-0 > * {
  flex-shrink: 0;
}

@media (hover: hover) {
  .group:hover .group-hover\:scale-105 {
    --tw-scale-x: 105%;
    --tw-scale-y: 105%;
    --tw-scale-z: 105%;
    transform: scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
  }

  .group:hover .group-hover\:scale-110 {
    --tw-scale-x: 110%;
    --tw-scale-y: 110%;
    --tw-scale-z: 110%;
    transform: scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
  }

  .group:hover .group-hover\:scale-\[1\.04\] {
    transform: scale(1.04);
  }

  .group:hover .group-hover\:opacity-60 {
    opacity: .6;
  }

  .group:hover .group-hover\:opacity-100 {
    opacity: 1;
  }
}

.placeholder\:text-app-text-tertiary::placeholder {
  color: var(--app-text-tertiary);
}

.last\:mb-0:last-child {
  margin-bottom: 0;
}

@media (hover: hover) {
  .hover\:z-10:hover {
    z-index: 10;
  }

  .hover\:-translate-y-1:hover {
    --tw-translate-y: calc(var(--spacing) * -1);
    transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0));
  }

  .hover\:scale-105:hover {
    --tw-scale-x: 105%;
    --tw-scale-y: 105%;
    --tw-scale-z: 105%;
    transform: scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
  }

  .hover\:scale-110:hover {
    --tw-scale-x: 110%;
    --tw-scale-y: 110%;
    --tw-scale-z: 110%;
    transform: scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
  }

  .hover\:scale-125:hover {
    --tw-scale-x: 125%;
    --tw-scale-y: 125%;
    --tw-scale-z: 125%;
    transform: scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
  }

  .hover\:\!bg-red-500\/20:hover {
    background-color: #fb2c3633 !important;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:\!bg-red-500\/20:hover {
      background-color: color-mix(in oklab,var(--color-red-500) 20%,transparent) !important;
    }
  }

  .hover\:bg-\(--app-card\):hover {
    background-color: var(--app-card);
  }

  .hover\:bg-\(--app-card-hover\):hover {
    background-color: var(--app-card-hover);
  }

  .hover\:bg-\[color-mix\(in_srgb\,var\(--app-accent\)_12\%\,transparent\)\]:hover {
    background-color: var(--app-accent);
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-\[color-mix\(in_srgb\,var\(--app-accent\)_12\%\,transparent\)\]:hover {
      background-color: color-mix(in srgb,var(--app-accent) 12%,transparent);
    }
  }

  .hover\:bg-\[rgba\(255\,77\,79\,0\.1\)\]:hover {
    background-color: #ff4d4f1a;
  }

  .hover\:bg-app-card-hover:hover {
    background-color: var(--app-card-hover);
  }

  .hover\:bg-black\/5:hover {
    background-color: #0000000d;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-black\/5:hover {
      background-color: color-mix(in oklab,var(--color-black) 5%,transparent);
    }
  }

  .hover\:bg-black\/40:hover {
    background-color: #0006;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-black\/40:hover {
      background-color: color-mix(in oklab,var(--color-black) 40%,transparent);
    }
  }

  .hover\:bg-black\/70:hover {
    background-color: #000000b3;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-black\/70:hover {
      background-color: color-mix(in oklab,var(--color-black) 70%,transparent);
    }
  }

  .hover\:bg-black\/\[0\.06\]:hover {
    background-color: #0000000f;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-black\/\[0\.06\]:hover {
      background-color: color-mix(in oklab,var(--color-black) 6%,transparent);
    }
  }

  .hover\:bg-red-500\/10:hover {
    background-color: #fb2c361a;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-red-500\/10:hover {
      background-color: color-mix(in oklab,var(--color-red-500) 10%,transparent);
    }
  }

  .hover\:bg-red-500\/20:hover {
    background-color: #fb2c3633;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-red-500\/20:hover {
      background-color: color-mix(in oklab,var(--color-red-500) 20%,transparent);
    }
  }

  .hover\:bg-white:hover {
    background-color: var(--color-white);
  }

  .hover\:bg-white\/5:hover {
    background-color: #ffffff0d;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-white\/5:hover {
      background-color: color-mix(in oklab,var(--color-white) 5%,transparent);
    }
  }

  .hover\:bg-white\/10:hover {
    background-color: #ffffff1a;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-white\/10:hover {
      background-color: color-mix(in oklab,var(--color-white) 10%,transparent);
    }
  }

  .hover\:bg-white\/\[0\.03\]:hover {
    background-color: #ffffff08;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-white\/\[0\.03\]:hover {
      background-color: color-mix(in oklab,var(--color-white) 3%,transparent);
    }
  }

  .hover\:bg-white\/\[0\.04\]:hover {
    background-color: #ffffff0a;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-white\/\[0\.04\]:hover {
      background-color: color-mix(in oklab,var(--color-white) 4%,transparent);
    }
  }

  .hover\:bg-white\/\[0\.06\]:hover {
    background-color: #ffffff0f;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .hover\:bg-white\/\[0\.06\]:hover {
      background-color: color-mix(in oklab,var(--color-white) 6%,transparent);
    }
  }

  .hover\:\!text-red-400:hover {
    color: var(--color-red-400) !important;
  }

  .hover\:\!text-red-500:hover {
    color: var(--color-red-500) !important;
  }

  .hover\:text-app-accent:hover {
    color: var(--app-accent);
  }

  .hover\:text-app-text:hover {
    color: var(--app-text);
  }

  .hover\:text-app-text-secondary:hover {
    color: var(--app-text-secondary);
  }

  .hover\:text-red-400:hover {
    color: var(--color-red-400);
  }

  .hover\:text-white:hover {
    color: var(--color-white);
  }

  .hover\:opacity-70:hover {
    opacity: .7;
  }

  .hover\:opacity-75:hover {
    opacity: .75;
  }

  .hover\:opacity-80:hover {
    opacity: .8;
  }

  .hover\:opacity-85:hover {
    opacity: .85;
  }

  .hover\:opacity-90:hover {
    opacity: .9;
  }

  .hover\:opacity-100:hover {
    opacity: 1;
  }

  .hover\:ring-2:hover {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);
  }

  .hover\:brightness-95:hover {
    --tw-brightness: brightness(95%);
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }
}

.focus\:border-\(--app-accent\):focus {
  border-color: var(--app-accent);
}

.focus\:ring-1:focus {
  --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
  box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);
}

.active\:scale-90:active {
  --tw-scale-x: 90%;
  --tw-scale-y: 90%;
  --tw-scale-z: 90%;
  transform: scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}

.active\:scale-95:active {
  --tw-scale-x: 95%;
  --tw-scale-y: 95%;
  --tw-scale-z: 95%;
  transform: scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}

.active\:scale-\[0\.97\]:active {
  transform: scale(.97);
}

.active\:scale-\[0\.98\]:active {
  transform: scale(.98);
}

.active\:scale-\[0\.99\]:active {
  transform: scale(.99);
}

.active\:cursor-grabbing:active {
  cursor: grabbing;
}

.active\:opacity-70:active {
  opacity: .7;
}

.disabled\:pointer-events-none:disabled {
  pointer-events: none;
}

.disabled\:cursor-default:disabled {
  cursor: default;
}

.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}

.disabled\:opacity-30:disabled {
  opacity: .3;
}

.disabled\:opacity-40:disabled {
  opacity: .4;
}

.disabled\:opacity-50:disabled {
  opacity: .5;
}

.disabled\:opacity-55:disabled {
  opacity: .55;
}

.disabled\:opacity-60:disabled {
  opacity: .6;
}

@media (hover: hover) {
  .disabled\:hover\:text-white\/90:disabled:hover {
    color: #ffffffe6;
  }

  @supports (color: color-mix(in lab,red,red)) {
    .disabled\:hover\:text-white\/90:disabled:hover {
      color: color-mix(in oklab,var(--color-white) 90%,transparent);
    }
  }
}

@media not (min-width: 640px) {
  .max-sm\:h-full {
    height: 100%;
  }

  .max-sm\:max-h-none {
    max-height: none;
  }

  .max-sm\:w-full {
    width: 100%;
  }

  .max-sm\:max-w-none {
    max-width: none;
  }

  .max-sm\:rounded-\[14px\] {
    border-radius: 14px;
  }

  .max-sm\:p-4 {
    padding: calc(var(--spacing) * 4);
  }
}

@media (min-width: 640px) {
  .sm\:inline {
    display: inline;
  }

  .sm\:\!w-20 {
    width: calc(var(--spacing) * 20) !important;
  }

  .sm\:w-32 {
    width: calc(var(--spacing) * 32);
  }

  .sm\:w-\[68\%\] {
    width: 68%;
  }

  .sm\:max-w-\[68\%\] {
    max-width: 68%;
  }

  .sm\:min-w-\[120px\] {
    min-width: 120px;
  }

  .sm\:flex-1 {
    flex: 1;
  }

  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .sm\:flex-row {
    flex-direction: row;
  }

  .sm\:items-center {
    align-items: center;
  }

  .sm\:gap-3 {
    gap: calc(var(--spacing) * 3);
  }

  .sm\:gap-4 {
    gap: calc(var(--spacing) * 4);
  }

  .sm\:p-4 {
    padding: calc(var(--spacing) * 4);
  }

  .sm\:p-6 {
    padding: calc(var(--spacing) * 6);
  }

  .sm\:px-2\.5 {
    padding-left: calc(var(--spacing) * 2.5); padding-right: calc(var(--spacing) * 2.5);
  }

  .sm\:px-3 {
    padding-left: calc(var(--spacing) * 3); padding-right: calc(var(--spacing) * 3);
  }

  .sm\:px-4 {
    padding-left: calc(var(--spacing) * 4); padding-right: calc(var(--spacing) * 4);
  }

  .sm\:px-8 {
    padding-left: calc(var(--spacing) * 8); padding-right: calc(var(--spacing) * 8);
  }

  .sm\:py-6 {
    padding-top: calc(var(--spacing) * 6); padding-bottom: calc(var(--spacing) * 6);
  }

  .sm\:pt-16 {
    padding-top: calc(var(--spacing) * 16);
  }

  .sm\:pb-0 {
    padding-bottom: 0;
  }

  .sm\:pb-40 {
    padding-bottom: calc(var(--spacing) * 40);
  }
}

@media (min-width: 768px) {
  .md\:right-auto {
    right: auto;
  }

  .md\:left-1\/2 {
    left: 50%;
  }

  .md\:mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }

  .md\:\!flex {
    display: flex !important;
  }

  .md\:flex {
    display: flex;
  }

  .md\:hidden {
    display: none;
  }

  .md\:inline {
    display: inline;
  }

  .md\:h-36 {
    height: calc(var(--spacing) * 36);
  }

  .md\:h-44 {
    height: calc(var(--spacing) * 44);
  }

  .md\:h-\[52px\] {
    height: 52px;
  }

  .md\:h-\[520px\] {
    height: 520px;
  }

  .md\:h-\[550px\] {
    height: 550px;
  }

  .md\:h-auto {
    height: auto;
  }

  .md\:max-h-\[90vh\] {
    max-height: 90vh;
  }

  .md\:max-h-\[calc\(var\(--dvh\,100vh\)\*0\.85\)\] {
    max-height: calc(var(--dvh, 100vh) * .85);
  }

  .md\:w-36 {
    width: calc(var(--spacing) * 36);
  }

  .md\:w-44 {
    width: calc(var(--spacing) * 44);
  }

  .md\:w-\[52px\] {
    width: 52px;
  }

  .md\:w-\[150px\] {
    width: 150px;
  }

  .md\:w-\[340px\] {
    width: 340px;
  }

  .md\:w-\[500px\] {
    width: 500px;
  }

  .md\:w-\[720px\] {
    width: 720px;
  }

  .md\:w-\[min\(820px\,calc\(var\(--dvw\,100vw\)-32px\)\)\] {
    width: 820px;
    width: min(820px,calc(var(--dvw, 100vw) - 32px));
  }

  .md\:w-auto {
    width: auto;
  }

  .md\:max-w-\[95vw\] {
    max-width: 95vw;
  }

  .md\:max-w-\[340px\] {
    max-width: 340px;
  }

  .md\:max-w-\[600px\] {
    max-width: 600px;
  }

  .md\:min-w-\[420px\] {
    min-width: 420px;
  }

  .md\:min-w-\[500px\] {
    min-width: 500px;
  }

  .md\:-translate-x-1\/2 {
    --tw-translate-x: -50%;
    transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0));
  }

  .md\:cursor-none {
    cursor: none;
  }

  .md\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .md\:flex-col {
    flex-direction: column;
  }

  .md\:flex-row {
    flex-direction: row;
  }

  .md\:items-center {
    align-items: center;
  }

  .md\:items-start {
    align-items: flex-start;
  }

  .md\:items-stretch {
    align-items: stretch;
  }

  .md\:justify-start {
    justify-content: flex-start;
  }

  .md\:gap-1\.5 {
    gap: calc(var(--spacing) * 1.5);
  }

  .md\:gap-2 {
    gap: calc(var(--spacing) * 2);
  }

  .md\:gap-2\.5 {
    gap: calc(var(--spacing) * 2.5);
  }

  .md\:gap-5 {
    gap: calc(var(--spacing) * 5);
  }

  .md\:gap-6 {
    gap: calc(var(--spacing) * 6);
  }

  .md\:rounded-2xl {
    border-radius: var(--radius-2xl);
  }

  .md\:rounded-\[16px\] {
    border-radius: 16px;
  }

  .md\:border-r {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }

  .md\:border-b-0 {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 0;
  }

  .md\:\!px-5 {
    padding-left: calc(var(--spacing) * 5) !important; padding-right: calc(var(--spacing) * 5) !important;
  }

  .md\:px-3 {
    padding-left: calc(var(--spacing) * 3); padding-right: calc(var(--spacing) * 3);
  }

  .md\:px-4 {
    padding-left: calc(var(--spacing) * 4); padding-right: calc(var(--spacing) * 4);
  }

  .md\:px-5 {
    padding-left: calc(var(--spacing) * 5); padding-right: calc(var(--spacing) * 5);
  }

  .md\:px-6 {
    padding-left: calc(var(--spacing) * 6); padding-right: calc(var(--spacing) * 6);
  }

  .md\:px-8 {
    padding-left: calc(var(--spacing) * 8); padding-right: calc(var(--spacing) * 8);
  }

  .md\:\!py-2 {
    padding-top: calc(var(--spacing) * 2) !important; padding-bottom: calc(var(--spacing) * 2) !important;
  }

  .md\:py-1\.5 {
    padding-top: calc(var(--spacing) * 1.5); padding-bottom: calc(var(--spacing) * 1.5);
  }

  .md\:py-3 {
    padding-top: calc(var(--spacing) * 3); padding-bottom: calc(var(--spacing) * 3);
  }

  .md\:py-4 {
    padding-top: calc(var(--spacing) * 4); padding-bottom: calc(var(--spacing) * 4);
  }

  .md\:pt-5 {
    padding-top: calc(var(--spacing) * 5);
  }

  .md\:pb-0 {
    padding-bottom: 0;
  }

  .md\:pb-4 {
    padding-bottom: calc(var(--spacing) * 4);
  }

  .md\:pb-5 {
    padding-bottom: calc(var(--spacing) * 5);
  }

  .md\:pb-6 {
    padding-bottom: calc(var(--spacing) * 6);
  }

  .md\:text-left {
    text-align: left;
  }

  .md\:text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }

  .md\:text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }

  .md\:\!text-\[13px\] {
    font-size: 13px !important;
  }

  .md\:text-\[15px\] {
    font-size: 15px;
  }

  .md\:opacity-0 {
    opacity: 0;
  }

  @media (hover: hover) {
    .group:hover .md\:group-hover\:opacity-100 {
      opacity: 1;
    }
  }
}

@media (min-width: 1024px) {
  .lg\:w-64 {
    width: calc(var(--spacing) * 64);
  }

  .lg\:w-72 {
    width: calc(var(--spacing) * 72);
  }

  .lg\:w-\[60\%\] {
    width: 60%;
  }

  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lg\:flex-row {
    flex-direction: row;
  }

  .lg\:self-start {
    align-self: flex-start;
  }

  .lg\:px-14 {
    padding-left: calc(var(--spacing) * 14); padding-right: calc(var(--spacing) * 14);
  }

  .lg\:py-8 {
    padding-top: calc(var(--spacing) * 8); padding-bottom: calc(var(--spacing) * 8);
  }

  .lg\:pt-20 {
    padding-top: calc(var(--spacing) * 20);
  }
}

@media (min-width: 1280px) {
  .xl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .xl\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
}

@media (prefers-color-scheme: dark) {
  @media (hover: hover) {
    .dark\:hover\:bg-white\/5:hover {
      background-color: #ffffff0d;
    }

    @supports (color: color-mix(in lab,red,red)) {
      .dark\:hover\:bg-white\/5:hover {
        background-color: color-mix(in oklab,var(--color-white) 5%,transparent);
      }
    }
  }
}

.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar {
  display: none;
}

svg.lucide {
  vertical-align: .125em;
  display: inline-block;
}

@font-face {
  font-family: HONOR Sans CN;
  src: url("/fonts/HONORSansCN-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  ascent-override: 108%;
  descent-override: 24%;
  line-gap-override: 0%;
}

@font-face {
  font-family: HONOR Sans CN;
  src: url("/fonts/HONORSansCN-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  ascent-override: 108%;
  descent-override: 24%;
  line-gap-override: 0%;
}

@font-face {
  font-family: HONOR Sans CN;
  src: url("/fonts/HONORSansCN-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  ascent-override: 108%;
  descent-override: 24%;
  line-gap-override: 0%;
}

@keyframes wc-card-in {
  0% {
    opacity: 0;
    transform: translateY(-6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.wc-card {
  animation: .18s ease-out wc-card-in;
}

.wc-card .wc-cell {
  background: #ffffff21;
}

.wc-scroll {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.wc-scroll::-webkit-scrollbar {
  display: none;
}

* {
  -webkit-tap-highlight-color: transparent;
  outline: none;
}

.sr-only {
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

:focus {
  outline: none;
}

:focus-visible {
  outline: none;
}

:root, [data-theme="dark"] {
  --app-bg: #16181d;
  --app-bg-rgb: 22, 24, 29;
  --app-bg-secondary: #ffffff0d;
  --app-hover: #ffffff14;
  --app-sidebar: rgba(var(--app-bg-rgb), .85);
  --app-card: #ffffff0d;
  --app-card-hover: #ffffff17;
  --app-card-active: #ffffff0a;
  --app-input-bg: #00000040;
  --app-kbd-bg: #ffffff1a;
  --app-slider-track: #ffffff26;
  --app-border: #ffffff14;
  --app-text: #f5f5f7;
  --app-text-rgb: 245, 245, 247;
  --app-text-secondary: #a1a1a6;
  --app-text-tertiary: #6e6e73;
  --app-accent: #ff6b6b;
  --app-accent-hover: #ff8585;
  --app-accent-rgb: 255, 107, 107;
  --app-accent-text: #fff;
  --app-accent-cover: #ff6b6b;
  --app-accent-2: #ffb340;
  --app-accent-2-hover: #ffc266;
  --app-accent-2-rgb: 255, 179, 64;
  --app-accent-2-text: #1a1106;
  --app-red: #ff5f57;
  --app-yellow: #febc2e;
  --app-green: #28c840;
  --titlebar-height: 36px;
  --sidebar-width: 260px;
  --player-height: 72px;
  --now-playing-width: 380px;
  --border-radius-sm: 6px;
  --border-radius: 10px;
  --border-radius-lg: 16px;
  --player-bg: #1f2128;
  --wow-bg: #0d1117;
  --wow-bg-secondary: #0a0e14;
  --wow-card-start: #1a1a2e;
  --wow-card-mid: #16213e;
  --wow-card-end: #0f3460;
  --wow-text: #e2d5a8;
  --wow-text-secondary: #ffffff8c;
  --wow-text-tertiary: #ffffff40;
  --wow-border: #ffffff0d;
  --wow-border-light: #ffffff0a;
  --wow-gold: gold;
  --wow-gold-dim: #ffd70026;
  --wow-card-bg: #ffffff05;
  --wow-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  --wow-avatar-bg: #0a0a1a;
  --wow-progress-bg: #ffffff0f;
}

:root {
  --safe-area-top: 0px;
  --safe-area-bottom: 0px;
  --safe-area-left: 0px;
  --safe-area-right: 0px;
  --fullscreen-fallback-top: 0px;
}

:root:fullscreen {
  --safe-area-top: env(safe-area-inset-top, 0px);
  --safe-area-top: max(env(safe-area-inset-top, 0px), var(--fullscreen-fallback-top, 0px));
}

:root:-webkit-full-screen {
  --safe-area-top: env(safe-area-inset-top, 0px);
  --safe-area-top: max(env(safe-area-inset-top, 0px), var(--fullscreen-fallback-top, 0px));
}

@media (display-mode: fullscreen) {
  :root {
    --safe-area-top: env(safe-area-inset-top, 0px);
    --safe-area-top: max(env(safe-area-inset-top, 0px), var(--fullscreen-fallback-top, 0px));
  }
}

:root:fullscreen:after {
  content: "";
  height: var(--safe-area-top);
  pointer-events: none;
  background: #000;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
}

:root:-webkit-full-screen:after {
  content: "";
  height: var(--safe-area-top);
  pointer-events: none;
  background: #000;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
}

@media (display-mode: fullscreen) {
  :root:after {
    content: "";
    height: var(--safe-area-top);
    pointer-events: none;
    background: #000;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
  }
}

.modal-overlay, .dialog-overlay, .floating-modal-backdrop, .chat-vote-dialog-mask, .chat-doodle-mask, .chat-model-mask, .image-viewer-mask, .mall-modal-mask, .bw-shape-backdrop, .bw-boards-backdrop, .bw-share-mask, .vamp-claim-backdrop, .ming-pets-rename-overlay {
  border-top: var(--safe-area-top) solid #000;
}

.image-viewer-close, .image-viewer-counter {
  top: calc(20px + var(--safe-area-top));
}

[data-theme="light"] {
  --app-bg: #fff;
  --app-bg-rgb: 255, 255, 255;
  --app-bg-secondary: #7850280a;
  --app-hover: #7850280f;
  --app-sidebar: rgba(var(--app-bg-rgb), .85);
  --app-card: #7850280a;
  --app-card-hover: #78502812;
  --app-card-active: #7850280d;
  --app-input-bg: #7850280f;
  --app-kbd-bg: #78502814;
  --app-slider-track: #3c281424;
  --app-border: #3c28141a;
  --app-text: #2c2520;
  --app-text-rgb: 44, 37, 32;
  --app-text-secondary: #6b5d52;
  --app-text-tertiary: #a89888;
  --app-accent: #c8202d;
  --app-accent-hover: #a01823;
  --app-accent-rgb: 200, 32, 45;
  --app-accent-text: #fff;
  --app-accent-cover: #c8202d;
  --app-accent-2: #b8841a;
  --app-accent-2-hover: #9a6e14;
  --app-accent-2-rgb: 184, 132, 26;
  --app-accent-2-text: #fff;
  --player-bg: #fff;
  --wow-bg: #f5ecd7;
  --wow-bg-secondary: #ede0c3;
  --wow-card-start: #faf3e3;
  --wow-card-mid: #f0e3c8;
  --wow-card-end: #e2d0a5;
  --wow-text: #2c1810;
  --wow-text-secondary: #5c3826;
  --wow-text-tertiary: #8b6b4a;
  --wow-border: #2c181014;
  --wow-border-light: #2c18100d;
  --wow-gold: #5c4033;
  --wow-gold-dim: #5c403326;
  --wow-card-bg: #2c18100a;
  --wow-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  --wow-avatar-bg: #e8d5b0;
  --wow-progress-bg: #2c181014;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: HONOR Sans CN, Honor Sans CN, PingFang SC, Microsoft YaHei UI, Microsoft YaHei, Hiragino Sans GB, sans-serif;
}

.font-mono, .font-mono::placeholder {
  font-family: SF Mono, Fira Code, Fira Mono, Menlo, Consolas, Courier New, monospace !important;
}

html, body {
  background: var(--app-bg);
}

@supports (-webkit-touch-callout: none) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), textarea, select, [contenteditable="true"] {
    font-size: 16px !important;
  }
}

html, body, #root {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var(--app-bg);
  height: 100%;
  color: var(--app-text);
  user-select: none;
  overflow: hidden;
}

img, video, canvas {
  -webkit-user-drag: none;
  user-select: none;
  pointer-events: auto;
}

input, textarea, [contenteditable], [contenteditable="true"] {
  user-select: text;
}

html ::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

html ::-webkit-scrollbar-track {
  background: none;
}

html ::-webkit-scrollbar-thumb {
  background: #ffffff26;
  border-radius: 3px;
}

html ::-webkit-scrollbar-thumb:hover {
  background: #ffffff40;
}

html[data-theme="light"] ::-webkit-scrollbar-thumb {
  background: #00000026;
}

html[data-theme="light"] ::-webkit-scrollbar-thumb:hover {
  background: #00000040;
}

.hide-scrollbar {
  scrollbar-width: none;
}

.custom-scrollbar::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.custom-scrollbar::-webkit-scrollbar-track {
  background: none;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
  background: #ffffff26;
  border-radius: 3px;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
  background: #ffffff40;
}

[data-theme="light"] .custom-scrollbar::-webkit-scrollbar-thumb {
  background: #00000026;
}

[data-theme="light"] .custom-scrollbar::-webkit-scrollbar-thumb:hover {
  background: #00000040;
}

.custom-scrollbar {
  scrollbar-width: thin;
  scrollbar-color: #ffffff26 transparent;
  overscroll-behavior: contain;
}

.hide-scrollbar {
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior: contain;
}

.hide-scrollbar::-webkit-scrollbar {
  display: none;
}

[data-theme="light"] .custom-scrollbar {
  scrollbar-color: #00000026 transparent;
}

.glass {
  background: rgba(var(--app-bg-rgb),var(--bg-overlay-alpha, .7));
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  will-change: transform;
  transform: translateZ(0);
}

[data-theme="light"] .glass {
  background: rgba(var(--app-bg-rgb),var(--bg-overlay-alpha, .7));
}

.seg-group {
  background: var(--app-card);
  border-radius: .5rem;
  align-items: center;
  width: fit-content;
  padding: 2px;
  display: flex;
}

.seg-btn {
  white-space: nowrap;
  color: var(--app-text-tertiary);
  box-shadow: none;
  background: none;
  border-radius: .375rem;
  padding: .25rem .5625rem;
  font-size: .6875rem;
  font-weight: 500;
  transition: color .15s;
}

.seg-btn-active {
  background-color: rgba(var(--app-accent-rgb), .14);
}

@supports (color: color-mix(in lab, red, red)) {
  .seg-btn-active {
    background-color: color-mix(in srgb,var(--app-accent) 14%,#ffffff08);
  }
}

.seg-btn-active {
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  color: var(--app-accent);
  box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px rgba(var(--app-accent-rgb), .2),0 1px 2px #0000002e;
  background-image: linear-gradient(#ffffff0d, #fff0);
}

@supports (color: color-mix(in lab, red, red)) {
  .seg-btn-active {
    box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px color-mix(in srgb,var(--app-accent) 20%,transparent),0 1px 2px #0000002e;
  }
}

[data-theme="light"] .seg-btn-active {
  background: linear-gradient(#ffffff73, #ffffff38);
  box-shadow: inset 0 1px #ffffffb3, inset 0 0 0 1px #ffffff59, 0 1px 3px #0000000f;
}

.ai-music-win {
  container-type: inline-size;
}

@container (width <= 430px) {
  .ai-music-win .seg-btn {
    padding: .3125rem .375rem;
    font-size: .625rem;
  }
}

@container (width <= 360px) {
  .ai-music-win .seg-btn {
    padding: .25rem;
    font-size: .625rem;
  }
}

.seg-menu {
  background-color: rgba(var(--app-accent-rgb), .14);
  border-radius: .75rem;
}

@supports (color: color-mix(in lab, red, red)) {
  .seg-menu {
    background-color: color-mix(in srgb,var(--app-accent) 14%,#ffffff08);
  }
}

.seg-menu {
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px rgba(var(--app-accent-rgb), .2),0 8px 24px #00000047;
  background-image: linear-gradient(#ffffff0d, #fff0);
}

@supports (color: color-mix(in lab, red, red)) {
  .seg-menu {
    box-shadow: inset 0 1px #ffffff14,inset 0 0 0 1px color-mix(in srgb,var(--app-accent) 20%,transparent),0 8px 24px #00000047;
  }
}

[data-theme="light"] .seg-menu {
  background-color: #0000;
  background-image: linear-gradient(#ffffff73, #ffffff38);
  box-shadow: inset 0 1px #ffffffb3, inset 0 0 0 1px #ffffff59, 0 8px 24px #0000001a;
}

.seg-menu-item {
  transition: color .15s;
  position: relative;
}

.seg-menu-item:before {
  content: "";
  background-color: rgba(var(--app-accent-rgb), .1);
  border-radius: .4rem;
  position: absolute;
  top: 1px;
  bottom: 1px;
  left: 4px;
  right: 4px;
}

@supports (color: color-mix(in lab, red, red)) {
  .seg-menu-item:before {
    background-color: color-mix(in srgb,var(--app-accent) 10%,transparent);
  }
}

.seg-menu-item:before {
  opacity: 0;
  pointer-events: none;
  z-index: -1;
  transition: opacity .15s;
}

.seg-menu-item:hover:before {
  opacity: 1;
}

.music-app {
  height: var(--app-height, 100vh);
  background: var(--app-bg);
  padding-top: var(--safe-area-top);
  padding-left: var(--safe-area-left);
  padding-right: var(--safe-area-right);
  box-sizing: border-box;
  isolation: isolate;
  flex-direction: column;
  display: flex;
  position: relative;
  overflow: hidden;
}

.music-app:not(.has-custom-bg):before {
  content: "";
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 90% 70% at 15% 20%,rgba(var(--app-accent-rgb),.04),transparent 65%),radial-gradient(ellipse 80% 80% at 85% 75%,rgba(var(--app-accent-2-rgb),.028),transparent 70%),radial-gradient(ellipse 70% 60% at 50% 10%,rgba(var(--app-accent-rgb),.022),transparent 60%),radial-gradient(ellipse 75% 75% at 40% 90%,rgba(var(--app-accent-2-rgb),.022),transparent 65%);
  will-change: transform;
  background-size: 180% 180%, 200% 200%, 160% 160%, 220% 220%;
  animation: 28s ease-in-out infinite bg-aurora-drift;
  position: absolute;
  top: -12%;
  bottom: -12%;
  left: -12%;
  right: -12%;
}

[data-theme="dark"] .music-app:not(.has-custom-bg):before {
  background: radial-gradient(ellipse 90% 70% at 15% 20%,rgba(var(--app-accent-rgb),.06),transparent 65%),radial-gradient(ellipse 80% 80% at 85% 75%,rgba(var(--app-accent-2-rgb),.045),transparent 70%),radial-gradient(ellipse 70% 60% at 50% 10%,rgba(var(--app-accent-rgb),.032),transparent 60%),radial-gradient(ellipse 75% 75% at 40% 90%,rgba(var(--app-accent-2-rgb),.032),transparent 65%);
  background-size: 180% 180%, 200% 200%, 160% 160%, 220% 220%;
  animation: 28s ease-in-out infinite bg-aurora-drift;
}

@keyframes bg-aurora-drift {
  0% {
    transform: translateZ(0);
  }

  25% {
    transform: translate3d(2.5%, 2%, 0);
  }

  50% {
    transform: translate3d(-2%, 3%, 0);
  }

  75% {
    transform: translate3d(-3%, -2%, 0);
  }

  to {
    transform: translateZ(0);
  }
}

.music-app.has-custom-bg {
  background: none;
}

.music-app.has-custom-bg:before {
  content: "";
  background-image: var(--bg-url, none);
  z-index: -1;
  pointer-events: none;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.music-app.has-custom-bg:after {
  content: "";
  background: var(--app-bg);
  opacity: var(--bg-mask-opacity, .5);
  z-index: -1;
  pointer-events: none;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.bg-video-layer {
  object-fit: cover;
  z-index: -1;
  pointer-events: none;
  width: 100%;
  height: 100%;
  filter: blur(var(--bg-blur, 0px));
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.scratch-cell {
  border: 1.5px solid #0000;
  border-radius: 10px;
  transition: box-shadow .4s, border-color .4s;
}

.scratch-cell-win {
  border-color: #ffbe3cbf;
  box-shadow: 0 0 10px #ffbe3c47, inset 0 0 6px #ffbe3c1f;
}

.scratch-legend-fruit {
  background: var(--app-card-hover);
  border: 1.5px solid #ffbe3cbf;
  border-radius: 9px;
  justify-content: center;
  align-items: center;
  width: 26px;
  height: 26px;
  font-size: 17px;
  line-height: 1;
  display: inline-flex;
  box-shadow: 0 0 8px #ffbe3c33;
}

.scratch-coat {
  cursor: grab;
  width: 100%;
  height: 100%;
  transition: opacity .5s;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.scratch-coat:active {
  cursor: grabbing;
}

.scratch-coat-off {
  opacity: 0;
  pointer-events: none;
}

.scratch-result {
  letter-spacing: .08em;
  color: var(--app-text-tertiary);
  font-size: 20px;
  font-weight: 700;
  animation: .45s cubic-bezier(.22, 1.4, .36, 1) both scratch-result-in;
}

.scratch-result-win {
  color: #ffbe3c;
  text-shadow: 0 0 14px #ffbe3c59;
}

@keyframes scratch-result-in {
  0% {
    opacity: 0;
    transform: scale(.7);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.music-body {
  flex: 1;
  display: flex;
  overflow: hidden;
}

.app-input:focus {
  border-color: var(--app-accent) !important;
}

@keyframes ming-hero-flow {
  0%, to {
    background-position: 50%;
    background-size: 200% 200%;
  }

  50% {
    background-position: 50%;
    background-size: 260% 260%;
  }
}

@keyframes ming-hero-scale {
  0%, to {
    transform: scale(1);
  }

  50% {
    transform: scale(1.3);
  }
}

@keyframes ming-hero-loop {
  0% {
    background-position: 0%;
  }

  to {
    background-position: 100%;
  }
}

.ming-theme-capsule {
  position: relative;
  overflow: hidden;
}

.ming-theme-capsule:after {
  content: "";
  filter: blur(10px);
  will-change: transform;
  pointer-events: none;
  background: radial-gradient(circle at 28% 32%, #ffffff6b, #0000 42%), radial-gradient(circle at 68% 62%, #ffffff42, #0000 38%), radial-gradient(circle at 52% 12%, #ffffff4d, #0000 32%), radial-gradient(circle at 85% 25%, #fff3, #0000 30%);
  position: absolute;
  top: -160%;
  bottom: -160%;
  left: -160%;
  right: -160%;
  transform: rotate(0);
}

.ming-theme-capsule.ming-theme-flow:after {
  animation: 8s linear infinite ming-theme-flow;
}

@keyframes ming-theme-flow {
  0% {
    transform: rotate(0) scale(1);
  }

  50% {
    transform: rotate(180deg) scale(1.12);
  }

  to {
    transform: rotate(360deg) scale(1);
  }
}

@keyframes spin-slow {
  0% {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes spin-slow-reverse {
  0% {
    transform: rotate(0);
  }

  to {
    transform: rotate(-360deg);
  }
}

.animate-spin-slow {
  animation: 2.5s linear infinite spin-slow;
}

.animate-spin-slow-reverse {
  animation: 2.5s linear infinite spin-slow-reverse;
}

.btn-icon {
  width: 32px;
  height: 32px;
  color: var(--app-text-secondary);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  transition: background-color .15s, color .15s, transform .15s;
  display: flex;
}

@keyframes titlebar-info-in-left {
  0% {
    opacity: 0;
    transform: translate(12px);
  }

  to {
    opacity: 1;
    transform: translate(0);
  }
}

@keyframes titlebar-info-in-right {
  0% {
    opacity: 0;
    transform: translate(-12px);
  }

  to {
    opacity: 1;
    transform: translate(0);
  }
}

@media (hover: hover) {
  .btn-icon:hover {
    color: var(--app-text);
    background: #ffffff1a;
  }

  [data-theme="light"] .btn-icon:hover {
    background: #0000000f;
  }
}

.btn-icon:active {
  opacity: .8;
  background: #ffffff26;
}

[data-theme="light"] .btn-icon:active {
  opacity: .8;
  background: #0000001f;
}

.input-field {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  width: 100%;
  color: var(--app-text);
  border-radius: 8px;
  outline: none;
  padding: 8px 12px;
  font-size: 12px;
  transition: border-color .15s;
}

.input-field:focus {
  border-color: var(--app-accent);
}

.input-field::placeholder {
  color: var(--app-text-tertiary);
}

.titlebar-glass-btn {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  box-shadow: none;
  color: var(--app-accent);
  cursor: pointer;
  white-space: nowrap;
  border-radius: 999px;
  padding: 7px 14px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  transition: background .2s, transform .2s;
  position: relative;
}

.titlebar-glass-btn:hover {
  background: #ffffff17;
}

.titlebar-glass-btn:active {
  background: #ffffff08;
  transition: transform .1s, background .1s;
  transform: scale(.965);
}

[data-theme="light"] .titlebar-glass-btn {
  border-color: var(--app-border);
  background: var(--app-card);
}

[data-theme="light"] .titlebar-glass-btn:hover {
  background: #78502812;
}

[data-theme="light"] .titlebar-glass-btn:active {
  background: #78502805;
}

@media (hover: none) and (pointer: coarse) {
  .titlebar-glass-btn {
    -webkit-touch-callout: none;
    user-select: none;
  }
}

.titlebar-bg-gradient {
  pointer-events: none;
  border-radius: 999px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

.titlebar-bg-gradient:before {
  content: "";
  background-color: #000;
  background-image: linear-gradient(120deg,rgba(var(--app-accent-rgb),.03),rgba(var(--app-accent-rgb),.09),rgba(var(--app-accent-rgb),.03));
  filter: saturate(1.3) blur(12px);
  background-size: 300% 300%;
  transition: filter .2s;
  animation: 9s ease-in-out infinite titlebarGradientFlow;
  position: absolute;
  top: -16px;
  bottom: -16px;
  left: -16px;
  right: -16px;
}

[data-theme="light"] .titlebar-bg-gradient:before {
  background-color: #fff;
  background-image: linear-gradient(120deg,rgba(var(--app-accent-rgb),.03),rgba(var(--app-accent-rgb),.09),rgba(var(--app-accent-rgb),.03));
}

.titlebar-glass-btn:hover .titlebar-bg-gradient:before {
  filter: saturate(1.3) brightness(1.1) blur(12px);
}

@keyframes titlebarGradientFlow {
  0% {
    background-position: 0%;
  }

  50% {
    background-position: 100%;
  }

  to {
    background-position: 0%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .titlebar-bg-gradient:before {
    animation: none;
  }
}

.titlebar-btn-content {
  z-index: 1;
  position: relative;
}

.visual-toggle-track {
  background: #78787859;
  border-radius: 999px;
  width: 28px;
  height: 16px;
  transition: background .2s;
  display: inline-block;
  position: relative;
}

.visual-toggle-thumb {
  background: #fff;
  border-radius: 50%;
  width: 12px;
  height: 12px;
  transition: transform .2s;
  position: absolute;
  top: 2px;
  left: 2px;
  box-shadow: 0 1px 3px #00000059;
}

.visual-toggle-thumb.on {
  transform: translate(12px);
}

.btn-primary {
  background: var(--app-accent);
  color: var(--app-accent-text);
  cursor: pointer;
  border: none;
  border-radius: 8px;
  padding: 8px 20px;
  font-size: 13px;
  font-weight: 600;
  transition: background-color .15s, transform .15s;
}

.btn-primary:hover {
  background: var(--app-accent-hover);
  transform: translateY(-1px);
}

.btn-primary:active {
  transform: scale(.97);
}

.input-app {
  color: var(--app-text);
  background: #ffffff14;
  border: 1px solid #0000;
  border-radius: 8px;
  outline: none;
  padding: 8px 14px;
  font-size: 13px;
  transition: background-color .15s, border-color .15s;
}

[data-theme="light"] .input-app {
  background: #0000000f;
}

.input-app::placeholder {
  color: var(--app-text-tertiary);
}

.input-app:focus {
  border-color: var(--app-accent);
  background-color: #ffffff1f;
}

[data-theme="light"] .input-app:focus {
  background-color: #00000014;
}

.chat-input {
  white-space: pre-wrap;
  word-break: break-word;
  cursor: text;
  min-height: 34px;
  max-height: 96px;
  line-height: 1.4;
  overflow-y: auto;
}

.chat-input:empty:before {
  content: attr(data-placeholder);
  color: var(--app-text-tertiary);
  pointer-events: none;
}

.chat-mention {
  background: rgba(var(--app-accent-rgb, 0, 122, 255),.15);
  color: var(--app-accent);
  user-select: all;
  border-radius: 4px;
  margin: 0 1px;
  padding: 0 4px;
  font-weight: 500;
  display: inline-block;
}

.chat-mention-static {
  background: rgba(var(--app-accent-rgb, 0, 122, 255),.15);
  color: var(--app-accent);
  border-radius: 4px;
  margin: 0 1px;
  padding: 0 4px;
  font-weight: 500;
  display: inline-block;
}

.chat-mention-picker {
  background: var(--app-card-active);
  border-radius: 10px;
  flex-wrap: wrap;
  max-height: 180px;
  margin: -3px;
  padding: 8px;
  display: flex;
  overflow-y: auto;
}

.chat-mention-picker > * {
  margin: 3px;
}

.chat-mention-item {
  background: var(--app-card);
  color: var(--app-text);
  border-radius: 999px;
  align-items: center;
  max-width: 100%;
  padding: 4px 10px 4px 5px;
  font-size: 13px;
  display: flex;
}

.chat-mention-item > * + * {
  margin-left: 6px;
}

@media (hover: hover) {
  .chat-mention-item:hover {
    background: var(--app-card-active);
  }
}

.chat-mention-item-name {
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 120px;
  overflow: hidden;
}

.chat-mention-item-owner {
  color: #f59e0b;
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 500;
}

.chat-robot-menu {
  z-index: 30;
  background: var(--app-bg);
  border: 1px solid var(--app-border);
  border-radius: 10px;
  flex-direction: column;
  min-width: 112px;
  padding: 4px;
  display: flex;
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translate(-50%);
  box-shadow: 0 8px 24px #00000029;
}

.chat-robot-menu > * + * {
  margin-top: 2px;
}

.chat-robot-menu button {
  color: var(--app-text);
  white-space: nowrap;
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 7px;
  justify-content: flex-start;
  align-items: center;
  padding: 7px 10px;
  font-size: 12px;
  transition: background .15s;
  display: flex;
}

.chat-robot-menu button:hover {
  background: var(--app-card-hover);
}

.context-menu {
  z-index: 99999;
  background: rgba(var(--app-bg-rgb),.92);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  border: 1px solid #ffffff1a;
  border-radius: 10px;
  width: max-content;
  padding: 6px;
  animation: .15s ease-out scaleIn;
  position: fixed;
  box-shadow: 0 8px 32px #0006;
}

[data-theme="light"] .context-menu {
  background: rgba(var(--app-bg-rgb),.92);
  border: 1px solid #3c28141a;
  box-shadow: 0 8px 32px #3c28141f;
}

.context-menu-item {
  cursor: pointer;
  color: var(--app-text);
  border-radius: 6px;
  align-items: center;
  padding: 8px 12px;
  font-size: 13px;
  transition: background-color .1s, color .1s;
  display: flex;
}

.context-menu-item > * + * {
  margin-left: 10px;
}

.context-menu-item:hover {
  background: var(--app-accent);
  color: var(--app-accent-text);
}

.context-menu-item-danger {
  color: #ef4444;
}

.context-menu-item-danger:hover {
  color: #ef4444;
  background: #ef44441f;
}

.track {
  cursor: pointer;
  border-radius: 8px;
  align-items: center;
  padding: 8px 16px;
  transition: background-color .15s;
  display: flex;
  position: relative;
}

.track > * + * {
  margin-left: 12px;
}

.track:hover {
  background: var(--app-card-hover);
}

.track.active {
  background: rgba(var(--app-accent-rgb),.12);
}

[data-theme="light"] .track.active {
  background: rgba(var(--app-accent-rgb),.1);
}

.track.active .track-name {
  color: var(--app-accent);
}

.track[data-dragover="before"]:before, .track[data-dragover="after"]:after {
  content: "";
  background: var(--app-accent);
  height: 2px;
  box-shadow: 0 0 6px rgba(var(--app-accent-rgb),.6);
  pointer-events: none;
  z-index: 5;
  border-radius: 1px;
  position: absolute;
  left: 8px;
  right: 8px;
}

.track[data-dragover="before"]:before {
  top: -1px;
}

.track[data-dragover="after"]:after {
  bottom: -1px;
}

.track[draggable="true"] {
  user-select: none;
}

.track[draggable="true"]:active {
  cursor: grabbing;
}

[data-just-entered="true"] .track:hover, [data-just-entered="true"] .track.group:hover {
  background: none !important;
}

[data-just-entered="true"] .btn-icon, [data-just-entered="true"] .btn-icon:hover {
  color: var(--app-text-secondary) !important;
  background: none !important;
  transition: none !important;
}

[data-just-entered="true"] .track .btn-icon {
  opacity: 0 !important;
}

[data-just-entered="true"] .lobby-page-root button, [data-just-entered="true"] .lobby-room-card {
  transition: none !important;
}

.now-playing-card {
  cursor: pointer;
  background: var(--app-card);
  border: 1px solid var(--app-border);
  border-radius: 12px;
  max-width: 480px;
  margin: 8px auto;
  padding: 16px 14px;
  transition: transform .2s, box-shadow .2s, background-color .2s, border-color .2s;
  display: flex;
}

.now-playing-card > * + * {
  margin-left: 14px;
}

.now-playing-card:hover {
  border-color: rgba(var(--app-accent-rgb),.3);
}

.now-playing-card-cover {
  cursor: pointer;
  border-radius: 50%;
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 8px 24px #0003;
}

.now-playing-card-play {
  opacity: 0;
  background: #00000059;
  justify-content: center;
  align-items: center;
  transition: opacity .2s;
  display: flex;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.now-playing-card:hover .now-playing-card-play, .now-playing-card-cover:hover .now-playing-card-play {
  opacity: 1;
}

.now-playing-card-info {
  flex-direction: column;
  flex: 1;
  justify-content: center;
  min-width: 0;
  display: flex;
}

.now-playing-card-info > * + * {
  margin-top: 5px;
}

.now-playing-card-lyric-row {
  align-items: center;
  min-width: 0;
  display: flex;
}

.now-playing-card-lyric-row > * + * {
  margin-left: 8px;
}

.now-playing-card-lyric {
  color: var(--app-accent);
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  overflow: hidden;
}

.now-playing-card-name-row {
  align-items: center;
  min-width: 0;
  display: flex;
}

.now-playing-card-name-row > * + * {
  margin-left: 6px;
}

.now-playing-card-name {
  color: var(--app-text-secondary);
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  overflow: hidden;
}

.now-playing-card-artist {
  color: var(--app-text-tertiary);
}

.now-playing-card-actions {
  flex-shrink: 0;
  align-items: center;
  display: flex;
}

.now-playing-card-actions > * + * {
  margin-left: 1px;
}

@keyframes equalizer {
  0%, to {
    transform: scaleY(.25);
  }

  50% {
    transform: scaleY(1);
  }
}

.equalizer-bar {
  background: var(--app-accent);
  transform-origin: bottom;
  will-change: transform;
  border-radius: 1px;
  width: 2px;
  height: 12px;
  animation: .6s ease-in-out infinite equalizer;
}

.equalizer-bar:first-child {
  animation-delay: 0s;
}

.equalizer-bar:nth-child(2) {
  animation-delay: .15s;
}

.equalizer-bar:nth-child(3) {
  animation-delay: .3s;
}

.source-tag {
  background: rgba(var(--app-accent-2-rgb),.14);
  height: 16px;
  color: var(--app-accent-2);
  border-radius: 3px;
  padding: 0 5px;
  font-size: 10px;
  line-height: 16px;
}

.equalizer-bar:nth-child(4) {
  animation-delay: .45s;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.cover-spin {
  animation: 20s linear infinite spin;
}

.lyric-single {
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 100%;
  overflow: hidden;
}

input[type="number"] {
  -webkit-appearance: textfield;
  appearance: textfield;
}

input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}

input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}

html.site-frozen #root {
  visibility: hidden;
}

.range-slider {
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  width: 100%;
  height: 6px;
  accent-color: var(--app-accent);
  background: none;
  border-radius: 3px;
  outline: none;
}

.bare-range {
  -webkit-appearance: none;
  appearance: none;
  background: none;
}

.bare-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 1px;
  height: 1px;
}

.bare-range::-moz-range-thumb {
  border: none;
  width: 1px;
  height: 1px;
}

.range-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  background: var(--app-accent, #ff4b5c);
  cursor: pointer;
  opacity: 1;
  width: 16px;
  height: 16px;
  box-shadow: 0 2px 8px rgba(var(--app-accent-rgb, 255, 75, 92),.4),0 0 0 1px #00000014,inset 0 1px 2px #ffffff4d;
  border: 3px solid #ffffffe6;
  border-radius: 50%;
  margin-top: -5px;
  transition: transform .2s cubic-bezier(.4, 0, .2, 1), box-shadow .2s cubic-bezier(.4, 0, .2, 1);
}

.range-slider::-webkit-slider-thumb:hover {
  box-shadow: 0 4px 16px rgba(var(--app-accent-rgb, 255, 75, 92),.5),0 0 0 1px #00000014,inset 0 1px 2px #ffffff4d;
  transform: scale(1.3);
}

.range-slider::-webkit-slider-thumb:active {
  box-shadow: 0 6px 20px rgba(var(--app-accent-rgb, 255, 75, 92),.6),0 0 0 1px #0000001a,inset 0 1px 2px #ffffff4d;
  transform: scale(1.4);
}

.range-slider::-webkit-slider-runnable-track {
  background: linear-gradient(90deg,var(--app-accent, #ff4b5c) 0%,var(--app-accent, #ff4b5c) var(--slider-progress, 0%),#ffffff1a var(--slider-progress, 0%),#ffffff1a 100%);
  border-radius: 3px;
  height: 6px;
  box-shadow: inset 0 1px 2px #00000026;
}

.range-slider::-moz-range-track {
  background: linear-gradient(90deg,var(--app-accent, #ff4b5c) 0%,var(--app-accent, #ff4b5c) var(--slider-progress, 0%),#ffffff1a var(--slider-progress, 0%),#ffffff1a 100%);
  border: none;
  border-radius: 3px;
  height: 6px;
}

.range-slider::-moz-range-thumb {
  background: var(--app-accent, #ff4b5c);
  cursor: pointer;
  width: 16px;
  height: 16px;
  box-shadow: 0 2px 8px rgba(var(--app-accent-rgb, 255, 75, 92),.4),0 0 0 1px #00000014,inset 0 1px 2px #ffffff4d;
  border: 3px solid #ffffffe6;
  border-radius: 50%;
  transition: transform .2s cubic-bezier(.4, 0, .2, 1), box-shadow .2s cubic-bezier(.4, 0, .2, 1);
}

.range-slider::-moz-range-thumb:hover {
  box-shadow: 0 4px 16px rgba(var(--app-accent-rgb, 255, 75, 92),.5),0 0 0 1px #00000014,inset 0 1px 2px #ffffff4d;
  transform: scale(1.3);
}

.range-slider::-moz-range-thumb:active {
  box-shadow: 0 6px 20px rgba(var(--app-accent-rgb, 255, 75, 92),.6),0 0 0 1px #0000001a,inset 0 1px 2px #ffffff4d;
  transform: scale(1.4);
}

[data-theme="light"] .range-slider::-webkit-slider-runnable-track {
  background: linear-gradient(90deg,var(--app-accent, #ff4b5c) 0%,var(--app-accent, #ff4b5c) var(--slider-progress, 0%),#00000014 var(--slider-progress, 0%),#00000014 100%);
  box-shadow: inset 0 1px 2px #00000014;
}

[data-theme="light"] .range-slider::-moz-range-track {
  background: linear-gradient(90deg,var(--app-accent, #ff4b5c) 0%,var(--app-accent, #ff4b5c) var(--slider-progress, 0%),#00000014 var(--slider-progress, 0%),#00000014 100%);
}

.range-slider-no-thumb::-webkit-slider-thumb {
  opacity: 0;
}

.range-slider-no-thumb::-moz-range-thumb {
  opacity: 0;
}

.player-progress-dot {
  background: var(--app-accent, #ff4b5c);
  width: 16px;
  height: 16px;
  box-shadow: 0 2px 8px rgba(var(--app-accent-rgb, 255, 75, 92),.4),0 0 0 1px #00000014,inset 0 1px 2px #ffffff4d;
  pointer-events: none;
  border: 3px solid #ffffffe6;
  border-radius: 50%;
  transition: transform .2s cubic-bezier(.4, 0, .2, 1), box-shadow .2s cubic-bezier(.4, 0, .2, 1);
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}

.group:hover .player-progress-dot:not(.is-dragging) {
  box-shadow: 0 4px 16px rgba(var(--app-accent-rgb, 255, 75, 92),.5),0 0 0 1px #00000014,inset 0 1px 2px #ffffff4d;
  transform: translate(-50%, -50%) scale(1.3);
}

.player-progress-dot.is-dragging {
  box-shadow: 0 6px 20px rgba(var(--app-accent-rgb, 255, 75, 92),.6),0 0 0 1px #0000001a,inset 0 1px 2px #ffffff4d;
  transform: translate(-50%, -50%) scale(1.4);
}

.media-ctrl {
  background: #1d1f24;
  border-top: 1px solid #ffffff14;
}

.media-ctrl .range-slider::-webkit-slider-runnable-track {
  background: linear-gradient(90deg,var(--app-accent, #ff4b5c) 0%,var(--app-accent, #ff4b5c) var(--slider-progress, 0%),#ffffff47 var(--slider-progress, 0%),#ffffff47 100%);
}

.media-ctrl .range-slider::-moz-range-track {
  background: linear-gradient(90deg,var(--app-accent, #ff4b5c) 0%,var(--app-accent, #ff4b5c) var(--slider-progress, 0%),#ffffff47 var(--slider-progress, 0%),#ffffff47 100%);
}

[data-theme="light"] .media-ctrl {
  background: #f2f0ed;
  border-top: 1px solid #3c28141a;
}

[data-theme="light"] .media-ctrl .range-slider::-webkit-slider-runnable-track {
  background: linear-gradient(90deg,var(--app-accent, #ff4b5c) 0%,var(--app-accent, #ff4b5c) var(--slider-progress, 0%),#00000038 var(--slider-progress, 0%),#00000038 100%);
}

[data-theme="light"] .media-ctrl .range-slider::-moz-range-track {
  background: linear-gradient(90deg,var(--app-accent, #ff4b5c) 0%,var(--app-accent, #ff4b5c) var(--slider-progress, 0%),#00000038 var(--slider-progress, 0%),#00000038 100%);
}

.mobile-vol-slider {
  height: 28px !important;
}

.mobile-vol-slider::-webkit-slider-runnable-track {
  height: 8px;
  margin-top: 10px;
}

.mobile-vol-slider::-webkit-slider-thumb {
  width: 18px;
  height: 18px;
  margin-top: -5px;
}

.mobile-vol-slider::-moz-range-track {
  height: 8px;
}

.mobile-vol-slider::-moz-range-thumb {
  width: 18px;
  height: 18px;
}

[data-theme="light"] .mobile-vol-slider::-webkit-slider-runnable-track {
  margin-top: 10px;
}

.eq-band-slider::-webkit-slider-runnable-track {
  margin-top: 8px;
}

.fs-floating-player .range-slider::-webkit-slider-runnable-track {
  background: linear-gradient(90deg,var(--app-accent) 0%,var(--app-accent) var(--slider-progress, 0%),#80808040 var(--slider-progress, 0%),#80808040 100%);
}

.fs-floating-player .range-slider::-moz-range-track {
  background: linear-gradient(90deg,var(--app-accent) 0%,var(--app-accent) var(--slider-progress, 0%),#80808040 var(--slider-progress, 0%),#80808040 100%);
}

[data-theme="light"] .fs-floating-player .range-slider::-webkit-slider-runnable-track {
  background: linear-gradient(90deg,var(--app-accent) 0%,var(--app-accent) var(--slider-progress, 0%),#3c281426 var(--slider-progress, 0%),#3c281426 100%);
}

[data-theme="light"] .fs-floating-player .range-slider::-moz-range-track {
  background: linear-gradient(90deg,var(--app-accent) 0%,var(--app-accent) var(--slider-progress, 0%),#3c281426 var(--slider-progress, 0%),#3c281426 100%);
}

.tooltip {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #fff;
  white-space: nowrap;
  pointer-events: none;
  background: #000000d9;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 12px;
  animation: .15s fadeIn;
  position: absolute;
}

.modal-overlay {
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 310;
  background: #00000073;
  justify-content: center;
  align-items: center;
  animation: .2s fadeIn;
  display: flex;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.modal {
  background: rgba(var(--app-bg-rgb),.98);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  border: 1px solid #ffffff1a;
  border-radius: 16px;
  min-width: 400px;
  padding: 24px;
  animation: .2s scaleIn;
  box-shadow: 0 16px 48px #00000080;
}

[data-theme="light"] .modal {
  background: rgba(var(--app-bg-rgb),.98);
  border: 1px solid #3c28141a;
  box-shadow: 0 16px 48px #3c28141f;
}

.dialog-overlay {
  z-index: 310;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  background: #00000073;
  justify-content: center;
  align-items: center;
  display: flex;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

[data-theme="light"] .dialog-overlay {
  background: #00000073;
}

.dialog-panel {
  background: var(--app-bg);
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 25px 60px #0000004d;
}

[data-theme="light"] .dialog-panel {
  box-shadow: 0 25px 60px #0000001f;
}

.cancel-btn {
  color: var(--app-text-secondary);
  cursor: pointer;
  border: 1px solid #ffffff1a;
  border-radius: 8px;
  padding: 8px 20px;
  font-size: 13px;
  transition: background-color .15s, color .15s;
}

.cancel-btn:hover {
  color: var(--app-text);
  background: #ffffff0f;
}

[data-theme="light"] .cancel-btn {
  border: 1px solid #0000001a;
}

[data-theme="light"] .cancel-btn:hover {
  background: #0000000a;
}

.chat-msg {
  border-radius: 10px;
  margin-bottom: 12px;
  padding: 8px 12px;
  transition: background .15s;
}

.chat-msg:hover {
  background: var(--app-card-hover);
}

.chat-msg-admin {
  background: rgba(var(--app-accent-rgb),.06);
}

.chat-msg-admin:hover {
  background: rgba(var(--app-accent-rgb),.1);
}

@media (hover: none) and (pointer: coarse) {
  .chat-msg {
    -webkit-touch-callout: none;
    user-select: none;
  }
}

.chat-msg-cv {
  content-visibility: auto;
  contain-intrinsic-size: auto 72px;
}

.chat-time {
  color: var(--app-text-tertiary);
  white-space: nowrap;
  flex-shrink: 0;
  font-size: 11px;
}

.chat-reply-quote {
  background: rgba(var(--app-accent-rgb, 59, 130, 246),.08);
  background: rgba(var(--app-accent-rgb), .08);
  align-items: center;
  max-width: 100%;
  margin-bottom: 4px;
  padding: 6px 10px;
  display: flex;
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-reply-quote {
    background: color-mix(in srgb,var(--app-accent) 8%,var(--app-card));
  }
}

.chat-reply-quote {
  border-radius: 8px;
  font-size: 12px;
  overflow: hidden;
}

.chat-reply-quote > * + * {
  margin-left: 6px;
}

.chat-reply-label {
  color: var(--app-text-tertiary);
  flex-shrink: 0;
}

.chat-reply-quote .chat-reply-sender {
  color: var(--app-accent);
  text-overflow: ellipsis;
  white-space: nowrap;
  flex-shrink: 0;
  max-width: 100px;
  margin-right: 4px;
  font-weight: 500;
  overflow: hidden;
}

.chat-reply-quote .chat-reply-text {
  color: var(--app-text-secondary);
  -webkit-line-clamp: 2;
  word-break: break-word;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  min-width: 0;
  display: -webkit-box;
  overflow: hidden;
}

.chat-reply-quote .chat-reply-thumb, .chat-reply-preview .chat-reply-thumb {
  object-fit: cover;
  cursor: pointer;
  user-select: none;
  border-radius: 6px;
  flex-shrink: 0;
  width: auto;
  max-width: 64px;
  height: 36px;
  display: block;
}

.chat-reply-quote .chat-reply-thumb:hover, .chat-reply-preview .chat-reply-thumb:hover {
  opacity: .85;
}

.chat-reply-quote .chat-emoji-inline, .chat-reply-preview .chat-emoji-inline, .ming-conv-preview .chat-emoji-inline {
  vertical-align: -3px;
  width: 16px;
  height: 16px;
}

.chat-reply-preview {
  background: rgba(var(--app-accent-rgb, 59, 130, 246),.08);
  background: rgba(var(--app-accent-rgb), .08);
  align-items: center;
  margin-bottom: 6px;
  padding: 6px 10px;
  display: flex;
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-reply-preview {
    background: color-mix(in srgb,var(--app-accent) 8%,var(--app-card));
  }
}

.chat-reply-preview {
  border-radius: 8px;
  font-size: 12px;
}

.chat-reply-preview > * + * {
  margin-left: 6px;
}

@supports not (aspect-ratio: 5 / 4) {
  .playlist-cover-box {
    padding-top: 80%;
  }

  .playlist-cover-box > :first-child {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
  }
}

.chat-reply-preview .chat-reply-preview-sender {
  color: var(--app-accent);
  text-overflow: ellipsis;
  white-space: nowrap;
  flex-shrink: 0;
  max-width: 100px;
  margin-right: 4px;
  font-weight: 500;
  overflow: hidden;
}

.chat-reply-preview .chat-reply-preview-text {
  color: var(--app-text-secondary);
  -webkit-line-clamp: 2;
  word-break: break-word;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  min-width: 0;
  display: -webkit-box;
  overflow: hidden;
}

.chat-reply-cancel {
  color: var(--app-text-tertiary);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 4px;
  justify-content: center;
  align-items: center;
  padding: 2px;
  display: flex;
}

.chat-reply-cancel:hover {
  color: var(--app-text);
  background: var(--app-hover);
}

.chat-sender {
  color: var(--app-accent);
  white-space: nowrap;
  flex-shrink: 0;
  align-items: center;
  font-size: 11px;
  font-weight: 500;
  display: inline-flex;
}

.chat-sender > * + * {
  margin-left: 2px;
}

.chat-admin-badge, .chat-bot-badge {
  background: var(--app-accent);
  color: var(--app-accent-text);
  white-space: nowrap;
  border-radius: 8px;
  flex-shrink: 0;
  padding: 1px 6px;
  font-size: 10px;
  font-weight: 500;
}

.chat-vip-badge {
  white-space: nowrap;
  vertical-align: middle;
  isolation: isolate;
  -webkit-text-fill-color: transparent;
  color: #0000;
  border-radius: 8px;
  flex-shrink: 0;
  padding: 1px 6px;
  font-size: 10px;
  font-weight: 600;
  display: inline-block;
  position: relative;
}

.chat-vip-badge:before {
  content: "";
  border-radius: inherit;
  background: rgba(var(--app-accent-2-rgb),.16);
  z-index: -1;
  pointer-events: none;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.chat-vip-badge:after {
  content: attr(data-text);
  padding: inherit;
  font: inherit;
  white-space: nowrap;
  background: linear-gradient(90deg,var(--app-accent),var(--app-accent-2),var(--app-accent));
  -webkit-text-fill-color: transparent;
  color: #0000;
  pointer-events: none;
  will-change: background-position;
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  justify-content: center;
  align-items: center;
  font-weight: 600;
  animation: 3s linear infinite vipBadgeGradient;
  display: flex;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

@keyframes vipBadgeGradient {
  0% {
    background-position: 0%;
  }

  to {
    background-position: -200%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .chat-vip-badge:after {
    will-change: auto;
    background-position: 0%;
    animation: none;
  }
}

.chat-city-badge {
  background: rgba(var(--app-accent-2-rgb),.14);
  color: var(--app-accent-2);
  white-space: nowrap;
  border-radius: 8px;
  flex-shrink: 0;
  padding: 1px 5px;
  font-size: 10px;
  font-weight: 500;
}

.bd-ring {
  pointer-events: none;
  border-radius: 9999px;
  animation: 6s ease-in-out infinite bd-breathe;
  position: absolute;
  top: -3px;
  bottom: -3px;
  left: -3px;
  right: -3px;
  box-shadow: inset 0 0 0 1.5px #f5c26b73, 0 0 5px #f5c26b38;
}

@keyframes bd-breathe {
  0%, to {
    box-shadow: inset 0 0 0 1.5px #f5c26b61, 0 0 4px #f5c26b2e;
  }

  50% {
    box-shadow: inset 0 0 0 1.5px #f5c26ba6, 0 0 10px #f5c26b6b;
  }
}

.bd-crown {
  pointer-events: none;
  z-index: 2;
  filter: drop-shadow(0 1px 3px #0006);
  animation: 6s ease-in-out infinite bd-crown-glow;
  position: absolute;
  left: 50%;
  transform: translate(-50%);
}

@keyframes bd-crown-glow {
  0%, to {
    filter: drop-shadow(0 1px 3px #0006) drop-shadow(0 0 2px #f5c26b2e);
  }

  50% {
    filter: drop-shadow(0 1px 3px #0006) drop-shadow(0 0 7px #f5c26b80);
  }
}

.chat-content {
  color: var(--app-text);
  word-break: break-word;
  white-space: pre-wrap;
  min-width: 0;
  max-width: 100%;
  font-size: 13px;
  line-height: 1.5;
  overflow: hidden;
}

.chat-image {
  cursor: pointer;
  object-fit: contain;
  border-radius: 10px;
  width: auto;
  max-width: 240px;
  max-width: min(240px, 100%);
  height: auto;
  max-height: 240px;
  display: block;
}

.chat-content-image {
  align-items: center;
  min-height: 80px;
  display: flex;
}

.chat-video {
  object-fit: contain;
  background: #000;
  border-radius: 10px;
  width: 100%;
  max-width: 280px;
  max-height: 220px;
  display: block;
}

.chat-video-wrapper {
  max-width: 280px;
  line-height: 0;
  display: inline-block;
  position: relative;
}

.chat-video-wrapper .chat-video {
  cursor: pointer;
}

.chat-video-play-btn {
  color: #fff;
  cursor: pointer;
  z-index: 2;
  background: #0000008c;
  border: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 56px;
  height: 56px;
  line-height: 1;
  transition: background .15s, transform .15s, opacity .25s;
  display: flex;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.chat-video-play-btn.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.chat-video-play-btn.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.chat-video-play-btn:hover {
  background: #000000bf;
  transform: translate(-50%, -50%) scale(1.08);
}

.chat-video-play-btn:active {
  transform: translate(-50%, -50%) scale(.95);
}

.chat-vote-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  border-radius: 12px;
  min-width: 240px;
  max-width: 320px;
  padding: 12px 14px;
}

.chat-vote-loading {
  color: var(--app-text-tertiary);
  text-align: center;
  padding: 16px;
  font-size: 13px;
}

.chat-vote-header {
  align-items: center;
  margin-bottom: 8px;
  display: flex;
}

.chat-vote-header > * + * {
  margin-left: 6px;
}

.chat-vote-question {
  color: var(--app-text);
  word-break: break-word;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

.chat-vote-meta {
  color: var(--app-text-secondary);
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  font-size: 11px;
  display: flex;
}

.chat-vote-type-tag {
  background: rgba(var(--app-accent-rgb),.15);
  color: var(--app-accent);
  border-radius: 4px;
  padding: 1px 6px;
  font-weight: 500;
}

.chat-vote-type-tag.multi {
  color: #28c840;
  background: #28c84026;
}

[data-theme="light"] .chat-vote-type-tag.multi {
  color: #1a9e30;
}

.chat-vote-ended-tag {
  color: #ff5f57;
  background: #ff5f5726;
  border-radius: 4px;
  padding: 1px 6px;
  font-weight: 500;
}

.chat-vote-deadline, .chat-vote-participants {
  color: var(--app-text-tertiary);
}

.chat-vote-options {
  flex-direction: column;
  display: flex;
}

.chat-vote-options > * + * {
  margin-top: 6px;
}

.chat-vote-option {
  border: 1px solid var(--app-border);
  cursor: pointer;
  background: #ffffff0d;
  border-radius: 8px;
  padding: 8px 10px;
  transition: border-color .15s, background .15s;
  position: relative;
  overflow: hidden;
}

[data-theme="light"] .chat-vote-option {
  background: #00000008;
}

.chat-vote-option:hover:not(.disabled) {
  border-color: rgba(var(--app-accent-rgb),.4);
}

.chat-vote-option.selected {
  border-color: var(--app-accent);
  background: rgba(var(--app-accent-rgb),.08);
}

.chat-vote-option.disabled {
  cursor: default;
}

.chat-vote-option-bar {
  background: rgba(var(--app-accent-rgb),.12);
  transform-origin: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  transition: transform .3s;
  position: absolute;
  top: 0;
  left: 0;
}

.chat-vote-option.selected .chat-vote-option-bar {
  background: rgba(var(--app-accent-rgb),.2);
}

.chat-vote-option-content {
  z-index: 1;
  align-items: center;
  display: flex;
  position: relative;
}

.chat-vote-option-content > * + * {
  margin-left: 6px;
}

.chat-vote-option-marker {
  color: var(--app-accent);
  flex-shrink: 0;
  font-size: 14px;
  line-height: 1;
}

.chat-vote-option-text {
  color: var(--app-text);
  word-break: break-word;
  flex: 1;
  min-width: 0;
  font-size: 13px;
}

.chat-vote-option-count {
  color: var(--app-text-secondary);
  white-space: nowrap;
  flex-shrink: 0;
  font-size: 11px;
}

.chat-vote-end-btn {
  border: 1px solid var(--app-border);
  width: 100%;
  color: var(--app-text-secondary);
  cursor: pointer;
  background: none;
  border-radius: 8px;
  margin-top: 10px;
  padding: 6px;
  font-size: 12px;
  transition: background .15s, color .15s;
}

.chat-vote-end-btn:hover {
  color: #ff5f57;
  background: #ff5f571a;
  border-color: #ff5f574d;
}

.chat-vote-dialog-mask {
  z-index: 10000;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  background: #00000073;
  justify-content: center;
  align-items: center;
  padding: 20px;
  display: flex;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.chat-vote-dialog {
  width: 100%;
  max-width: 400px;
  max-height: calc(var(--dvh, 100vh) * .8);
  background: var(--app-bg);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  flex-direction: column;
  display: flex;
  overflow-y: auto;
  box-shadow: 0 20px 60px #0006;
}

.chat-vote-dialog-header {
  border-bottom: 1px solid var(--app-border);
  justify-content: space-between;
  align-items: center;
  padding: 16px 18px;
  display: flex;
}

.chat-vote-dialog-title {
  color: var(--app-text);
  font-size: 15px;
  font-weight: 600;
}

.chat-vote-dialog-body {
  flex-direction: column;
  padding: 16px 18px;
  display: flex;
}

.chat-vote-dialog-body > * + * {
  margin-top: 12px;
}

.chat-vote-input {
  width: 100%;
}

.chat-vote-options-list {
  flex-direction: column;
  display: flex;
}

.chat-vote-options-list > * + * {
  margin-top: 8px;
}

.chat-vote-option-row {
  align-items: center;
  display: flex;
}

.chat-vote-option-row > * + * {
  margin-left: 6px;
}

.chat-vote-add-option {
  border: 1px dashed var(--app-border);
  color: var(--app-text-secondary);
  cursor: pointer;
  background: none;
  border-radius: 8px;
  align-self: flex-start;
  align-items: center;
  padding: 6px 12px;
  font-size: 12px;
  transition: border-color .15s, color .15s;
  display: flex;
}

.chat-vote-add-option > * + * {
  margin-left: 4px;
}

.chat-vote-add-option:hover {
  border-color: var(--app-accent);
  color: var(--app-accent);
}

.chat-vote-settings {
  flex-direction: column;
  padding-top: 4px;
  display: flex;
}

.chat-vote-settings > * + * {
  margin-top: 8px;
}

.chat-vote-setting-row {
  color: var(--app-text);
  cursor: pointer;
  align-items: center;
  font-size: 13px;
  display: flex;
}

.chat-vote-setting-row > * + * {
  margin-left: 6px;
}

.chat-vote-setting-row .visual-toggle-track {
  flex-shrink: 0;
}

.chat-vote-deadline-input-wrap {
  align-items: center;
  display: flex;
}

.chat-vote-deadline-input-wrap > * + * {
  margin-left: 6px;
}

.chat-vote-deadline-input {
  width: 100px;
  padding: 4px 8px;
  font-size: 13px;
}

.chat-vote-deadline-unit {
  color: var(--app-text-secondary);
  font-size: 13px;
}

.chat-vote-dialog-footer {
  border-top: 1px solid var(--app-border);
  justify-content: flex-end;
  padding: 12px 18px 16px;
  display: flex;
}

.chat-rp-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  border-radius: 12px;
  min-width: 240px;
  max-width: 320px;
  padding: 0;
  transition: transform .4s cubic-bezier(.34, 1.56, .64, 1);
  position: relative;
}

.chat-rp-loading {
  color: var(--app-text-tertiary);
  text-align: center;
  padding: 16px;
  font-size: 13px;
}

.chat-rp-main {
  cursor: pointer;
  border-radius: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "title time"
                       "amount status";
  align-items: center;
  gap: 4px 10px;
  padding: 12px 14px;
  transition: background .15s;
  display: grid;
}

.chat-rp-main:hover {
  background: rgba(var(--app-accent-rgb),.05);
}

.chat-rp-title-row {
  grid-area: title;
  align-items: center;
  min-width: 0;
  display: flex;
}

.chat-rp-title-row > * + * {
  margin-left: 6px;
}

.chat-rp-wish {
  color: var(--app-text);
  white-space: nowrap;
  text-overflow: ellipsis;
  min-width: 0;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  overflow: hidden;
}

.chat-rp-type-tag {
  color: var(--app-text-tertiary);
  border: 1px solid var(--app-border);
  white-space: nowrap;
  border-radius: 999px;
  flex-shrink: 0;
  align-items: center;
  padding: 1px 6px;
  font-size: 10px;
  line-height: 1.4;
  display: inline-flex;
}

.chat-rp-type-tag > * + * {
  margin-left: 3px;
}

.chat-rp-amount {
  color: #ff5757;
  white-space: nowrap;
  grid-area: amount;
  align-items: center;
  min-width: 0;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  display: flex;
}

.chat-rp-amount > * + * {
  margin-left: 8px;
}

.chat-rp-amount > span:last-child {
  flex-shrink: 0;
  align-items: center;
  display: inline-flex;
}

.chat-rp-amount > span:last-child > * + * {
  margin-left: 3px;
}

.chat-rp-time-block {
  grid-area: time;
  justify-self: end;
  align-items: center;
  display: flex;
}

.chat-rp-claims-row {
  align-items: center;
  display: flex;
}

.chat-rp-claims-row > * + * {
  margin-left: 6px;
}

.chat-rp-avatars {
  align-items: center;
  display: flex;
}

.chat-rp-avatars .chat-rp-avatar-stack {
  box-sizing: border-box;
  border: 1.5px solid var(--app-card);
  width: 18px;
  height: 18px;
  margin-left: -6px;
}

.chat-rp-avatars .chat-rp-avatar-stack:first-child {
  margin-left: 0;
}

.chat-rp-status {
  grid-area: status;
  justify-self: end;
  align-items: center;
  display: flex;
}

.chat-rp-status-text {
  color: var(--app-text-secondary);
  white-space: nowrap;
  font-size: 12px;
}

.chat-rp-status-text.claim {
  color: #ff5757;
  font-weight: 600;
}

.chat-rp-recipient-name {
  color: var(--app-text-secondary);
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 88px;
  font-size: 12px;
  overflow: hidden;
}

.chat-rp-claimed-amount {
  color: #ff5757;
  align-items: center;
  font-size: 15px;
  font-weight: 700;
  display: inline-flex;
}

.chat-rp-claimed-amount > * + * {
  margin-left: 3px;
}

.chat-rp-claim-error {
  color: #ff5757;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 120px;
  font-size: 11px;
  font-weight: 500;
  overflow: hidden;
}

.chat-rp-card.finished .chat-rp-wish {
  color: var(--app-text-secondary);
}

.chat-rp-card.finished .chat-rp-type-tag {
  opacity: .6;
}

.chat-rp-card.finished .chat-rp-amount {
  color: var(--app-text-secondary);
}

.chat-rp-popover {
  background: var(--app-bg);
  border: 1px solid var(--app-border);
  z-index: 10001;
  border-radius: 12px;
  min-width: 220px;
  max-width: 280px;
  padding: 10px 12px;
  animation: .18s ease-out chat-rp-popover-in;
  position: fixed;
  box-shadow: 0 8px 24px #00000040;
}

@keyframes chat-rp-popover-in {
  0% {
    opacity: 0;
    transform: translateY(4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.chat-rp-popover-arrow {
  background: var(--app-bg);
  width: 10px;
  height: 10px;
  margin-left: -5px;
  position: absolute;
  left: 50%;
  transform: rotate(45deg);
}

.chat-rp-popover-arrow.above {
  border-right: 1px solid var(--app-border);
  border-bottom: 1px solid var(--app-border);
  bottom: -5px;
}

.chat-rp-popover-arrow.below {
  border-left: 1px solid var(--app-border);
  border-top: 1px solid var(--app-border);
  top: -5px;
}

.chat-rp-popover-title {
  color: var(--app-text-tertiary);
  align-items: center;
  margin-bottom: 6px;
  font-size: 11px;
  display: flex;
}

.chat-rp-popover-title > * + * {
  margin-left: 3px;
}

.chat-rp-popover-empty {
  color: var(--app-text-tertiary);
  text-align: center;
  padding: 8px 0;
  font-size: 12px;
}

.chat-rp-popover-list {
  scrollbar-width: none;
  -ms-overflow-style: none;
  flex-direction: column;
  max-height: 180px;
  display: flex;
  overflow-y: auto;
}

.chat-rp-popover-list > * + * {
  margin-top: 2px;
}

.chat-rp-popover-list::-webkit-scrollbar {
  display: none;
}

.chat-rp-claim-row {
  align-items: center;
  padding: 3px 0;
  font-size: 12px;
  display: flex;
}

.chat-rp-claim-row > * + * {
  margin-left: 8px;
}

.chat-rp-claim-avatar {
  object-fit: cover;
  border-radius: 50%;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

.chat-rp-avatar-default {
  background: linear-gradient(135deg,rgba(var(--app-accent-rgb),.15),rgba(var(--app-accent-rgb),.05));
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.chat-rp-claim-name {
  color: var(--app-text);
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.chat-rp-claim-amount {
  color: #ff5757;
  flex-shrink: 0;
  align-items: center;
  font-weight: 600;
  display: inline-flex;
}

.chat-rp-claim-amount > * + * {
  margin-left: 3px;
}

.chat-rp-dialog {
  width: 100%;
  max-width: 400px;
  max-height: calc(var(--dvh, 100vh) * .85);
  background: var(--app-bg);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  flex-direction: column;
  display: flex;
  overflow-y: auto;
  box-shadow: 0 20px 60px #0006;
}

.chat-rp-balance {
  color: var(--app-text-secondary);
  background: #ffae1f14;
  border-radius: 8px;
  align-items: center;
  padding: 6px 10px;
  font-size: 12px;
  display: flex;
}

.chat-rp-balance > * + * {
  margin-left: 6px;
}

.chat-rp-balance svg {
  color: #ffae1f;
}

.chat-rp-max-hint {
  color: var(--app-text-tertiary);
  margin-left: auto;
  font-size: 11px;
}

.chat-rp-type-tabs {
  border: 1px solid var(--app-border);
  background: #ffffff0d;
  border-radius: 10px;
  padding: 3px;
  display: flex;
}

.chat-rp-type-tabs > * + * {
  margin-left: 6px;
}

[data-theme="light"] .chat-rp-type-tabs {
  background: #00000008;
}

.chat-rp-type-tab {
  color: var(--app-text-secondary);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 7px;
  flex: 1;
  padding: 7px 0;
  font-size: 12px;
  font-weight: 500;
  transition: background .15s, color .15s;
}

.chat-rp-type-tab.active {
  background: var(--app-accent);
  color: #fff;
}

[data-theme="light"] .chat-rp-type-tab.active {
  color: #fff;
}

.chat-rp-amount-row {
  align-items: center;
  display: flex;
}

.chat-rp-amount-row > * + * {
  margin-left: 10px;
}

.chat-rp-label {
  color: var(--app-text-secondary);
  white-space: nowrap;
  flex-shrink: 0;
  min-width: 90px;
  font-size: 13px;
}

.chat-rp-num-input {
  flex: 1;
}

.chat-rp-search-wrap {
  position: relative;
}

.chat-rp-search-status {
  color: var(--app-text-tertiary);
  justify-content: center;
  align-items: center;
  margin-top: 4px;
  font-size: 11px;
  display: flex;
}

.chat-rp-search-status > * + * {
  margin-left: 4px;
}

.chat-rp-search-results {
  overscroll-behavior: contain;
  flex-direction: column;
  max-height: 107px;
  margin-top: 6px;
  display: flex;
  overflow-y: auto;
}

.chat-rp-search-results > * + * {
  margin-top: 4px;
}

.chat-rp-empty {
  color: var(--app-text-tertiary);
  text-align: center;
  padding: 16px;
  font-size: 12px;
}

.chat-rp-user-item {
  border: 1px solid var(--app-border);
  cursor: pointer;
  background: #ffffff08;
  border-radius: 8px;
  align-items: center;
  padding: 6px 10px;
  transition: border-color .15s, background .15s;
  display: flex;
}

.chat-rp-user-item > * + * {
  margin-left: 8px;
}

[data-theme="light"] .chat-rp-user-item {
  background: #00000005;
}

.chat-rp-user-item:hover {
  border-color: rgba(var(--app-accent-rgb),.4);
}

.chat-rp-user-item.selected {
  border-color: var(--app-accent);
  background: rgba(var(--app-accent-rgb),.08);
}

.chat-rp-user-avatar {
  object-fit: cover;
  border-radius: 50%;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
}

.chat-rp-user-name {
  color: var(--app-text);
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
  font-size: 13px;
  overflow: hidden;
}

.chat-rp-user-check {
  color: var(--app-accent);
  flex-shrink: 0;
}

.chat-rp-total-preview {
  color: var(--app-text);
  background: rgba(var(--app-accent-rgb),.08);
  border-radius: 8px;
  align-items: center;
  padding: 8px 12px;
  font-size: 13px;
  display: flex;
}

.chat-rp-total-preview > * + * {
  margin-left: 6px;
}

.chat-rp-total-preview svg {
  color: var(--app-accent);
}

.chat-rp-insufficient {
  color: #ff5f57;
  margin-left: auto;
  font-size: 12px;
  font-weight: 500;
}

.chat-rp-error {
  color: #ff5f57;
  text-align: center;
  padding: 4px;
  font-size: 12px;
}

.chat-rp-locked {
  color: var(--app-text-tertiary);
  flex-direction: column;
  align-items: center;
  padding: 24px 16px;
  display: flex;
}

.chat-rp-locked > * + * {
  margin-top: 8px;
}

.chat-rp-locked svg {
  color: var(--app-text-tertiary);
  opacity: .5;
}

.chat-rp-locked-title {
  color: var(--app-text-secondary);
  font-size: 14px;
  font-weight: 600;
}

.chat-rp-locked-desc {
  color: var(--app-text-tertiary);
  text-align: center;
  font-size: 12px;
  line-height: 1.5;
}

@media (max-width: 480px) {
  .chat-rp-card {
    min-width: 0;
    max-width: 100%;
  }

  .chat-rp-dialog {
    max-width: 100%;
    max-height: calc(var(--dvh, 100vh) * .9);
  }

  .chat-vote-card {
    min-width: 0;
    max-width: 100%;
  }

  .chat-vote-dialog-mask {
    padding: 12px;
  }

  .chat-vote-dialog {
    max-width: 100%;
    max-height: calc(var(--dvh, 100vh) * .9);
  }

  .chat-vote-dialog-header, .chat-vote-dialog-body, .chat-vote-dialog-footer {
    padding-left: 14px;
    padding-right: 14px;
  }

  .chat-vote-dialog-body {
    padding-top: 12px;
    padding-bottom: 12px;
  }

  .chat-doodle-mask {
    padding: 12px;
  }

  .chat-doodle-panel {
    max-width: 100%;
  }

  .chat-doodle-canvas {
    height: 260px;
  }
}

.image-viewer-mask {
  z-index: 9999;
  background: #000000e0;
  justify-content: center;
  align-items: center;
  display: flex;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

.image-viewer-img {
  max-width: calc(var(--dvw, 100vw) * .85);
  max-height: calc(var(--dvh, 100vh) * .85);
  object-fit: contain;
  user-select: none;
  pointer-events: auto;
  border-radius: 8px;
  transition: transform .2s;
}

.image-viewer-close {
  z-index: 10001;
  color: #fff;
  cursor: pointer;
  background: #ffffff1f;
  border: 1px solid #fff3;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  transition: background .15s;
  display: flex;
  position: fixed;
  top: 20px;
  right: 20px;
}

.image-viewer-close:hover {
  background: #ffffff40;
}

.image-viewer-toolbar {
  z-index: 10001;
  backdrop-filter: blur(8px);
  background: #0000008c;
  border: 1px solid #ffffff26;
  border-radius: 24px;
  align-items: center;
  padding: 8px 12px;
  display: flex;
  position: fixed;
  bottom: 32px;
  left: 50%;
  transform: translate(-50%);
}

.image-viewer-toolbar > * + * {
  margin-left: 8px;
}

.image-viewer-btn {
  color: #fff;
  cursor: pointer;
  background: #ffffff1a;
  border: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  transition: background .15s;
  display: flex;
}

.image-viewer-btn:hover {
  background: #ffffff47;
}

.image-viewer-nav {
  z-index: 10001;
  color: #fff;
  cursor: pointer;
  background: #ffffff1f;
  border: 1px solid #fff3;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  transition: background .15s;
  display: flex;
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
}

.image-viewer-nav:hover {
  background: #ffffff40;
}

.image-viewer-nav-left {
  left: 16px;
}

.image-viewer-nav-right {
  right: 16px;
}

.image-viewer-counter {
  z-index: 10001;
  backdrop-filter: blur(8px);
  color: #fff;
  background: #0000008c;
  border: 1px solid #ffffff26;
  border-radius: 14px;
  padding: 5px 14px;
  font-size: 12px;
  line-height: 1;
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translate(-50%);
}

.chat-tool-active {
  background: rgba(var(--app-accent-rgb, 0, 122, 255),.12);
  color: var(--app-accent);
}

.chat-send-btn {
  background: var(--app-accent);
  color: #fff;
  cursor: pointer;
  white-space: nowrap;
  border: none;
  border-radius: 8px;
  height: 32px;
  padding: 0 14px;
  font-size: 13px;
  font-weight: 500;
  transition: opacity .15s;
}

.chat-send-btn:hover {
  opacity: .85;
}

.chat-send-btn:active {
  opacity: .7;
}

.chat-send-btn:disabled {
  opacity: .4;
  cursor: not-allowed;
}

.chat-doodle-mask {
  z-index: 10000;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  background: #00000073;
  justify-content: center;
  align-items: center;
  padding: 20px;
  display: flex;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.chat-doodle-panel {
  background: var(--app-bg);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  flex-direction: column;
  width: 100%;
  max-width: 500px;
  animation: .15s ease-out scaleIn;
  display: flex;
  overflow: hidden;
  box-shadow: 0 20px 60px #0006;
}

.chat-doodle-header {
  border-bottom: 1px solid var(--app-border);
  justify-content: space-between;
  align-items: center;
  padding: 12px 14px;
  display: flex;
}

.chat-doodle-toolbar {
  border-bottom: 1px solid var(--app-border);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin: -4px;
  padding: 10px 14px;
  display: flex;
}

.chat-doodle-toolbar > * {
  margin: 4px;
}

.chat-doodle-color {
  cursor: pointer;
  border: none;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  padding: 0;
  transition: transform .12s, box-shadow .15s;
}

.chat-doodle-color-active {
  box-shadow: 0 0 6px 1px var(--sw, var(--app-accent));
}

.chat-doodle-color:hover {
  transform: scale(1.12);
}

.chat-doodle-color-trigger {
  border: 1px solid var(--app-border);
  cursor: pointer;
  border-radius: 50%;
  width: 26px;
  height: 26px;
  padding: 0;
  transition: transform .12s;
}

.chat-doodle-color-trigger:hover {
  transform: scale(1.08);
}

.chat-doodle-brush-trigger {
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  transition: background-color .15s;
  display: flex;
}

.chat-doodle-brush-trigger:hover {
  background: #ffffff14;
}

[data-theme="light"] .chat-doodle-brush-trigger:hover {
  background: #0000000f;
}

.chat-doodle-picker {
  border-bottom: 1px solid var(--app-border);
  flex-wrap: wrap;
  align-items: center;
  margin: -3px;
  padding: 8px 14px;
  display: flex;
}

.chat-doodle-picker > * {
  margin: 3px;
}

.chat-doodle-picker.chat-doodle-color-picker {
  flex-wrap: nowrap;
  gap: 8px;
}

.chat-doodle-picker.chat-doodle-color-picker .chat-doodle-color {
  aspect-ratio: 1;
  --asr: 1;
  flex: 1 1 0;
  min-width: 0;
  max-width: 22px;
  height: auto;
}

@media (max-width: 767px) {
  .chat-doodle-picker.chat-doodle-color-picker {
    gap: 5px;
    padding: 8px 10px;
  }
}

.chat-doodle-brush {
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  transition: background-color .15s;
  display: flex;
}

.chat-doodle-brush:hover {
  background: #ffffff14;
}

[data-theme="light"] .chat-doodle-brush:hover {
  background: #0000000f;
}

.chat-doodle-brush-active {
  background: rgba(var(--app-accent-rgb),.12);
}

.chat-doodle-canvas-wrap {
  width: 100%;
  position: relative;
}

.chat-doodle-canvas {
  touch-action: none;
  cursor: crosshair;
  background: #fff;
  width: 100%;
  height: 320px;
  display: block;
}

.chat-doodle-eraser-cursor {
  pointer-events: none;
  will-change: transform;
  background: #ffffff40;
  border: 1.5px solid #0000008c;
  border-radius: 50%;
  position: absolute;
  top: 0;
  left: 0;
  box-shadow: 0 0 0 1px #ffffffb3;
}

.chat-doodle-footer {
  border-top: 1px solid var(--app-border);
  justify-content: flex-end;
  padding: 10px 14px 12px;
  display: flex;
}

.chat-doodle-footer > * + * {
  margin-left: 8px;
}

.chat-send-btn-ghost {
  border: 1px solid var(--app-border);
  height: 32px;
  color: var(--app-text-secondary);
  cursor: pointer;
  background: none;
  border-radius: 8px;
  padding: 0 14px;
  font-size: 13px;
  font-weight: 500;
  transition: opacity .15s, border-color .15s;
}

.chat-send-btn-ghost:hover {
  border-color: var(--app-accent);
}

.chat-send-btn-ghost:disabled {
  opacity: .4;
  cursor: not-allowed;
}

.chat-model-mask {
  z-index: 10000;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  background: #00000073;
  justify-content: center;
  align-items: center;
  padding: 24px;
  display: flex;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.chat-model-panel {
  background: var(--app-bg);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  flex-direction: column;
  width: 100%;
  max-width: 640px;
  max-height: 100%;
  animation: .15s ease-out scaleIn;
  display: flex;
  overflow: hidden;
  box-shadow: 0 20px 60px #0006;
}

.chat-model-body {
  flex-direction: column;
  padding: 14px;
  display: flex;
  overflow-y: auto;
}

.chat-model-body > * + * {
  margin-top: 14px;
}

.chat-model-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  cursor: pointer;
  text-align: left;
  border-radius: 12px;
  align-items: center;
  padding: 10px 14px 10px 10px;
  transition: border-color .15s, background .15s;
  display: inline-flex;
}

.chat-model-card > * + * {
  margin-left: 10px;
}

.chat-model-card:hover {
  border-color: var(--app-accent);
  background: rgba(var(--app-accent-rgb), .08);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-model-card:hover {
    background: color-mix(in srgb,var(--app-accent) 8%,var(--app-card));
  }
}

.chat-model-card-icon {
  width: 38px;
  height: 38px;
  color: var(--app-accent);
  background: rgba(var(--app-accent-rgb), .12);
  border-radius: 10px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-model-card-icon {
    background: color-mix(in srgb,var(--app-accent) 12%,transparent);
  }
}

.chat-model-viewer-panel {
  width: 100%;
  max-width: 880px;
  max-height: calc(var(--dvh, 100vh) * .92);
  background: var(--app-bg);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  flex-direction: column;
  animation: .15s ease-out scaleIn;
  display: flex;
  overflow: hidden;
  box-shadow: 0 20px 60px #0006;
}

.chat-model-picker-grid {
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  display: grid;
}

.chat-model-pick-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  cursor: pointer;
  text-align: left;
  will-change: transform;
  border-radius: 14px;
  flex-direction: column;
  padding: 7px;
  transition: border-color .15s, background .15s;
  display: flex;
}

.chat-model-pick-card > * + * {
  margin-top: 8px;
}

.chat-model-pick-card:hover {
  border-color: rgba(var(--app-accent-rgb), .55);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-model-pick-card:hover {
    border-color: color-mix(in srgb,var(--app-accent) 55%,var(--app-border));
  }
}

.chat-model-pick-card.sel {
  border-color: var(--app-accent);
  background: rgba(var(--app-accent-rgb), .09);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-model-pick-card.sel {
    background: color-mix(in srgb,var(--app-accent) 9%,var(--app-card));
  }
}

.chat-model-pick-cover {
  background: rgba(var(--app-text-rgb), .04);
  border-radius: 9px;
  height: 116px;
  position: relative;
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-model-pick-cover {
    background: color-mix(in srgb,var(--app-text) 4%,transparent);
  }
}

.chat-model-pick-cover {
  color: var(--app-text-tertiary);
  justify-content: center;
  align-items: center;
  display: flex;
  overflow: hidden;
}

.chat-model-pick-cover img {
  object-fit: contain;
  width: 100%;
  height: 100%;
  padding: 6px;
  display: block;
}

.chat-model-pick-badge {
  font-variant-numeric: tabular-nums;
  color: #fff;
  background: var(--app-accent);
  box-shadow: 0 2px 6px rgba(var(--app-accent-rgb), .4);
  border-radius: 999px;
  padding: 1px 7px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.5;
  position: absolute;
  top: 6px;
  left: 6px;
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-model-pick-badge {
    box-shadow: 0 2px 6px color-mix(in srgb,var(--app-accent) 40%,transparent);
  }
}

.chat-model-pick-badge {
  pointer-events: none;
}

.chat-model-pick-name {
  color: var(--app-text);
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0 2px;
  font-size: 12px;
  overflow: hidden;
}

.chat-market-info {
  flex-direction: column;
  align-items: center;
  min-width: 0;
  display: flex;
}

.chat-market-info > * + * {
  margin-top: 1px;
}

.chat-market-price {
  color: var(--app-accent);
  font-variant-numeric: tabular-nums;
  align-items: center;
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
}

.chat-market-price > * + * {
  margin-left: 3px;
}

.chat-market-seller {
  max-width: 100%;
  color: var(--app-text-tertiary);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10px;
  overflow: hidden;
}

.chat-market-sell-box {
  flex-direction: column;
  padding: 14px 4px;
  display: flex;
}

.chat-market-sell-box > * + * {
  margin-top: 14px;
}

.chat-market-sell-item {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  border-radius: 12px;
  align-items: center;
  padding: 10px;
  display: flex;
}

.chat-market-sell-item > * + * {
  margin-left: 12px;
}

.chat-market-sell-cover {
  background: rgba(var(--app-text-rgb), .04);
  border-radius: 9px;
  flex-shrink: 0;
  width: 52px;
  height: 52px;
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-market-sell-cover {
    background: color-mix(in srgb,var(--app-text) 4%,transparent);
  }
}

.chat-market-sell-cover {
  color: var(--app-text-tertiary);
  justify-content: center;
  align-items: center;
  display: flex;
  overflow: hidden;
}

.chat-market-sell-cover img {
  object-fit: contain;
  width: 100%;
  height: 100%;
  padding: 4px;
  display: block;
}

.chat-market-sell-meta {
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.chat-market-sell-meta > * + * {
  margin-top: 3px;
}

.chat-market-sell-name {
  color: var(--app-text);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 600;
  overflow: hidden;
}

.chat-market-sell-own {
  color: var(--app-text-tertiary);
  font-size: 11px;
}

.chat-market-sell-row {
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.chat-market-sell-row > * + * {
  margin-left: 12px;
}

.chat-market-sell-label {
  color: var(--app-text-secondary);
  flex-shrink: 0;
  font-size: 12.5px;
}

.chat-market-qty-ctrl {
  align-items: center;
  display: flex;
}

.chat-market-qty-ctrl > * + * {
  margin-left: 4px;
}

.chat-market-qty-btn {
  background: var(--app-card);
  width: 28px;
  height: 28px;
  color: var(--app-text-secondary);
  cursor: pointer;
  border: none;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  transition: background .15s, color .15s;
  display: flex;
}

.chat-market-qty-btn:not(:disabled):hover {
  color: var(--app-accent);
  background: rgba(var(--app-accent-rgb), .12);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-market-qty-btn:not(:disabled):hover {
    background: color-mix(in srgb,var(--app-accent) 12%,var(--app-card));
  }
}

.chat-market-qty-btn:disabled {
  opacity: .35;
  cursor: default;
}

.chat-market-qty-num {
  text-align: center;
  min-width: 36px;
  color: var(--app-text);
  font-variant-numeric: tabular-nums;
  font-size: 13px;
  font-weight: 600;
}

.chat-market-price-input {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  width: 170px;
  height: 36px;
  color: var(--app-accent);
  border-radius: 10px;
  align-items: center;
  padding: 0 10px;
  transition: border-color .15s;
  display: flex;
}

.chat-market-price-input > * + * {
  margin-left: 6px;
}

.chat-market-price-input:focus-within {
  border-color: var(--app-accent);
}

.chat-market-price-input input {
  min-width: 0;
  height: 100%;
  color: var(--app-text);
  font-variant-numeric: tabular-nums;
  background: none;
  border: none;
  outline: none;
  flex: 1;
  font-size: 13px;
}

.chat-market-price-input input::placeholder {
  color: var(--app-text-tertiary);
}

.chat-market-fee-tip {
  background: rgba(var(--app-accent-rgb), .07);
  border-radius: 9px;
  padding: 8px 10px;
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-market-fee-tip {
    background: color-mix(in srgb,var(--app-accent) 7%,transparent);
  }
}

.chat-market-fee-tip {
  color: var(--app-text-secondary);
  text-align: center;
  font-size: 11px;
}

.chat-model-qty {
  font-variant-numeric: tabular-nums;
  color: var(--app-accent);
  background: rgba(var(--app-accent-rgb), .14);
  border-radius: 999px;
  flex-shrink: 0;
  padding: 1px 5px;
  font-size: 9.5px;
  font-weight: 600;
  line-height: 1.4;
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-model-qty {
    background: color-mix(in srgb,var(--app-accent) 14%,transparent);
  }
}

.chat-model-qty {
  pointer-events: none;
}

.chat-gift-tip {
  color: var(--app-text-secondary);
  background: rgba(var(--app-accent-rgb), .08);
  border-radius: 10px;
  align-items: center;
  padding: 8px 10px;
  font-size: 12px;
  display: flex;
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-gift-tip {
    background: color-mix(in srgb,var(--app-accent) 8%,var(--app-card));
  }
}

.chat-gift-tip > * + * {
  margin-left: 6px;
}

.chat-gift-item-name {
  min-width: 0;
  color: var(--app-text);
  border: 1px solid rgba(var(--app-accent-rgb), .35);
  border-radius: 6px;
  flex: 1;
  padding: 2px 8px;
  font-size: 12px;
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-gift-item-name {
    border: 1px solid color-mix(in srgb,var(--app-accent) 35%,transparent);
  }
}

.chat-gift-item-name {
  background: rgba(var(--app-accent-rgb), .1);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-gift-item-name {
    background: color-mix(in srgb,var(--app-accent) 10%,transparent);
  }
}

.chat-gift-item-name {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.chat-gift-friend-list {
  flex-direction: column;
  max-height: 46vh;
  display: flex;
  overflow-y: auto;
}

.chat-gift-friend-list > * + * {
  margin-top: 6px;
}

.chat-gift-friend {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  cursor: pointer;
  text-align: left;
  border-radius: 10px;
  align-items: center;
  padding: 8px 10px;
  transition: border-color .15s, background .15s;
  display: flex;
}

.chat-gift-friend > * + * {
  margin-left: 10px;
}

.chat-gift-friend:hover {
  border-color: var(--app-accent);
}

.chat-gift-friend.sel {
  border-color: var(--app-accent);
  background: rgba(var(--app-accent-rgb), .1);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-gift-friend.sel {
    background: color-mix(in srgb,var(--app-accent) 10%,var(--app-card));
  }
}

.chat-gift-friend-name {
  color: var(--app-text);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12.5px;
  overflow: hidden;
}

.chat-model-inline {
  flex-direction: column;
  width: 300px;
  max-width: 100%;
  display: flex;
}

.chat-model-inline > * + * {
  margin-top: 6px;
}

.chat-model-inline-placeholder {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  height: 200px;
  color: var(--app-text-tertiary);
  border-radius: 12px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  display: flex;
}

.chat-model-inline-placeholder > * + * {
  margin-top: 8px;
}

.chat-model-placeholder {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  color: var(--app-text-tertiary);
  border-radius: 12px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  display: flex;
}

.chat-model-placeholder > * + * {
  margin-top: 8px;
}

.chat-model-inline-bar {
  color: var(--app-text-tertiary);
  text-align: left;
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 8px;
  justify-content: space-between;
  align-items: center;
  padding: 4px 8px;
  font-size: 11px;
  transition: color .15s, background .15s;
  display: flex;
}

.chat-model-inline-bar > * + * {
  margin-left: 8px;
}

.chat-model-inline-bar:hover {
  color: var(--app-text);
  background: rgba(var(--app-accent-rgb), .1);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-model-inline-bar:hover {
    background: color-mix(in srgb,var(--app-accent) 10%,transparent);
  }
}

.chat-model-float {
  z-index: 620;
  background: none;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.chat-model-float-close {
  z-index: 2;
  border: 1px solid var(--app-border);
  background: rgba(var(--app-bg-rgb), .45);
  border-radius: 9999px;
  justify-content: center;
  align-items: center;
  width: 48px;
  height: 48px;
  display: flex;
  position: absolute;
  top: 24px;
  right: 32px;
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-model-float-close {
    background: color-mix(in srgb,var(--app-bg) 45%,transparent);
  }
}

.chat-model-float-close {
  backdrop-filter: blur(12px) saturate(150%);
  color: var(--app-text);
  cursor: pointer;
  transition: background .15s, color .15s, transform .15s;
}

.chat-model-float-close:hover {
  background: rgba(var(--app-bg-rgb), .7);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-model-float-close:hover {
    background: color-mix(in srgb,var(--app-bg) 70%,transparent);
  }
}

.chat-model-float-close:hover {
  color: var(--app-text);
  transform: scale(1.05);
}

.chat-model-float-close:active {
  transform: scale(.96);
}

.chat-model-float-close svg {
  stroke-width: 2.2px;
  width: 30px;
  height: 30px;
}

.chat-model-float-loading {
  color: var(--app-text-tertiary);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  display: flex;
}

.chat-model-float-loading > * + * {
  margin-top: 8px;
}

.chat-model-progress {
  background: var(--app-border);
  border-radius: 999px;
  width: 64%;
  max-width: 180px;
  height: 3px;
  overflow: hidden;
}

.chat-model-progress-fill {
  background: var(--app-accent);
  border-radius: 999px;
  height: 100%;
  transition: width .25s;
}

@media (max-width: 640px) {
  .chat-model-float-close {
    width: 36px;
    height: 36px;
    top: 16px;
    right: 16px;
  }

  .chat-model-float-close svg {
    stroke-width: 2px;
    width: 20px;
    height: 20px;
  }

  .chat-model-mask {
    padding: 12px;
  }

  .chat-model-panel, .chat-model-viewer-panel {
    max-width: 100%;
  }

  .chat-model-inline {
    width: 240px;
  }

  .chat-model-picker-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .chat-model-pick-cover {
    height: 104px;
  }
}

.chat-voice-msg {
  background: rgba(var(--app-accent-rgb, 0, 122, 255),.08);
  border-radius: 10px;
  align-items: center;
  max-width: 260px;
  padding: 6px 10px;
  display: flex;
}

.chat-voice-msg > * + * {
  margin-left: 8px;
}

.chat-voice-play {
  background: var(--app-accent);
  color: #fff;
  cursor: pointer;
  border: none;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  display: flex;
}

.chat-voice-progress {
  background: rgba(var(--app-accent-rgb, 0, 122, 255),.2);
  cursor: pointer;
  border-radius: 2px;
  flex: 1;
  min-width: 60px;
  height: 4px;
  position: relative;
}

.chat-voice-progress-filled {
  background: var(--app-accent);
  transform-origin: 0;
  border-radius: 2px;
  width: 100%;
  height: 100%;
  transition: transform .1s linear;
}

.chat-voice-duration {
  color: var(--app-text-secondary);
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
  font-size: 11px;
}

.chat-copy-btn, .chat-delete-btn {
  background: rgba(var(--app-accent-rgb, 0, 122, 255),.18);
  width: 18px;
  height: 18px;
  color: var(--app-accent);
  cursor: pointer;
  visibility: hidden;
  opacity: 0;
  border: none;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  margin-left: auto;
  transition: background .15s, opacity .15s, visibility .15s;
  display: flex;
}

@media (hover: hover) and (pointer: fine) {
  .chat-msg:hover .chat-copy-btn, .chat-msg:hover .chat-delete-btn {
    visibility: visible;
    opacity: 1;
  }
}

.chat-msg.msg-actions-on .chat-copy-btn, .chat-msg.msg-actions-on .chat-delete-btn {
  visibility: visible;
  opacity: 1;
}

.chat-copy-btn:hover, .chat-delete-btn:hover {
  background: rgba(var(--app-accent-rgb, 0, 122, 255),.3);
}

.chat-copy-btn + .chat-delete-btn {
  margin-left: 0;
}

.chat-link {
  color: var(--app-accent);
  text-decoration: underline;
  text-decoration-color: rgba(var(--app-accent-rgb), .45);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-link {
    text-decoration-color: color-mix(in srgb,var(--app-accent) 45%,transparent);
  }
}

.chat-link {
  text-underline-offset: 2px;
  cursor: pointer;
  word-break: break-all;
}

.chat-link:hover {
  text-decoration-color: var(--app-accent);
}

.titlebar-chat-alert {
  background: rgba(var(--app-accent-rgb, 0, 122, 255),.1);
  border: 1px solid rgba(var(--app-accent-rgb, 0, 122, 255),.22);
  -webkit-app-region: no-drag;
  border-radius: 999px;
  align-items: center;
  max-width: 240px;
  padding: 3px 4px 3px 8px;
  animation: .2s ease-out titlebar-chat-alert-in;
  display: flex;
}

.titlebar-chat-alert > * + * {
  margin-left: 2px;
}

@keyframes titlebar-chat-alert-in {
  0% {
    opacity: 0;
    transform: translate(6px);
  }

  to {
    opacity: 1;
    transform: translate(0);
  }
}

.titlebar-chat-alert-main {
  cursor: pointer;
  min-width: 0;
  font: inherit;
  text-align: left;
  background: none;
  border: none;
  align-items: center;
  padding: 0;
  display: flex;
}

.titlebar-chat-alert-main > * + * {
  margin-left: 5px;
}

.titlebar-chat-alert-dot {
  background: var(--app-accent);
  border-radius: 50%;
  flex-shrink: 0;
  width: 5px;
  height: 5px;
}

.titlebar-chat-alert-sender {
  color: var(--app-accent);
  white-space: nowrap;
  text-overflow: ellipsis;
  flex-shrink: 0;
  max-width: 90px;
  font-size: 11px;
  font-weight: 600;
  overflow: hidden;
}

.titlebar-chat-alert-text {
  color: var(--app-text-secondary);
  white-space: nowrap;
  text-overflow: ellipsis;
  min-width: 0;
  font-size: 11px;
  overflow: hidden;
}

.titlebar-chat-alert-text .chat-emoji-inline {
  vertical-align: -2px;
  width: 14px;
  height: 14px;
  margin: 0 1px;
}

.titlebar-chat-alert-main:hover .titlebar-chat-alert-text {
  color: var(--app-text);
}

.titlebar-chat-alert-close {
  width: 16px;
  height: 16px;
  color: var(--app-text-tertiary);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  transition: background .15s, color .15s;
  display: flex;
}

.titlebar-chat-alert-close:hover {
  background: rgba(var(--app-text-secondary-rgb, 100, 100, 100),.15);
  color: var(--app-text);
}

@media (max-width: 767px) {
  .titlebar-chat-alert {
    max-width: 110px;
    padding-left: 6px;
  }

  .titlebar-chat-alert-sender {
    max-width: 42px;
    font-size: 10px;
    display: inline;
  }

  .titlebar-chat-alert-text {
    font-size: 10px;
  }
}

.chat-alert-toggle {
  background: rgba(var(--app-text-secondary-rgb, 100, 100, 100),.4);
  cursor: pointer;
  border: none;
  border-radius: 8px;
  flex-shrink: 0;
  width: 28px;
  height: 16px;
  padding: 0;
  transition: background .2s;
  position: relative;
}

.chat-alert-toggle.on {
  background: var(--app-accent);
}

.chat-alert-toggle-knob {
  background: #fff;
  border-radius: 50%;
  width: 12px;
  height: 12px;
  transition: transform .2s;
  position: absolute;
  top: 2px;
  left: 2px;
  box-shadow: 0 1px 2px #00000040;
}

.chat-alert-toggle.on .chat-alert-toggle-knob {
  transform: translate(12px);
}

.chat-emoji-grid {
  background: var(--app-card-active);
  border-radius: 10px;
  flex-wrap: wrap;
  max-height: 180px;
  margin: -2px;
  padding: 8px;
  display: flex;
  overflow-y: auto;
}

.chat-emoji-grid > * {
  margin: 2px;
}

.chat-emoji-item {
  cursor: pointer;
  -webkit-touch-callout: none;
  user-select: none;
  background: none;
  border: none;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  width: 32px;
  height: 32px;
  font-size: 18px;
  transition: background .1s;
  display: flex;
}

.chat-emoji-item:hover {
  background: var(--app-card-hover);
}

.chat-emoji-img-item {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  font-size: 0;
}

.chat-emoji-img-item img {
  object-fit: contain;
  pointer-events: none;
  width: 30px;
  height: 30px;
}

.chat-emoji-inline {
  vertical-align: text-bottom;
  object-fit: contain;
  width: 24px;
  height: 24px;
  margin: 0 1px;
  display: inline-block;
}

.chat-sticker-host {
  width: fit-content;
  max-width: 100%;
  position: relative;
}

.chat-sticker-host-wide {
  width: auto;
}

.chat-msg-sticker {
  pointer-events: none;
  z-index: 4;
  user-select: none;
  -webkit-user-drag: none;
  width: 34px;
  height: 34px;
  animation: .35s cubic-bezier(.34, 1.56, .64, 1) both chat-sticker-pop, 60s linear forwards chat-sticker-fade;
  position: absolute;
  transform: translate(-50%, -50%);
}

.chat-msg-sticker img {
  object-fit: contain;
  width: 100%;
  height: 100%;
  display: block;
}

@keyframes chat-sticker-pop {
  0% {
    transform: translate(-50%, -50%) scale(0);
  }

  60% {
    transform: translate(-50%, -50%) scale(1.18);
  }

  to {
    transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes chat-sticker-fade {
  0%, 50% {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.chat-sticker-edit-box {
  z-index: 6;
  border: 1.5px dashed var(--app-accent);
  cursor: move;
  touch-action: none;
  user-select: none;
  -webkit-touch-callout: none;
  border-radius: 8px;
  width: max-content;
  padding: 4px;
  position: absolute;
}

.chat-sticker-edit-box img {
  pointer-events: none;
  object-fit: contain;
  display: block;
}

.chat-sticker-edit-rotate {
  background: var(--app-accent);
  color: #fff;
  cursor: grab;
  touch-action: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 22px;
  height: 22px;
  display: flex;
  position: absolute;
  top: -26px;
  left: 50%;
  transform: translate(-50%);
  box-shadow: 0 1px 4px #0000004d;
}

.chat-sticker-edit-rotate:active {
  cursor: grabbing;
}

.chat-sticker-edit-scale {
  background: var(--app-accent);
  cursor: nwse-resize;
  touch-action: none;
  border: 2px solid #ffffffe6;
  border-radius: 50%;
  width: 15px;
  height: 15px;
  position: absolute;
  bottom: -8px;
  right: -8px;
  box-shadow: 0 1px 4px #0000004d;
}

.chat-sticker-edit-actions {
  z-index: 6;
  user-select: none;
  width: max-content;
  display: flex;
  position: absolute;
  transform: translate(-50%);
}

.chat-sticker-edit-actions > * + * {
  margin-left: 8px;
}

.chat-sticker-edit-actions button {
  color: #fff;
  cursor: pointer;
  border: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  transition: transform .12s, opacity .12s;
  display: flex;
  box-shadow: 0 2px 6px #00000059;
}

.chat-sticker-edit-actions button:active {
  transform: scale(.9);
}

.chat-sticker-edit-actions button:first-child {
  background: #64748bf2;
}

.chat-sticker-edit-actions button:last-child {
  background: var(--app-accent);
}

.chat-sticker-ghost {
  object-fit: contain;
  opacity: .95;
  filter: drop-shadow(0 3px 10px #0006);
  width: 46px;
  height: 46px;
}

.space-comment-bubble .chat-emoji-inline {
  vertical-align: -3px;
  width: 16px;
  height: 16px;
}

.space-comment-preview .chat-emoji-inline {
  vertical-align: -2px;
  width: 13px;
  height: 13px;
}

.chat-emoji-chip {
  vertical-align: text-bottom;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  cursor: default;
  width: 24px;
  height: 24px;
  margin: 0 1px;
  display: inline-block;
}

.space-editable:empty:before {
  content: attr(data-placeholder);
  color: var(--app-text-tertiary);
  pointer-events: none;
}

.space-editable-inline .chat-emoji-chip {
  vertical-align: -4px;
  width: 20px;
  height: 20px;
}

.admin-dropdown {
  background: rgba(var(--app-bg-rgb),.96);
  backdrop-filter: blur(40px) saturate(180%);
  -webkit-backdrop-filter: blur(40px) saturate(180%);
  z-index: 50;
  border: 1px solid #ffffff14;
  border-radius: 14px;
  width: 300px;
  margin-top: 8px;
  animation: .18s ease-out scaleIn;
  position: absolute;
  top: 100%;
  left: 0;
  overflow: hidden;
  box-shadow: 0 4px 8px #0003, 0 16px 48px #0006;
}

[data-theme="light"] .admin-dropdown {
  background: rgba(var(--app-bg-rgb),.96);
  border: 1px solid #3c281414;
  box-shadow: 0 4px 8px #3c28140f, 0 16px 48px #3c28141a;
}

.admin-dropdown.dropdown-center {
  margin-top: 0;
  animation: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.admin-row {
  cursor: pointer;
  border-radius: 8px;
  align-items: center;
  padding: 10px 12px;
  transition: background .12s;
  display: flex;
}

.admin-row > * + * {
  margin-left: 10px;
}

.admin-row:hover {
  background: var(--app-card-hover);
}

.admin-row:active {
  background: var(--app-card);
}

.admin-row-icon {
  background: var(--app-card);
  width: 32px;
  height: 32px;
  color: var(--app-text-secondary);
  border-radius: 8px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.admin-row-text {
  flex: 1;
  min-width: 0;
}

.admin-row-title {
  color: var(--app-text);
  font-size: 13px;
  line-height: 1.3;
}

.admin-row-desc {
  color: var(--app-text-tertiary);
  margin-top: 1px;
  font-size: 11px;
}

@keyframes scaleIn {
  0% {
    opacity: 0;
    transform: scale(.95);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.chat-toast {
  color: #fff;
  text-align: center;
  word-break: break-all;
  background: #000000c7;
  border-radius: 6px;
  margin-bottom: 8px;
  padding: 6px 12px;
  font-size: 12px;
  animation: .25s ease-out chatToastIn;
}

@keyframes chatToastIn {
  0% {
    opacity: 0;
    transform: translateY(4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.chat-audio-btn {
  background: var(--app-accent);
  width: 32px;
  height: 32px;
  color: var(--app-accent-text);
  cursor: pointer;
  border: none;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  transition: transform .12s;
  display: flex;
}

.chat-audio-btn:hover {
  transform: scale(1.08);
}

.chat-song-card {
  background: var(--app-card);
  cursor: pointer;
  border-radius: 10px;
  align-items: center;
  max-width: 300px;
  padding: 10px 12px;
  transition: background .12s;
  display: flex;
}

.chat-song-card > * + * {
  margin-left: 10px;
}

.chat-song-card:hover {
  background: var(--app-card-hover);
}

.chat-film-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  cursor: pointer;
  border-radius: 12px;
  max-width: 320px;
  padding: 8px;
  transition: background .12s, border-color .12s;
  display: flex;
}

.chat-film-card > * + * {
  margin-left: 10px;
}

.chat-film-card:hover {
  background: var(--app-card-hover);
  border-color: rgba(var(--app-accent-rgb),.3);
}

.chat-film-thumb {
  background: #000;
  border-radius: 6px;
  flex-shrink: 0;
  width: 96px;
  height: 64px;
  position: relative;
  overflow: hidden;
}

.chat-film-thumb img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.chat-film-thumb-fallback {
  width: 100%;
  height: 100%;
  color: var(--app-text-tertiary);
  justify-content: center;
  align-items: center;
  display: flex;
}

.chat-film-info {
  flex-direction: column;
  flex: 1;
  justify-content: center;
  min-width: 0;
  padding: 2px 0 2px 4px;
  display: flex;
}

.chat-film-info > * + * {
  margin-top: 4px;
}

.chat-film-title {
  color: var(--app-text);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  overflow: hidden;
}

.chat-film-meta {
  color: var(--app-text-tertiary);
  flex-wrap: wrap;
  align-items: center;
  margin: -3px;
  font-size: 11px;
  display: flex;
}

.chat-film-meta > * {
  margin: 3px;
}

.chat-film-remarks {
  color: var(--app-text-tertiary);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
  overflow: hidden;
}

.chat-novel-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  cursor: pointer;
  border-radius: 12px;
  max-width: 320px;
  padding: 8px;
  transition: background .12s, border-color .12s;
  display: flex;
}

.chat-novel-card > * + * {
  margin-left: 10px;
}

.chat-novel-card:hover {
  background: var(--app-card-hover);
  border-color: rgba(var(--app-accent-rgb),.3);
}

.chat-novel-thumb {
  background: rgba(var(--app-accent-rgb, 0,122,255),.12);
  border-radius: 6px;
  flex-shrink: 0;
  width: 48px;
  height: 64px;
  position: relative;
  overflow: hidden;
}

.chat-novel-thumb img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.chat-novel-cover-fallback {
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 3px;
  display: flex;
}

.chat-novel-cover-fallback span {
  color: #fff;
  text-align: center;
  word-break: break-all;
  -webkit-line-clamp: 4;
  text-shadow: 0 1px 3px #00000040;
  -webkit-box-orient: vertical;
  font-size: 9px;
  font-weight: 600;
  line-height: 1.25;
  display: -webkit-box;
  overflow: hidden;
}

.chat-novel-info {
  flex-direction: column;
  flex: 1;
  justify-content: center;
  min-width: 0;
  padding: 2px 0 2px 4px;
  display: flex;
}

.chat-novel-info > * + * {
  margin-top: 4px;
}

.chat-novel-title {
  color: var(--app-text);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  overflow: hidden;
}

.chat-novel-meta {
  color: var(--app-text-tertiary);
  flex-wrap: wrap;
  align-items: center;
  margin: -3px;
  font-size: 11px;
  display: flex;
}

.chat-novel-meta > * {
  margin: 3px;
}

.chat-novel-remarks {
  color: var(--app-text-tertiary);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
  overflow: hidden;
}

.chat-lobby-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  cursor: pointer;
  border-radius: 12px;
  max-width: 320px;
  padding: 9px;
  transition: background .15s, border-color .15s;
  display: flex;
}

.chat-lobby-card > * + * {
  margin-left: 11px;
}

.chat-lobby-card:hover {
  background: var(--app-card-hover);
  border-color: rgba(var(--app-accent-rgb),.35);
}

.chat-lobby-thumb {
  background: rgba(var(--app-accent-rgb, 0,122,255),.12);
  border-radius: 10px;
  flex-shrink: 0;
  width: 62px;
  height: 62px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 2px 10px #00000024;
}

.chat-lobby-thumb img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: transform .25s;
}

.chat-lobby-card:hover .chat-lobby-thumb img {
  transform: scale(1.06);
}

.chat-lobby-thumb-fallback {
  width: 100%;
  height: 100%;
  color: var(--app-accent, #0a84ff);
  justify-content: center;
  align-items: center;
  display: flex;
}

.chat-lobby-info {
  flex-direction: column;
  flex: 1;
  justify-content: center;
  min-width: 0;
  padding: 1px 0 1px 2px;
  display: flex;
}

.chat-lobby-info > * + * {
  margin-top: 4px;
}

.chat-lobby-title {
  color: var(--app-text);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  overflow: hidden;
}

.chat-lobby-song {
  align-items: center;
  min-width: 0;
  font-size: 12px;
  display: flex;
}

.chat-lobby-song > * + * {
  margin-left: 6px;
}

.chat-lobby-song-text {
  color: var(--app-text-secondary);
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.chat-lobby-eq {
  flex-shrink: 0;
  align-items: flex-end;
  height: 11px;
  display: inline-flex;
}

.chat-lobby-eq > * + * {
  margin-left: 2px;
}

.chat-lobby-eq .equalizer-bar {
  height: 11px;
}

.chat-lobby-meta {
  color: var(--app-text-tertiary);
  flex-wrap: wrap;
  align-items: center;
  margin: -3px;
  font-size: 11px;
  display: flex;
}

.chat-lobby-meta > * {
  margin: 3px;
}

.chat-lobby-tag {
  background: rgba(var(--app-accent-rgb, 0,122,255),.14);
  height: 16px;
  color: var(--app-accent, #0a84ff);
  border-radius: 999px;
  flex-shrink: 0;
  padding: 0 7px;
  font-size: 10px;
  font-weight: 600;
  line-height: 16px;
}

.chat-news-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  cursor: pointer;
  border-radius: 12px;
  align-items: center;
  max-width: 320px;
  padding: 9px 11px;
  transition: background .15s, border-color .15s;
  display: flex;
}

.chat-news-card > * + * {
  margin-left: 11px;
}

.chat-news-card:hover {
  background: var(--app-card-hover);
  border-color: rgba(var(--app-accent-rgb),.35);
}

.chat-news-cover {
  object-fit: cover;
  background: var(--app-card-hover);
  border-radius: 10px;
  flex-shrink: 0;
  width: 52px;
  height: 52px;
}

.chat-news-cover-fallback {
  background: linear-gradient(135deg,rgba(var(--app-accent-rgb),.2),rgba(var(--app-accent-rgb),.08));
  color: var(--app-accent);
  justify-content: center;
  align-items: center;
  display: flex;
}

.chat-news-info {
  flex-direction: column;
  flex: 1;
  justify-content: center;
  min-width: 0;
  display: flex;
}

.chat-news-info > * + * {
  margin-top: 4px;
}

.chat-news-title {
  color: var(--app-text);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  overflow: hidden;
}

.chat-news-meta {
  color: var(--app-text-tertiary);
  white-space: nowrap;
  align-items: center;
  min-width: 0;
  font-size: 11px;
  display: flex;
}

.chat-news-meta > * + * {
  margin-left: 6px;
}

.chat-news-item {
  color: var(--app-text);
  border-radius: 8px;
  align-items: flex-start;
  padding: 6px 8px;
  line-height: 1.5;
  display: flex;
}

.chat-news-item > * + * {
  margin-left: 8px;
}

.chat-news-item:hover {
  background: var(--app-card-hover);
}

.chat-news-item-index {
  text-align: right;
  min-width: 18px;
  color: var(--app-text-tertiary);
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
  padding-top: 2px;
  font-size: 11px;
}

.chat-news-item-text {
  word-break: break-word;
  min-width: 0;
  font-size: 13px;
}

.mobile-device .chat-news-card {
  gap: 9px;
  max-width: 100%;
  padding: 8px 10px;
}

.chat-queue-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  cursor: pointer;
  border-radius: 12px;
  align-items: center;
  max-width: 320px;
  padding: 9px 11px;
  transition: background .15s, border-color .15s;
  display: flex;
}

.chat-queue-card > * + * {
  margin-left: 11px;
}

.chat-queue-card:hover {
  background: var(--app-card-hover);
  border-color: rgba(var(--app-accent-rgb),.35);
}

.chat-queue-icon {
  background: linear-gradient(135deg,rgba(var(--app-accent-rgb),.2),rgba(var(--app-accent-rgb),.08));
  width: 40px;
  height: 40px;
  color: var(--app-accent);
  border-radius: 10px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.chat-queue-info {
  flex-direction: column;
  flex: 1;
  justify-content: center;
  min-width: 0;
  display: flex;
}

.chat-queue-info > * + * {
  margin-top: 4px;
}

.chat-queue-title {
  color: var(--app-text);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  overflow: hidden;
}

.chat-queue-meta {
  color: var(--app-text-tertiary);
  align-items: center;
  min-width: 0;
  font-size: 11px;
  display: flex;
}

.chat-queue-meta > * + * {
  margin-left: 6px;
}

.chat-queue-code {
  font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  letter-spacing: .06em;
  color: var(--app-text-secondary);
  flex-shrink: 0;
}

.chat-queue-invalid {
  color: var(--app-text-tertiary);
}

.chat-match-chip {
  cursor: pointer;
  max-width: 28vw;
  max-width: min(28vw, 120px);
  color: var(--app-success, #34c759);
  background: rgba(var(--app-success-rgb, 52, 199, 89),.1);
  border: none;
  border-radius: 6px;
  align-items: center;
  padding: 2px 6px;
  font-family: inherit;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.2;
  transition: opacity .15s;
  display: flex;
  overflow: hidden;
}

.chat-match-chip > * + * {
  margin-left: 4px;
}

.chat-match-chip:hover {
  opacity: .8;
}

.chat-match-chip .chip-label {
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  overflow: hidden;
}

.mobile-device .chat-queue-card {
  gap: 9px;
  max-width: 100%;
  padding: 8px 10px;
}

.mobile-device .chat-queue-icon {
  border-radius: 9px;
  width: 34px;
  height: 34px;
}

.mobile-device .chat-queue-meta {
  flex-wrap: wrap;
  row-gap: 2px;
}

.chat-link-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  cursor: pointer;
  border-radius: 12px;
  align-items: center;
  max-width: 320px;
  padding: 8px 10px;
  transition: background .12s, border-color .12s;
  display: flex;
}

.chat-link-card > * + * {
  margin-left: 10px;
}

.chat-link-card:hover {
  background: var(--app-card-hover);
  border-color: rgba(var(--app-accent-rgb),.3);
}

.chat-link-info {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.chat-link-info > * + * {
  margin-top: 2px;
}

.chat-link-name {
  color: var(--app-text);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  overflow: hidden;
}

.chat-link-domain {
  color: var(--app-text-tertiary);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 11px;
  overflow: hidden;
}

.chat-link-arrow {
  color: var(--app-text-tertiary);
  flex-shrink: 0;
  transition: color .12s;
}

.chat-link-card:hover .chat-link-arrow {
  color: var(--app-accent);
}

.chat-song-icon {
  background: rgba(var(--app-accent-2-rgb),.16);
  width: 32px;
  height: 32px;
  color: var(--app-accent-2);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
  overflow: hidden;
}

.chat-song-cover {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.chat-song-fav {
  width: 28px;
  height: 28px;
  color: var(--app-text-tertiary);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 6px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  transition: color .15s, background .15s;
  display: flex;
}

.chat-song-fav:hover {
  color: #ef4444;
  background: #ef44441a;
}

.chat-song-fav-active {
  color: #ef4444;
}

.film-body {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  overflow: hidden;
}

.spinner {
  border: 3px solid var(--app-border);
  border-top-color: var(--app-accent);
  border-radius: 50%;
  width: 32px;
  height: 32px;
  animation: .7s linear infinite spin;
}

.page-transition {
  animation: .25s ease-out fadeIn;
}

.poster-card {
  cursor: pointer;
  background: var(--app-card);
  border: 1px solid var(--app-border);
  border-radius: 10px;
  transition: transform .25s, box-shadow .25s, border-color .25s;
  position: relative;
  overflow: hidden;
}

.poster-card:hover {
  border-color: #ffffff26;
  transform: translateY(-4px);
  box-shadow: 0 12px 32px #0000004d;
}

[data-theme="light"] .poster-card:hover {
  border-color: #0003;
  box-shadow: 0 12px 32px #0000001a;
}

.poster-card:active {
  transform: scale(.97);
}

.poster-img {
  aspect-ratio: 3 / 4;
  --asr: 3 / 4;
  object-fit: cover;
  width: 100%;
  display: block;
}

.film-grid {
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

.mobile-device .film-grid {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}

.mobile-device .poster-overlay {
  padding: 24px 8px 8px;
}

.mobile-device .poster-overlay .text-xs {
  font-size: 11px;
  line-height: 1.25;
}

.mobile-device .poster-remarks {
  display: none;
}

.mobile-device .poster-category {
  padding: 1px 5px;
  font-size: 9px;
}

.poster-overlay {
  background: linear-gradient(#0000, #000000d9);
  padding: 32px 10px 10px;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.poster-remarks {
  backdrop-filter: blur(8px);
  color: #fff;
  white-space: nowrap;
  text-overflow: ellipsis;
  background: #000000b3;
  border-radius: 6px;
  max-width: calc(100% - 60px);
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 500;
  position: absolute;
  top: 8px;
  left: 8px;
  overflow: hidden;
}

.poster-category {
  background: rgba(var(--app-accent-rgb),.85);
  color: #fff;
  letter-spacing: .02em;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 10px;
  font-weight: 600;
  position: absolute;
  top: 8px;
  right: 8px;
}

.btn-grid {
  grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
  gap: 8px;
  display: grid;
}

.btn-grid-item {
  text-align: center;
  cursor: pointer;
  white-space: nowrap;
  text-overflow: ellipsis;
  border: none;
  border-radius: 8px;
  padding: 6px;
  font-size: 12px;
  transition: background-color .15s, color .15s;
  overflow: hidden;
}

.btn-grid-item-active {
  background: var(--app-accent);
  color: var(--app-accent-text);
  font-weight: 500;
}

.btn-grid-item-normal {
  background: var(--app-card);
  color: var(--app-text-secondary);
}

.btn-grid-item-normal:hover {
  background: var(--app-card-hover);
  color: var(--app-text);
}

.ep-src-row {
  flex-wrap: wrap;
  margin: -3px;
  display: flex;
}

.ep-src-row > * {
  margin: 3px;
}

.ep-src {
  letter-spacing: .01em;
  cursor: pointer;
  white-space: nowrap;
  background: var(--app-card);
  border: 1px solid var(--app-border);
  color: var(--app-text-tertiary);
  border-radius: 999px;
  align-items: center;
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 500;
  transition: background-color .15s, color .15s, border-color .15s;
  display: inline-flex;
}

.ep-src > * + * {
  margin-left: 5px;
}

.ep-src:before {
  content: "";
  background: var(--app-text-tertiary);
  opacity: .5;
  border-radius: 999px;
  width: 5px;
  height: 5px;
  transition: background-color .15s, opacity .15s;
}

@media (hover: hover) {
  .ep-src:hover {
    background: var(--app-card-hover);
    color: var(--app-text);
  }
}

.ep-src-active {
  background: rgba(var(--app-accent-rgb), .13);
}

@supports (color: color-mix(in lab, red, red)) {
  .ep-src-active {
    background: color-mix(in srgb,var(--app-accent) 13%,transparent);
  }
}

.ep-src-active {
  border-color: rgba(var(--app-accent-rgb), .32);
}

@supports (color: color-mix(in lab, red, red)) {
  .ep-src-active {
    border-color: color-mix(in srgb,var(--app-accent) 32%,transparent);
  }
}

.ep-src-active {
  color: var(--app-accent);
}

.ep-src-active:before {
  background: var(--app-accent);
  opacity: 1;
}

.ep-grid {
  grid-template-columns: repeat(auto-fill, minmax(52px, 1fr));
  gap: 6px;
  display: grid;
}

.ep-item {
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  white-space: nowrap;
  text-overflow: ellipsis;
  background: var(--app-card);
  height: 32px;
  color: var(--app-text-secondary);
  border: 1px solid #0000;
  border-radius: 9px;
  justify-content: center;
  align-items: center;
  padding: 0 5px;
  font-size: 12px;
  font-weight: 500;
  transition: background-color .15s, color .15s, box-shadow .15s, transform .15s;
  display: flex;
  overflow: hidden;
}

.ep-item:hover {
  background: var(--app-card-hover);
  border-color: var(--app-border);
  color: var(--app-text);
  transform: translateY(-1px);
}

.ep-item-active {
  background: var(--app-accent);
  color: var(--app-accent-text);
  box-shadow: 0 2px 8px rgba(var(--app-accent-rgb), .35);
}

@supports (color: color-mix(in lab, red, red)) {
  .ep-item-active {
    box-shadow: 0 2px 8px color-mix(in srgb,var(--app-accent) 35%,transparent);
  }
}

.ep-item-active:hover {
  background: var(--app-accent);
  color: var(--app-accent-text);
  transform: none;
}

.novel-chapter-row {
  background: var(--app-card);
  cursor: pointer;
  text-align: left;
  border: 1px solid #0000;
  border-radius: 9px;
  align-items: center;
  width: 100%;
  padding: 8px 14px;
  transition: background-color .15s, border-color .15s, transform .15s;
  display: flex;
}

.novel-chapter-row > * + * {
  margin-left: 10px;
}

.novel-chapter-row:hover {
  background: var(--app-card-hover);
  border-color: var(--app-border);
  transform: translateY(-1px);
}

.novel-nav-btn:before {
  display: none;
}

.novel-char-select, .novel-char-select option {
  background: var(--app-bg);
  color: var(--app-text);
}

.btn-icon.novel-no-bounce:active {
  transform: none;
}

.ep-header {
  align-items: center;
  margin-bottom: 10px;
  display: flex;
}

.ep-header > * + * {
  margin-left: 6px;
}

.ep-header-title {
  color: var(--app-text);
  letter-spacing: .02em;
  font-size: 12px;
  font-weight: 600;
}

.ep-header-count {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  min-width: 18px;
  height: 16px;
  color: var(--app-text-tertiary);
  font-variant-numeric: tabular-nums;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  padding: 0 5px;
  font-size: 10px;
  font-weight: 600;
  display: inline-flex;
}

.ep-header-line {
  background: var(--app-border);
  opacity: .6;
  flex: 1;
  height: 1px;
}

.info-chip {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  max-width: 100%;
  color: var(--app-text-tertiary);
  border-radius: 8px;
  align-items: center;
  padding: 3px 8px;
  font-size: 11px;
  line-height: 1.4;
  display: inline-flex;
}

.info-chip > * + * {
  margin-left: 4px;
}

.info-chip .info-chip-value {
  color: var(--app-text);
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  overflow: hidden;
}

.ep-popup .ep-src:before, .ep-popup .ep-src-active:before {
  display: none;
}

.ep-popup .ep-src {
  cursor: default;
  gap: 0;
}

.ep-popup .ep-src:hover {
  background: var(--app-card);
  color: var(--app-text-tertiary);
}

.ep-popup .ep-src-active, .ep-popup .ep-src-active:hover {
  background: rgba(var(--app-accent-rgb), .13);
}

@supports (color: color-mix(in lab, red, red)) {
  .ep-popup .ep-src-active, .ep-popup .ep-src-active:hover {
    background: color-mix(in srgb,var(--app-accent) 13%,transparent);
  }
}

.ep-popup .ep-src-active, .ep-popup .ep-src-active:hover {
  border-color: rgba(var(--app-accent-rgb), .32);
}

@supports (color: color-mix(in lab, red, red)) {
  .ep-popup .ep-src-active, .ep-popup .ep-src-active:hover {
    border-color: color-mix(in srgb,var(--app-accent) 32%,transparent);
  }
}

.ep-popup .ep-src-active, .ep-popup .ep-src-active:hover {
  color: var(--app-accent);
}

.film-detail-overlay {
  justify-content: center;
  align-items: center;
}

.film-detail-modal {
  margin: auto;
}

html.mobile-device .film-detail-overlay {
  padding: 12px;
}

html.mobile-device .film-detail-modal {
  max-width: calc(var(--dvw, 100vw) - 24px);
  max-height: calc(var(--dvh, 100vh) * .82);
  border-radius: 16px;
}

html.mobile-device, html.mobile-device body {
  -webkit-overflow-scrolling: touch;
  width: 100%;
  height: 100%;
  position: fixed;
  overflow: hidden;
}

:root.mobile-device, html.mobile-device[data-theme="dark"] {
  --sidebar-width: 0px;
  --now-playing-width: var(--dvw, 100vw);
  --player-height: 56px;
}

.mobile-device .music-app {
  height: var(--app-dheight, 100vh);
  padding-top: var(--safe-area-top);
  padding-left: var(--safe-area-left);
  padding-right: var(--safe-area-right);
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

html.mobile-device .z-320 {
  height: calc(100% - var(--vv-occlusion, 0px));
}

.mobile-device .music-body {
  flex-direction: column;
  padding-bottom: 0;
  overflow-x: hidden;
}

.mobile-device .music-body.music-main > .flex-1 {
  min-height: 0;
}

.mobile-device .music-body.music-main {
  min-height: 0;
  position: relative;
}

.mobile-device .film-body {
  flex-direction: column;
}

.mobile-device .sidebar-desktop, .mobile-device .now-playing-sidebar {
  display: none !important;
}

.mobile-device .main-content-mobile {
  flex: 1;
  width: 100%;
  min-height: 0;
}

.mobile-device .main-content-mobile > .overflow-y-auto, .mobile-device .main-content-mobile .flex-1.overflow-y-auto {
  padding-bottom: 64px;
}

.mobile-device .mobile-bottom-nav {
  z-index: 50;
  border-top: 1px solid var(--app-border);
  background: rgba(var(--app-bg-rgb),var(--bg-overlay-alpha, .7));
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  height: 56px;
  padding-bottom: var(--safe-area-bottom);
  flex-shrink: 0;
  justify-content: space-around;
  align-items: center;
  display: flex;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
}

.player-bar .player-controls-row {
  gap: 8px;
  gap: max(8px, min(2.26vw - 9.3px, 20px));
}

.player-bar .player-left-row, .player-bar .player-volume-row {
  gap: 8px;
  gap: max(8px, min(.9vw + 1.1px, 12px));
}

.player-bar .player-bar-inner {
  padding-left: 12px;
  padding-left: max(12px, min(1.27vw + 2.3px, 20px));
  padding-right: 12px;
  padding-right: max(12px, min(1.27vw + 2.3px, 20px));
}

@media (max-width: 819px) {
  .player-bar .player-left-text {
    display: none;
  }
}

.mobile-device .player-bar {
  z-index: 50;
  pointer-events: none;
  touch-action: none;
  transition: transform .4s;
  position: fixed;
  bottom: 72px;
  left: 0;
  right: 0;
  transform: translateY(0);
  backdrop-filter: none;
  -webkit-backdrop-filter: none !important;
  background: none !important;
  height: auto !important;
}

.mobile-device .player-bar > div {
  pointer-events: none;
}

.mobile-device .player-bar .player-pill, .mobile-device .player-bar .player-pill *, .mobile-device .player-bar input, .mobile-device .player-bar .now-playing-card-play, .mobile-device .player-bar button {
  pointer-events: auto;
}

.mobile-device .mobile-player-hidden {
  transition: transform .4s;
  transform: translateY(calc(100% + 160px));
}

.mobile-device .player-pill {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  background: rgba(var(--app-card-rgb, 28, 28, 30),.92);
  touch-action: none;
  cursor: pointer;
  border: 1px solid #ffffff1a;
  border-radius: 50px;
  position: relative;
  box-shadow: 0 2px 12px #00000026, inset 0 0 0 1px #ffffff0d;
}

.mobile-device .mobile-song-card {
  background: rgba(var(--app-bg-rgb, 22, 24, 29),.6);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid #ffffff1f;
  transition: opacity .2s, visibility linear;
  box-shadow: 0 4px 20px #0003, inset 0 1px #ffffff14;
}

.mobile-device .mobile-player-hidden .mobile-song-card {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .2s, visibility 0s linear .2s;
}

.mobile-device .player-bar.keep-song-card.mobile-player-hidden {
  transform: none;
}

.mobile-device .player-bar.keep-song-card.mobile-player-hidden .player-pill {
  transition: transform .4s;
  transform: translateY(calc(100% + 160px));
}

.mobile-device .player-bar.keep-song-card.mobile-player-hidden .mobile-song-card {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity .2s;
}

.mobile-device .player-pill-progress {
  z-index: 0;
  pointer-events: none;
  border-radius: 50px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

.mobile-device .player-pill-progress:before {
  content: "";
  transform: scaleX(var(--pill-progress, 0));
  transform-origin: 0;
  will-change: transform;
  background: #ffffff0f;
  transition: transform .3s;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.mobile-device .player-pill.is-dragging .player-pill-progress:before {
  transition: none;
}

html.mobile-device[data-theme="light"] .player-pill {
  background: rgba(var(--app-bg-rgb),.92);
  border: 1px solid #3c281414;
  box-shadow: 0 2px 16px #3c281414;
}

html.mobile-device[data-theme="light"] .player-pill-progress:before {
  background: #0000000a;
}

.mobile-device .glass {
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.mobile-device .mobile-bottom-nav-item {
  color: var(--app-text-tertiary);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 8px;
  flex-direction: column;
  align-items: center;
  min-width: 56px;
  padding: 4px 12px;
  font-size: 10px;
  display: flex;
  position: relative;
  overflow: hidden;
}

.mobile-device .mobile-bottom-nav-item > * + * {
  margin-top: 2px;
}

.mobile-device .mobile-bottom-nav-item:before {
  content: "";
  background: rgba(var(--app-accent-rgb),.12);
  opacity: 0;
  pointer-events: none;
  transition: opacity .15s;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.mobile-device .mobile-bottom-nav-item.active:before {
  opacity: 1;
}

.mobile-device .mobile-bottom-nav-item.active {
  color: var(--app-accent);
}

.mobile-device .modal {
  min-width: 0;
  max-width: calc(var(--dvw, 100vw) * .92);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  background: rgba(var(--app-bg-rgb),.96);
  border-radius: 14px;
  padding: 18px;
  box-shadow: 0 8px 24px #00000080;
}

html.mobile-device[data-theme="light"] .modal {
  background: rgba(var(--app-bg-rgb),.98);
}

.mobile-device .modal-overlay {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  background: #00000073;
  justify-content: center;
  align-items: center;
  padding: 16px;
}

.mobile-device .dialog-overlay {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  background: #00000073;
  padding: 12px;
}

.mobile-device .dialog-panel {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  background: rgba(var(--app-bg-rgb),.96);
  border-radius: 14px;
  box-shadow: 0 8px 24px #00000080;
}

html.mobile-device[data-theme="light"] .dialog-panel {
  background: rgba(var(--app-bg-rgb),.98);
}

.mobile-device .chat-song-card {
  max-width: 100%;
}

.mobile-device .chat-song-card .chat-song-fav {
  display: none;
}

.mobile-device .btn-icon {
  width: 36px;
  height: 36px;
}

.mobile-device .titlebar-right-group {
  gap: 2px;
}

.mobile-device .titlebar-right-group .btn-icon {
  width: 30px;
  height: 30px;
}

.mobile-device .now-playing-card {
  gap: 12px;
  padding: 12px;
}

.mobile-device .now-playing-card-cover {
  width: 56px;
  height: 56px;
}

.mobile-device .track {
  gap: 8px;
  padding: 8px 10px;
}

.mobile-device .input-app {
  padding: 10px;
  font-size: 14px;
}

.mobile-device .admin-dropdown {
  width: 260px;
}

.mobile-device .btn-primary {
  padding: 8px 16px;
  font-size: 13px;
}

.mobile-device .poster-card:hover {
  transform: none;
}

.now-playing-card, .poster-card, .chat-film-card, .chat-novel-card, .chat-lobby-card, .chat-queue-card, .chat-link-card, .chat-song-card {
  transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .25s cubic-bezier(.4, 0, .2, 1), border-color .2s, background-color .2s;
  box-shadow: inset 0 1px #ffffff0d, 0 1px 2px #0000001f, 0 8px 24px -8px #00000059;
}

.now-playing-card:hover, .poster-card:hover, .chat-film-card:hover, .chat-novel-card:hover, .chat-lobby-card:hover, .chat-queue-card:hover, .chat-link-card:hover, .chat-song-card:hover {
  box-shadow: inset 0 1px #ffffff14, 0 2px 6px #00000026, 0 18px 40px -10px #00000073;
}

.poster-card:hover {
  transform: translateY(-3px);
}

[data-theme="light"] .now-playing-card, [data-theme="light"] .poster-card, [data-theme="light"] .chat-film-card, [data-theme="light"] .chat-novel-card, [data-theme="light"] .chat-queue-card, [data-theme="light"] .chat-link-card, [data-theme="light"] .chat-song-card {
  box-shadow: 0 1px 2px #3c281414, 0 8px 20px -8px #3c28142e;
}

[data-theme="light"] .now-playing-card:hover, [data-theme="light"] .poster-card:hover, [data-theme="light"] .chat-film-card:hover, [data-theme="light"] .chat-novel-card:hover, [data-theme="light"] .chat-queue-card:hover, [data-theme="light"] .chat-link-card:hover, [data-theme="light"] .chat-song-card:hover {
  box-shadow: 0 2px 6px #3c28141a, 0 18px 36px -10px #3c281438;
}

.btn-primary {
  box-shadow: 0 1px #fff3 inset,0 1px 2px #00000040,0 4px 10px -2px rgba(var(--app-accent-rgb),.4);
}

.btn-primary:hover {
  box-shadow: 0 1px #ffffff40 inset,0 2px 4px #00000040,0 8px 18px -4px rgba(var(--app-accent-rgb),.5);
}

.btn-primary:active {
  box-shadow: inset 0 1px 1px #0003, 0 1px 2px #00000026;
}

.btn-icon {
  transition: background-color .15s, color .15s, transform .15s, box-shadow .15s;
  box-shadow: inset 0 1px #ffffff0a;
}

@media (hover: hover) {
  .btn-icon:hover {
    box-shadow: inset 0 1px #ffffff0f, 0 2px 4px #00000026;
  }
}

.btn-icon:active {
  transform: scale(.96);
  box-shadow: inset 0 1px 2px #0003;
}

.input-app {
  transition: background-color .15s, border-color .15s, box-shadow .15s;
  box-shadow: inset 0 1px 2px #0000002e;
}

.input-app:focus {
  box-shadow: 0 1px 2px #0000002e inset,0 0 0 3px rgba(var(--app-accent-rgb),.12);
}

[data-theme="light"] .input-app {
  box-shadow: inset 0 1px 2px #3c28141a;
}

[data-theme="light"] .input-app:focus {
  box-shadow: 0 1px 2px #3c28141a inset,0 0 0 3px rgba(var(--app-accent-rgb),.15);
}

.modal, .dialog-panel {
  box-shadow: inset 0 1px #ffffff0f, 0 24px 48px -12px #0000008c, 0 0 0 1px #0000000d;
}

[data-theme="light"] .modal, [data-theme="light"] .dialog-panel {
  box-shadow: inset 0 1px #ffffffe6, 0 24px 48px -12px #3c281438, 0 0 0 1px #3c28140d;
}

.context-menu, .admin-dropdown {
  box-shadow: inset 0 1px #ffffff0f, 0 12px 32px -4px #00000073;
}

[data-theme="light"] .context-menu, [data-theme="light"] .admin-dropdown {
  box-shadow: inset 0 1px #ffffffe6, 0 12px 32px -4px #3c28142e;
}

.chat-vote-option {
  box-shadow: inset 0 1px 1px #0000001a;
}

.chat-vote-option.selected {
  box-shadow: 0 1px #ffffff0d inset,0 0 0 1px rgba(var(--app-accent-rgb),.3),0 2px 8px -2px rgba(var(--app-accent-rgb),.25);
}

[data-theme="light"] .chat-vote-option {
  box-shadow: inset 0 1px 1px #3c28140f;
}

.range-slider::-webkit-slider-thumb {
  box-shadow: 0 1px #fff6 inset,0 2px 6px rgba(var(--app-accent-rgb),.45),0 1px 2px #00000026;
  border: 2px solid #fffffff2;
}

.range-slider::-webkit-slider-thumb:hover {
  box-shadow: 0 1px #ffffff80 inset,0 4px 12px rgba(var(--app-accent-rgb),.55),0 2px 4px #0000002e;
}

.chat-vote-type-tag, .source-tag, .chat-city-badge, .chat-admin-badge, .chat-bot-badge, .chat-vip-badge {
  box-shadow: inset 0 1px #ffffff14;
}

[data-theme="light"] .chat-vote-type-tag, [data-theme="light"] .source-tag, [data-theme="light"] .chat-city-badge, [data-theme="light"] .chat-admin-badge, [data-theme="light"] .chat-bot-badge, [data-theme="light"] .chat-vip-badge {
  box-shadow: inset 0 1px #0000000a;
}

.music-app.has-custom-bg .sidebar-desktop {
  box-shadow: none;
}

.music-app.has-custom-bg .sidebar-desktop, .music-app.has-custom-bg .now-playing-sidebar, .music-app.has-custom-bg .main-content-mobile, .music-app.has-custom-bg .lobby-page-root {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.music-app .music-body, .music-app .player-bar, .music-app.has-custom-bg .glass {
  backdrop-filter: blur(var(--bg-blur, 20px)) saturate(180%);
  -webkit-backdrop-filter: blur(var(--bg-blur, 20px)) saturate(180%);
}

.music-app .sidebar-desktop.glass, .music-app .now-playing-sidebar.glass, .music-app .main-content-mobile.glass, .music-app .lobby-page-root.glass, .music-app .drive-root.glass {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  will-change: auto;
  transform: none;
}

.music-app.has-custom-bg .player-pill {
  backdrop-filter: blur(var(--bg-blur, 20px)) saturate(180%);
  -webkit-backdrop-filter: blur(var(--bg-blur, 20px)) saturate(180%);
  background: rgba(var(--app-bg-rgb),var(--bg-overlay-alpha, .7)) !important;
}

.music-app .film-content-area, .music-app .ming-pets-page {
  background: rgba(var(--app-bg-rgb),var(--bg-overlay-alpha, .7));
}

.music-app .player-page-header {
  backdrop-filter: none;
  -webkit-backdrop-filter: none !important;
  background: none !important;
}

.film-search-bar {
  background: none;
}

.mobile-device .player-pill {
  box-shadow: inset 0 1px #ffffff0f, 0 4px 16px #00000040, inset 0 0 0 1px #ffffff0a;
}

html.mobile-device[data-theme="light"] .player-pill {
  box-shadow: inset 0 1px #fffc, 0 4px 16px #3c28141f, inset 0 0 0 1px #0000000a;
}

.mobile-device .mobile-bottom-nav {
  box-shadow: 0 -2px 12px -4px #00000026;
}

html.mobile-device[data-theme="light"] .mobile-bottom-nav {
  box-shadow: 0 -2px 12px -4px #3c281414;
}

.poster-category {
  box-shadow: inset 0 1px #fff3, 0 2px 6px #0000004d;
}

.now-playing-card-cover {
  box-shadow: inset 0 1px #ffffff1a, 0 8px 24px #0000004d, 0 0 0 1px #0000000d;
}

.track.active {
  box-shadow: inset 0 1px #ffffff0a;
}

.ming-gift-item {
  max-width: 200px;
  color: var(--app-text);
  border: 1px solid rgba(var(--app-accent-rgb), .35);
  border-radius: 6px;
  margin: 0 4px;
  padding: 1px 8px;
  font-size: 12px;
  line-height: 1.4;
  display: inline-block;
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-gift-item {
    border: 1px solid color-mix(in srgb,var(--app-accent) 35%,transparent);
  }
}

.ming-gift-item {
  background: rgba(var(--app-accent-rgb), .1);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-gift-item {
    background: color-mix(in srgb,var(--app-accent) 10%,transparent);
  }
}

.ming-gift-item {
  vertical-align: middle;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

button.ming-gift-item.ming-gift-item-btn {
  cursor: pointer;
  font-family: inherit;
  transition: border-color .15s, background .15s;
}

button.ming-gift-item.ming-gift-item-btn:hover {
  border-color: var(--app-accent);
  background: rgba(var(--app-accent-rgb), .18);
}

@supports (color: color-mix(in lab, red, red)) {
  button.ming-gift-item.ming-gift-item-btn:hover {
    background: color-mix(in srgb,var(--app-accent) 18%,transparent);
  }
}

.ming-board-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  cursor: pointer;
  text-align: left;
  border-radius: 10px;
  flex-direction: column;
  min-width: 160px;
  max-width: 240px;
  padding: 10px 12px;
  transition: background .15s, border-color .15s;
  display: flex;
}

.ming-board-card > * + * {
  margin-top: 3px;
}

.ming-board-card:hover {
  background: var(--app-card-hover);
  border-color: var(--app-accent);
}

.ming-board-card-title {
  color: var(--app-text);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 600;
  overflow: hidden;
}

.ming-board-card-hint {
  color: var(--app-text-tertiary);
  font-size: 10px;
}

.ming-relation-card {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  border-radius: 10px;
  flex-direction: column;
  min-width: 170px;
  max-width: 240px;
  padding: 10px 12px;
  display: flex;
}

.ming-relation-card > * + * {
  margin-top: 8px;
}

.ming-relation-title {
  color: var(--app-text);
  font-size: 12.5px;
  line-height: 1.5;
}

.ming-relation-badge {
  vertical-align: 1px;
  border-radius: 99px;
  align-items: center;
  padding: 1.5px 6px;
  font-size: 10px;
  font-weight: 700;
  display: inline-flex;
}

.ming-relation-badge > * + * {
  margin-left: 3px;
}

.ming-relation-badge.couple {
  color: #ff4d6d;
  background: #ff4d6d1f;
}

.ming-relation-badge.bestie {
  color: #e05fa8;
  background: #e05fa81f;
}

.ming-relation-badge.brother {
  color: #2bb673;
  background: #2bb6731f;
}

.ming-relation-badge.friend {
  color: #4d8dff;
  background: #4d8dff1f;
}

.ming-relation-select .ming-relation-badge {
  white-space: nowrap;
  gap: 4px;
  padding: 5px 6px;
  font-size: 12px;
}

@media (max-width: 640px) {
  .ming-settings-overlay {
    padding-left: 12px;
    padding-right: 12px;
  }

  .ming-relation-select {
    gap: 4px;
  }

  .ming-relation-select .ming-relation-badge {
    gap: 2px;
    padding: 4px 2px;
    font-size: 10.5px;
  }

  .ming-relation-select svg {
    width: 11px;
    height: 11px;
  }
}

.ming-relation-hint {
  color: var(--app-text-tertiary);
  font-size: 10.5px;
}

.ming-relation-actions {
  display: flex;
}

.ming-relation-actions > * + * {
  margin-left: 8px;
}

.ming-relation-actions button {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  cursor: pointer;
  border-radius: 8px;
  flex: 1;
  padding: 5px 0;
  font-size: 12px;
}

.ming-relation-actions .ok {
  border-color: var(--app-accent);
  color: var(--app-accent);
  font-weight: 600;
}

.ming-relation-actions .ok:hover {
  background: rgba(var(--app-accent-rgb), .12);
}

@supports (color: color-mix(in lab, red, red)) {
  .ming-relation-actions .ok:hover {
    background: color-mix(in srgb,var(--app-accent) 12%,transparent);
  }
}

.ming-relation-actions .no {
  color: var(--app-text-secondary);
}

.ming-relation-actions .no:hover {
  background: var(--app-card-hover);
}

.ming-relation-actions button:disabled {
  opacity: .5;
  cursor: default;
}

.ming-board-replay {
  z-index: 11000;
  cursor: pointer;
  animation: .25s both ming-board-replay-in;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

@keyframes ming-board-replay-in {
  0% {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.ent-checkin {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
}

.ent-checkin > * + * {
  margin-top: 10px;
}

.ent-loginless {
  width: 100%;
  height: 240px;
  color: var(--app-text-tertiary);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: 13px;
  display: flex;
}

.ent-loginless > * + * {
  margin-top: 10px;
}

.ent-loginless p {
  margin: 0;
}

.ent-checkin-cal {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  border-radius: 13px;
  flex-shrink: 0;
  padding: 10px 12px 9px;
}

.ent-checkin-calhead {
  align-items: center;
  padding: 0 2px 8px;
  display: flex;
}

.ent-checkin-calhead > * + * {
  margin-left: 10px;
}

.ent-checkin-flame {
  color: #f5a623;
  background: #f5a6231f;
  border-radius: 9px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  display: flex;
  box-shadow: inset 0 0 0 1px #f5a62347;
}

.ent-checkin-hero-text {
  min-width: 0;
}

.ent-checkin-month-title {
  color: var(--app-text);
  font-variant-numeric: tabular-nums;
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.15;
}

.ent-checkin-month-sub {
  color: var(--app-text-tertiary);
  font-variant-numeric: tabular-nums;
  margin-top: 1px;
  font-size: 10.5px;
}

.ent-checkin-month-sub b {
  color: var(--app-accent);
  font-weight: 600;
}

.ent-checkin-cycle-tag {
  color: var(--app-text-tertiary);
  background: rgba(var(--app-accent-rgb), .08);
  border-radius: 999px;
  flex-shrink: 0;
  margin-left: auto;
  padding: 3px 9px;
  font-size: 10px;
}

@supports (color: color-mix(in lab, red, red)) {
  .ent-checkin-cycle-tag {
    background: color-mix(in srgb,var(--app-accent) 8%,transparent);
  }
}

.ent-checkin-cycle-tag {
  box-shadow: inset 0 0 0 1px rgba(var(--app-accent-rgb), .18);
}

@supports (color: color-mix(in lab, red, red)) {
  .ent-checkin-cycle-tag {
    box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--app-accent) 18%,transparent);
  }
}

.ent-checkin-cycle-tag {
  font-variant-numeric: tabular-nums;
}

.ent-checkin-grid {
  grid-template-columns: repeat(7, 1fr);
  gap: 3px 2px;
  display: grid;
}

.ent-checkin-weekday {
  text-align: center;
  color: var(--app-text-tertiary);
  padding-bottom: 3px;
  font-size: 9.5px;
  font-weight: 500;
}

.ent-checkin-date {
  aspect-ratio: 1;
  --asr: 1;
  font-variant-numeric: tabular-nums;
  color: var(--app-text-secondary);
  background: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 30px;
  margin: 0 auto;
  font-size: 11px;
  font-weight: 500;
  transition: background .2s, color .2s, box-shadow .2s;
  display: flex;
}

.ent-checkin-date.signed {
  background: rgba(var(--app-accent-rgb), .16);
}

@supports (color: color-mix(in lab, red, red)) {
  .ent-checkin-date.signed {
    background: color-mix(in srgb,var(--app-accent) 16%,transparent);
  }
}

.ent-checkin-date.signed {
  color: var(--app-accent);
  font-weight: 600;
}

.ent-checkin-date.today {
  box-shadow: inset 0 0 0 1.5px rgba(var(--app-accent-rgb), .7);
}

@supports (color: color-mix(in lab, red, red)) {
  .ent-checkin-date.today {
    box-shadow: inset 0 0 0 1.5px color-mix(in srgb,var(--app-accent) 70%,transparent);
  }
}

.ent-checkin-date.today {
  color: var(--app-text);
  font-weight: 600;
}

.ent-checkin-date.today.signed {
  background: var(--app-accent);
  color: #fff;
  box-shadow: 0 2px 10px -3px rgba(var(--app-accent-rgb), .65);
}

@supports (color: color-mix(in lab, red, red)) {
  .ent-checkin-date.today.signed {
    box-shadow: 0 2px 10px -3px color-mix(in srgb,var(--app-accent) 65%,transparent);
  }
}

.ent-checkin-date.today:not(.signed) {
  animation: 2s ease-in-out infinite ent-checkin-pulse;
}

.ent-checkin-date.future {
  color: var(--app-text-tertiary);
  opacity: .55;
}

.ent-checkin-date.missed {
  color: var(--app-text-tertiary);
  opacity: .35;
}

.ent-checkin-date.pop {
  animation: .45s cubic-bezier(.34, 1.56, .64, 1) both ent-checkin-pop;
}

@keyframes ent-checkin-pulse {
  0%, to {
    box-shadow: inset 0 0 0 1.5px rgba(var(--app-accent-rgb), .3);
  }

  50% {
    box-shadow: inset 0 0 0 1.5px rgba(var(--app-accent-rgb), .7);
  }
}

@keyframes ent-checkin-pop {
  0% {
    opacity: .4;
    transform: scale(.7);
  }

  60% {
    transform: scale(1.15);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.ent-checkin-milestones {
  flex-shrink: 0;
  display: flex;
}

.ent-checkin-milestones > * + * {
  margin-left: 7px;
}

.ent-checkin-mile {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  cursor: default;
  border-radius: 10px;
  flex: 1;
  justify-content: center;
  align-items: center;
  padding: 6px 4px;
  font-family: inherit;
  transition: background .25s, border-color .25s, transform .1s, box-shadow .25s;
  display: flex;
}

.ent-checkin-mile > * + * {
  margin-left: 4px;
}

.ent-checkin-mile-days {
  color: var(--app-text-tertiary);
  font-variant-numeric: tabular-nums;
  align-items: center;
  font-size: 10.5px;
  font-weight: 600;
  display: inline-flex;
}

.ent-checkin-mile-bonus {
  color: var(--app-text-tertiary);
  font-variant-numeric: tabular-nums;
  opacity: .75;
  font-size: 10.5px;
  font-weight: 700;
}

.ent-checkin-mile.reached {
  background: rgba(var(--app-accent-rgb), .12);
}

@supports (color: color-mix(in lab, red, red)) {
  .ent-checkin-mile.reached {
    background: color-mix(in srgb,var(--app-accent) 12%,transparent);
  }
}

.ent-checkin-mile.reached {
  border-color: rgba(var(--app-accent-rgb), .38);
}

@supports (color: color-mix(in lab, red, red)) {
  .ent-checkin-mile.reached {
    border-color: color-mix(in srgb,var(--app-accent) 38%,transparent);
  }
}

.ent-checkin-mile.reached .ent-checkin-mile-days, .ent-checkin-mile.reached .ent-checkin-mile-bonus {
  color: var(--app-accent);
  opacity: 1;
}

.ent-checkin-mile.claimable {
  cursor: pointer;
  animation: 2s ease-in-out infinite ent-checkin-claimable;
}

.ent-checkin-mile.claimable:hover {
  filter: brightness(1.1);
}

.ent-checkin-mile.claimable:active {
  transform: scale(.96);
}

@keyframes ent-checkin-claimable {
  0%, to {
    box-shadow: 0 0 rgba(var(--app-accent-rgb), .3);
  }

  50% {
    box-shadow: 0 0 0 4px rgba(var(--app-accent-rgb), .14);
  }
}

.ent-checkin-mile.claimed {
  opacity: .62;
}

.ent-checkin-action {
  flex-shrink: 0;
  position: relative;
}

.ent-checkin-btn {
  color: #fff;
  background: var(--app-accent);
  cursor: pointer;
  width: 100%;
  box-shadow: 0 4px 14px -6px rgba(var(--app-accent-rgb), .6);
  border: none;
  border-radius: 11px;
  justify-content: center;
  align-items: center;
  padding: 10px 0;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  transition: filter .15s, transform .1s;
  display: flex;
}

@supports (color: color-mix(in lab, red, red)) {
  .ent-checkin-btn {
    box-shadow: 0 4px 14px -6px color-mix(in srgb,var(--app-accent) 60%,transparent);
  }
}

.ent-checkin-btn > * + * {
  margin-left: 6px;
}

.ent-checkin-btn:hover:not(:disabled):not(.done) {
  filter: brightness(1.08);
}

.ent-checkin-btn:active:not(:disabled):not(.done) {
  transform: scale(.985);
}

.ent-checkin-btn:disabled {
  cursor: default;
}

.ent-checkin-btn.done {
  background: var(--app-card);
  color: var(--app-text-tertiary);
  box-shadow: inset 0 0 0 1px var(--app-border);
}

.ent-checkin-pop {
  background: var(--app-bg);
  border: 1px solid rgba(var(--app-accent-rgb), .35);
  border-radius: 10px;
  align-items: center;
  padding: 7px 14px;
  display: flex;
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translate(-50%);
}

@supports (color: color-mix(in lab, red, red)) {
  .ent-checkin-pop {
    border: 1px solid color-mix(in srgb,var(--app-accent) 35%,transparent);
  }
}

.ent-checkin-pop {
  pointer-events: none;
  white-space: nowrap;
  z-index: 2;
  animation: 2.6s forwards ent-checkin-float;
  box-shadow: 0 8px 24px -8px #00000059;
}

.ent-checkin-pop > * + * {
  margin-left: 8px;
}

.ent-checkin-pop-coins {
  color: #f5a623;
  font-variant-numeric: tabular-nums;
  align-items: center;
  font-size: 14px;
  font-weight: 700;
  display: inline-flex;
}

.ent-checkin-pop-coins > * + * {
  margin-left: 4px;
}

.ent-checkin-pop-bonus {
  color: var(--app-accent);
  background: rgba(var(--app-accent-rgb), .12);
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
}

@supports (color: color-mix(in lab, red, red)) {
  .ent-checkin-pop-bonus {
    background: color-mix(in srgb,var(--app-accent) 12%,transparent);
  }
}

.ent-checkin-today {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  border-radius: 13px;
  flex-direction: column;
  flex: 1;
  min-height: 46px;
  padding: 10px 12px 8px;
  display: flex;
}

.ent-checkin-today-head {
  flex-shrink: 0;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
  display: flex;
}

.ent-checkin-today-title {
  color: var(--app-text);
  align-items: center;
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
}

.ent-checkin-today-title > * + * {
  margin-left: 6px;
}

.ent-checkin-today-count {
  color: var(--app-text-tertiary);
  font-size: 10px;
}

.ent-checkin-today-empty {
  min-height: 28px;
  color: var(--app-text-tertiary);
  text-align: center;
  flex: 1;
  justify-content: center;
  align-items: center;
  font-size: 11px;
  display: flex;
}

.ent-checkin-today-list {
  overscroll-behavior: contain;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  margin: 0 -2px;
  padding: 0 2px 2px;
  display: flex;
  overflow-y: auto;
}

.ent-checkin-today-row {
  align-items: center;
  padding: 4px 2px;
  display: flex;
}

.ent-checkin-today-row > * + * {
  margin-left: 8px;
}

.ent-checkin-today-avatar {
  object-fit: cover;
  border-radius: 50%;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

.ent-checkin-today-avatar.def {
  color: var(--app-text-secondary);
  background: var(--app-border);
  justify-content: center;
  align-items: center;
  font-size: 9.5px;
  font-weight: 700;
  display: inline-flex;
}

.ent-checkin-today-name {
  min-width: 0;
  color: var(--app-text);
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  font-size: 11.5px;
  overflow: hidden;
}

.ent-checkin-today-time {
  color: var(--app-text-tertiary);
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
  font-size: 10.5px;
}

.ent-checkin-today-reward {
  color: #f5a623;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
  align-items: center;
  font-size: 10.5px;
  font-weight: 700;
  display: inline-flex;
}

.ent-checkin-today-reward > * + * {
  margin-left: 3px;
}

@keyframes ent-checkin-float {
  0% {
    opacity: 0;
    transform: translate(-50%, 6px);
  }

  12% {
    opacity: 1;
    transform: translate(-50%);
  }

  80% {
    opacity: 1;
    transform: translate(-50%, -10px);
  }

  to {
    opacity: 0;
    transform: translate(-50%, -22px);
  }
}

.ming-board-replay-canvas {
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.ming-board-replay-head {
  height: var(--titlebar-height, 36px);
  background: var(--app-bg);
  border-bottom: 1px solid var(--app-border);
  pointer-events: none;
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.ming-board-replay-title {
  background: rgba(var(--app-accent-rgb),.12);
  max-width: 70vw;
  max-width: min(70vw, 420px);
  box-shadow: inset 0 0 0 1px rgba(var(--app-accent-rgb),.35);
  color: var(--app-accent);
  text-overflow: ellipsis;
  white-space: nowrap;
  border-radius: 999px;
  padding: 4px 14px;
  font-size: 12px;
  font-weight: 600;
  display: block;
  overflow: hidden;
}

.drive-card-thumb {
  aspect-ratio: 1;
  --asr: 1;
  flex-shrink: 1;
  width: auto;
  min-width: 0;
  max-width: 100%;
  height: auto;
  min-height: 0;
  max-height: 100%;
}

@media (min-width: 641px) {
  .drive-card-thumb {
    max-width: 72px;
    max-height: 72px;
  }
}

@media (max-width: 640px) {
  .drive-card-thumb {
    max-width: 72px;
    max-height: 72px;
  }
}

.drive-dropzone-active .drive-dropzone-overlay {
  animation: 1.2s ease-in-out infinite drive-drop-pulse;
}

@keyframes drive-drop-pulse {
  0%, to {
    opacity: .85;
  }

  50% {
    opacity: 1;
  }
}

.drive-progress-fill {
  background-image: linear-gradient(90deg, #fff0, #ffffff59, #fff0);
  background-repeat: no-repeat;
  background-size: 60px 100%;
  animation: 1.2s linear infinite drive-progress-shimmer;
}

@keyframes drive-progress-shimmer {
  0% {
    background-position: -60px 0;
  }

  to {
    background-position: 100% 0;
  }
}

.drive-preview-mask {
  animation: .15s ease-out drive-fade-in;
}

@keyframes drive-fade-in {
  0% {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.titlebar-module-track {
  border: 1px solid var(--app-border);
  background: var(--app-card);
  box-shadow: none;
  border-radius: 999px;
  flex-shrink: 0;
  align-items: center;
  padding: 2px;
  display: inline-flex;
}

.titlebar-module-track > * + * {
  margin-left: 2px;
}

[data-theme="light"] .titlebar-module-track {
  border-color: var(--app-border);
  background: var(--app-card);
}

.titlebar-mod-item {
  z-index: 0;
  color: var(--app-text-secondary);
  cursor: pointer;
  white-space: nowrap;
  background: none;
  border: none;
  border-radius: 999px;
  padding: 5px 13px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  transition: color .25s;
  position: relative;
}

.titlebar-mod-item:before {
  content: "";
  background: var(--app-accent);
  opacity: 0;
  filter: blur(9px);
  z-index: -1;
  border-radius: 999px;
  transition: opacity .3s;
  position: absolute;
  top: 1px;
  bottom: 1px;
  left: 2px;
  right: 2px;
}

.titlebar-mod-item:hover {
  color: var(--app-text);
}

.titlebar-mod-item:hover:before {
  opacity: .1;
}

.titlebar-mod-item.mod-active {
  color: var(--app-accent);
  cursor: default;
}

.titlebar-mod-item.mod-active:before {
  animation: 5s ease-in-out infinite titlebar-mod-drift;
}

@keyframes titlebar-mod-drift {
  0%, to {
    opacity: .08;
    transform: translate(-8px) scale(.94);
  }

  50% {
    opacity: .15;
    transform: translate(8px) scale(1.06);
  }
}

.titlebar-module-menu .titlebar-mod-item, .titlebar-module-menu > button.btn-icon {
  opacity: 0;
  will-change: transform,opacity;
  transition: none;
  animation: .32s cubic-bezier(.34, 1.56, .64, 1) forwards titlebar-menu-pop;
}

.titlebar-module-menu .titlebar-mod-item.mod-active {
  animation-name: titlebar-menu-pop-active;
}

.titlebar-module-menu .titlebar-mod-item.mod-inactive, .titlebar-module-menu > button.btn-icon {
  animation-name: titlebar-menu-pop-inactive;
}

@keyframes titlebar-menu-pop-active {
  0% {
    opacity: 0;
    transform: translateY(-4px);
  }

  60% {
    opacity: 1;
    transform: translateY(1px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes titlebar-menu-pop-inactive {
  0% {
    opacity: 0;
    transform: translateY(-4px);
  }

  60% {
    opacity: .85;
    transform: translateY(1px);
  }

  to {
    opacity: .7;
    transform: translateY(0);
  }
}

.titlebar-module-track.is-mobile {
  flex: 1;
  gap: 0;
  min-width: 0;
  padding: 2px;
}

.titlebar-module-track.is-mobile .titlebar-mod-item {
  flex: 1;
  justify-content: center;
  min-width: 0;
  padding: 5px 2px;
}

.titlebar-module-menu .titlebar-mod-close {
  margin-left: 6px;
}

.titlebar-module-track.is-mobile ~ .titlebar-mod-close, .titlebar-module-menu .titlebar-mod-close.is-mobile {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
}

.chat-wp {
  --app-card: rgba(var(--app-accent-rgb), .14);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp {
    --app-card: color-mix(in srgb, var(--app-accent) 14%, #2a2e36a8);
  }
}

.chat-wp {
  --app-card-hover: rgba(var(--app-accent-rgb), .16);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp {
    --app-card-hover: color-mix(in srgb, var(--app-accent) 16%, #343942b8);
  }
}

.chat-wp {
  --app-card-active: rgba(var(--app-accent-rgb), .18);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp {
    --app-card-active: color-mix(in srgb, var(--app-accent) 18%, #3e444ec7);
  }
}

.chat-wp {
  --app-border: #ffffff24;
  --app-text: #f2f2f4;
  --app-text-rgb: 242, 242, 244;
  --app-text-secondary: #f0f0f4b8;
  --app-text-tertiary: #f0f0f485;
}

.chat-wp .chat-content, .chat-wp .chat-sender, .chat-wp .chat-time, .chat-wp .chat-reply-label, .chat-wp .chat-reply-text, .chat-wp .chat-reply-sender, .chat-wp .chat-voice-duration, .chat-wp .chat-vote-loading {
  text-shadow: 0 1px 3px #000000a6;
}

.chat-wp .chat-reply-quote {
  background: #2a2e3685;
  background: rgba(var(--app-accent-rgb), .22);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp .chat-reply-quote {
    background: color-mix(in srgb,var(--app-accent) 22%,#2a2e3685);
  }
}

.chat-wp .chat-copy-btn, .chat-wp .chat-delete-btn {
  background: #2a2e36a3;
  background: rgba(var(--app-accent-rgb), .3);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp .chat-copy-btn, .chat-wp .chat-delete-btn {
    background: color-mix(in srgb,var(--app-accent) 30%,#2a2e36a3);
  }
}

.chat-wp .chat-copy-btn, .chat-wp .chat-delete-btn {
  color: #ffffffe0;
  border: 1px solid #ffffff29;
}

.chat-wp .chat-copy-btn:hover, .chat-wp .chat-delete-btn:hover {
  background: #3a3f48bf;
  background: rgba(var(--app-accent-rgb), .38);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp .chat-copy-btn:hover, .chat-wp .chat-delete-btn:hover {
    background: color-mix(in srgb,var(--app-accent) 38%,#3a3f48bf);
  }
}

.chat-wp .chat-city-badge {
  background: #2a2e3685;
  background: rgba(var(--app-accent-rgb), .22);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp .chat-city-badge {
    background: color-mix(in srgb,var(--app-accent) 22%,#2a2e3685);
  }
}

.chat-wp .chat-city-badge {
  color: #ffffffd1;
}

.chat-wp .chat-mention, .chat-wp .chat-mention-static {
  background: #2a2e3694;
  background: rgba(var(--app-accent-rgb), .26);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp .chat-mention, .chat-wp .chat-mention-static {
    background: color-mix(in srgb,var(--app-accent) 26%,#2a2e3694);
  }
}

.chat-wp .chat-vip-badge:before {
  background: #2a2e3694;
  background: rgba(var(--app-accent-rgb), .26);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp .chat-vip-badge:before {
    background: color-mix(in srgb,var(--app-accent) 26%,#2a2e3694);
  }
}

.chat-wp .chat-msg-admin {
  background: #2a2e3659;
  background: rgba(var(--app-accent-rgb), .16);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp .chat-msg-admin {
    background: color-mix(in srgb,var(--app-accent) 16%,#2a2e3659);
  }
}

.chat-wp .chat-msg-admin:hover {
  background: #2a2e366b;
  background: rgba(var(--app-accent-rgb), .2);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp .chat-msg-admin:hover {
    background: color-mix(in srgb,var(--app-accent) 20%,#2a2e366b);
  }
}

.chat-wp .chat-voice-msg {
  background: #2a2e3685;
  background: rgba(var(--app-accent-rgb), .22);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp .chat-voice-msg {
    background: color-mix(in srgb,var(--app-accent) 22%,#2a2e3685);
  }
}

.chat-wp .chat-match-chip {
  background: #2a2e3685;
  background: rgba(var(--app-accent-rgb), .24);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp .chat-match-chip {
    background: color-mix(in srgb,var(--app-accent) 24%,#2a2e3685);
  }
}

.chat-wp .ming-gift-item {
  background: #2a2e3694;
  background: rgba(var(--app-accent-rgb), .26);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp .ming-gift-item {
    background: color-mix(in srgb,var(--app-accent) 26%,#2a2e3694);
  }
}

.chat-wp .ming-gift-item {
  border-color: #ffffff38;
}

.chat-wp button.ming-gift-item.ming-gift-item-btn:hover {
  background: #3a3f48bf;
  background: rgba(var(--app-accent-rgb), .42);
}

@supports (color: color-mix(in lab, red, red)) {
  .chat-wp button.ming-gift-item.ming-gift-item-btn:hover {
    background: color-mix(in srgb,var(--app-accent) 42%,#3a3f48bf);
  }
}

.space-post, .space-note-card, .space-composer {
  isolation: isolate;
  background-color: var(--app-bg);
  border: 1px solid var(--app-border);
  background-image: linear-gradient(#ffffff0d, #ffffff0d);
  transition: transform .3s cubic-bezier(.4, 0, .2, 1), box-shadow .3s cubic-bezier(.4, 0, .2, 1), border-color .3s;
  position: relative;
  box-shadow: 0 1px 2px #0000001a, 0 4px 10px #00000014, 0 14px 32px -12px #00000029, inset 0 1px #ffffff0b;
}

.space-post:hover, .space-note-card:hover {
  border-color: rgba(var(--app-accent-rgb),.32);
  box-shadow: 0 2px 4px #0000001f, 0 8px 18px #0000001a, 0 20px 44px -14px #0003, inset 0 1px #ffffff0f;
}

[data-theme="light"] .space-post, [data-theme="light"] .space-note-card, [data-theme="light"] .space-composer {
  background-color: var(--app-bg);
  background-image: linear-gradient(#7850280a, #7850280a);
  box-shadow: 0 1px 2px #3c28140f, 0 4px 10px #3c28140d, 0 14px 32px -12px #3c28141a, inset 0 1px #ffffffb3;
}

[data-theme="light"] .space-post:hover, [data-theme="light"] .space-note-card:hover {
  box-shadow: 0 2px 4px #3c281412, 0 8px 18px #3c281412, 0 20px 44px -14px #3c281421, inset 0 1px #ffffffd9;
}

@keyframes space-view-menu-in {
  0% {
    opacity: 0;
    transform: translateY(-4px) scale(.97);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.space-text-fade {
  -webkit-mask-image: linear-gradient(#000 0% calc(100% - 26px), #0000 100%);
  mask-image: linear-gradient(#000 0% calc(100% - 26px), #0000 100%);
}

.space-text-fade-sm {
  -webkit-mask-image: linear-gradient(#000 0% calc(100% - 1.4em), #0000 100%);
  mask-image: linear-gradient(#000 0% calc(100% - 1.4em), #0000 100%);
}

.floating-modal-backdrop {
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  background: #00000073;
}

@keyframes introModalIn {
  0% {
    opacity: 0;
    transform: scale(.96) translateY(10px);
  }

  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.intro-modal-pop {
  animation: .24s cubic-bezier(.22, 1, .36, 1) introModalIn;
}

@media (prefers-reduced-motion: reduce) {
  .intro-modal-pop {
    animation: none;
  }
}

.intro-card {
  transition: background-color .2s, border-color .2s;
}

.intro-card:hover {
  background: rgba(var(--app-accent-rgb), .06);
}

@supports (color: color-mix(in lab, red, red)) {
  .intro-card:hover {
    background: color-mix(in srgb,var(--app-accent) 6%,var(--app-card));
  }
}

.intro-card:hover {
  border-color: rgba(var(--app-accent-rgb), .22);
}

@supports (color: color-mix(in lab, red, red)) {
  .intro-card:hover {
    border-color: color-mix(in srgb,var(--app-accent) 22%,var(--app-border));
  }
}

.intro-add-btn {
  background: var(--app-card);
  border: 1px dashed var(--app-border);
  color: var(--app-text-secondary);
  transition: background-color .2s, border-color .2s, color .2s;
}

.intro-add-btn:hover {
  background: rgba(var(--app-accent-rgb), .08);
}

@supports (color: color-mix(in lab, red, red)) {
  .intro-add-btn:hover {
    background: color-mix(in srgb,var(--app-accent) 8%,var(--app-card));
  }
}

.intro-add-btn:hover {
  border-color: rgba(var(--app-accent-rgb), .38);
}

@supports (color: color-mix(in lab, red, red)) {
  .intro-add-btn:hover {
    border-color: color-mix(in srgb,var(--app-accent) 38%,transparent);
  }
}

.intro-add-btn:hover {
  color: var(--app-accent);
}

.intro-ghost-btn {
  background: var(--app-card);
  border: 1px solid var(--app-border);
  color: var(--app-text);
  transition: background-color .2s, border-color .2s, color .2s;
}

.intro-ghost-btn:hover {
  background: rgba(var(--app-accent-rgb), .07);
}

@supports (color: color-mix(in lab, red, red)) {
  .intro-ghost-btn:hover {
    background: color-mix(in srgb,var(--app-accent) 7%,var(--app-card));
  }
}

.intro-ghost-btn:hover {
  border-color: rgba(var(--app-accent-rgb), .3);
}

@supports (color: color-mix(in lab, red, red)) {
  .intro-ghost-btn:hover {
    border-color: color-mix(in srgb,var(--app-accent) 30%,var(--app-border));
  }
}

.intro-ghost-btn:hover {
  color: var(--app-accent);
}

.intro-save-btn {
  background: rgba(var(--app-accent-rgb),.14);
  color: var(--app-accent);
  box-shadow: inset 0 0 0 1px rgba(var(--app-accent-rgb),.22);
  transition: background-color .2s, box-shadow .2s;
}

.intro-save-btn:hover:not(:disabled) {
  background: rgba(var(--app-accent-rgb),.2);
  box-shadow: inset 0 0 0 1px rgba(var(--app-accent-rgb),.3);
}

.intro-field {
  transition: border-color .2s;
}

.intro-field:focus {
  border-color: rgba(var(--app-accent-rgb),.45);
}

.legacy-chromium .glass, .legacy-chromium .music-app .music-body, .legacy-chromium .music-app .player-bar, .legacy-chromium .music-app.has-custom-bg .glass, .legacy-chromium .music-app.has-custom-bg .player-pill {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.legacy-chromium .music-app.has-custom-bg:before {
  filter: blur(var(--bg-blur, 20px));
  transform: scale(1.05);
}

.ff * {
  backdrop-filter: none;
  -webkit-backdrop-filter: none !important;
}

html.ff {
  scrollbar-width: thin;
  scrollbar-color: #ffffff26 transparent;
}

html.ff[data-theme="light"] {
  scrollbar-color: #00000026 transparent;
}

.ff .music-app.has-custom-bg:before {
  filter: blur(var(--bg-blur, 20px)) saturate(1.8);
  transform: scale(1.05);
}

.ff .glass {
  background: rgba(var(--app-bg-rgb),.96);
}

.ff .music-app.has-custom-bg .glass {
  background: rgba(var(--app-bg-rgb),var(--bg-overlay-alpha, .7));
}

@keyframes enter {
  0% {
    opacity: var(--tw-enter-opacity, 1);
    transform: translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));
  }
}

@keyframes exit {
  to {
    opacity: var(--tw-exit-opacity, 1);
    transform: translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
  }
}

@property --tw-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-translate-z {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false
}

@property --tw-space-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-leading {
  syntax: "*";
  inherits: false
}

@property --tw-font-weight {
  syntax: "*";
  inherits: false
}

@property --tw-tracking {
  syntax: "*";
  inherits: false
}

@property --tw-ordinal {
  syntax: "*";
  inherits: false
}

@property --tw-slashed-zero {
  syntax: "*";
  inherits: false
}

@property --tw-numeric-figure {
  syntax: "*";
  inherits: false
}

@property --tw-numeric-spacing {
  syntax: "*";
  inherits: false
}

@property --tw-numeric-fraction {
  syntax: "*";
  inherits: false
}

@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-ring-inset {
  syntax: "*";
  inherits: false
}

@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}

@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}

@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-duration {
  syntax: "*";
  inherits: false
}

@property --tw-ease {
  syntax: "*";
  inherits: false
}

@property --tw-scale-x {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-scale-y {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-scale-z {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
  *, :before, :after, ::backdrop {
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-translate-z: 0;
    --tw-rotate-x: initial;
    --tw-rotate-y: initial;
    --tw-rotate-z: initial;
    --tw-skew-x: initial;
    --tw-skew-y: initial;
    --tw-space-y-reverse: 0;
    --tw-border-style: solid;
    --tw-leading: initial;
    --tw-font-weight: initial;
    --tw-tracking: initial;
    --tw-ordinal: initial;
    --tw-slashed-zero: initial;
    --tw-numeric-figure: initial;
    --tw-numeric-spacing: initial;
    --tw-numeric-fraction: initial;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-color: initial;
    --tw-shadow-alpha: 100%;
    --tw-inset-shadow: 0 0 #0000;
    --tw-inset-shadow-color: initial;
    --tw-inset-shadow-alpha: 100%;
    --tw-ring-color: initial;
    --tw-ring-shadow: 0 0 #0000;
    --tw-inset-ring-color: initial;
    --tw-inset-ring-shadow: 0 0 #0000;
    --tw-ring-inset: initial;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-outline-style: solid;
    --tw-blur: initial;
    --tw-brightness: initial;
    --tw-contrast: initial;
    --tw-grayscale: initial;
    --tw-hue-rotate: initial;
    --tw-invert: initial;
    --tw-opacity: initial;
    --tw-saturate: initial;
    --tw-sepia: initial;
    --tw-drop-shadow: initial;
    --tw-drop-shadow-color: initial;
    --tw-drop-shadow-alpha: 100%;
    --tw-drop-shadow-size: initial;
    --tw-backdrop-blur: initial;
    --tw-backdrop-brightness: initial;
    --tw-backdrop-contrast: initial;
    --tw-backdrop-grayscale: initial;
    --tw-backdrop-hue-rotate: initial;
    --tw-backdrop-invert: initial;
    --tw-backdrop-opacity: initial;
    --tw-backdrop-saturate: initial;
    --tw-backdrop-sepia: initial;
    --tw-duration: initial;
    --tw-ease: initial;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-scale-z: 1;
  }
}
