/* ==========================================================================
   OgbonMath — Share Preview Modal
   --------------------------------------------------------------------------
   Shown after a conversation is shared successfully. Gives the user:
     - URL + copy button (primary action)
     - Preview of what receivers will see
     - Social share buttons (X, WhatsApp, Email)
     - Delete share-link (revoke) option
   Replaces the earlier plain-toast pattern.
   ========================================================================== */

.share-preview-backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  background: var(--backdrop);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-4);
  opacity: 0;
  animation: share-preview-fade-in var(--dur) var(--ease-calm) forwards;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.share-preview-backdrop.closing {
  animation: share-preview-fade-out var(--dur-fast) var(--ease-calm) forwards;
}

@keyframes share-preview-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes share-preview-fade-out {
  from { opacity: 1; }
  to   { opacity: 0; }
}

/* ==========================================================================
   Panel
   ==========================================================================
*/
.share-preview-panel {
  position: relative;
  width: 100%;
  max-width: 560px;
  max-height: 90vh;
  max-height: 90dvh;
  background: var(--bg2);
  border: 1px solid var(--bdr);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-xl);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: var(--sp-6) var(--sp-6) var(--sp-5);
  font-family: var(--font-sans);
  transform: scale(0.96) translateY(10px);
  opacity: 0;
  animation: share-preview-scale-in var(--dur) var(--ease-calm) forwards;
}

.share-preview-backdrop.closing .share-preview-panel {
  animation: share-preview-scale-out var(--dur-fast) var(--ease-calm) forwards;
}

@keyframes share-preview-scale-in {
  from { transform: scale(0.96) translateY(10px); opacity: 0; }
  to   { transform: scale(1) translateY(0); opacity: 1; }
}

@keyframes share-preview-scale-out {
  from { transform: scale(1) translateY(0); opacity: 1; }
  to   { transform: scale(0.98) translateY(4px); opacity: 0; }
}

.share-preview-close {
  position: absolute;
  top: var(--sp-3);
  right: var(--sp-3);
  background: transparent !important;
  border: 1px solid transparent !important;
  color: var(--tx2) !important;
  font-size: 24px !important;
  line-height: 1;
  cursor: pointer;
  padding: 4px 10px !important;
  border-radius: var(--radius-md) !important;
  transition: color var(--dur-fast), background var(--dur-fast);
}

.share-preview-close:hover {
  color: var(--tx) !important;
  background: var(--hover-bg) !important;
}

/* ==========================================================================
   Header
   ==========================================================================
*/
.share-preview-header {
  margin-bottom: var(--sp-5);
  padding-right: var(--sp-8); /* avoid running under close button */
}

.share-preview-eyebrow {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--ac);
  margin-bottom: var(--sp-1);
}

.share-preview-title {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-tight);
  line-height: var(--lh-snug);
  color: var(--tx);
  margin: 0 0 var(--sp-2);
}

.share-preview-blurb {
  font-family: var(--font-serif);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--tx1);
  margin: 0;
}

/* ==========================================================================
   URL copy row (primary action)
   ==========================================================================
*/
.share-preview-url-row {
  display: flex;
  gap: var(--sp-2);
  margin-bottom: var(--sp-5);
  align-items: stretch;
}

.share-preview-url {
  flex: 1;
  padding: 10px 14px !important;
  background: var(--bg) !important;
  border: 1px solid var(--bdr) !important;
  border-radius: var(--radius-md) !important;
  color: var(--tx) !important;
  font-family: var(--font-mono) !important;
  font-size: var(--fs-sm) !important;
  outline: none !important;
  min-width: 0;
  text-overflow: ellipsis;
}

.share-preview-url:focus {
  border-color: var(--ac) !important;
  box-shadow: 0 0 0 3px var(--ac-ring) !important;
}

.share-preview-copy-btn {
  background: var(--ac) !important;
  color: var(--ac-tx) !important;
  border: 1px solid var(--ac) !important;
  border-radius: var(--radius-md) !important;
  padding: 10px 18px !important;
  font-family: var(--font-sans) !important;
  font-size: var(--fs-sm) !important;
  font-weight: var(--fw-semibold) !important;
  cursor: pointer;
  flex-shrink: 0;
  transition: background var(--dur-fast) var(--ease-out);
}

.share-preview-copy-btn:hover {
  background: var(--ac2) !important;
  border-color: var(--ac2) !important;
}

.share-preview-copy-btn.is-copied {
  background: var(--gn) !important;
  border-color: var(--gn) !important;
}

