.app-shell { width: min(1220px, calc(100% - 48px)); margin: 0 auto; padding: 28px 0 42px; }
.inline-progress { width: min(100%, 360px); margin-top: 22px; padding: 12px 14px; border: 1px solid rgba(52,245,138,.25); border-radius: 14px; background: rgba(4, 16, 24, .42); text-align: left; }
.inline-progress[hidden] { display: none; }
.upload-actions { width: min(100%, 360px); display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.upload-actions .upload-btn, .upload-actions .download-btn { min-height: 42px; margin-top: 0; padding: 0 12px; border-radius: 12px; font-size: .64rem; }
.upload-actions .button-arrow { font-size: .95rem; }
.inline-progress-head { display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: .64rem; }
.inline-progress-head strong { color: var(--green); font-size: .68rem; }
.progress-track { height: 5px; margin-top: 9px; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.08); }
.progress-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--green); box-shadow: 0 0 14px rgba(52,245,138,.65); transition: width .22s ease; }
.upload-zone.is-busy { cursor: wait; }
.upload-zone.is-busy > :not(.upload-topline):not(.inline-progress):not(.upload-steps) { opacity: .55; }
.download-btn { appearance: none; }
.download-btn:disabled { cursor: not-allowed; }
.download-btn.expired { color: var(--ink); background: rgba(255,102,130,.16); border-color: rgba(255,102,130,.4); box-shadow: none; }
@media (max-width: 620px) {
	.app-shell { width: calc(100% - 24px); padding-top: 12px; }
	.upload-actions { grid-template-columns: 1fr; }
}
