.public-upload { margin-top:16px; padding:18px; border:1px dashed #91b4c2; border-radius:12px; background:#f7fbfc; }
.public-upload.drag-over { outline:2px solid #0e7490; outline-offset:2px; }
.public-upload label { display:block; margin-bottom:8px; font-weight:600; color:#143a4a; }
.public-upload input[type="file"] { display:block; width:100%; max-width:100%; padding:8px; box-sizing:border-box; color:#244452; background:white; border:1px solid #b8ccd3; border-radius:8px; font:inherit; font-size:14px; }
.public-upload input[type="file"]::file-selector-button { padding:8px 12px; margin-right:10px; border:1px solid #9fbfc9; border-radius:6px; background:#e7f3f7; color:#123f50; font:inherit; cursor:pointer; }
.public-upload input:focus-visible { outline:2px solid #0e7490; outline-offset:3px; }
.public-upload__help { margin:8px 0 0; font-size:12px; color:#496774; line-height:1.6; }
.public-upload__files { margin:8px 0 0; padding-left:20px; overflow-wrap:anywhere; font-size:13px; }
.public-request-error { margin:12px 0; padding:12px 14px; border:1px solid #eebcbc; border-radius:8px; color:#8b2525; background:#fff4f4; overflow-wrap:anywhere; }
.public-request-error[hidden] { display:none; }
.public-request-success { padding:26px 8px; text-align:center; }
.public-request-success h3 { color:#155947; margin-bottom:12px; }
.public-request-success .btn { margin-top:16px; }
@media(max-width:520px) { .public-upload { padding:12px; } .public-upload input[type="file"] { font-size:12px; } }
