/**
 * Layout Builder Admin UI Fixes
 * Ensures contextual links and dropdowns are visible above all content
 */

/* Layout Builder contextual links */
.layout-builder__layout .contextual,
.contextual-region .contextual {
  z-index: 2000 !important;
}

/* Contextual links dropdown menu */
.contextual .contextual-links,
.contextual-links-wrapper {
  z-index: 2001 !important;
}

/* Layout Builder block configure buttons */
.layout-builder-block .contextual,
[data-layout-builder-highlight-id] .contextual {
  z-index: 2000 !important;
}

/* Ensure dropdowns appear above everything */
.contextual.open,
.contextual-links-wrapper.open {
  z-index: 2100 !important;
}

/* Layout Builder add block UI */
.layout-builder-add-block,
.layout-builder-choose-block {
  z-index: 1500 !important;
}

/* Layout Builder discard changes tray */
.layout-builder-discard-changes {
  z-index: 1500 !important;
}

/* Ensure contextual links are visible when hovering */
.contextual .trigger {
  z-index: 2000 !important;
}

/* Fix for contextual links in sticky header sections */
.header .contextual,
.header--sticky .contextual {
  z-index: 2000 !important;
}

/* Ensure the contextual menu appears above modals if needed */
body.js-layout-builder-enabled .contextual {
  position: relative;
  z-index: 2000 !important;
}

body.js-layout-builder-enabled .contextual-links {
  z-index: 2001 !important;
}

/* Fix for block configuration dropdowns */
.contextual .contextual-links {
  position: absolute;
  background: white;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  border: 1px solid #ccc;
  min-width: 150px;
}

/* Ensure visibility of Layout Builder controls */
.layout-builder-block-update,
.layout-builder-block-remove {
  z-index: 2000 !important;
}

/* Prevent layout builder from being affected by modal */
.layout-builder__layout {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* Ensure main content doesn't shrink when modal opens */
body.js-off-canvas-dialog-open .layout-builder__layout,
body.js-off-canvas-dialog-open main,
body.js-off-canvas-dialog-open .region-content {
  width: 100% !important;
  max-width: 100% !important;
  margin-right: 0 !important;
}

/* Ensure off-canvas doesn't inherit layout builder positioning */
body.js-off-canvas-dialog-open #drupal-off-canvas,
body.js-off-canvas-dialog-open .ui-dialog-off-canvas {
  position: fixed !important;
}

/* ========================================
 * Configure Block - Right Side Overlay Panel
 * ======================================== */

/* Prevent body scroll when dialog is open - but keep width */
body.js-off-canvas-dialog-open {
  overflow: hidden !important;
  width: 100% !important;
  padding-right: 0 !important;
}

/* Prevent any container from shrinking */
body.js-off-canvas-dialog-open #page-wrapper,
body.js-off-canvas-dialog-open .dialog-off-canvas-main-canvas {
  width: 100% !important;
  margin: 0 !important;
  padding-right: 0 !important;
}

/* Create backdrop overlay as separate element */
body.js-off-canvas-dialog-open::before {
  content: '' !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  background: rgba(0, 0, 0, 0.5) !important;
  z-index: 9999 !important;
  pointer-events: none !important; /* Allow clicks to pass through to dialog */
}

/* Ensure jQuery UI overlay doesn't block clicks */
.ui-widget-overlay {
  pointer-events: none !important;
}

/* Right side slide-in panel */
#drupal-off-canvas,
.ui-dialog-off-canvas,
.ui-dialog.ui-dialog-off-canvas {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: auto !important;
  width: 700px !important;
  max-width: 90vw !important;
  height: 100vh !important;
  max-height: 100vh !important;
  background: #ffffff !important;
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.3) !important;
  z-index: 10000 !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
}

/* When drupal-off-canvas IS the content (has ui-dialog-content class) */
#drupal-off-canvas.ui-dialog-content {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 2rem !important;
  box-sizing: border-box !important;
  background: #f8f9fa !important;
}

/* When drupal-off-canvas is NOT the content (traditional structure) */
#drupal-off-canvas:not(.ui-dialog-content) {
  overflow: hidden !important;
}

/* Ensure any wrapper doesn't interfere */
.ui-dialog-off-canvas .ui-dialog-content-wrapper {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  overflow: hidden !important;
}

