/* Shared, module-scoped UI refinements based on the local UI/UX Pro Max skill. */
:root {
  --uupm-ink: #18181b;
  --uupm-muted: #71717a;
  --uupm-surface: #ffffff;
  --uupm-border: #e4e4e7;
  --uupm-focus: #0f766e;
  --uupm-radius: 8px;
}

:where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--uupm-focus);
  outline-offset: 3px;
}

/* Portal */
.portal-home.gradient-bg {
  background: #f8fafc;
}

.portal-home #particles-canvas,
.portal-home .glow {
  display: none;
}

.portal-home .portal-card {
  border: 1px solid var(--uupm-border);
  border-radius: var(--uupm-radius);
  background: var(--uupm-surface);
  backdrop-filter: none;
  box-shadow: none;
  transition: border-color 180ms ease, background-color 180ms ease;
}

.portal-home .portal-card:hover {
  border-color: var(--uupm-ink);
  background: #fafafa;
  box-shadow: none;
  transform: none;
}

.portal-home .portal-card > div {
  border-radius: 8px;
}

.portal-home .logo-float {
  animation: none;
}

.portal-home .theme-toggle {
  position: fixed;
  inset: 24px 24px auto auto;
  z-index: 100;
  width: 48px;
  height: 48px;
  border: 1px solid var(--uupm-border);
  border-radius: 8px;
  box-shadow: none;
}

.portal-home .social-link {
  border: 1px solid var(--uupm-border);
  box-shadow: none;
}

.portal-home .social-link:hover {
  transform: none;
}

/* Software directory */
.module-software {
  background: #f8fafc !important;
}

.module-software header {
  border-color: var(--uupm-border) !important;
  box-shadow: none;
}

.software-home > section,
.software-home > div:last-child,
.software-home #softwareGrid > div {
  border-radius: var(--uupm-radius) !important;
  box-shadow: none !important;
}

.software-home > section,
.software-home > div:last-child {
  border-color: var(--uupm-border) !important;
}

.software-home input[type="search"] {
  min-height: 44px;
  border-color: #d4d4d8 !important;
}

.software-home input[type="search"]:focus {
  border-color: #059669 !important;
  box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.14);
}

/* Bookmark directory */
.module-bookmark {
  background: #fffbeb;
  color: #0f172a;
}

.module-bookmark .site-header,
.module-bookmark .search-box,
.module-bookmark .sidebar,
.module-bookmark .bookmark-card {
  border-color: #faeee1 !important;
  box-shadow: none !important;
}

.module-bookmark .bookmark-card,
.module-bookmark .search-box,
.module-bookmark .sidebar {
  border-radius: var(--uupm-radius) !important;
}

.module-bookmark .bookmark-card:hover {
  border-color: #d97706 !important;
  box-shadow: none !important;
  transform: none !important;
}

.module-bookmark .search-section {
  padding-top: 2rem;
}

.module-bookmark .search-box input {
  min-height: 48px;
}

.module-bookmark .btn,
.module-bookmark #loadMoreBtn {
  min-height: 40px;
  border-radius: 6px;
}

/* Member center */
.member-container {
  background: #f8fafc !important;
}

.member-container .sidebar,
.member-container .content-card,
.member-container .stat-card {
  border-color: var(--uupm-border) !important;
  border-radius: var(--uupm-radius) !important;
  box-shadow: none !important;
}

.member-container .sidebar,
.member-container .content-card,
.member-container .stat-card {
  background: #ffffff;
}

.member-container .stat-card:hover {
  border-color: #18181b !important;
  box-shadow: none !important;
  transform: none !important;
}

.member-container .vip-status-card {
  border-radius: var(--uupm-radius) !important;
  box-shadow: none !important;
}

@media (max-width: 768px) {
  .portal-home main {
    justify-content: flex-start;
  }

  .portal-home .portal-card {
    min-height: 172px;
  }

  .module-tool .tool-card {
    min-height: 168px;
  }

  .module-bookmark .search-section {
    padding-top: 1.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
