/* slide-panel.css ─ right-sliding 460px panel with locked flex layout. * The min-height:0 on body is the flex-overflow footgun fix from * the codec-clipping bug. Don't remove it. */ .wd-slide-overlay { position: fixed; inset: 0; z-index: var(--z-overlay); background: var(--overlay); opacity: 0; pointer-events: none; transition: opacity var(--dur-slide) var(--ease-out-quart); } .wd-slide-overlay.is-open { opacity: 1; pointer-events: all; } .wd-slide-panel { position: fixed; top: 0; right: 0; bottom: 0; width: 460px; height: 100vh; max-height: 100vh; z-index: var(--z-panel); background: var(--bg-panel); border-left: 1px solid var(--border); display: flex; flex-direction: column; overflow: hidden; transform: translateX(100%); transition: transform var(--dur-slide) var(--ease-out-expo); } .wd-slide-panel.is-open { transform: translateX(0); } .wd-slide-panel-header { display: flex; align-items: center; justify-content: space-between; height: 52px; padding: 0 18px; border-bottom: 1px solid var(--border-faint); flex-shrink: 0; } .wd-slide-panel-title { font: 600 14px/1 var(--font); letter-spacing: -0.005em; color: var(--text-primary); } .wd-slide-panel-body { flex: 1; min-height: 0; /* critical for flex overflow */ overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 16px; } .wd-slide-panel-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 18px; background: var(--bg-deep); border-top: 1px solid var(--border-faint); flex-shrink: 0; }