/* Header/Title bar styling */
#drupal-off-canvas .ui-dialog-titlebar,
.ui-dialog-off-canvas .ui-dialog-titlebar {
  flex-shrink: 0 !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 100 !important;
  background: linear-gradient(135deg, #002823 0%, #004d44 100%) !important;
  color: white !important;
  padding: 1.5rem 2rem !important;
  margin: 0 !important;
  border-bottom: 2px solid #82dcb4 !important;
  position: relative !important; /* Ensure close button positioning works */
}

#drupal-off-canvas .ui-dialog-title,
.ui-dialog-off-canvas .ui-dialog-title {
  color: white !important;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  margin: 0 !important;
}

/* Close button styling - Prominent X icon - MAXIMUM CLICKABILITY */
#drupal-off-canvas .ui-dialog-titlebar-close,
.ui-dialog-off-canvas .ui-dialog-titlebar-close,
#drupal-off-canvas button.ui-dialog-titlebar-close,
.ui-dialog-off-canvas button.ui-dialog-titlebar-close,
button.ui-dialog-titlebar-close,
.ui-button.ui-dialog-titlebar-close {
  position: absolute !important;
  right: 1rem !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  background: rgba(255, 255, 255, 0.25) !important;
  border: 2px solid rgba(255, 255, 255, 0.5) !important;
  border-radius: 50% !important;
  width: 44px !important;
  height: 44px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  color: white !important;
  font-size: 1.75rem !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 1000 !important;
  opacity: 1 !important;
  visibility: visible !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

#drupal-off-canvas .ui-dialog-titlebar-close:hover,
.ui-dialog-off-canvas .ui-dialog-titlebar-close:hover {
  background: rgba(255, 255, 255, 0.4) !important;
  border-color: rgba(255, 255, 255, 0.8) !important;
  transform: translateY(-50%) scale(1.15) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
}

#drupal-off-canvas .ui-dialog-titlebar-close:active,
.ui-dialog-off-canvas .ui-dialog-titlebar-close:active {
  transform: translateY(-50%) scale(1.05) !important;
}

/* Make sure close button text/icon is visible */
#drupal-off-canvas .ui-dialog-titlebar-close .ui-button-icon,
#drupal-off-canvas .ui-dialog-titlebar-close::before,
#drupal-off-canvas .ui-dialog-titlebar-close::after {
  color: white !important;
  opacity: 1 !important;
}

/* Fallback: Add X with CSS if no icon present */
#drupal-off-canvas .ui-dialog-titlebar-close .ui-button-text,
.ui-dialog-off-canvas .ui-dialog-titlebar-close .ui-button-text,
button.ui-dialog-titlebar-close .ui-button-text {
  display: block !important;
  color: white !important;
  font-size: 1.75rem !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) !important;
}

/* Add visual X icon using CSS if needed */
#drupal-off-canvas .ui-dialog-titlebar-close::before,
.ui-dialog-off-canvas .ui-dialog-titlebar-close::before,
button.ui-dialog-titlebar-close::before {
  content: '\00D7' !important;
  font-size: 1.5rem !important;
  font-weight: 400 !important;
  color: white !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
}

/* Content area - The scrollable part with padding */
#drupal-off-canvas .ui-dialog-content,
.ui-dialog-off-canvas .ui-dialog-content,
.ui-dialog.ui-dialog-off-canvas .ui-dialog-content,
#drupal-off-canvas > div:not(.ui-dialog-titlebar):not(.form-actions) {
  flex: 1 !important;
  padding: 2rem !important;
  overflow-y: scroll !important;
  overflow-x: hidden !important;
  background: #f8f9fa !important;
  min-height: 0 !important;
  -webkit-overflow-scrolling: touch !important;
  box-sizing: border-box !important;
}

/* Ensure all direct children have proper spacing but no extra padding */
#drupal-off-canvas form,
#drupal-off-canvas .ui-dialog-content > * {
  padding: 0 !important;
  margin: 0 !important;
}

/* Prevent overflow on all nested elements except the main scroll container */
#drupal-off-canvas fieldset,
#drupal-off-canvas details,
#drupal-off-canvas .form-item,
#drupal-off-canvas .fieldset-wrapper,
#drupal-off-canvas .details-wrapper,
#drupal-off-canvas .block-categories,
#drupal-off-canvas .js-layout-builder-categories,
#drupal-off-canvas div:not(#drupal-off-canvas):not(form) {
  overflow: visible !important;
}

