/**
 * DPS Shield User Account Menu & Auth Styles
 * Premium, modern, theme-adaptive design with robust Elementor integration.
 *
 * @package DPS_Shield
 */

/* ==========================================================================
   User Account Dropdown Menu (VnExpress / SaaS Style)
   ========================================================================== */

.dps-user-menu-wrapper {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px;
  line-height: 1.4;
  box-sizing: border-box;
  z-index: 99999;
  margin: 0 !important;
  padding: 0 !important;
}

.dps-user-menu-wrapper * {
  box-sizing: border-box;
}

/* Trigger Button */
.dps-user-menu-trigger {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  background: transparent !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  padding: 4px 8px 4px 4px !important;
  border-radius: 9999px !important;
  cursor: pointer !important;
  outline: none !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
  color: inherit !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  line-height: 1 !important;
  height: auto !important;
  text-decoration: none !important;
}

.dps-user-menu-trigger:hover,
.dps-user-menu-trigger:focus,
.dps-user-menu-wrapper.is-active .dps-user-menu-trigger {
  background: rgba(0, 0, 0, 0.05) !important;
  border-color: rgba(0, 0, 0, 0.16) !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08) !important;
}

/* Avatar in Trigger */
.dps-user-menu-avatar {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  border: 1.5px solid #ffffff !important;
  display: block !important;
  flex-shrink: 0 !important;
  background: linear-gradient(135deg, #e0e7ff 0%, #dbeafe 100%) !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12) !important;
}

/* Caret Arrow */
.dps-user-menu-caret {
  width: 10px !important;
  height: 6px !important;
  color: #64748b !important;
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  flex-shrink: 0 !important;
}

.dps-user-menu-wrapper.is-active .dps-user-menu-caret,
.dps-user-menu-wrapper:hover .dps-user-menu-caret {
  transform: rotate(180deg) !important;
}

/* Dropdown Popup Card */
.dps-user-menu-dropdown {
  display: none;
  position: absolute !important;
  top: calc(100% + 10px) !important;
  right: 0 !important;
  min-width: 250px !important;
  max-width: 320px !important;
  background: #ffffff !important;
  border-radius: 12px !important;
  box-shadow: 0 14px 35px -4px rgba(15, 23, 42, 0.18), 0 4px 12px -2px rgba(15, 23, 42, 0.08) !important;
  border: 1px solid #e2e8f0 !important;
  padding: 12px !important;
  text-align: left !important;
  z-index: 9999999 !important;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease !important;
}

/* Open states (both hover and active click) */
.dps-user-menu-wrapper.is-active .dps-user-menu-dropdown {
  display: block !important;
  animation: dpsMenuFadeIn 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

@media (hover: hover) {
  .dps-user-menu-wrapper:hover .dps-user-menu-dropdown {
    display: block !important;
    animation: dpsMenuFadeIn 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  }
}

@keyframes dpsMenuFadeIn {
  from {
    opacity: 0;
    transform: translateY(-6px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Header inside Dropdown */
.dps-user-menu-header {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 4px 4px 10px 4px !important;
}

.dps-user-menu-drop-avatar {
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  flex-shrink: 0 !important;
  border: 2px solid #ffffff !important;
  background: linear-gradient(135deg, #e0e7ff 0%, #dbeafe 100%) !important;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1) !important;
}

.dps-user-menu-meta {
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  min-width: 0 !important;
}

.dps-user-menu-name {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 1.3 !important;
}

.dps-user-menu-email {
  font-size: 12px !important;
  color: #64748b !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 1.3 !important;
  margin-top: 2px !important;
}

/* Divider */
.dps-user-menu-divider {
  height: 1px !important;
  background: #f1f5f9 !important;
  margin: 6px -4px 8px -4px !important;
}

/* List Items */
.dps-user-menu-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.dps-user-menu-item {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 9px 12px !important;
  color: #334155 !important;
  text-decoration: none !important;
  border-radius: 8px !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
  background: transparent !important;
  border: none !important;
  width: 100% !important;
}

.dps-user-menu-item:hover {
  background: #fef2f2 !important;
  color: #dc2626 !important;
}

.dps-user-menu-logout-icon {
  stroke: currentColor !important;
  flex-shrink: 0 !important;
  margin-left: 8px !important;
  transition: transform 0.15s ease !important;
}

.dps-user-menu-item:hover .dps-user-menu-logout-icon {
  transform: translateX(2px) !important;
}

/* ==========================================================================
   Nav Menu Integration (Elementor, Gutenberg, Theme Navigation)
   ========================================================================== */

.menu-item.dps-menu-user-dropdown,
.menu-item.dps-menu-google-login {
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
}

/* State-based dynamic visibility classes */
.dps-is-hidden,
li.dps-is-hidden,
a.dps-is-hidden,
li.menu-item.dps-is-hidden,
.menu-item.dps-is-hidden,
.c-top-menu__item.dps-is-hidden,
.c-mobile-menu__item.dps-is-hidden,
.c-top-bar-menu__item.dps-is-hidden,
li:has(> a[href*="action=logout"].dps-is-hidden) {
  display: none !important;
}

/* Ensure dps-menu-logout inherits 100% native menu padding and styling */
.menu-item.dps-menu-logout {
  /* Inherit all theme/Elementor defaults */
}

.menu-item.dps-menu-user-dropdown > .dps-user-menu-wrapper,
.menu-item.dps-menu-google-login > .dps-menu-google-btn-wrapper {
  display: inline-flex !important;
  align-items: center !important;
}

.dps-menu-google-btn-wrapper {
  min-height: 36px;
  display: inline-flex !important;
  align-items: center !important;
}

/* Fix for Elementor Nav Menu parent container clipping */
.elementor-nav-menu--main,
.elementor-nav-menu__container,
.elementor-widget-nav-menu .elementor-widget-container {
  overflow: visible !important;
}

/* ==========================================================================
   Unified Central Login Modal (DPSAuth.showLoginModal)
   ========================================================================== */

.dps-auth-modal-backdrop {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  background: rgba(15, 23, 42, 0.72) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  z-index: 99999999 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 16px !important;
  box-sizing: border-box !important;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.25s ease !important;
}

.dps-auth-modal-backdrop.is-active {
  opacity: 1 !important;
  visibility: visible !important;
}

.dps-auth-modal-card {
  position: relative !important;
  width: 100% !important;
  max-width: 440px !important;
  background: #ffffff !important;
  border-radius: 16px !important;
  box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.35), 0 0 0 1px rgba(226, 232, 240, 0.8) !important;
  padding: 32px 28px 28px !important;
  text-align: center !important;
  box-sizing: border-box !important;
  transform: translateY(20px) scale(0.96) !important;
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

.dps-auth-modal-backdrop.is-active .dps-auth-modal-card {
  transform: translateY(0) scale(1) !important;
}

.dps-auth-modal-close {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  border: none !important;
  background: #f1f5f9 !important;
  color: #64748b !important;
  font-size: 20px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.15s ease !important;
  outline: none !important;
}

.dps-auth-modal-close:hover {
  background: #e2e8f0 !important;
  color: #0f172a !important;
  transform: rotate(90deg) !important;
}

.dps-auth-modal-icon-badge {
  width: 52px !important;
  height: 52px !important;
  border-radius: 14px !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 16px !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05) !important;
}

.dps-auth-modal-title {
  margin: 0 0 8px !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  line-height: 1.3 !important;
}

.dps-auth-modal-desc {
  margin: 0 0 24px !important;
  font-size: 14px !important;
  color: #64748b !important;
  line-height: 1.55 !important;
}

.dps-auth-modal-btn-slot {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  min-height: 48px !important;
  margin-bottom: 16px !important;
}

.dps-auth-modal-footer {
  font-size: 12px !important;
  color: #94a3b8 !important;
  line-height: 1.4 !important;
}



