/* CardForge UI Enhancements
   Added to support improved user flows and UI/UX
   Updated: 2025-07-06
*/


















/* Variant toggles */
.variant-toggles {
  display: flex;
  gap: 8px;
  justify-content: center;
}

.variant-toggle {
  padding: 8px 16px;
  background: var(--aura-bg-secondary, #2a2a4e);
  border: 2px solid transparent;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.variant-toggle:hover {
  border-color: var(--mood-accent-color, #4a4a6a);
  background: var(--aura-bg-hover, #3a3a5e);
}

.variant-toggle.selected {
  border-color: var(--mood-primary-color, #00d4ff);
  background: var(--aura-bg-active, #1a4a5e);
}

.variant-label {
  font-size: 12px;
  color: var(--mood-text-secondary, #cccccc);
  font-weight: 500;
}

.variant-toggle.selected .variant-label {
  color: var(--mood-primary-color, #00d4ff);
}

/* Responsive design */
@media (max-width: 768px) {
  .tier-options-grid,
  .palette-families {
    grid-template-columns: repeat(3, 1fr);
  }
  
  .modular-system-container {
    padding: 12px;
  }
  
  .tier-option,
  .palette-family {
    padding: 8px 4px;
  }
}

.cardforge-editor,
.cardforge-sidebar,
.cardforge-preview {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  /* Ensure full height */
}

/* Card Flip - Fixed positioning and removed fixed height constraints */
.card-preview-canvas {
  perspective: 1000px;
}

.card-inner {
  display: grid; /* Use grid to stack faces and auto-size height */
  width: 100%;
  transition: transform 0.6s;
  transform-style: preserve-3d;
}

.card-inner.flipped {
  transform: rotateY(180deg);
}

.card-front,
.card-back {
  /* Both faces occupy the same grid cell, making the container size to the tallest */
  grid-area: 1 / 1 / 2 / 2;
  width: 100%;
  backface-visibility: hidden;
  transform-origin: center center;
}

.card-back {
  transform: rotateY(180deg);
}


.palette-level:last-child {
  margin-bottom: 0;
}

.level-title {
  margin: 0 0 0.75rem 0;
  font-size: 0.85rem;
  color: var(--mood-secondary-color, #a0a0c0);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 500;
}

/* Enhanced Selection States */
.palette-family.selected,
.variant-toggle.selected {
  background: var(--mood-primary-color, #e1e1ff);
  color: var(--aura-bg-color, #1a1a2e);
  border-color: var(--mood-primary-color, #e1e1ff);
}

.palette-family.selected .palette-label,
.variant-toggle.selected .variant-label {
  color: var(--aura-bg-color, #1a1a2e);
  font-weight: 600;
}

/* Improved Hover States */
.palette-family:hover,
.variant-toggle:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* Responsive Adjustments */
@media (max-width: 768px) {
  .tier-header {
    padding: 0.75rem;
  }
  
  .tier-current-selection {
    gap: 0.25rem;
  }
  
  .current-selection-text {
    font-size: 0.8rem;
  }
  
  .collapsible-tier.expanded .tier-content {
    padding: 0.75rem;
  }
}

/* ===================================
   RIGHT COLUMN REDESIGN
   =================================== */

/* Right column */
.right-column {
  align-self: flex-start;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0.75rem;
  background: var(--aura-bg-color, #1a1a2e);
  border-radius: 12px;
  border: 1px solid var(--mood-accent-color, #4a4a6a);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  width: 100%;
  box-sizing: border-box;
}

/* Card Preview Zone (Always Visible) - Fixed math */
#card-preview-container {
  position: sticky;
  top: 100px;
  z-index: 10;
  background: var(--aura-bg-color, #1a1a2e);
  border-radius: 8px;
  padding: 0.75rem;
  border: 1px solid var(--mood-accent-color, #4a4a6a);
  display: flex;
  flex-direction: column;
}

.preview-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  width: 100%;
  position: relative;
  box-sizing: border-box;
}

.preview-header h2 {
  margin: 0;
  font-size: 1.2rem;
  color: var(--mood-text-primary, #e1e1ff);
}

.preview-controls {
  display: flex;
  gap: 0.5rem;
}

.preview-controls .glass-button {
  padding: 0.5rem 0.75rem;
  font-size: 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.preview-controls .glass-button i {
  font-size: 0.8rem;
}



/* Scrollable Zones Container - Reduced height to prevent clipping */
.tools-zone,
.my-cards-zone {
  background: var(--aura-bg-secondary, #2a2a3e);
  border-radius: 8px;
  border: 1px solid var(--mood-accent-color, #4a4a6a);
  display: flex;
  flex-direction: column;
  /* Removed flex:1 and overflow-y: auto to prevent internal scrolling */
}

.tools-zone.collapsed,
.my-cards-zone.collapsed {
  flex: 0 0 auto;
}

/* Zone Headers */
.zone-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  background: var(--aura-bg-color, #1a1a2e);
  border-bottom: 1px solid var(--mood-accent-color, #4a4a6a);
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.zone-header:hover {
  background: var(--aura-bg-hover, #3a3a5e);
}

.zone-header h3 {
  margin: 0;
  font-size: 1rem;
  color: var(--mood-text-primary, #e1e1ff);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.zone-header h3 i {
  font-size: 0.9rem;
  color: var(--mood-primary-color, #00d4ff);
}

.zone-toggle {
  background: none;
  border: none;
  color: var(--mood-text-secondary, #a0a0c0);
  cursor: pointer;
  padding: 0.25rem;
  border-radius: 4px;
  transition: all 0.2s ease;
}

.zone-toggle:hover {
  background: var(--aura-bg-hover, #3a3a5e);
  color: var(--mood-text-primary, #e1e1ff);
}

.zone-toggle i {
  transition: transform 0.2s ease;
}

.zone-toggle.collapsed i {
  transform: rotate(180deg);
}

/* Zone Content */
.zone-content {
  flex: 1;
  /* overflow-y: auto; */ /* Removed to prevent internal scrollbars */
  padding: 0.75rem;
  scrollbar-width: thin;
  scrollbar-color: var(--mood-primary-color, #00d4ff) var(--aura-bg-color, #1a1a2e);
}

/* Webkit Scrollbar Styling */
.zone-content::-webkit-scrollbar {
  width: 6px;
}

.zone-content::-webkit-scrollbar-track {
  background: var(--aura-bg-color, #1a1a2e);
  border-radius: 3px;
}

.zone-content::-webkit-scrollbar-thumb {
  background: var(--mood-primary-color, #00d4ff);
  border-radius: 3px;
}

.zone-content::-webkit-scrollbar-thumb:hover {
  background: var(--aura-cyan, #00b8e6);
}

/* Collapsed Zone Content */
.zone-content.collapsed {
  display: none;
}



/* Tools Zone Styling */
.tool-buttons {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.tool-btn {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background: var(--aura-bg-color, #1a1a2e);
  border: 1px solid var(--mood-accent-color, #4a4a6a);
  border-radius: 6px;
  color: var(--mood-text-primary, #e1e1ff);
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: left;
  font-size: 0.9rem;
  position: relative;
}

.tool-btn:hover:not(:disabled) {
  background: var(--aura-bg-hover, #3a3a5e);
  border-color: var(--mood-primary-color, #00d4ff);
  transform: translateY(-1px);
}

.tool-btn:active:not(:disabled) {
  transform: translateY(0);
}

.tool-btn i {
  font-size: 1rem;
  color: var(--mood-primary-color, #00d4ff);
  flex-shrink: 0;
}

.tool-btn span {
  flex: 1;
}

.tool-btn.coming-soon {
  opacity: 0.6;
  cursor: not-allowed;
}

.coming-soon-label {
  position: absolute;
  top: -8px;
  right: 8px;
  background: var(--mood-primary-color, #00d4ff);
  color: var(--aura-bg-color, #1a1a2e);
  padding: 2px 6px;
  border-radius: 10px;
  font-size: 0.7rem;
  font-weight: 500;
}

/* My Cards Zone Styling */
.my-cards-search {
  margin-bottom: 1rem;
}

.search-input-group {
  position: relative;
  display: flex;
  align-items: center;
}

.search-input-group i {
  position: absolute;
  left: 0.75rem;
  color: var(--mood-text-secondary, #a0a0c0);
  font-size: 0.9rem;
  z-index: 1;
}

.search-input-group input {
  width: 100%;
  padding: 0.75rem 0.75rem 0.75rem 2.5rem;
  background: var(--aura-bg-color, #1a1a2e);
  border: 1px solid var(--mood-accent-color, #4a4a6a);
  border-radius: 6px;
  color: var(--mood-text-primary, #e1e1ff);
  font-size: 0.9rem;
  transition: border-color 0.2s ease;
}

.search-input-group input:focus {
  outline: none;
  border-color: var(--mood-primary-color, #00d4ff);
}

.search-input-group input::placeholder {
  color: var(--mood-text-secondary, #a0a0c0);
}