.button-link{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;padding:9px 13px;background:#e8f6f0;color:#0d7e58;text-decoration:none;font-size:12px;font-weight:800;white-space:nowrap}
.secondary-link{background:#edf2f0;color:#53646c}
.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}
.detail-head h2{margin:14px 0 6px}
.detail-head p{margin:0}
.back-link{color:#0d7e58;text-decoration:none;font-size:13px;font-weight:800}
.file-search{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:10px;align-items:center}
.file-search input{margin:0}
.legacy-warning{margin-top:18px;padding:14px 16px;border-radius:12px;background:#fff7e8;color:#8b5a00;border:1px solid #f0d19a;font-size:13px;line-height:1.6}
@media(max-width:700px){.detail-head{flex-direction:column}.file-search{grid-template-columns:1fr}.file-search .button-link{width:100%}}
.upload-progress{margin-top:16px;padding:14px;border:1px solid #b9ddd0;border-radius:12px;background:#fff}
.upload-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}
.upload-progress-head strong{font-size:13px;color:#0d7e58}
.upload-progress-track{height:10px;margin-top:10px;border-radius:999px;background:#e4ece9;overflow:hidden}
.upload-progress-bar{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#14a56d,#38c58d);transition:width .2s ease}
.upload-progress p{margin:9px 0 0;font-size:11px;line-height:1.45;color:#6f7f88;word-break:break-all}
.upload-progress.processing .upload-progress-bar{background:linear-gradient(90deg,#0d7e58 0%,#65d5a9 45%,#0d7e58 100%);background-size:200% 100%;animation:upload-processing 1.3s linear infinite}
.upload-progress.processing .upload-progress-head strong{color:#0d7e58}
.upload-progress.failed{border-color:#efb3b7;background:#fff7f7}
.upload-progress.failed .upload-progress-head strong{color:#b52f38}
.upload-progress.failed .upload-progress-bar{background:#cf3d46}
.upload-box button:disabled,.upload-box input:disabled{cursor:not-allowed;opacity:.6}
@keyframes upload-processing{from{background-position:200% 0}to{background-position:0 0}}
