.download-file-picker { position: relative; display: grid; gap: 8px; }
.download-file-label { display: flex; align-items: center; gap: 6px; color: #24355d; font-size: 13px; font-weight: 800; }
.download-file-label b { padding: 3px 6px; color: #5265ee; background: #edf0ff; border-radius: 5px; font-size: 13px; }
.download-file-drop { position: relative; display: grid !important; min-height: 82px; padding: 14px 15px !important; align-items: center; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; overflow: hidden; color: #26375e; background: linear-gradient(135deg, #f8faff 0%, #f3f6ff 100%); border: 1px dashed #b9c6e7 !important; border-radius: 13px !important; cursor: pointer; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease; }
.download-file-drop:hover, .download-file-picker.is-dragging .download-file-drop { background: #f1f4ff; border-color: #5266f2 !important; box-shadow: 0 10px 26px rgba(52, 75, 164, .11); transform: translateY(-1px); }
.download-file-drop:focus-within { border-color: #5266f2 !important; box-shadow: 0 0 0 3px rgba(82, 102, 242, .13); }
.download-file-drop input[type="file"] { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; padding: 0; opacity: 0; cursor: pointer; }
.download-file-icon { display: grid; width: 42px; height: 42px; place-items: center; color: #5266f2; background: #e8edff; border-radius: 12px; transition: color .2s ease, background .2s ease; }
.download-file-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.download-file-copy { display: grid; min-width: 0; gap: 5px; }
.download-file-copy strong { overflow: hidden; color: #17294f; font-size: 13px; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.download-file-copy small { color: #8290aa; font-size: 13px; font-weight: 600; }
.download-file-action { min-width: 70px; padding: 9px 12px; color: #fff; background: linear-gradient(135deg, #476bff, #5865e9); border-radius: 9px; box-shadow: 0 6px 14px rgba(69, 91, 218, .2); font-size: 13px; font-weight: 850; text-align: center; }
.download-file-picker.has-file .download-file-drop { background: linear-gradient(135deg, #f3fbf8, #eef9f5); border-color: #78c7a5 !important; }
.download-file-picker.has-file .download-file-icon { color: #16845c; background: #dff4ea; }
.download-file-picker.has-file .download-file-action { background: #fff; color: #5266f2; box-shadow: inset 0 0 0 1px #cbd3f6; }
.download-file-picker.has-error .download-file-drop { background: #fff7f8; border-color: #dc7684 !important; }
.download-file-picker.has-error .download-file-icon { color: #c54f60; background: #fde8eb; }
.download-file-clear { justify-self: end; padding: 0; color: #7a879e; background: transparent; border: 0; font-family: inherit; font-size: 13px; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.download-file-clear:hover { color: #dc5266; }
.download-file-clear[hidden] { display: none; }
@media (max-width: 560px) {
    .download-file-drop { min-height: 112px; grid-template-columns: 40px minmax(0, 1fr); }
    .download-file-action { grid-column: 1 / -1; width: 100%; }
}
