/* plus/app.css - CamoText Plus overrides and dark mode */

:root {
  --status-bar-bg: #f5f5f5;
  --status-bar-text: #2D3436;
  --status-bar-success: #27ae60;
  --status-bar-error: #e74c3c;
  --status-bar-demo: #888;
  --toggle-bg: #eee;
  --toggle-active: var(--accent-color);
}

body.dark-mode {
  --primary-color: #eaeaea;
  --accent-color: #FF5733;
  --bg-color: #181a1b;
  --text-color: #eaeaea;
  --card-bg: rgba(40, 44, 52, 0.95);
  --card-gradient-bg: linear-gradient(135deg,rgba(40, 44, 52, 0.98) 0%, rgba(30, 32, 36, 0.95) 100%);
  --transparent-gradient-bg: linear-gradient(135deg, hsla(0, 0%, 20%, 0.4) 0%, rgba(40, 44, 52, 0.6) 100%);
  --second-gradient-bg: linear-gradient(135deg, rgba(60, 60, 60, 0.8) 0%, rgba(80, 80, 80, 0.95) 100%);
  --dark-card-bg: linear-gradient(135deg, rgba(45, 52, 54, 0.95) 0%, rgba(52, 58, 64, 1) 100%);
  --dark-text: #fff;
  --dark-hover: rgba(255, 255, 255, 0.08);
  --status-bar-bg: #23272a;
  --status-bar-text: #eaeaea;
  --status-bar-success: #2ecc71;
  --status-bar-error: #e74c3c;
  --status-bar-demo: #aaa;
  --toggle-bg: #23272a;
  --toggle-active: var(--accent-color);
}

/* License badge */
.license-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.10rem 0.5rem 0.15rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 500;
  font-family: "JetBrains Mono", monospace;
  cursor: pointer;
  transition: all 0.2s ease;
  border: 1px solid transparent;
  margin-top: 0.1rem;
}

.license-badge.demo {
  background: var(--status-bar-demo);
  color: white;
}

.license-badge.valid {
  background: var(--status-bar-success);
  color: white;
}

.license-badge.invalid {
  background: var(--status-bar-error);
  color: white;
}

.license-badge:hover {
  opacity: 0.8;
  transform: scale(1.05);
}

.status-bar {
  display: none;
}

/* License badge styles */
#licenseBadge {
  min-width: 80px;
  display: inline-block;
  padding: 0.25em 0.7em;
  border-radius: 1em;
  font-size: 1em;
  font-weight: 600;
  letter-spacing: 0.03em;
  background: var(--status-bar-bg);
  color: var(--status-bar-text);
  border: 1.5px solid var(--status-bar-demo);
  margin-left: 1.2em;
  vertical-align: middle;
  transition: background 0.2s, color 0.2s, border 0.2s;
  cursor: pointer;
  outline: none;
}
#licenseBadge.valid {
  background: var(--status-bar-success);
  color: #fff;
  border-color: var(--status-bar-success);
}
#licenseBadge.invalid {
  background: var(--status-bar-error);
  color: #fff;
  border-color: var(--status-bar-error);
}
#licenseBadge.demo {
  background: var(--status-bar-bg);
  color: var(--status-bar-demo);
  border-color: var(--status-bar-demo);
}
#licenseBadge:focus, #licenseBadge:hover {
  box-shadow: 0 0 0 2px var(--accent-color, #FF5733);
  background: var(--toggle-bg);
}

/* Modal styles */
#licenseModal, #gatingModal, #priorityModal, #revertCategoriesModal {
  position: fixed;
  z-index: 1000;
  left: 0; top: 0; right: 0; bottom: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.45);
  transition: opacity 0.2s;
}
#licenseModal.active, #gatingModal.active {
  display: flex;
  opacity: 1;
  pointer-events: auto;
}
.modal-content {
  background: var(--card-bg, #fff);
  color: var(--text-color, #222);
  border-radius: 1.2em;
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  padding: 2.2em 2em 1.5em 2em;
  min-width: 320px;
  max-width: 95vw;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.2em;
  font-size: 1.1em;
  outline: none;
}
@media (max-width: 600px) {
  .modal-content {
    min-width: 0;
    width: 98vw;
    padding: 1.2em 0.5em 1em 0.5em;
  }
}
.modal-content button.close {
  position: absolute;
  top: 0.7em;
  right: 1em;
  background: none;
  border: none;
  font-size: 1.5em;
  color: var(--text-color, #222);
  cursor: pointer;
}
.modal-content .purchase-link {
  display: inline-block;
  margin-top: 0.7em;
  padding: 0.5em 1.2em;
  background: var(--accent-color, #FF5733);
  color: #fff;
  border-radius: 0.7em;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s;
}
.modal-content .purchase-link:hover, .modal-content .purchase-link:focus {
  background: #d84315;
}
.modal-content .error {
  color: var(--status-bar-error);
  font-weight: 600;
  margin-top: 0.5em;
}
.modal-content .success {
  color: var(--status-bar-success);
  font-weight: 600;
  margin-top: 0.5em;
}

/* Revert Categories modal specific styles */
#revertCategoriesList {
  max-height: 400px;
  overflow-y: auto;
  border: 1px solid rgba(0,0,0,.1);
  border-radius: 4px;
  padding: 0.5rem;
  background: rgba(0,0,0,.02);
  margin-bottom: 1rem;
}

.category-group {
  margin-bottom: 1rem;
  border-bottom: 1px solid rgba(0,0,0,.1);
  padding-bottom: 0.5rem;
}

.category-header {
  display: flex;
  align-items: center;
  font-weight: 500;
  margin-bottom: 0.5rem;
  cursor: pointer;
}

.category-header input[type="checkbox"] {
  margin-right: 0.5rem;
}

.category-items {
  margin-left: 1.5rem;
}

.category-item {
  display: flex;
  align-items: center;
  margin: 0.2rem 0;
  cursor: pointer;
  font-size: 0.9rem;
}

.category-item input[type="checkbox"] {
  margin-right: 0.5rem;
}

body.dark-mode #revertCategoriesList {
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.1);
}

body.dark-mode .category-group {
  border-bottom-color: rgba(255,255,255,.1);
}

/* Remove any glow effects from anonymization key items in dark mode */
body.dark-mode .hash-item {
  text-shadow: none !important;
  box-shadow: none !important;
  filter: none !important;
}

body.dark-mode .hash-item * {
  text-shadow: none !important;
  box-shadow: none !important;
  filter: none !important;
}

/* Revert Categories modal button styling */
#revertCategoriesModal .modal-content button {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

#revertCategoriesModal .modal-content button:hover {
  cursor: pointer;
}

