/* ==========================================================================
   Image Prompt AI — Design Studio
   10 page designs · 10 backgrounds · 10 icon styles ·
   10 prompt boxes · 10 buttons · display hide rules
   Loads last so variants can override prior skins.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Shared tokens / helpers
   -------------------------------------------------------------------------- */
body.ipa-design-studio-ready,
body[class*="ipa-page-"],
body[class*="ipa-color-"],
body[class*="ipa-bg-"] {
  transition: background-color .25s ease, color .2s ease;
}

/* --------------------------------------------------------------------------
   1. DISPLAY TOGGLES — hide when body has ipa-hide-*
   -------------------------------------------------------------------------- */
body.ipa-hide-hero .hero,
body.ipa-hide-hero .ipa-hero,
body.ipa-hide-hero section.hero,
body.ipa-hide-hero .home-hero,
body.ipa-hide-hero .nova-hero,
body.ipa-hide-hero .cosmic-hero,
body.ipa-hide-hero header.hero {
  display: none !important;
}

body.ipa-hide-search .ah-search-pill,
body.ipa-hide-search .hero-search,
body.ipa-hide-search .search-bar,
body.ipa-hide-search form.ah-search-pill,
body.ipa-hide-search .ipa-search-wrap,
body.ipa-hide-search .search-wrapper,
body.ipa-hide-search .cosmic-prompt-editor,
body.ipa-hide-search #searchForm {
  display: none !important;
}

body.ipa-hide-keyword-tags .hero-tags,
body.ipa-hide-keyword-tags .keyword-tags,
body.ipa-hide-keyword-tags .ipa-hero-tags,
body.ipa-hide-keyword-tags .tag-chips,
body.ipa-hide-keyword-tags .hero-keyword-tags,
body.ipa-hide-keyword-tags .neu-utility-nav {
  display: none !important;
}

body.ipa-hide-layout-toggle .ipa-layout-toggle,
body.ipa-hide-layout-toggle #ipaLayoutToggle {
  display: none !important;
}

body.ipa-hide-sort-bar .sort-bar,
body.ipa-hide-sort-bar .ipa-sort-bar,
body.ipa-hide-sort-bar .filter-sort,
body.ipa-hide-sort-bar .home-sort {
  display: none !important;
}

body.ipa-hide-category-slider .category-slider,
body.ipa-hide-category-slider .ipa-category-slider,
body.ipa-hide-category-slider #ipaCategorySlider {
  display: none !important;
}

body.ipa-hide-micro-grid .micro-gallery,
body.ipa-hide-micro-grid .ipa-micro-grid,
body.ipa-hide-micro-grid .micro-grid-section,
body.ipa-hide-micro-grid section.micro-section {
  display: none !important;
}

body.ipa-hide-popular-tags .popular-tags,
body.ipa-hide-popular-tags .ipa-popular-tags,
body.ipa-hide-popular-tags #ipaPopularTags {
  display: none !important;
}

body.ipa-hide-card-prompt .prompt-card .prompt-text,
body.ipa-hide-card-prompt .prompt-text,
body.ipa-hide-card-prompt .card-prompt-preview {
  display: none !important;
}

body.ipa-hide-copy-button .action-btn-full[data-copy-btn],
body.ipa-hide-copy-button button[data-copy-btn],
body.ipa-hide-copy-button .btn-copy-sm,
body.ipa-hide-copy-button .gallery-copy-full,
body.ipa-hide-copy-button .btn-face-copy,
body.ipa-hide-copy-button .ipa-single-prompt .btn-copy-sm {
  display: none !important;
}

body.ipa-hide-like-button .btn-like,
body.ipa-hide-like-button [data-like-id],
body.ipa-hide-like-button .ipa-like-icon {
  /* hide parent button when class is on button */
}
body.ipa-hide-like-button button.btn-like,
body.ipa-hide-like-button .action-btn-sm.btn-like,
body.ipa-hide-like-button .card-overlay-btn.btn-like,
body.ipa-hide-like-button .image-overlay-like,
body.ipa-hide-like-button .ipa-single-prompt .stat-item.btn-like {
  display: none !important;
}

body.ipa-hide-share-button .action-btn-sm[aria-label*="Share"],
body.ipa-hide-share-button .card-overlay-btn[aria-label*="Share"],
body.ipa-hide-share-button .action-btn-sm .fa-share-nodes {
  /* keep specific button hide via JS-friendly class on parent when needed */
}
body.ipa-hide-share-button .action-row-top .action-btn-sm:has(.fa-share-nodes),
body.ipa-hide-share-button .card-image-overlay .card-overlay-btn:has(.fa-share-nodes),
body.ipa-hide-share-button .ipa-single-prompt button.btn-outline,
body.ipa-hide-share-button .ipa-single-prompt .gallery-share-btn {
  display: none !important;
}