/* ==========================================================================
   Preview card — "What they'll see"
   ==========================================================================
*/
.share-preview-card {
  margin-bottom: var(--sp-5);
}

.share-preview-card-label {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--tx3);
  margin-bottom: var(--sp-2);
}

.share-preview-mini {
  background: var(--bg);
  border: 1px solid var(--bdr);
  border-radius: var(--radius-md);
  padding: var(--sp-4);
}

.share-preview-mini-by {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--ac);
  margin-bottom: 4px;
}

.share-preview-mini-title {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-tight);
  color: var(--tx);
  margin-bottom: var(--sp-3);
}

.share-preview-mini-messages {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}

.share-preview-mini-msg {
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  font-family: var(--font-serif);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  max-width: 90%;
}

.share-preview-mini-msg.user {
  align-self: flex-end;
  background: var(--ac-soft);
  border: 1px solid var(--ac);
  font-family: var(--font-sans);
  line-height: var(--lh-normal);
}

.share-preview-mini-msg.model {
  align-self: flex-start;
  background: var(--bg2);
  border: 1px solid var(--bdr);
}

.share-preview-mini-role {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--tx3);
  margin-bottom: 3px;
}

.share-preview-mini-msg.user .share-preview-mini-role { color: var(--ac); }

.share-preview-mini-text {
  color: var(--tx);
}

.share-preview-mini-more {
  margin-top: var(--sp-3);
  padding-top: var(--sp-2);
  border-top: 1px dashed var(--bdr);
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  color: var(--tx3);
  text-align: center;
}

/* ==========================================================================
   Social share buttons
   ==========================================================================
*/
.share-preview-social-label {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--tx3);
  margin-bottom: var(--sp-2);
}

.share-preview-social {
  display: flex;
  gap: var(--sp-2);
  margin-bottom: var(--sp-5);
  flex-wrap: wrap;
}

.share-social-btn {
  flex: 1;
  min-width: 100px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 14px;
  background: var(--bg);
  border: 1px solid var(--bdr);
  border-radius: var(--radius-md);
  color: var(--tx1);
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: border-color var(--dur-fast) var(--ease-out),
              background var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out);
}

.share-social-btn:hover {
  border-color: var(--ac);
  background: var(--ac-soft);
  color: var(--ac);
}

/* ==========================================================================
   Footer — delete + done
   ==========================================================================
*/
.share-preview-footer {
  display: flex;
  gap: var(--sp-2);
  justify-content: space-between;
  align-items: center;
  padding-top: var(--sp-4);
  border-top: 1px solid var(--bdr);
}

.share-preview-delete {
  background: transparent !important;
  border: 1px solid var(--bdr) !important;
  border-radius: var(--radius-md) !important;
  padding: 8px 14px !important;
  color: var(--tx2) !important;
  font-family: var(--font-sans) !important;
  font-size: var(--fs-sm) !important;
  font-weight: var(--fw-medium) !important;
  cursor: pointer;
  transition: color var(--dur-fast), border-color var(--dur-fast), background var(--dur-fast);
}

.share-preview-delete:hover {
  color: var(--rd) !important;
  border-color: var(--rd) !important;
  background: var(--rd-bg) !important;
}

.share-preview-done {
  background: var(--ac) !important;
  color: var(--ac-tx) !important;
  border: 1px solid var(--ac) !important;
  border-radius: var(--radius-md) !important;
  padding: 8px 24px !important;
  font-family: var(--font-sans) !important;
  font-size: var(--fs-sm) !important;
  font-weight: var(--fw-semibold) !important;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease-out);
}

.share-preview-done:hover {
  background: var(--ac2) !important;
  border-color: var(--ac2) !important;
}

/* ==========================================================================
   Mobile
   ==========================================================================
*/
@media (max-width: 560px) {
  .share-preview-backdrop { padding: var(--sp-2); }
  .share-preview-panel {
    padding: var(--sp-5) var(--sp-4);
    border-radius: var(--radius-lg);
  }
  .share-preview-title { font-size: var(--fs-xl); }
  .share-preview-url-row {
    flex-direction: column;
  }
  .share-preview-copy-btn {
    width: 100%;
  }
  .share-preview-social {
    flex-direction: column;
  }
  .share-social-btn {
    width: 100%;
    flex: none;
  }
  .share-preview-footer {
    flex-direction: column-reverse;
    gap: var(--sp-2);
  }
  .share-preview-delete,
  .share-preview-done {
    width: 100%;
  }
}