#revertCategoriesModal .modal-content button:focus {
  outline: 2px solid var(--accent-color, #FF5733);
  outline-offset: 2px;
}

/* Dark mode toggle */
#darkModeToggle {
  background: var(--toggle-bg);
  color: var(--accent-color);
  border: none;
  border-radius: 20px;
  padding: 0.3rem 1.2rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: 1rem;
  cursor: pointer;
  margin-left: 1rem;
  transition: background 0.2s, color 0.2s;
}
#darkModeToggle.active {
  background: var(--toggle-active);
  color: #fff;
}
#darkModeToggle:focus {
  outline: 2px solid var(--accent-color);
}

/* Enhanced card layout with sleek professional styling */
.pane-wrap .card {
  flex: 1 1 480px !important;
  min-height: 500px !important;
  max-width: none !important;
  border: 1px solid rgba(255, 87, 51, 0.2) !important;
  box-shadow: 
    0 12px 40px rgba(0, 0, 0, 0.08),
    0 4px 16px rgba(0, 0, 0, 0.04),
    0 0 0 1px rgba(255, 87, 51, 0.03) !important;
  position: relative !important;
  overflow: visible !important;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
  backdrop-filter: blur(8px) !important;
}

/* Add top gradient line with enhanced styling */
.pane-wrap .card::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 2px !important;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(255, 87, 51, 0.6) 25%, 
    var(--accent-color) 50%, 
    rgba(255, 87, 51, 0.6) 75%, 
    transparent 100%) !important;
  opacity: 0.7 !important;
  z-index: 1 !important;
}

/* Enhanced section titles with professional styling */
.pane-wrap .card h2.section-title {
  text-align: left !important;
  margin-bottom: 1.8rem !important;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  color: var(--text-color) !important;
  background: linear-gradient(135deg, 
    rgba(255, 255, 255, 0.85) 0%, 
    rgba(245, 245, 245, 0.75) 100%) !important;
  border: 1px solid rgba(255, 87, 51, 0.15) !important;
  border-radius: 8px !important;
  padding: 1rem 1.5rem !important;
  display: block !important;
  position: relative !important;
  box-shadow: 
    0 2px 8px rgba(0, 0, 0, 0.06),
    0 1px 3px rgba(0, 0, 0, 0.04) !important;
  transition: all 0.3s ease !important;
}

/* Dark mode styling for section titles */
body.dark-mode .pane-wrap .card h2.section-title {
  background: linear-gradient(135deg, 
    rgba(60, 60, 60, 0.6) 0%, 
    rgba(45, 45, 45, 0.8) 100%) !important;
  border-color: rgba(255, 87, 51, 0.2) !important;
  color: var(--dark-text) !important;
  box-shadow: 
    0 2px 8px rgba(0, 0, 0, 0.3),
    0 1px 3px rgba(255, 87, 51, 0.1) !important;
}


/* Animation for underline slide effect */
@keyframes slideIn {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}

/* Enhanced layout spacing and professional touches */
.pane-wrap {
  max-width: 1600px !important;
  margin: 2.5rem auto !important;
  padding: 0 1.5rem !important;
  gap: 2rem !important;
}

/* Ensure output card can be wider on larger screens */
@media (min-width: 1200px) {
  .pane-wrap .card[data-pane="output"] {
    flex: 2 1 650px !important;
  }
  
  .pane-wrap {
    gap: 2.5rem !important;
  }
}

/* Add subtle animation for cards on load */
.pane-wrap .card {
  animation: cardFadeIn 0.6s ease-out !important;
}

