.rl-bg{position:fixed;inset:0;z-index:10050;background:rgba(10,20,40,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.rl-dlg{background:var(--card,#fff);color:var(--ink,#16233a);border:1px solid var(--line,#d8e0eb);border-radius:14px;width:min(640px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:0 18px 50px rgba(10,20,40,.28)}
.rl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px 8px}
.rl-head h2{margin:0;font-size:18px}.rl-head p{margin:2px 0 0;font-size:12px;opacity:.7}
.rl-x{border:0;background:none;font-size:18px;cursor:pointer;color:inherit;padding:4px 8px;border-radius:8px}
.rl-x:focus-visible,.rl-btn:focus-within,.rl-btn:focus-visible{outline:2px solid var(--blue,#2563eb);outline-offset:2px}
.rl-body{padding:4px 18px 8px;overflow:auto;display:flex;flex-direction:column;gap:10px}
.rl-card{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line,#d8e0eb);border-radius:12px;padding:10px}
.rl-prev{height:64px;border-radius:8px;background:repeating-conic-gradient(#f1f4f8 0 25%,#fff 0 50%) 0 0/14px 14px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--line,#e2e8f0)}
.rl-prev img{max-width:100%;max-height:100%;object-fit:contain}
.rl-prev.empty span{font-size:12px;opacity:.6}
.rl-txt{display:flex;flex-direction:column;gap:3px;min-width:0}.rl-txt b{font-size:14px}.rl-txt small{font-size:12px;opacity:.75;line-height:1.35}
.rl-file{font-family:ui-monospace,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rl-tag{font-style:normal;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;margin-left:6px;background:color-mix(in srgb,var(--muted,#64748b) 16%,transparent);color:var(--muted,#475569);vertical-align:1px}
.rl-tag.project{background:color-mix(in srgb,#16a34a 18%,transparent);color:#15803d}.rl-tag.install{background:color-mix(in srgb,var(--blue,#4f46e5) 16%,transparent);color:var(--blue,#3730a3)}
.rl-acts{display:flex;flex-direction:column;gap:6px}
.rl-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 14px;border-radius:9px;border:1px solid var(--blue,#2563eb);background:var(--blue,#2563eb);color:#fff;font:600 13px/1 inherit;cursor:pointer;white-space:nowrap}
.rl-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.rl-btn.quiet{background:transparent;color:var(--ink,#16233a);border-color:var(--line,#cbd5e1)}
.rl-btn.busy{opacity:.7;cursor:progress}.rl-btn.primary{min-width:96px}
.rl-note{font-size:12px;opacity:.75;line-height:1.45;margin:4px 0}.rl-err{color:#b91c1c;font-size:13px;margin:0}
.rl-foot{display:flex;justify-content:flex-end;padding:10px 18px 16px;border-top:1px solid var(--line,#e2e8f0)}
@media (max-width:560px){.rl-card{grid-template-columns:1fr}.rl-acts{flex-direction:row}.rl-prev{height:72px}}
/* the transparent stretched input is gone: "Upload" is a real button (Safari swallowed the old one) */
.rl-card.over{outline:2px dashed var(--blue,#2563eb);outline-offset:2px}
.rl-btn[disabled]{cursor:progress}
