.uploadOptional { color:var(--muted); font-weight:400; }
  .uploadBox { position:relative; display:flex; align-items:center; gap:16px; padding:22px; border:1px dashed #dda5a5; border-radius:16px; background:#fffafa; transition:background .2s,border-color .2s; }
  .uploadBox:hover,.uploadBox:focus-within { background:var(--red-soft); border-color:var(--red); }
  .uploadBox:focus-within { outline:3px solid var(--red-soft); outline-offset:3px; }
  .uploadBox .uploadInput { position:absolute; inset:0; width:100%; height:100%; min-height:0; opacity:0; cursor:pointer; padding:0; z-index:1; }
  .uploadIcon { display:grid; place-items:center; width:48px; height:48px; border-radius:14px; background:var(--red-soft); color:var(--red); font-size:1.6rem; flex-shrink:0; }
  .uploadCopy { min-width:0; flex:1; }
  .uploadCopy strong { display:block; font-size:.92rem; overflow-wrap:anywhere; }
  .uploadCopy small { display:block; margin-top:4px; color:var(--muted); font-size:.8rem; }
  .uploadAction { padding:8px 14px; border:1px solid #e7c4c4; border-radius:10px; background:white; color:var(--red); font-size:.85rem; font-weight:600; white-space:nowrap; }
  .uploadSelected { display:flex; align-items:center; gap:12px; padding:14px 16px; background:white; border:1px solid var(--line); border-radius:14px; }
  .uploadSelected > .bi { color:var(--red); font-size:1.5rem; }
  .uploadRemove { display:grid; place-items:center; width:40px; height:40px; flex-shrink:0; border:0; border-radius:10px; color:var(--red); background:var(--red-soft); cursor:pointer; }
  .uploadError { color:var(--red-dark); }
  .uploadError:empty { display:none; }
  @media(max-width:520px) { .uploadBox { padding:16px; gap:12px; flex-wrap:wrap; } .uploadAction { margin-left:60px; } }