/* Block selection list specific styles */
#drupal-off-canvas.ui-dialog-content .block-categories {
  margin: 0 !important;
  padding: 0 !important;
}

#drupal-off-canvas.ui-dialog-content .js-form-item {
  margin-bottom: 1rem !important;
  background: white !important;
  padding: 1rem !important;
  border-radius: 6px !important;
}

/* Hide specific block categories - applied via JavaScript */
#drupal-off-canvas .js-layout-builder-category.hidden-category {
  display: none !important;
}

/* Form styling */
#drupal-off-canvas .form-item {
  margin-bottom: 1rem !important;
  background: white !important;
  padding: 1.25rem !important;
  border-radius: 6px !important;
  border: 1px solid #e0e0e0 !important;
  transition: border-color 0.2s ease !important;
}

#drupal-off-canvas .form-item:hover {
  border-color: #c0c0c0 !important;
}

#drupal-off-canvas label {
  display: block !important;
  margin-bottom: 0.5rem !important;
  font-weight: 600 !important;
  color: #002823 !important;
  font-size: 0.95rem !important;
}

#drupal-off-canvas .description {
  font-size: 0.875rem !important;
  color: #666 !important;
  margin-top: 0.25rem !important;
}

/* Input fields */
#drupal-off-canvas input[type="text"],
#drupal-off-canvas input[type="email"],
#drupal-off-canvas input[type="url"],
#drupal-off-canvas input[type="number"],
#drupal-off-canvas textarea,
#drupal-off-canvas select {
  width: 100% !important;
  padding: 0.75rem !important;
  border: 1px solid #d0d0d0 !important;
  border-radius: 4px !important;
  font-size: 0.95rem !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
  box-sizing: border-box !important;
}

#drupal-off-canvas input:focus,
#drupal-off-canvas textarea:focus,
#drupal-off-canvas select:focus {
  outline: none !important;
  border-color: #82dcb4 !important;
  box-shadow: 0 0 0 3px rgba(130, 220, 180, 0.2) !important;
}

#drupal-off-canvas textarea {
  min-height: 100px !important;
  resize: vertical !important;
}

/* Checkboxes and radios */
#drupal-off-canvas .form-type-checkbox,
#drupal-off-canvas .form-type-radio {
  padding: 0.75rem 1rem !important;
  background: white !important;
  border-radius: 6px !important;
  border: 1px solid #e0e0e0 !important;
  margin-bottom: 0.5rem !important;
}

#drupal-off-canvas .form-type-checkbox label,
#drupal-off-canvas .form-type-radio label {
  display: inline-block !important;
  margin-left: 0.5rem !important;
  font-weight: 400 !important;
}

/* Fieldsets/Details - NO overflow */
#drupal-off-canvas fieldset,
#drupal-off-canvas details {
  background: white !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 6px !important;
  padding: 1.5rem !important;
  margin-bottom: 1.5rem !important;
  overflow: visible !important;
}

#drupal-off-canvas fieldset legend,
#drupal-off-canvas details summary {
  background: #002823 !important;
  color: white !important;
  padding: 0.5rem 1rem !important;
  border-radius: 4px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  margin-bottom: 1rem !important;
}

#drupal-off-canvas details[open] summary {
  margin-bottom: 1rem !important;
}

/* Form actions (Save/Cancel buttons) */
#drupal-off-canvas .form-actions {
  flex-shrink: 0 !important;
  position: sticky !important;
  bottom: 0 !important;
  background: white !important;
  padding: 1.5rem !important;
  margin: 0 !important;
  border-top: 2px solid #e0e0e0 !important;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.05) !important;
}

#drupal-off-canvas .form-actions .button,
#drupal-off-canvas .form-actions button,
#drupal-off-canvas .form-actions input[type="submit"] {
  padding: 0.75rem 2rem !important;
  border-radius: 4px !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  border: none !important;
}

#drupal-off-canvas .form-actions .button--primary,
#drupal-off-canvas .form-actions input[type="submit"][value="Save"] {
  background: #002823 !important;
  color: white !important;
}

#drupal-off-canvas .form-actions .button--primary:hover,
#drupal-off-canvas .form-actions input[type="submit"][value="Save"]:hover {
  background: #004d44 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(0, 40, 35, 0.3) !important;
}

