/* Shared file selection for desktop and browser import dialogs. */
.file-upload{--upload-blue:#1765d1;--upload-muted:#6b778a;margin:0;min-width:0;color:#24344d;font-size:13px}
.file-upload [hidden]{display:none!important}
.file-upload-target{position:relative;border:1px dashed #b8c9df;border-radius:8px;background:#f8faff;transition:background .15s,border-color .15s,box-shadow .15s;overflow:hidden}
.file-upload-target:hover,.file-upload-target:focus-within{border-color:var(--upload-blue);background:#f2f7ff}
.file-upload-target:focus-within{box-shadow:0 0 0 3px #1765d120}
.file-upload .file-upload-input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer;z-index:2;max-width:none}
.file-upload-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;padding:26px 18px 23px;pointer-events:none}
.file-upload-symbol{width:48px;height:48px;display:grid;place-items:center;margin-bottom:3px;border-radius:12px;background:#e7effc;color:var(--upload-blue)}
.file-upload-symbol svg{width:25px;height:25px;stroke-width:1.6}
.file-upload-empty>strong{font-size:16px;font-weight:600;line-height:1.6}
.file-upload-or{color:var(--upload-muted);line-height:1.6}
.file-upload-or>span{font-weight:500;color:var(--upload-blue);padding-left:3px}
.file-upload-empty>small{font-size:12px;line-height:1.6;color:var(--upload-muted);margin-top:4px}
.file-upload-selected{display:flex;align-items:center;gap:14px;min-height:96px;padding:20px;pointer-events:none}
.file-upload-type{width:44px;height:52px;flex:none;display:grid;place-items:center;border:1px solid #bbd6eb;border-radius:5px;background:#edf5ff;color:var(--upload-blue);font-size:11px;font-weight:700;letter-spacing:.4px}
.file-upload-info{flex:1;min-width:0;display:grid;gap:7px}
.file-upload-name{font-size:14px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}
.file-upload-size{color:var(--upload-muted);font-size:12px;font-variant-numeric:tabular-nums}
.file-upload-replace{color:var(--upload-blue);font-size:12px;white-space:nowrap}
.file-upload-bottom{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-height:36px;padding:10px 0 0;line-height:1.7}
.file-upload-status{color:var(--upload-muted);font-size:12px;overflow-wrap:anywhere;display:flex;gap:7px;align-items:center}
.file-upload-remove{background:transparent;border:0;padding:0;font-size:12px;line-height:1.7;color:#65748b;white-space:nowrap}
.file-upload-remove:hover{color:#cf3445;text-decoration:underline}
.file-upload-hover{display:none;position:absolute;inset:0;align-items:center;justify-content:center;background:#eef5ff;color:var(--upload-blue);font-size:16px;font-weight:600;z-index:3;pointer-events:none}
.file-upload.is-dragover .file-upload-target{border-style:solid;border-color:var(--upload-blue);box-shadow:inset 0 0 0 1px var(--upload-blue)}
.file-upload.is-dragover .file-upload-hover{display:flex}
.file-upload[data-status=error] .file-upload-target{border-color:#d95656;background:#fffafb}
.file-upload[data-status=error] .file-upload-status{color:#c33340}
.file-upload.is-busy .file-upload-input{cursor:wait}
.file-upload.is-busy .file-upload-replace{color:#98a4b6}
.file-upload[data-status=busy] .file-upload-status:before{content:'';flex:none;width:12px;height:12px;border:2px solid #d7e4f8;border-top-color:var(--upload-blue);border-radius:50%;animation:upload-spin .8s linear infinite}
.upload-context{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:0 0 16px;padding:10px 12px;background:#f5f7fa;border:1px solid #e8edf4;border-radius:5px;color:#65748b;font-size:12px;line-height:1.7}
.upload-context strong{color:#293b56;font-weight:500;margin-left:8px}
.upload-context a{color:var(--primary,#1765d1);font-size:12px}
.upload-workbook-date{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-size:13px;color:#52627a}
.upload-workbook-date input{width:160px}
.modal:has(.file-upload):not(:has(.bs-preview-head,.bs-pdf-preview,.wb-import-summary)){width:min(620px,94vw)}
.modal:has(.file-upload) .form-error:empty{display:none}
.bs-upload:has(.file-upload)>#bs-upload-result:empty,.wb-upload:has(.file-upload)>#wb-preview:empty{display:none}
@keyframes upload-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.file-upload-target{transition:none}.file-upload[data-status=busy] .file-upload-status:before{animation:none}}
@media(max-width:560px){.file-upload-selected{gap:10px;padding:16px 12px;flex-wrap:wrap}.file-upload-replace{margin-left:54px}.file-upload-empty{padding:22px 12px}.file-upload-empty>strong{font-size:15px}}

.funding-upload-form .upload-context{margin:12px 0 0;justify-content:flex-start;background:transparent;border:0;padding:0}
