/* live_preview.css — shared live-preview panel chrome (built by js/live_preview.js).
 * Content inside .wg-pv-body reuses each portal's real card/detail classes;
 * only the panel shell + a few generic fallback blocks live here.
 * The 1100px breakpoint must match BREAKPOINT in js/live_preview.js. */

.wg-pv-toggle { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 1200; background:var(--wg-color-dark); color:var(--wg-on-brand); border:none; border-radius: 24px; padding: 10px 16px; font: inherit; font-size: .85rem; box-shadow: 0 4px 14px rgba(0,0,0,.18); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.wg-pv-toggle.is-hidden { display: none; }
.wg-pv-toggle .wg-ico { width: 18px; height: 18px; }

.wg-pv-panel { position: fixed; z-index: 1201; background:var(--wg-raised); border:1px solid var(--wg-border); border-radius: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.2); overflow: hidden; display: flex; flex-direction: column; }
.wg-pv-panel[hidden] { display: none; }
.wg-pv-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom:1px solid var(--wg-border); font-weight: 700; font-size: .9rem; background:var(--wg-info-tint); flex-shrink: 0; }
.wg-pv-close { border:none; background:none; font-size: 1.35rem; line-height: 1; cursor: pointer; color:#889; }
.wg-pv-body { padding: 14px; overflow-y: auto; }

/* "List view" / "Detail view" separators between the stacked previews. */
.wg-pv-seclbl { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color:#98a2ad; margin: 14px 0 6px; }
.wg-pv-seclbl:first-child { margin-top: 0; }

/* Wrap real card markup (usually an <a>) so a preview never navigates. */
.wg-pv-noclick { pointer-events: none; }
.wg-pv-noclick a { text-decoration: none; }

/* Generic fallbacks for portals without their own chip/labelled-block styles. */
.wg-pv-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.wg-pv-chip { background:var(--wg-info-tint); border-radius: 999px; padding: 3px 10px; font-size: .78rem; }
.wg-pv-blk { margin: 0 0 10px; }
.wg-pv-blk > label { display: block; font-size: .74rem; font-weight: 700; color:var(--wg-muted); margin: 0 0 3px; }

/* uncommitted chip-input guard (pv.guardUncommitted) */
.wg-pv-guard-msg { background:var(--wg-danger-tint); color:var(--wg-danger-ink); border-radius: 10px; padding: 10px 12px; margin: 12px 0 0; font-size: .9rem; }
.wg-pv-guard-msg[hidden] { display: none; }
.wg-pv-blink { outline:2px solid #e24b4a; outline-offset: 2px; border-radius: 8px; animation: wg-pv-blink .55s ease-in-out 0s 5; }
@keyframes wg-pv-blink { 0%, 100% { outline-color:#e24b4a; } 50% { outline-color:transparent; } }
@media (prefers-reduced-motion: reduce) { .wg-pv-blink { animation: none; } }

@media (min-width: 1100px) {
  .wg-pv-panel { top: 84px; right: 20px; width: 320px; max-height: calc(100vh - 110px); }
}
@media (max-width: 1099px) {
  .wg-pv-panel { left: 0; right: 0; bottom: 0; border-radius: 16px 16px 0 0; max-height: 78vh; animation: wg-pv-up .28s var(--wg-ease-out, ease-out); }
}
@keyframes wg-pv-up { from { transform: translateY(24px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .wg-pv-panel { animation: none; } }