body.ipa-hide-download-button .action-row-top a.action-btn-sm:has(.fa-download),
body.ipa-hide-download-button .card-image-overlay a.card-overlay-btn:has(.fa-download),
body.ipa-hide-download-button .ipa-single-prompt a.btn.btn-primary {
  display: none !important;
}

body.ipa-hide-views .card-views,
body.ipa-hide-views .views-label,
body.ipa-hide-views .ipa-single-prompt .meta-header span:has(.fa-eye) {
  display: none !important;
}

body.ipa-hide-card-badges .card-badges,
body.ipa-hide-card-badges .model-tag--meta {
  display: none !important;
}

body.ipa-hide-card-overlay .card-image-overlay {
  display: none !important;
}

body.ipa-hide-related .related-section,
body.ipa-hide-related .related-grid,
body.ipa-hide-related section.related-prompts {
  display: none !important;
}

body.ipa-hide-footer-brand .site-footer .footer-brand,
body.ipa-hide-footer-brand .footer-logo,
body.ipa-hide-footer-brand .site-footer .brand {
  display: none !important;
}

body.ipa-hide-mobile-nav .mobile-bottom-nav,
body.ipa-hide-mobile-nav .mobile-header-modern,
body.ipa-hide-mobile-nav nav.mobile-bottom-nav {
  display: none !important;
}

body.ipa-hide-favorites #ipaFavOpen,
body.ipa-hide-favorites .ipa-fav-open,
body.ipa-hide-favorites #ipaFavOpenMobile,
body.ipa-hide-favorites #ipaFavBadge,
body.ipa-no-favorites #ipaFavOpen,
body.ipa-no-favorites .btn-like {
  display: none !important;
}

body.ipa-hide-breadcrumb .breadcrumb,
body.ipa-hide-breadcrumb nav.breadcrumb {
  display: none !important;
}
body.ipa-hide-image-stats .image-stats {
  display: none !important;
}
body.ipa-hide-zoom-chip .ipa-zoom-chip {
  display: none !important;
}
body.ipa-hide-face-tool .face-ref-card {
  display: none !important;
}
body.ipa-hide-howto .ipa-howto-block {
  display: none !important;
}
body.ipa-hide-prompt-seo .ipa-prompt-seo,
body.ipa-hide-prompt-seo .ipa-prompt-article {
  display: none !important;
}
body.ipa-hide-faq .ipa-faq-block,
body.ipa-hide-faq .faq-item {
  display: none !important;
}
body.ipa-hide-view-keywords .ipa-single-prompt .tags-container,
body.ipa-hide-view-keywords .ipa-seo-keywords {
  display: none !important;
}
body.ipa-hide-header-gallery .ah-gallery-btn {
  display: none !important;
}
body.ipa-hide-command-palette #ipaCmdOpen {
  display: none !important;
}
body.ipa-hide-feature-strip .ipa-feature-strip-bottom,
body.ipa-hide-feature-strip .neu-feature-strip,
body.ipa-hide-feature-strip .apex-feature-strip {
  display: none !important;
}
body.ipa-hide-footer-explore .ipa-footer-explore {
  display: none !important;
}
body.ipa-hide-footer-resources .ipa-footer-resources {
  display: none !important;
}
body.ipa-hide-footer-social .footer-social {
  display: none !important;
}
body.ipa-hide-archive-hero .ipa-archive-hero,
body.ipa-hide-archive-hero.archive main > .hero,
body.ipa-hide-archive-hero.search main > .hero,
body.ipa-hide-archive-hero.category main > .hero,
body.ipa-hide-archive-hero.tag main > .hero {
  display: none !important;
}
body.ipa-header-static .advanced-header,
body.ipa-header-static .site-header,
body.ipa-header-static .mobile-header-modern {
  position: relative !important;
  top: auto !important;
}

/* --------------------------------------------------------------------------
   2. BACKGROUNDS (10) — body canvas
   -------------------------------------------------------------------------- */