#drupal-off-canvas .form-actions .button--secondary,
#drupal-off-canvas .form-actions .button[value="Cancel"],
#drupal-off-canvas .form-actions .cancel-button {
  background: #f0f0f0 !important;
  color: #333 !important;
  border: 1px solid #d0d0d0 !important;
}

#drupal-off-canvas .form-actions .button--secondary:hover,
#drupal-off-canvas .form-actions .button[value="Cancel"]:hover,
#drupal-off-canvas .form-actions .cancel-button:hover {
  background: #e0e0e0 !important;
  border-color: #b0b0b0 !important;
}

/* Vertical tabs if present */
#drupal-off-canvas .vertical-tabs {
  display: flex !important;
  gap: 2rem !important;
  margin-bottom: 1.5rem !important;
}

#drupal-off-canvas .vertical-tabs__menu {
  flex: 0 0 200px !important;
  background: white !important;
  border-radius: 6px !important;
  padding: 0.5rem !important;
  border: 1px solid #e0e0e0 !important;
}

#drupal-off-canvas .vertical-tabs__menu-item {
  padding: 0.75rem 1rem !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
  margin-bottom: 0.25rem !important;
}

#drupal-off-canvas .vertical-tabs__menu-item:hover,
#drupal-off-canvas .vertical-tabs__menu-item.is-selected {
  background: #f0f0f0 !important;
}

#drupal-off-canvas .vertical-tabs__panes {
  flex: 1 !important;
}

/* Media library widget */
#drupal-off-canvas .media-library-widget {
  background: white !important;
  padding: 1rem !important;
  border-radius: 6px !important;
  border: 2px dashed #d0d0d0 !important;
}

/* Tables */
#drupal-off-canvas table {
  width: 100% !important;
  background: white !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}

#drupal-off-canvas table th {
  background: #f8f9fa !important;
  padding: 0.75rem !important;
  text-align: left !important;
  font-weight: 600 !important;
  border-bottom: 2px solid #e0e0e0 !important;
}

#drupal-off-canvas table td {
  padding: 0.75rem !important;
  border-bottom: 1px solid #f0f0f0 !important;
}

/* Smooth scrolling */
#drupal-off-canvas .ui-dialog-content {
  scroll-behavior: smooth !important;
}

/* Custom scrollbar styling */
#drupal-off-canvas .ui-dialog-content::-webkit-scrollbar {
  width: 10px !important;
}

#drupal-off-canvas .ui-dialog-content::-webkit-scrollbar-track {
  background: #f0f0f0 !important;
  border-radius: 10px !important;
}

#drupal-off-canvas .ui-dialog-content::-webkit-scrollbar-thumb {
  background: #c0c0c0 !important;
  border-radius: 10px !important;
  transition: background 0.2s ease !important;
}

#drupal-off-canvas .ui-dialog-content::-webkit-scrollbar-thumb:hover {
  background: #a0a0a0 !important;
}

/* Responsive design */
@media (max-width: 1440px) {
  #drupal-off-canvas,
  .ui-dialog-off-canvas {
    width: 650px !important;
  }
}

@media (max-width: 1024px) {
  #drupal-off-canvas,
  .ui-dialog-off-canvas {
    width: 65vw !important;
  }
}

@media (max-width: 768px) {
  #drupal-off-canvas,
  .ui-dialog-off-canvas {
    width: 90vw !important;
  }

  #drupal-off-canvas .ui-dialog-content,
  .ui-dialog-off-canvas .ui-dialog-content {
    padding: 1.5rem !important;
  }

  #drupal-off-canvas .form-actions {
    padding: 1rem !important;
    flex-direction: column !important;
  }

  #drupal-off-canvas .form-actions .button,
  #drupal-off-canvas .form-actions button,
  #drupal-off-canvas .form-actions input[type="submit"] {
    width: 100% !important;
  }

  #drupal-off-canvas .vertical-tabs {
    flex-direction: column !important;
  }

  #drupal-off-canvas .vertical-tabs__menu {
    flex: 0 0 auto !important;
    width: 100% !important;
  }
}

@media (max-width: 480px) {
  #drupal-off-canvas,
  .ui-dialog-off-canvas {
    width: 100vw !important;
  }
}

/* ========================================
   LOADING & PROGRESS INDICATORS - DISABLED
   ======================================== */

/* Hide all loading/processing indicators */
.ajax-progress-throbber,
.ajax-progress,
.ajax-progress-fullscreen {
  display: none !important;
}