@keyframes cardFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Mobile responsive improvements */
@media (max-width: 900px) {
  .pane-wrap .card {
    flex: 1 1 100% !important;
    min-height: 400px !important;
  }
}

/* Simple textarea resize fix */
.pane-wrap .card textarea {
  resize: vertical !important;
  min-height: 300px !important;
  flex: none !important;
}

/* Hide non-active panes on mobile if using mobileTabs */
@media (max-width: 768px) {
  .pane-wrap .card[data-pane] {
    display: none !important;
  }
  .pane-wrap .card[data-pane].active {
    display: flex !important;
  }
}


/* Override global hero styles for Plus app */
#hero {
  min-height: 20vh !important;
  padding: 1rem 0 !important;
  position: relative !important;
  background: var(--card-gradient-bg);
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 10%,
    black 90%,
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 10%,
    black 90%,
    transparent 100%
  );
  text-align: left !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  border-radius: 0 !important;
  overflow: visible !important;
  animation: none !important;
}

#hero .hero-content {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 18rem !important;
  max-width: 1600px !important;
  margin: 0 auto !important;
  padding: 0 2rem !important;
  text-align: left !important;
  flex-direction: row !important;
  border-radius: 0 !important;
}

#hero .hero-left {
  flex: 0 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.2rem !important;
  text-align: center !important;
  padding-top: 0.5rem !important;
}

#hero .hero-right {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  text-align: right !important;
  gap: 0.5rem !important;
}

#hero .logo-container-hero {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 1rem !important;
  text-align: center !important;
}

#hero .logo-container-hero img {
  width: 60px !important;
  height: auto !important;
}

#hero .logo-container-hero h1 {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 1.8rem !important;
  font-weight: 600 !important;
  margin: 0 !important;
  color: var(--text-color) !important;
  text-align: left !important;
}

#hero .tagline {
  margin: 0 !important;
  font-size: 1.1rem !important;
  text-align: center !important;
  margin-top: -0.3rem !important;
}

#hero .description {
  margin: 0 !important;
  font-size: 0.9rem !important;
  color: var(--text-color) !important;
  opacity: 0.8 !important;
  text-align: right !important;
}

/* Override global license badge styles */
#hero #licenseBadge {
  text-align: center !important;
  margin: 0 !important;
  align-self: flex-end !important;
}

/* Override hero pseudo-elements */
#hero::before {
  display: none !important;
}

#hero::after {
  display: none !important;
}

/* Enhanced mobile hero section */
@media (max-width: 768px) {
  #hero {
    min-height: 20vh !important;
    padding: 1rem 0 !important;
  }
  
  #hero .hero-content {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 1rem !important;
  }
  
  #hero .hero-right {
    align-items: center !important;
    text-align: center !important;
  }
  
  #hero .logo-container-hero {
    flex-direction: row !important;
    gap: 1rem !important;
  }
  
  #hero .logo-container-hero h1 {
    font-size: 1.5rem !important;
    text-align: left !important;
  }
  
  #hero .tagline {
    font-size: 1rem !important;
  }
  
  #hero .description {
    font-size: 0.85rem !important;
  }
  
  #hero #licenseBadge {
    align-self: center !important;
  }
  
  .pane-wrap {
    margin: 1.5rem auto !important;
    padding: 0 1rem !important;
    gap: 1.5rem !important;
  }
}

/* Search functionality styles */
#searchContainer {
  background: var(--card-bg);
  border-radius: 6px;
  padding: 0.5rem;
  border: 1px solid rgba(0, 0, 0, 0.1);
}

#searchInput {
  background: rgba(255, 255, 255, 0.9);
  color: var(--text-color);
  transition: border-color 0.2s ease;
  font-family: 'Montserrat', sans-serif !important;
  height: auto;
}

#searchInput:focus {
  outline: none;
  border-color: var(--accent-color);
  box-shadow: 0 0 0 2px rgba(255, 87, 51, 0.2);
}

#searchResults {
  min-width: 80px;
  text-align: right;
}

/* Dark mode search styles */
body.dark-mode #searchContainer {
  background: var(--card-bg);
  border-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode #searchInput {
  background: rgba(40, 44, 52, 0.9);
  color: var(--text-color);
  border-color: rgba(255, 255, 255, 0.2);
}

body.dark-mode #searchResults {
  color: #aaa;
}

.pane-wrap .card .cta-button,
.pane-wrap .card .secondary-button {
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
  font-weight: 500 !important;
  border-radius: 6px !important;
}

/* Mobile responsive search */
@media (max-width: 768px) {
  #searchContainer {
    flex-wrap: wrap;
    gap: 0.3rem;
  }

  #searchInput {
    flex: 1 1 100%;
    margin-bottom: 0.3rem;
  }

  #searchBtn, #findNextBtn {
    flex: 1;
    min-width: 80px;
    padding: 0.4rem 0.8rem;
    font-size: 0.8rem;
  }

  #searchResults {
    flex: 1 1 100%;
    text-align: center;
    font-size: 0.7rem;
    margin-top: 0.2rem;
  }
} 