.legend { display:flex; flex-wrap:wrap; gap:1rem; margin:-.25rem 0 1.25rem; color:var(--muted); font-size:.875rem; }
.legend span { display:flex; align-items:center; gap:.45rem; }
.dot { width:.6rem; height:.6rem; border-radius:50%; }
.dot.required { background:var(--blue); }
.dot.conditional { background:#d97706; }
.dot.optional { background:#94a3b8; }
.document-slots { display:grid; gap:.75rem; }
.document-slot { display:grid; grid-template-columns:1fr auto; align-items:center; gap:1.15rem; border:1px solid var(--line); border-radius:.9rem; padding:1rem 1.1rem; background:#fff; transition:.18s; }
.document-slot:hover { border-color:#afbdd2; }
.document-slot.has-file { border-color:#7dd3a7; background:#f5fff9; }
.document-title { display:flex; align-items:center; flex-wrap:wrap; gap:.6rem; font-weight:750; }
.document-title .badge { font-size:.72rem; padding:.18rem .5rem; border-radius:99px; background:#e8eeff; color:var(--blue); }
.document-title .badge.conditional { background:#fff7ed; color:#b45309; }
.document-title .badge.optional { background:#f1f5f9; color:#64748b; }
.document-slot p { margin:.25rem 0 0; color:var(--muted); font-size:.85rem; }
.document-action { min-width:10rem; }
.document-action input { display:none; }
.file-name { display:block; max-width:22rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#047857; font-size:.8rem; margin-top:.3rem; }
.choose-file { white-space:nowrap; color:#24416f; background:#f8fafc; border:1px solid #cfd8e6; }
.reference-block { margin-top:1.9rem; padding-top:1.5rem; border-top:1px solid #edf1f6; }
.section-head.compact { margin-bottom:1rem; padding-bottom:.8rem; }
.section-head.compact h2 { font-size:1.2rem; }
.reference-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; }
.reference-card { border:1px solid var(--line); border-radius:.8rem; padding:.9rem; background:#fafcff; }
.reference-card strong { display:block; margin-bottom:.7rem; }
.reference-card .grid { gap:.65rem; }
@media (max-width:860px) { .reference-grid { grid-template-columns:1fr; } .document-slot { grid-template-columns:1fr; } .document-action,.choose-file { width:100%; } }