body.ipa-bg-soft_mesh {
  background-image: var(--bg-gradient-soft) !important;
  background-attachment: fixed;
  background-color: var(--bg-body, #FFF7F5) !important;
}

body.ipa-bg-solid_clean {
  background-image: none !important;
  background-color: var(--bg-body, #F8FAFC) !important;
}

body.ipa-bg-glass_frost {
  background-color: var(--bg-body, #F4F0FF) !important;
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 40%),
    radial-gradient(ellipse 80% 50% at 20% 0%, rgba(255,255,255,.7), transparent 60%) !important;
}

body.ipa-bg-aurora_waves {
  background-color: var(--bg-body) !important;
  background-image:
    radial-gradient(ellipse 90% 60% at 10% 20%, var(--mesh-glow-1, rgba(236,72,153,.18)), transparent 55%),
    radial-gradient(ellipse 70% 50% at 90% 10%, var(--mesh-glow-2, rgba(249,115,22,.14)), transparent 50%),
    radial-gradient(ellipse 60% 40% at 50% 100%, var(--mesh-glow-3, rgba(6,182,212,.12)), transparent 55%),
    linear-gradient(160deg, transparent 30%, color-mix(in srgb, var(--primary, #EC4899) 6%, transparent) 100%) !important;
  background-attachment: fixed;
}

body.ipa-bg-dotted_grid {
  background-color: var(--bg-body) !important;
  background-image: radial-gradient(color-mix(in srgb, var(--primary, #64748B) 22%, transparent) 1px, transparent 1px) !important;
  background-size: 18px 18px !important;
}

body.ipa-bg-diagonal_stripes {
  background-color: var(--bg-body) !important;
  background-image: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 12px,
    color-mix(in srgb, var(--primary, #EC4899) 5%, transparent) 12px,
    color-mix(in srgb, var(--primary, #EC4899) 5%, transparent) 24px
  ) !important;
}

body.ipa-bg-radial_glow {
  background-color: var(--bg-body) !important;
  background-image:
    radial-gradient(circle at 15% 20%, var(--mesh-glow-1, rgba(236,72,153,.22)), transparent 42%),
    radial-gradient(circle at 85% 15%, var(--mesh-glow-2, rgba(249,115,22,.18)), transparent 40%),
    radial-gradient(circle at 50% 85%, var(--mesh-glow-3, rgba(168,85,247,.14)), transparent 45%) !important;
}

body.ipa-bg-paper_texture {
  background-color: var(--bg-body, #FAF7F2) !important;
  background-image:
    linear-gradient(rgba(255,255,255,.4), rgba(255,255,255,.4)),
    repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,.015) 2px, rgba(0,0,0,.015) 3px) !important;
}

body.ipa-bg-cosmic_stars {
  background-color: var(--bg-body, #0B1020) !important;
  background-image:
    radial-gradient(1.5px 1.5px at 20% 30%, rgba(255,255,255,.55), transparent),
    radial-gradient(1px 1px at 60% 70%, rgba(255,255,255,.4), transparent),
    radial-gradient(1.2px 1.2px at 80% 20%, rgba(255,255,255,.5), transparent),
    radial-gradient(1px 1px at 40% 80%, rgba(255,255,255,.35), transparent),
    radial-gradient(ellipse 80% 50% at 50% 0%, var(--mesh-glow-1, rgba(124,58,237,.25)), transparent 60%) !important;
}

body.ipa-bg-gradient_bands {
  background-color: var(--bg-body) !important;
  background-image: linear-gradient(
    180deg,
    color-mix(in srgb, var(--primary, #EC4899) 10%, var(--bg-body, #fff)) 0%,
    var(--bg-body, #fff) 28%,
    color-mix(in srgb, var(--secondary, #F97316) 8%, var(--bg-body, #fff)) 55%,
    var(--bg-body, #fff) 100%
  ) !important;
  background-attachment: fixed;
}

/* --------------------------------------------------------------------------
   3. ICON STYLES (10)
   -------------------------------------------------------------------------- */
/* classic — default, no extra rules */

/* duotone */
body.ipa-icon-duotone .ah-nav a i,
body.ipa-icon-duotone .action-btn-sm i,
body.ipa-icon-duotone .action-btn-full i,
body.ipa-icon-duotone .card-overlay-btn i,
body.ipa-icon-duotone .model-tag i,
body.ipa-icon-duotone .ipa-layout-toggle button i {
  background: var(--primary-gradient, linear-gradient(135deg, var(--primary), var(--secondary)));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
}

/* outline soft */
body.ipa-icon-outline_soft .ah-icon-btn,
body.ipa-icon-outline_soft .card-overlay-btn,
body.ipa-icon-outline_soft .action-btn-sm {
  border: 1.5px solid color-mix(in srgb, var(--primary) 35%, transparent) !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.ipa-icon-outline_soft .ah-icon-btn i,
body.ipa-icon-outline_soft .card-overlay-btn i,
body.ipa-icon-outline_soft .action-btn-sm i {
  color: var(--primary) !important;
  font-weight: 400;
}

/* filled circle */
body.ipa-icon-filled_circle .ah-icon-btn,
body.ipa-icon-filled_circle .card-overlay-btn,
body.ipa-icon-filled_circle .action-btn-sm,
body.ipa-icon-filled_circle .ipa-layout-toggle button {
  border-radius: 50% !important;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--primary-soft, rgba(236,72,153,.12)) !important;
  color: var(--primary) !important;
}
body.ipa-icon-filled_circle .action-btn-sm .action-label {
  display: none !important;
}

/* pill badge */
body.ipa-icon-pill_badge .model-tag,
body.ipa-icon-pill_badge .ah-icon-btn,
body.ipa-icon-pill_badge .card-overlay-btn {
  border-radius: 999px !important;
  padding: 6px 12px !important;
  background: color-mix(in srgb, var(--primary) 14%, #fff) !important;
  border: 1px solid color-mix(in srgb, var(--primary) 22%, transparent) !important;
}
body.ipa-icon-pill_badge .model-tag i,
body.ipa-icon-pill_badge .ah-icon-btn i {
  color: var(--primary) !important;
}

/* neon glow */
body.ipa-icon-neon_glow .ah-icon-btn i,
body.ipa-icon-neon_glow .card-overlay-btn i,
body.ipa-icon-neon_glow .action-btn-full i,
body.ipa-icon-neon_glow .ipa-layout-toggle button.active i {
  color: var(--accent, #22D3EE) !important;
  filter: drop-shadow(0 0 6px var(--accent, #22D3EE)) drop-shadow(0 0 12px color-mix(in srgb, var(--primary) 50%, transparent));
}

/* flat minimal */
body.ipa-icon-flat_minimal .ah-icon-btn,
body.ipa-icon-flat_minimal .card-overlay-btn,
body.ipa-icon-flat_minimal .action-btn-sm {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 4px !important;
}
body.ipa-icon-flat_minimal .ah-icon-btn i,
body.ipa-icon-flat_minimal .card-overlay-btn i,
body.ipa-icon-flat_minimal .action-btn-sm i {
  color: var(--text-sub, #64748B) !important;
  font-size: .95em;
}

/* glass chip */
body.ipa-icon-glass_chip .ah-icon-btn,
body.ipa-icon-glass_chip .card-overlay-btn,
body.ipa-icon-glass_chip .ipa-layout-toggle button,
body.ipa-icon-glass_chip .model-tag {
  background: rgba(255,255,255,.55) !important;
  backdrop-filter: blur(12px) saturate(1.2);
  -webkit-backdrop-filter: blur(12px) saturate(1.2);
  border: 1px solid rgba(255,255,255,.75) !important;
  box-shadow: 0 4px 16px rgba(15,23,42,.06) !important;
  border-radius: 14px !important;
}

/* gradient fill */
body.ipa-icon-gradient_fill .ah-icon-btn,
body.ipa-icon-gradient_fill .card-overlay-btn,
body.ipa-icon-gradient_fill .ipa-layout-toggle button.active,
body.ipa-icon-gradient_fill .model-tag {
  background: var(--primary-gradient) !important;
  border: none !important;
  color: #fff !important;
}
body.ipa-icon-gradient_fill .ah-icon-btn i,
body.ipa-icon-gradient_fill .card-overlay-btn i,
body.ipa-icon-gradient_fill .model-tag i,
body.ipa-icon-gradient_fill .model-tag span {
  color: #fff !important;
  -webkit-text-fill-color: #fff;
}

/* bold block */
body.ipa-icon-bold_block .ah-icon-btn,
body.ipa-icon-bold_block .card-overlay-btn,
body.ipa-icon-bold_block .action-btn-sm,
body.ipa-icon-bold_block .ipa-layout-toggle button {
  border-radius: 8px !important;
  background: var(--primary) !important;
  color: #fff !important;
  border: 2px solid var(--text-heading, #0F172A) !important;
  box-shadow: 3px 3px 0 var(--text-heading, #0F172A) !important;
}
body.ipa-icon-bold_block .ah-icon-btn i,
body.ipa-icon-bold_block .card-overlay-btn i,
body.ipa-icon-bold_block .action-btn-sm i {
  color: #fff !important;
}

/* --------------------------------------------------------------------------
   4. PROMPT BOX STYLES (10)
   -------------------------------------------------------------------------- */
.prompt-text,
.prompt-card .prompt-text,
.card-prompt-preview,
.prompt-box .prompt-text,
#fullPrompt {
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, color .2s ease;
}

/* glass_scroll — baseline glass */
body.ipa-promptbox-glass_scroll .prompt-text,
body.ipa-promptbox-glass_scroll .prompt-card .prompt-text {
  background: rgba(255,255,255,.55) !important;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.7) !important;
  border-radius: 14px !important;
  padding: 10px 12px !important;
  max-height: 88px !important;
  overflow-y: auto !important;
}

/* soft_card */
body.ipa-promptbox-soft_card .prompt-text,
body.ipa-promptbox-soft_card .prompt-card .prompt-text {
  background: var(--bg-muted, #F1F5F9) !important;
  border: none !important;
  border-radius: 16px !important;
  padding: 12px 14px !important;
  box-shadow: inset 0 1px 2px rgba(15,23,42,.04);
  max-height: 96px !important;
  overflow-y: auto !important;
}

/* code_terminal */
body.ipa-promptbox-code_terminal .prompt-text,
body.ipa-promptbox-code_terminal .prompt-card .prompt-text,
body.ipa-promptbox-code_terminal #fullPrompt {
  background: #0F172A !important;
  color: #A7F3D0 !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
  font-size: 11.5px !important;
  border-radius: 10px !important;
  border: 1px solid #1E293B !important;
  padding: 12px 14px !important;
  max-height: 100px !important;
  overflow-y: auto !important;
  box-shadow: inset 0 0 0 1px rgba(34,211,238,.12);
}

/* bordered_accent */
body.ipa-promptbox-bordered_accent .prompt-text,
body.ipa-promptbox-bordered_accent .prompt-card .prompt-text {
  background: color-mix(in srgb, var(--primary) 6%, #fff) !important;
  border: none !important;
  border-left: 4px solid var(--primary) !important;
  border-radius: 4px 12px 12px 4px !important;
  padding: 10px 12px 10px 14px !important;
  max-height: 90px !important;
  overflow-y: auto !important;
}

/* bubble_chat */
body.ipa-promptbox-bubble_chat .prompt-text,
body.ipa-promptbox-bubble_chat .prompt-card .prompt-text {
  background: color-mix(in srgb, var(--primary) 12%, #fff) !important;
  border: 1px solid color-mix(in srgb, var(--primary) 20%, transparent) !important;
  border-radius: 18px 18px 18px 6px !important;
  padding: 12px 14px !important;
  max-height: 92px !important;
  overflow-y: auto !important;
}

/* minimal_line */
body.ipa-promptbox-minimal_line .prompt-text,
body.ipa-promptbox-minimal_line .prompt-card .prompt-text {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px dashed color-mix(in srgb, var(--text-sub, #94A3B8) 50%, transparent) !important;
  border-radius: 0 !important;
  padding: 8px 2px !important;
  max-height: 88px !important;
  overflow-y: auto !important;
  box-shadow: none !important;
}

/* gradient_frame */
body.ipa-promptbox-gradient_frame .prompt-text,
body.ipa-promptbox-gradient_frame .prompt-card .prompt-text {
  background:
    linear-gradient(var(--bg-card, #fff), var(--bg-card, #fff)) padding-box,
    var(--primary-gradient) border-box !important;
  border: 2px solid transparent !important;
  border-radius: 14px !important;
  padding: 10px 12px !important;
  max-height: 90px !important;
  overflow-y: auto !important;
}

/* dark_mono */
body.ipa-promptbox-dark_mono .prompt-text,
body.ipa-promptbox-dark_mono .prompt-card .prompt-text,
body.ipa-promptbox-dark_mono #fullPrompt {
  background: #18181B !important;
  color: #E4E4E7 !important;
  border: 1px solid #3F3F46 !important;
  border-radius: 12px !important;
  padding: 11px 13px !important;
  max-height: 92px !important;
  overflow-y: auto !important;
  font-family: ui-monospace, Menlo, Consolas, monospace !important;
  font-size: 12px !important;
}

/* paper_note */
body.ipa-promptbox-paper_note .prompt-text,
body.ipa-promptbox-paper_note .prompt-card .prompt-text {
  background: #FFFBEB !important;
  color: #44403C !important;
  border: 1px solid #FDE68A !important;
  border-radius: 4px !important;
  box-shadow: 2px 3px 0 rgba(180,83,9,.12) !important;
  padding: 12px 14px !important;
  max-height: 96px !important;
  overflow-y: auto !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 12.5px !important;
}

/* neon_outline */
body.ipa-promptbox-neon_outline .prompt-text,
body.ipa-promptbox-neon_outline .prompt-card .prompt-text {
  background: color-mix(in srgb, var(--bg-card, #0B1020) 90%, #000) !important;
  color: var(--text-main, #E2E8F0) !important;
  border: 1.5px solid var(--accent, #22D3EE) !important;
  border-radius: 12px !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent),
              0 0 18px color-mix(in srgb, var(--primary) 25%, transparent) !important;
  padding: 10px 12px !important;
  max-height: 90px !important;
  overflow-y: auto !important;
}

/* --------------------------------------------------------------------------
   5. BUTTON STYLES (10)
   -------------------------------------------------------------------------- */
.action-btn-full,
.neu-cta--primary,
.btn-hero-primary,
.ah-gallery-btn,
.ipa-load-more-btn,
.search-btn,
.btn.btn-primary {
  transition: transform .15s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, filter .15s ease;
}

/* pill_gradient — default-ish */
body.ipa-btn-pill_gradient .action-btn-full,
body.ipa-btn-pill_gradient .neu-cta--primary,
body.ipa-btn-pill_gradient .ah-gallery-btn,
body.ipa-btn-pill_gradient .ipa-load-more-btn,
body.ipa-btn-pill_gradient .btn-hero-primary {
  border-radius: 999px !important;
  border: none !important;
  color: #fff !important;
  background: var(--primary-gradient) !important;
  box-shadow: var(--glow-primary, 0 8px 24px rgba(236,72,153,.3)) !important;
  font-weight: 700 !important;
}

/* rounded_solid */
body.ipa-btn-rounded_solid .action-btn-full,
body.ipa-btn-rounded_solid .neu-cta--primary,
body.ipa-btn-rounded_solid .ah-gallery-btn,
body.ipa-btn-rounded_solid .ipa-load-more-btn,
body.ipa-btn-rounded_solid .btn-hero-primary {
  border-radius: 14px !important;
  border: none !important;
  color: #fff !important;
  background: var(--primary) !important;
  box-shadow: 0 6px 18px color-mix(in srgb, var(--primary) 28%, transparent) !important;
}

/* outline_soft */
body.ipa-btn-outline_soft .action-btn-full,
body.ipa-btn-outline_soft .neu-cta--primary,
body.ipa-btn-outline_soft .ah-gallery-btn,
body.ipa-btn-outline_soft .ipa-load-more-btn,
body.ipa-btn-outline_soft .btn-hero-primary {
  border-radius: 999px !important;
  background: transparent !important;
  color: var(--primary) !important;
  border: 2px solid color-mix(in srgb, var(--primary) 55%, transparent) !important;
  box-shadow: none !important;
}
body.ipa-btn-outline_soft .action-btn-full:hover,
body.ipa-btn-outline_soft .neu-cta--primary:hover {
  background: var(--primary-soft) !important;
}

/* neumorphic */
body.ipa-btn-neumorphic .action-btn-full,
body.ipa-btn-neumorphic .neu-cta--primary,
body.ipa-btn-neumorphic .ah-gallery-btn,
body.ipa-btn-neumorphic .ipa-load-more-btn,
body.ipa-btn-neumorphic .action-btn-sm {
  border-radius: 16px !important;
  background: var(--bg-body, #F0F0F3) !important;
  color: var(--primary) !important;
  border: none !important;
  box-shadow:
    6px 6px 14px rgba(15,23,42,.10),
    -6px -6px 14px rgba(255,255,255,.85) !important;
}
body.ipa-btn-neumorphic .action-btn-full:active,
body.ipa-btn-neumorphic .neu-cta--primary:active {
  box-shadow:
    inset 4px 4px 10px rgba(15,23,42,.10),
    inset -4px -4px 10px rgba(255,255,255,.8) !important;
}

/* glass_frost */
body.ipa-btn-glass_frost .action-btn-full,
body.ipa-btn-glass_frost .neu-cta--primary,
body.ipa-btn-glass_frost .ah-gallery-btn,
body.ipa-btn-glass_frost .ipa-load-more-btn {
  border-radius: 16px !important;
  background: rgba(255,255,255,.45) !important;
  backdrop-filter: blur(14px) saturate(1.3);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  color: var(--primary-dark, var(--primary)) !important;
  border: 1px solid rgba(255,255,255,.75) !important;
  box-shadow: 0 8px 28px rgba(15,23,42,.08) !important;
  font-weight: 700 !important;
}

/* sharp_modern */
body.ipa-btn-sharp_modern .action-btn-full,
body.ipa-btn-sharp_modern .neu-cta--primary,
body.ipa-btn-sharp_modern .ah-gallery-btn,
body.ipa-btn-sharp_modern .ipa-load-more-btn,
body.ipa-btn-sharp_modern .action-btn-sm {
  border-radius: 6px !important;
  background: var(--primary) !important;
  color: #fff !important;
  border: none !important;
  letter-spacing: .02em;
  text-transform: uppercase;
  font-size: 12px !important;
  font-weight: 800 !important;
  box-shadow: none !important;
}

/* press_3d */
body.ipa-btn-press_3d .action-btn-full,
body.ipa-btn-press_3d .neu-cta--primary,
body.ipa-btn-press_3d .ah-gallery-btn,
body.ipa-btn-press_3d .ipa-load-more-btn {
  border-radius: 14px !important;
  background: var(--primary) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 6px 0 var(--primary-dark, #9D174D) !important;
  transform: translateY(0);
}
body.ipa-btn-press_3d .action-btn-full:active,
body.ipa-btn-press_3d .neu-cta--primary:active,
body.ipa-btn-press_3d .ipa-load-more-btn:active {
  transform: translateY(4px) !important;
  box-shadow: 0 2px 0 var(--primary-dark, #9D174D) !important;
}

/* neon_border */
body.ipa-btn-neon_border .action-btn-full,
body.ipa-btn-neon_border .neu-cta--primary,
body.ipa-btn-neon_border .ah-gallery-btn,
body.ipa-btn-neon_border .ipa-load-more-btn {
  border-radius: 12px !important;
  background: transparent !important;
  color: var(--accent, #22D3EE) !important;
  border: 2px solid var(--accent, #22D3EE) !important;
  box-shadow:
    0 0 12px color-mix(in srgb, var(--accent, #22D3EE) 45%, transparent),
    inset 0 0 12px color-mix(in srgb, var(--accent, #22D3EE) 12%, transparent) !important;
  text-shadow: 0 0 8px color-mix(in srgb, var(--accent) 40%, transparent);
}

/* flat_bold */
body.ipa-btn-flat_bold .action-btn-full,
body.ipa-btn-flat_bold .neu-cta--primary,
body.ipa-btn-flat_bold .ah-gallery-btn,
body.ipa-btn-flat_bold .ipa-load-more-btn {
  border-radius: 10px !important;
  background: var(--primary) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: none !important;
  font-weight: 800 !important;
  letter-spacing: -.01em;
}
body.ipa-btn-flat_bold .action-btn-full:hover {
  filter: brightness(1.06);
}

/* soft_shadow */
body.ipa-btn-soft_shadow .action-btn-full,
body.ipa-btn-soft_shadow .neu-cta--primary,
body.ipa-btn-soft_shadow .ah-gallery-btn,
body.ipa-btn-soft_shadow .ipa-load-more-btn {
  border-radius: 18px !important;
  background: #fff !important;
  color: var(--primary) !important;
  border: 1px solid color-mix(in srgb, var(--primary) 15%, transparent) !important;
  box-shadow:
    0 10px 30px color-mix(in srgb, var(--primary) 18%, transparent),
    0 2px 6px rgba(15,23,42,.06) !important;
  font-weight: 700 !important;
}

/* Small action buttons inherit softer variants */
body.ipa-btn-pill_gradient .action-btn-sm:hover,
body.ipa-btn-rounded_solid .action-btn-sm:hover {
  color: var(--primary) !important;
}

/* --------------------------------------------------------------------------
   6. PAGE DESIGNS (10) — overall look & feel
   -------------------------------------------------------------------------- */

/* cosmic_glass — baseline (theme default) */
body.ipa-page-cosmic_glass .prompt-card,
body.ipa-page-cosmic_glass .blog-card {
  background: rgba(255,255,255,.72) !important;
  backdrop-filter: blur(16px) saturate(1.2);
  border: 1px solid rgba(255,255,255,.8) !important;
  border-radius: 22px !important;
  box-shadow: var(--shadow-card, 0 8px 28px rgba(15,23,42,.06)) !important;
}
body.ipa-page-cosmic_glass .advanced-header {
  background: rgba(255,255,255,.65) !important;
  backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(255,255,255,.5);
}

/* prism_bloom */
body.ipa-page-prism_bloom .prompt-card,
body.ipa-page-prism_bloom .blog-card {
  background: #fff !important;
  border-radius: 20px !important;
  border: 1px solid transparent !important;
  background-image:
    linear-gradient(#fff, #fff),
    var(--primary-gradient) !important;
  background-origin: border-box !important;
  background-clip: padding-box, border-box !important;
  box-shadow: 0 12px 36px color-mix(in srgb, var(--primary) 16%, transparent) !important;
}
body.ipa-page-prism_bloom .card-title {
  background: var(--primary-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
}

/* soft_neumorph */
body.ipa-page-soft_neumorph {
  background-color: #E8ECF4 !important;
}
body.ipa-page-soft_neumorph .prompt-card,
body.ipa-page-soft_neumorph .blog-card,
body.ipa-page-soft_neumorph .advanced-header {
  background: #E8ECF4 !important;
  border: none !important;
  border-radius: 24px !important;
  box-shadow:
    10px 10px 24px rgba(163,177,198,.45),
    -10px -10px 24px rgba(255,255,255,.9) !important;
  backdrop-filter: none !important;
}

/* minimal_clean */
body.ipa-page-minimal_clean .prompt-card,
body.ipa-page-minimal_clean .blog-card {
  background: #fff !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
body.ipa-page-minimal_clean .advanced-header {
  background: #fff !important;
  border-bottom: 1px solid #E2E8F0 !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
}
body.ipa-page-minimal_clean .card-title {
  font-weight: 600 !important;
  letter-spacing: -.02em;
}

/* magazine_edit */
body.ipa-page-magazine_edit .prompt-card {
  background: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  border-bottom: 1px solid #E5E7EB !important;
}
body.ipa-page-magazine_edit .card-title {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 1.15em !important;
  font-weight: 700 !important;
  letter-spacing: -.01em;
  line-height: 1.25 !important;
}
body.ipa-page-magazine_edit .card-image-wrapper {
  border-radius: 0 !important;
}

/* warm_sunset */
body.ipa-page-warm_sunset {
  --radius-lg: 20px;
}
body.ipa-page-warm_sunset .prompt-card,
body.ipa-page-warm_sunset .blog-card {
  background: linear-gradient(160deg, #FFF7ED 0%, #FFFFFF 55%) !important;
  border: 1px solid #FED7AA !important;
  border-radius: 20px !important;
  box-shadow: 0 12px 32px rgba(249,115,22,.10) !important;
}
body.ipa-page-warm_sunset .advanced-header {
  background: linear-gradient(90deg, rgba(255,247,237,.92), rgba(255,255,255,.88)) !important;
  border-bottom: 1px solid #FDBA74 !important;
}

/* cool_arctic */
body.ipa-page-cool_arctic .prompt-card,
body.ipa-page-cool_arctic .blog-card {
  background: linear-gradient(165deg, rgba(240,253,255,.95), #fff 50%) !important;
  border: 1px solid #A5F3FC !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 28px rgba(6,182,212,.10) !important;
}
body.ipa-page-cool_arctic .advanced-header {
  background: rgba(240,253,255,.8) !important;
  border-bottom: 1px solid #CFFAFE !important;
  backdrop-filter: blur(16px);
}

/* bold_vibrant */
body.ipa-page-bold_vibrant .prompt-card,
body.ipa-page-bold_vibrant .blog-card {
  background: #fff !important;
  border: 3px solid var(--primary) !important;
  border-radius: 16px !important;
  box-shadow: 6px 6px 0 var(--secondary, var(--primary-dark)) !important;
}
body.ipa-page-bold_vibrant .card-title {
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: -.02em;
  font-size: .95em !important;
}
body.ipa-page-bold_vibrant .advanced-header {
  background: var(--primary) !important;
  color: #fff !important;
  border: none !important;
}
body.ipa-page-bold_vibrant .advanced-header a,
body.ipa-page-bold_vibrant .advanced-header .ah-nav a span,
body.ipa-page-bold_vibrant .advanced-header i {
  color: #fff !important;
}

/* elegant_luxe */
body.ipa-page-elegant_luxe {
  background-color: #FAF7F2 !important;
}
body.ipa-page-elegant_luxe .prompt-card,
body.ipa-page-elegant_luxe .blog-card {
  background: #FFFEFB !important;
  border: 1px solid #E8DCC8 !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 30px rgba(120,53,15,.08) !important;
}
body.ipa-page-elegant_luxe .card-title {
  font-family: Georgia, 'Palatino Linotype', serif !important;
  font-weight: 600 !important;
  color: #44403C !important;
  -webkit-text-fill-color: #44403C;
}
body.ipa-page-elegant_luxe .advanced-header {
  background: #FFFEFB !important;
  border-bottom: 1px solid #E8DCC8 !important;
}

/* cyber_pulse */
body.ipa-page-cyber_pulse {
  background-color: #0B1020 !important;
  color: #E2E8F0 !important;
}
body.ipa-page-cyber_pulse .prompt-card,
body.ipa-page-cyber_pulse .blog-card {
  background: rgba(18,24,43,.88) !important;
  border: 1px solid color-mix(in srgb, var(--accent, #22D3EE) 40%, transparent) !important;
  border-radius: 14px !important;
  box-shadow:
    0 0 0 1px rgba(124,58,237,.15),
    0 12px 40px rgba(0,0,0,.35) !important;
  color: #E2E8F0 !important;
}
body.ipa-page-cyber_pulse .card-title,
body.ipa-page-cyber_pulse .card-title a {
  color: #F8FAFC !important;
  -webkit-text-fill-color: #F8FAFC;
}
body.ipa-page-cyber_pulse .advanced-header {
  background: rgba(11,16,32,.85) !important;
  border-bottom: 1px solid rgba(34,211,238,.25) !important;
  backdrop-filter: blur(16px);
}
body.ipa-page-cyber_pulse .advanced-header a,
body.ipa-page-cyber_pulse .advanced-header span,
body.ipa-page-cyber_pulse .card-meta,
body.ipa-page-cyber_pulse .card-views {
  color: #94A3B8 !important;
}

/* --------------------------------------------------------------------------
   7. Color palette surface fixes (dark palettes)
   -------------------------------------------------------------------------- */
body.ipa-color-midnight_gold,
body.ipa-color-electric_neon {
  color: var(--text-main, #E2E8F0);
}
body.ipa-color-midnight_gold .prompt-card,
body.ipa-color-electric_neon .prompt-card,
body.ipa-color-midnight_gold .blog-card,
body.ipa-color-electric_neon .blog-card {
  background: var(--bg-card, #12182B) !important;
  color: var(--text-main) !important;
  border-color: color-mix(in srgb, var(--primary) 25%, transparent) !important;
}
body.ipa-color-midnight_gold .card-title,
body.ipa-color-electric_neon .card-title,
body.ipa-color-midnight_gold .card-title a,
body.ipa-color-electric_neon .card-title a {
  color: var(--text-heading, #fff) !important;
  -webkit-text-fill-color: var(--text-heading, #fff);
}

/* --------------------------------------------------------------------------
   8. Copy success flash (feature feedback)
   -------------------------------------------------------------------------- */
.action-btn-full.is-copied,
button[data-copy-btn].is-copied {
  filter: brightness(1.08);
  transform: scale(1.02);
}
.action-btn-full.is-copied span,
button[data-copy-btn].is-copied span {
  letter-spacing: .01em;
}

/* --------------------------------------------------------------------------
   9. Double-click copy cursor hint
   -------------------------------------------------------------------------- */
body.ipa-dblclick-copy .prompt-text {
  cursor: copy;
}

/* --------------------------------------------------------------------------
   10. Mobile tweaks
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  body.ipa-page-bold_vibrant .prompt-card {
    box-shadow: 4px 4px 0 var(--secondary, var(--primary-dark)) !important;
  }
  body.ipa-icon-filled_circle .action-btn-sm {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
  }
  body.ipa-btn-sharp_modern .action-btn-full {
    font-size: 11px !important;
  }
}
