:root {
  --neco-bg: #fff8fb;
  --neco-bg-2: #f7fbff;
  --neco-card: rgba(255,255,255,.86);
  --neco-card-solid: #fff;
  --neco-ink: #26324a;
  --neco-muted: #71809a;
  --neco-pink: #ff7eb6;
  --neco-rose: #ff9fbe;
  --neco-blue: #82c7ff;
  --neco-mint: #8de6d1;
  --neco-violet: #b7a3ff;
  --neco-line: rgba(255,126,182,.18);
  --neco-shadow: 0 12px 30px rgba(93,73,118,.10);
  --neco-shadow-soft: 0 6px 18px rgba(93,73,118,.07);
  --semi-border-radius-small: 10px;
  --semi-border-radius-medium: 14px;
  --semi-border-radius-large: 20px;
  --semi-color-primary: #ff6fae;
  --semi-color-primary-hover: #ff5aa3;
  --semi-color-primary-active: #ed4d96;
  --semi-color-primary-light-default: rgba(255,126,182,.12);
  --semi-color-primary-light-hover: rgba(255,126,182,.18);
  --semi-color-primary-light-active: rgba(255,126,182,.24);
}
html, body, #root { min-height: 100%; }
body {
  color: var(--neco-ink);
  background:
    radial-gradient(circle at 8% 8%, rgba(255,180,213,.38), transparent 28rem),
    radial-gradient(circle at 92% 12%, rgba(130,199,255,.28), transparent 26rem),
    linear-gradient(135deg, var(--neco-bg) 0%, var(--neco-bg-2) 52%, #fff 100%);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background-image: radial-gradient(circle, rgba(255,126,182,.11) 0 1px, transparent 1.7px);
  background-size: 42px 42px;
  opacity: .45;
}
.app-layout, .app-shell, .app-content-shell {
  background: transparent !important;
}
.app-content-shell {
  isolation: isolate;
}
.app-content-shell::before {
  content: "";
  position: absolute;
  inset: 64px 12px auto auto;
  width: 180px;
  height: 180px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255,126,182,.16), transparent 66%);
  pointer-events: none;
  z-index: -1;
}
.app-topbar { color: var(--neco-ink) !important; }
.app-topbar-inner > div {
  border: 1px solid rgba(255,126,182,.16) !important;
  background: rgba(255,255,255,.88) !important;
  box-shadow: 0 8px 22px rgba(64,45,86,.08) !important;
  backdrop-filter: blur(8px) saturate(1.06);
}
.app-topbar-inner > div::after {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 999px;
  margin-left: -4px;
  background: linear-gradient(135deg, var(--neco-pink), var(--neco-blue));
  box-shadow: 0 0 0 6px rgba(255,126,182,.12);
  flex: 0 0 auto;
}
.app-sider {
  padding: 10px 0 12px 10px !important;
}
.app-sider .semi-navigation {
  border: 1px solid rgba(255,126,182,.14) !important;
  border-radius: 22px !important;
  background: rgba(255,255,255,.82) !important;
  box-shadow: var(--neco-shadow-soft);
  backdrop-filter: blur(12px);
}
.semi-navigation-item, .semi-navigation-sub-title {
  border-radius: 14px !important;
}
.semi-navigation-item-selected, .semi-navigation-sub-title-selected {
  background: linear-gradient(135deg, rgba(255,126,182,.18), rgba(130,199,255,.16)) !important;
  color: #d63b86 !important;
  box-shadow: inset 0 0 0 1px rgba(255,126,182,.12);
}
.semi-card, .semi-modal-content, .semi-popover-content, .semi-table-wrapper, .semi-tabs-bar-card {
  border-color: rgba(255,126,182,.13) !important;
  box-shadow: var(--neco-shadow-soft);
}
.semi-card, .semi-modal-content, .semi-popover-content {
  background: var(--neco-card) !important;
}
.semi-card:hover {
  box-shadow: 0 8px 22px rgba(93,73,118,.09);
  transition: box-shadow .16s ease;
}
.semi-table, .semi-table-thead > .semi-table-row > .semi-table-row-head {
  background: rgba(255,255,255,.74) !important;
}
.semi-table-tbody > .semi-table-row:hover > .semi-table-row-cell {
  background: rgba(255,239,247,.66) !important;
}
.semi-button-primary:not(.semi-button-disabled) {
  border: 0 !important;
  background: linear-gradient(135deg, var(--neco-pink), #ff91c5 48%, var(--neco-blue)) !important;
  box-shadow: 0 10px 20px rgba(255,111,174,.22);
}
.semi-button-primary:not(.semi-button-disabled):hover {
  filter: brightness(1.01);
  box-shadow: 0 10px 22px rgba(255,111,174,.22);
}
.semi-button-tertiary, .semi-button-light {
  border-radius: 999px !important;
}
.semi-input-wrapper, .semi-select, .semi-select-selection, .semi-textarea-wrapper {
  border-color: rgba(255,126,182,.18) !important;
  background: rgba(255,255,255,.72) !important;
  border-radius: 14px !important;
}
.semi-input-wrapper-focus, .semi-select-focus, .semi-textarea-wrapper-focus {
  border-color: rgba(255,111,174,.54) !important;
  box-shadow: 0 0 0 4px rgba(255,126,182,.12) !important;
}
.semi-tag, .semi-badge-count {
  border-radius: 999px !important;
}
.semi-progress-line-outer { border-radius: 999px !important; }
.semi-progress-line-inner {
  background: linear-gradient(90deg, var(--neco-pink), var(--neco-blue)) !important;
}
.necol-launcher-shell { filter: drop-shadow(0 16px 22px rgba(255,126,182,.22)); }
.necol-bubble, .necol-popover, .necol-panel-card, .necol-hero-card, .necol-stat-card, .necol-detail-card, .necol-balance-card {
  border-color: rgba(255,126,182,.18) !important;
  box-shadow: var(--neco-shadow-soft) !important;
}
.necol-chat-bubble-assistant {
  background: linear-gradient(135deg, rgba(255,244,249,.96), rgba(241,248,255,.96)) !important;
}
.necol-chat-bubble-user {
  background: linear-gradient(135deg, #ff7eb6, #8ccfff) !important;
}
.app-footer-shell {
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.66));
}
@media (max-width: 768px) {
  .app-topbar-inner > div { border-radius: 0 0 18px 18px !important; }
  .app-sider { padding-right: 10px !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
body[theme-mode="dark"], .dark body {
  --neco-bg: #151827;
  --neco-bg-2: #1d2334;
  --neco-card: rgba(27,32,48,.86);
  --neco-card-solid: #1b2030;
  --neco-ink: #f6f2fb;
  --neco-muted: #b9bed0;
  --neco-line: rgba(255,156,198,.16);
  background:
    radial-gradient(circle at 8% 8%, rgba(255,126,182,.16), transparent 28rem),
    radial-gradient(circle at 92% 12%, rgba(130,199,255,.14), transparent 26rem),
    linear-gradient(135deg, #111421 0%, #171c2b 58%, #111827 100%);
}
body[theme-mode="dark"] .app-topbar-inner > div,
.dark .app-topbar-inner > div,
body[theme-mode="dark"] .app-sider .semi-navigation,
.dark .app-sider .semi-navigation {
  background: rgba(24,29,44,.88) !important;
  border-color: rgba(255,255,255,.08) !important;
}
body[theme-mode="dark"] .semi-card,
.dark .semi-card,
body[theme-mode="dark"] .semi-modal-content,
.dark .semi-modal-content,
body[theme-mode="dark"] .semi-popover-content,
.dark .semi-popover-content {
  background: rgba(24,29,44,.86) !important;
  border-color: rgba(255,255,255,.08) !important;
}

@supports (content-visibility: auto) {
  .semi-table-wrapper, .semi-card, .necol-detail-card, .necol-stat-card {
    content-visibility: auto;
    contain-intrinsic-size: 1px 240px;
  }
}


.necol-toy-shell, .necol-launcher-shell {
  overflow: visible !important;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  will-change: left, top;
}
.necol-toy-image-frame, .necol-launcher-image-frame {
  overflow: visible !important;
  transform: translateZ(0);
  contain: paint;
}
.necol-toy-image, .necol-toy-image-frame > img, .necol-launcher-image-frame > img {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  -webkit-user-drag: none;
  backface-visibility: hidden;
  transform: translateZ(0);
}

.necol-laser-line {
  position: fixed !important;
  height: 3px !important;
  transform-origin: 0 50% !important;
  border-radius: 999px !important;
  pointer-events: none !important;
  z-index: 99998 !important;
  background: linear-gradient(90deg, rgba(255,42,82,.95), rgba(255,42,82,.45), rgba(255,255,255,0)) !important;
  box-shadow: 0 0 10px rgba(255,42,82,.78), 0 0 20px rgba(255,42,82,.38) !important;
}
.necol-laser-dot {
  position: fixed !important;
  width: 18px !important;
  height: 18px !important;
  margin-left: -9px !important;
  margin-top: -9px !important;
  border-radius: 999px !important;
  pointer-events: none !important;
  z-index: 99999 !important;
  background: radial-gradient(circle, #fff 0 12%, #ff1744 22%, #d50032 48%, rgba(213,0,50,.08) 72%) !important;
  box-shadow: 0 0 0 5px rgba(255,23,68,.14), 0 0 18px rgba(255,23,68,.88), 0 0 34px rgba(255,23,68,.42) !important;
  animation: necolLaserPulse .78s ease-in-out infinite alternate;
}
.necol-toy-pointer {
  position: fixed !important;
  transform: translate(-50%, -50%) !important;
  pointer-events: none !important;
  z-index: 99999 !important;
  filter: drop-shadow(0 8px 14px rgba(255,42,82,.28));
}
body.necol-drag-lock {
  cursor: none !important;
  user-select: none !important;
}
@keyframes necolLaserPulse {
  from { transform: scale(.9); opacity: .78; }
  to { transform: scale(1.16); opacity: 1; }
}
